request->isAjax) { if (\Yii::$app->request->isGet) { $page = \Yii::$app->request->get('page', 1); $limit = \Yii::$app->request->get('limit', $this->pageSize); $user_id = \Yii::$app->request->get('user_id'); $user_keyword = \Yii::$app->request->get('user_keyword'); $start_time = \Yii::$app->request->get('start_time'); $end_time = \Yii::$app->request->get('end_time'); $wheres[] = ['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED]; if (!empty($start_time)) { $wheres[] = ['>=', 'created_at', strtotime($start_time)]; } if (!empty($end_time)) { $wheres[] = ['<=', 'created_at', strtotime($end_time . ' 23:59:59')]; } if (!empty($user_id)) { $users = User::find() ->select('id,nickname,mobile,avatar_url,parent_id') ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'id' => $user_id]) ->asArray() ->indexBy('id') ->all(); $wheres[] = ['user_id' => $user_id]; } if (!empty($user_keyword)) { $users = User::find() ->select('id,nickname,mobile,avatar_url,parent_id') ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED]) ->andWhere(['or', ['like', 'nickname', $user_keyword], ['like', 'mobile', $user_keyword]]) ->asArray() ->indexBy('id') ->all(); $wheres[] = ['user_id' => array_column($users, 'id')]; } $params = [ 'select' => 'id,user_id,level,attend_times,has_attend_times,win_num,created_at', 'where' => $wheres, 'order' => 'created_at desc', 'page' => $page, 'limit' => $limit, ]; $lists = LuckyGroupUser::listPage($params); if (false === $lists['list']) { return $this->error(LuckyGroupUser::getStaticError()); } if (empty($users)) { $user_ids = array_column($lists['list'], 'user_id'); $users = User::find() ->select('id,nickname,mobile,avatar_url,parent_id') ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'id' => $user_ids]) ->asArray() ->indexBy('id') ->all(); } $parent_ids = array_column($users, 'parent_id'); $parents = User::find() ->select('id,nickname,mobile,avatar_url,parent_id') ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'id' => $parent_ids]) ->asArray() ->indexBy('id') ->all(); $levels = LuckyGroupLevel::find() ->select('id,level,name') ->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED]) ->asArray() ->indexBy('level') ->all(); foreach ($lists['list'] as &$list) { $user = $users[$list['user_id']] ?? []; $parent = $parents[$user['parent_id'] ?? 0] ?? []; $level = $levels[$list['level']] ?? []; $list['nickname'] = $user['nickname'] ?? ''; $list['mobile'] = $user['mobile'] ?? ''; $list['avatar_url'] = !empty($user['avatar_url']) ? $user['avatar_url'] : \Yii::$app->request->hostInfo . '/resources/img/common/default-avatar.png'; $list['parent_id'] = $parent['id'] ?? 0; $list['parent_nickname'] = $parent['nickname'] ?? ''; $list['parent_avatar_url'] = !empty($parent['avatar_url']) ? $parent['avatar_url'] : \Yii::$app->request->hostInfo . '/resources/img/common/default-avatar.png'; $list['parent_mobile'] = $parent['mobile'] ?? ''; $list['level_name'] = $level['name'] ?? '默认等级'; } $lists['level_list'] = array_values($levels); return $this->success('success', $lists); } else {} } else { return $this->render('/group-user/index'); } } /** * @name: * @msg: 给拼团会员增加参团次数 * @param {*} * @return {*} */ public function actionAddAttendTimes() { if (!\Yii::$app->request->isPost) { return $this->error('请求方式错误'); } $post = \Yii::$app->request->post(); $rules = [ [['num', 'user_id'], 'required'], [['num', 'user_id'], 'integer'], ]; $res = \Yii::$app->services->validate->validate($post, $rules); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); // dd($post); $res = LuckyGroupUser::saveAttendTimes($this->mall_id, $post['user_id'], $post['num'], LuckyGroupEnum::ADMIN_GRANT); if (false === $res) { return $this->error(LuckyGroupUser::getStaticError()); } return $this->success('操作成功'); } /** * @name: * @msg: 修改会员拼团等级 * @param {*} * @return {*} */ public function actionEditLevel() { if (!\Yii::$app->request->isPost) { return $this->error('请求方式错误'); } $post = \Yii::$app->request->post(); $rules = [ [['id', 'level'], 'required'], [['id', 'level'], 'integer'], ]; $res = \Yii::$app->services->validate->validate($post, $rules); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $res = LuckyGroupUser::setData($this->mall_id, $post); if (false === $res) { return $this->error(LuckyGroupUser::getStaticError()); } return $this->success('操作成功'); } /** * @name: * @msg: 搜索拼团会员 * @param {*} * @return {*} */ public function actionSearchUser() { if (!\Yii::$app->request->isGet) { return $this->error('请求方式错误'); } $keyword = \Yii::$app->request->get('keyword'); $query = User::find()->select('id,nickname,mobile,avatar_url')->where(['mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED, 'is_inviter' => 1]); if (!empty($keyword)) { $query->andWhere(['or', ['id' => $keyword], ['like', 'nickname', $keyword], ['like', 'mobile', $keyword]]); } $users = $query->asArray()->orderBy('created_at desc')->limit(100)->all(); return $this->success('success', ['list' => $users]); } /** * @name: * @msg: 添加拼团会员 * @param {*} * @return {*} */ public function actionAddGroupUser() { if (!\Yii::$app->request->isPost) { return $this->error('请求方式错误'); } $post = \Yii::$app->request->post(); $rules = [ [['user_id', 'level'], 'required'], [['user_id', 'level'], 'integer'], ]; $res = \Yii::$app->services->validate->validate($post, $rules); if ($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage()); $res = LuckyGroupUser::setData($this->mall_id, $post); if (false === $res) { return $this->error(LuckyGroupUser::getStaticError()); } return $this->success('操作成功'); } }