| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- <?php
- namespace addons\LuckyGroup\backend\controllers;
- use addons\LuckyGroup\common\enums\LuckyGroupEnum;
- use addons\LuckyGroup\common\models\LuckyGroupLevel;
- use addons\LuckyGroup\common\models\LuckyGroupUser;
- use common\enums\StatusEnum;
- use common\models\user\User;
- class GroupTeamController extends BaseController
- {
- public function actionIndex()
- {
- if (\Yii::$app->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('操作成功');
- }
- }
|