| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- <?php
- /**
- * Created by PhpStorm.
- * User: wniu
- * Date: 2022/5/31
- * Time: 10:07 下午
- */
- namespace addons\Pk\backend\controllers;
- use addons\Pk\common\enums\PkEnum;
- use addons\Pk\common\listeners\OrderPaidListener;
- use addons\Pk\common\listeners\OrderFinishListener;
- use addons\Pk\common\listeners\UserRegisterListener;
- use addons\Pk\common\logic\notify\Notify;
- use addons\Pk\common\models\PkActivity;
- use addons\Pk\common\models\PkActivityStatistic;
- use addons\Pk\common\models\PkDateStatistic;
- use addons\Pk\common\models\PkInviteLog;
- use addons\Pk\common\models\PkOrder;
- use addons\Pk\common\models\PkPerformanceLog;
- use addons\Pk\common\models\PkPersonalMember;
- use addons\Pk\common\models\PkStatistic;
- use common\enums\StatusEnum;
- use common\models\user\User;
- class PersonalController extends BaseController
- {
- public $enableCsrfValidation = false;
- /**
- * 首页
- *
- * @return string
- */
- public function actionIndex()
- {
- $request = \Yii::$app->request;
- if ($request->isAjax) {
- $params = \Yii::$app->request->get();
- $params['mall_id'] = $this->mall_id;
- if (isset($params['name']) && $params['name'] != '') {
- $where[] = ['like', 'name', $params['name']];
- }
- if (isset($params['begin_time']) && $params['begin_time'] != '') {
- $where[] = ['>=', 'begin_time', $params['begin_time']];
- }
- if (isset($params['end_time']) && $params['end_time'] != '') {
- $where[] = ['<', 'end_time', $params['end_time']];
- }
- if (isset($params['activity_type']) && $params['activity_type'] != '') {
- $where[] = ['activity_type' => $params['activity_type']];
- }
- if (isset($params['performance_type']) && $params['performance_type'] != '') {
- $where[] = ['performance_type' => $params['performance_type']];
- }
- if (isset($params['status']) && $params['status'] != '') {
- $where[] = ['activity_status' => (int) $params['status']];
- }
- $where[] = ['status' => StatusEnum::ENABLED];
- $p_lists = array(
- 'where' => $where,
- 'order' => "id desc",
- 'limit' => $params['limit'],
- 'page' => $params['page'],
- );
- $data = PkActivity::listPage($p_lists, false, true);
- if (!empty($data['list'])) {
- foreach ($data['list'] as &$item) {
- $item['prize'] = json_decode($item['prize'], true);
- $item['people_amount'] = $item['member_num'];
- if ($item['activity_type'] == PkEnum::ACTIVITY_TYPE_PERSON) {
- $item['performance'] = 1;
- } else {
- $item['performance'] = 0;
- }
- $new_time = date("Y-m-d H:i:s",time());
- if ($item['activity_status'] == 3) {
- $item['open_status'] = 3;
- } else if ($new_time < $item['begin_time']) {
- $item['open_status'] = 0;
- } else if ($new_time > $item['begin_time'] && $new_time < $item['end_time']) {
- $item['open_status'] = 1;
- } else {
- $item['open_status'] = 2;
- }
- if (in_array($item['activity_status'], [0, 1]) && $item['activity_status'] != $item['open_status']) {
- // 更新状态
- PkActivity::updateAll(['activity_status' => $item['open_status']], ['id' => $item['id']]);
- }
- }
- }
- return $this->success("成功", $data);
- }
- return $this->render('index', []);
- }
- /**
- * 人员列表拉新列表
- *
- * @return string
- */
- public function actionUserLog()
- {
- $retuest = \Yii::$app->request;
- if ($retuest->isAjax) {
- if ($retuest->isGet) {
- $get = \Yii::$app->request->get();
- // 检查提交的参数
- $res = \Yii::$app->services->validate->validate($get,[
- [['nickname','begin_time','end_time','activity_type','user_id','activity_id','limit'], 'safe'],
- ]);
- if($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
- if (!empty($get['nickname'])) {
- $user_ids = User::find()->select("id")->where(['mall_id' => $this->mall_id])->andWhere(['like', 'nickname', $get['nickname'] . '%', false])->asArray()->column();
- if (empty($user_ids)) $this->success('查无此用户');
- }
- if($get['begin_time']) $log_where[] = ['between', 'created_at', strtotime($get['begin_time']),strtotime($get['end_time'])];
- $log_where[] = ['=','share_user_id',$get['user_id']];
- $log_where[] = ['=','mall_id',$this->mall_id];
- $log_where[] = ['=','activity_id',$get['activity_id']];
- $with = 'user';
- if($get['activity_type'] == PkEnum::NEW_ACTIVE){//拉新
- if($user_ids) $log_where[] = ['in', 'invitee_id', $user_ids];
- //获取列表
- $list = PkInviteLog::listPage(array('where' => $log_where,'with'=>$with),false,true);
- }else{
- if($user_ids) $log_where[] = ['in', 'buyer_id', $user_ids];
- $list = PkPerformanceLog::listPage(array('where' => $log_where,'with'=>$with),false,true);
- }
- $activity = PkActivity::getOne([['id'=> $get['activity_id']]],true);
- $list['activity'] = $activity;
- $list['activity_type'] = $get['activity_type'];
- $this->success('获取成功', $list);
- }
- } else {
- return $this->render($this->action->id);
- }
- }
- /**
- * 首页
- *
- * @return string
- */
- public function actionList()
- {
- $retuest = \Yii::$app->request;
- if ($retuest->isAjax) {
- if ($retuest->isGet) {
- $get = \Yii::$app->request->get();
- // 检查提交的参数
- $res = \Yii::$app->services->validate->validate($get,[
- [['nickname','begin_time','end_time','activity_type','activity_id','limit'], 'safe'],
- ]);
- if($res === false) return $this->error(\Yii::$app->services->validate->getErrorMessage());
- $where = [];
- if (!empty($get['nickname'])) {
- $user_ids = User::find()->select("id")->where(['mall_id' => $this->mall_id])->andWhere(['like', 'nickname', $get['nickname'] . '%', false])->asArray()->column();
- if (empty($user_ids)) $this->success('查无此用户');
- $where[] = ['in', 'user_id', $user_ids];
- }
- if($get['activity_id']) $where[] = ['=', 'activity_id', $get['activity_id']];
- if($get['begin_time']) $where[] = ['between', 'created_at', strtotime($get['begin_time']),strtotime($get['end_time'])];
- $with = ['user', 'activity'];
- $where[] = ['=', 'mall_id', $this->mall_id];
- $where[] = ['>=', 'status', StatusEnum::DISABLED];
- if($get['activity_type'] == 1){
- $order = 'new_user_num desc';
- }else{
- $order = 'order_money_num desc';
- }
- $params = array('where' => $where,'with' => $with,'order'=>$order, 'limit' => $get['limit']);
- $list = PkActivityStatistic::listPage($params, false, true);
- $list['activity_type'] = $get['activity_type'];
- $this->success('获取成功', $list);
- }
- } else {
- return $this->render($this->action->id);
- }
- }
- public function actionPatch()
- {
- $params = \Yii::$app->request->post();
- $params['mall_id'] = $this->mall_id;
- // $this->checkRequireKey($params, ['id']);
- // $params = $this->filterPost($params, ['mall_id', 'is_enable', 'id']);
- $res = PkActivity::setData($params);
- if ($res == false) return $this->error(PkActivity::getStaticError());
- return $this->success('操作成功', []);
- }
- public function actionDestroy()
- {
- $params = \Yii::$app->request->get();
- $model = PkActivity::getOne([['id' => $params['id']]]);
- $new_time = date("Y-m-d H:i:s",time());
- if ($model->activity_status == StatusEnum::ENABLED && $new_time > $model->begin_time && $new_time < $model->end_time) {
- return $this->error("只有未开始和已取消的状态下,才可编辑");
- }
- if ($model == false) return $this->error(PkActivity::getStaticError());
- $model->status = StatusEnum::DELETE;
- $state = $model->save();
- $num = -1;
- $params['activity_num'] = $num;
- $params['date'] = date('Ymd');
- $params['mall_id'] = $this->mall_id;
- PkDateStatistic::setData($params);
- PkStatistic::setData($params);
- if ($state == false) return $this->error(PkActivity::getStaticError());
- return $this->success('操作成功', []);
- }
- public function actionPersonalAdd()
- {
- $request = \Yii::$app->request;
- if ($request->isAjax) {
- $params = \Yii::$app->request->get();
- $params['mall_id'] = $this->mall_id;
- $model = PkActivity::getOne([['id' => $params['id']]]);
- if (!$model) {
- return $this->error("活动数据不存在");
- }
- $model->prize = json_decode($model->prize, true);
- return $this->success("成功", $model);
- }
- return $this->render('person-add');
- }
- //测试拉新活动
- public function actionTest()
- {
- $params = \Yii::$app->request->post();
- $status = $params['status'];
- if($status == 1){
- $user['user_id'] = $params['name'];
- UserRegisterListener::async_handle($user);
- }
- if($status == 2){
- $order['id'] = $params['name'];
- OrderPaidListener::async_handle($order);
- }
- if($status == 3){
- $order['id'] = $params['name'];
- OrderFinishListener::async_handle($order);
- }
- }
- }
|