| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- <?php
- namespace addons\Clerk\backend\controllers;
- use addons\Clerk\common\models\ClerkUser;
- use addons\Store\common\models\Store;
- use common\enums\AddonsEnum;
- use common\enums\StatusEnum;
- use common\models\mall\MallAddons;
- use common\models\user\User;
- use Yii;
- /**
- * 默认控制器
- *
- * Class DefaultController
- * @package addons\Clerk\backend\controllers
- */
- class DefaultController extends BaseController
- {
- public $enableCsrfValidation = false;
- //列表
- public function actionIndex()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $params = \Yii::$app->request->get();
- $where[] = ['mall_id' => $this->mall_id];
- $where[] = ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]];
- if (!empty($params['keyword'])) {
- $user_list = User::lists(['where'=>[['mall_id'=>$this->mall_id],[
- 'or',
- ['like', 'mobile', $params['keyword']]
- ]],'select'=>'id']);
- $user_ids = array_column($user_list,'id');
- $where[] = ['user_id'=>$user_ids];
- }
- if (!empty($params['user_id'])) $where[] = ['user_id'=>$params['user_id']];
- if (!empty($params['start'])) $where[] = $where[] = ['>=', 'created_at', strtotime($params['start'])];
- if (!empty($params['end'])) $where[] =$where[] = ['<=', 'created_at', strtotime($params['end'])];
- $params['where'] = $where;
- $params['order'] = 'id DESC';
- $params['select'] = 'id,mall_id,store_id,user_id,created_at';
- $pageData = ClerkUser::listPage($params, false);
- if (!empty($pageData['list'])) {
- $user_ids = array_column($pageData['list'], 'user_id');
- $store_ids = array_column($pageData['list'], 'store_id');
- $user_list = User::lists(['where' => [['id' => $user_ids]], 'select' => 'id,nickname,mobile,username,avatar_url', 'index' => 'id']);
- if (MallAddons::isInstall($this->mall_id, AddonsEnum::ADDONS_NAME_STORE)) {
- $store_list = Store::lists(['where' => [['id' => $store_ids]], 'select' => 'id,store_name', 'index' => 'id']);
- }
- foreach ($pageData['list'] as &$item) {
- $item['nickname'] = $item['mobile'] = $item['username'] =$item['avatar_url'] = $item['store_name'] = '';
- if (isset($user_list[$item['user_id']])) {
- $user = $user_list[$item['user_id']];
- $item['nickname'] = $user['nickname'];
- $item['mobile'] = $user['mobile'];
- $item['username'] = $user['username'];
- $item['avatar_url'] = $user['avatar_url'];
- }
- if (isset($store_list[$item['store_id']])) {
- $item['store_name'] = $store_list[$item['store_id']]['store_name'];
- }
- }
- }
- return $this->success('操作成功', $pageData);
- }
- }
- return $this->render('index', []);
- }
- //编辑
- public function actionEdit()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isPost) {
- $params = \Yii::$app->request->post();
- $res = Yii::$app->services->validate->validate($params, [
- [['user_id', 'store_id'], 'required'],
- [['user_id', 'level'], 'integer']
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $params['mall_id'] = $this->mall_id;
- $wheres = [
- 'user_id' => $params['user_id'],
- 'mall_id' => $this->mall_id,
- 'status' => [StatusEnum::ENABLED, StatusEnum::DISABLED],
- ];
- $model = ClerkUser::findOne($wheres);
- if (!empty($model)) return $this->error('该会员已经是核销员,不能重复添加');
- $params['status'] = StatusEnum::ENABLED;
- $res = ClerkUser::setData($params);
- if ($res === false) return $this->error(ClerkUser::getStaticError());
- return $this->success('操作成功');
- }
- }
- return $this->error();
- }
- //删除
- public function actionDel()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isPost) {
- $params = \Yii::$app->request->post();
- $res = Yii::$app->services->validate->validate($params, [
- [['id'], 'required'],
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $res = ClerkUser::updateAll(['status'=>StatusEnum::DELETE],['id'=>$params['id'],'mall_id'=>$this->mall_id]);
- if ($res==false) return $this->error('失败');
- return $this->success('操作成功');
- }
- }
- return $this->error();
- }
- //设置
- public function actionSetting() {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $group = 'basic';
- $list = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_CLERK, $group);
- return $this->success('操作成功', $list);
- } else {
- $postData = \Yii::$app->request->post();
- $res = Yii::$app->services->validate->validate($postData, [
- [['status'], 'required']
- ]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $postData['mall_id'] = $this->mall_id;
- \Yii::$app->services->setting->addons->set($this->mall_id, AddonsEnum::ADDONS_NAME_CLERK, ['basic' => $postData]);
- return $this->success('操作成功');
- }
- }
- return $this->render('setting');
- }
- /**
- * @desc:不用验证权限
- * @Author: hua
- * @Date: 2022/8/5
- * @Time: 11:43
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @return mixed|void
- */
- public function actionSearchUser()
- {
- if (\Yii::$app->request->isAjax) {
- $keyword = \Yii::$app->request->get('keyword', '');
- $list['list'] = User::searchUser(['keyword' => $keyword, 'mall_id' => $this->mall_id]);
- return $this->success('操作成功', $list);
- }
- return $this->error();
- }
- /**
- * @desc:不用验证权限
- * @Author: hua
- * @Date: 2022/8/5
- * @Time: 11:43
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @return mixed|void
- */
- public function actionSearchStore()
- {
- if (\Yii::$app->request->isAjax) {
- if (!MallAddons::isInstall($this->mall_id, AddonsEnum::ADDONS_NAME_STORE)) return $this->error('没有安装o2o门店插件', []);
- $params = \Yii::$app->request->get();
- $where[] = ['mall_id' => $this->mall_id];
- $where[] = ['status' => StatusEnum::ENABLED];
- $where[] = ['or', ['>', 'expire_time', time()], ['expire_time' => 0]];
- if (!empty($params['keyword'])) $where[] = ['like', 'store_name', trim($params['keyword'])];
- $params['where'] = $where;
- $params['order'] = 'id desc';
- $params['select'] = 'id,store_name';
- $list = Store::listPage($params);
- return $this->success('操作成功', $list);
- }
- return $this->error();
- }
- }
|