request->isAjax) { if (\Yii::$app->request->isGet) { $get = \Yii::$app->request->get(); $get['mall_id'] = $this->mall_id; $params = []; $user_id_arr = []; if (isset($get['level']) && $get['level']!=-1&&$get['level']!=='') $params['where'][] = ['=', 'level', $get['level']]; $is_search = 0; if (!empty($get['user_id'])){ $is_search = 1; $user_id_arr[]=$get['user_id']; } if (!empty($get['keyword'])) { $is_search = 1; $user_list = User::lists(['where'=>[['mall_id'=>$this->mall_id],[ 'or', ['like', 'username', $get['keyword']], ['like', 'nickname', $get['keyword']], ['like', 'mobile', $get['keyword']] ]],'select'=>'id']); $user_ids = array_column($user_list,'id'); if(!empty($user_id_arr)){ $user_id_arr = array_intersect($user_id_arr,$user_ids); }else{ $user_id_arr = $user_ids; } } if($is_search)$params['where'][] = ['in', 'user_id', $user_id_arr]; $params['where'][] = ['=', 'mall_id',$this->mall_id]; $params['where'][] = ['in', 'status', [StatusEnum::ENABLED, StatusEnum::DISABLED]]; $params['limit'] = 10; $params['order'] = 'id DESC'; $pageData = RebateUser::listPage($params, false); if ($pageData === false) return $this->error(RebateUser::getStaticError()); if(!empty($pageData['list'])){ $user_id_arr = array_column($pageData['list'],'user_id'); $user_list = $user_list = User::lists(['where'=>[['id'=>$user_id_arr]],'select'=>'id,nickname,avatar_url,mobile,parent_id']); $user_arr = $parent_arr = []; $parent_id_arr = []; foreach ($user_list as $item){ if($item['parent_id']>0&&!in_array($item['parent_id'],$parent_id_arr)){ $parent_id_arr[]=$item['parent_id']; } $user_arr[$item['id']] = $item; } $user_parent_list = $user_list = User::lists(['where'=>[['id'=>$parent_id_arr]],'select'=>'id,nickname,avatar_url,mobile']); foreach ($user_parent_list as $item){ $parent_arr[$item['id']] = $item; } foreach ($pageData['list'] as &$v) { $v['nickname'] = $v['avatar_url'] = $v['parent_id'] = $v['parent_name'] = $v['mobile'] = ''; if (isset($user_arr[$v['user_id']])) { $v['mobile'] = $user_arr[$v['user_id']]['mobile']; $v['nickname'] = $user_arr[$v['user_id']]['nickname']; $v['avatar_url'] = $user_arr[$v['user_id']]['avatar_url']; $v['parent_id'] = $user_arr[$v['user_id']]['parent_id']; if (isset($parent_arr[$v['parent_id']])) { $v['parent_name'] = $parent_arr[$v['parent_id']]['nickname']; } } } } $args = []; $args['where'] = [['mall_id' => $this->mall_id], ['<>', 'status', StatusEnum::DELETE]]; $args['select'] = 'id,level,name'; $args['order'] = 'level asc'; $level_list = RebateUserLevel::lists($args, true); if (empty($level_list)) $level_list = [['id' => 0, 'level' => 0, 'name' => '默认等级']]; $pageData['rebateLevelList'] = $level_list; return $this->success('操作成功', $pageData); } } return $this->render('index', []); } public function actionLevelChange() { if (\Yii::$app->request->isAjax) { if (\Yii::$app->request->isPost) { $params = \Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['id', 'user_id', 'level'], 'required'], [['user_id', 'level'], 'integer'], ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $res = RebateUser::setData($params); if ($res === false) return $this->error(RebateUser::getStaticError()); return $this->success('操作成功'); } } return $this->error(); } 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(); } public function actionEdit() { if (\Yii::$app->request->isAjax) { if (\Yii::$app->request->isPost) { $postData = \Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($postData, [ [['user_id', 'level'], 'required'], [['user_id', 'level'], 'integer'] ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $wheres = [ 'user_id' => $postData['user_id'], 'mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, ]; $model = RebateUser::findOne($wheres); if (!empty($model)) return $this->error('该会员已添加,不能重复添加'); $postData['mall_id'] = $this->mall_id; $postData['status'] = StatusEnum::ENABLED; $res = RebateUser::setData($postData); if ($res === false) return $this->error(RebateUser::getStaticError()); return $this->success('操作成功'); } } return $this->error(); } public function actionDelete() { if (\Yii::$app->request->isAjax) { if (\Yii::$app->request->isPost) { $params = \Yii::$app->request->post(); $res = Yii::$app->services->validate->validate($params, [ [['id'], 'required'], [['id'], 'integer'] ]); if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage()); $params['mall_id'] = $this->mall_id; $params['status'] = StatusEnum::DELETE; $res = RebateUser::setData($params); if ($res === false) return $this->error(RebateUser::getStaticError()); return $this->success('操作成功'); } } return $this->error(); } public function actionSetting() { if (\Yii::$app->request->isAjax) { return $this->error(); } return $this->render('setting'); } public function actionEnableList() { if (\Yii::$app->request->isAjax) { if (\Yii::$app->request->isGet) { $level = \Yii::$app->request->get('level'); $where = [['mall_id' => $this->mall_id], ['=', 'status', StatusEnum::ENABLED]]; if (!empty($level)) $where[] = ['level' => $level]; $args['where'] = $where; $args['select'] = 'id,level,name'; $args['order'] = 'level asc'; $list['list'] = RebateUserLevel::lists($args, true); return $this->success('操作成功', $list); } } return $this->error(); } public function actionSync(){ $params = [ 'mall_id'=>$this->mall_id, ]; \Yii::$app->services->rabbitMq->push(RabbitMqEnum::EXCHANGE_TASK, RabbitMqEnum::TASK_QUEUE, $params, RebateUser::class, 'sync'); return $this->success('操作成功'); } }