| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258 |
- <?php
- namespace backend\controllers;
- use common\services\xhCommonService;
- use Yii;
- use common\components\util;
- use common\services\xhActiveTicketClassService;
- use common\services\xhActiveService;
- use common\models\xhActive;
- use common\models\xhActiveOrder;
- use common\components\qrCodeUtil;
- use common\components\page;
- use common\services\xhWxOpenService;
- use common\services\xhAdminToMerchantService;
- use common\services\xhTMessageService;
- use common\services\xhActiveOrderService;
- use common\components\chuanglanSMS;
- class ActiveController extends BackendController
- {
- public function actionList()
- {
- $get = Yii::$app->request->get();
- $query = xhActive::find();
- $query->where(['merchantId' =>$this->merchantId]);
- $countQuery = clone $query;
- $count = $countQuery->count();
- $page = isset($get['page']) ? $get['page'] : 1;
- $pageSize = 20;
- $offset = ($page - 1) * $pageSize;
- $models = $query->offset($offset)->orderBy('id desc')->limit($pageSize)->asArray()->all();
- $page = new page($count,$page,$pageSize);
- $paging = $page->fpage();
- $now = time();
- return $this->render('list', ['models' => $models,'paging' => $paging,'now'=>$now]);
- }
- public function actionJoin()
- {
- $get = Yii::$app->request->get();
- $id = isset($get['id']) ? $get['id'] : 0;
- $active = xhActiveService::getById($id);
- if($active['merchantId'] != $this->merchantId){
- util::stop('非法访问');
- }
- $query = xhActiveOrder::find();
- $query->where(['activeId' =>$id]);
- $countQuery = clone $query;
- $count = $countQuery->count();
- $page = isset($get['page']) ? $get['page'] : 1;
- $pageSize = 1000;
- $offset = ($page - 1) * $pageSize;
- $models = $query->offset($offset)->orderBy('id desc')->limit($pageSize)->asArray()->all();
- $page = new page($count,$page,$pageSize);
- $paging = $page->fpage();
- return $this->render('join',['models' => $models,'paging' => $paging,'active'=>$active]);
- }
- public function actionPrint()
- {
- $get = Yii::$app->request->get();
- $id = isset($get['id']) ? $get['id'] : 0;
- $active = xhActiveService::getById($id);
- if($active['merchantId'] != $this->merchantId){
- util::stop('非法访问');
- }
- $query = xhActiveOrder::find();
- $query->where(['activeId' =>$id]);
- if($active['needCheck'] == 1){
- $query->andWhere(['passStatus'=>1]);
- }
- $countQuery = clone $query;
- $count = $countQuery->count();
- $page = isset($get['page']) ? $get['page'] : 1;
- $pageSize = 1000;
- $offset = ($page - 1) * $pageSize;
- $list = $query->offset($offset)->orderBy('id desc')->limit($pageSize)->asArray()->all();
- $page = new page($count,$page,$pageSize);
- $paging = $page->fpage();
- return $this->renderPartial('print',['list' => $list,'active' => $active]);
- }
- public function actionAdd()
- {
- return $this->render('add');
- }
- public function actionSaveAdd()
- {
- $post = Yii::$app->request->post();
- $now = time();
- $date = date("Y-m-d H:i:s",$now);
- $post['allowNum'] = isset($post['allowNum']) && !empty($post['allowNum']) ? $post['allowNum'] : 0;
- $startTime = isset($post['startTime']) && !empty($post['startTime']) ? strtotime($post['startTime']) : $now + 600;
- $endTime = isset($post['endTime']) && !empty($post['endTime']) ? strtotime($post['endTime']) : $now + 86400;
- $post['startTime'] = $startTime;
- $post['endTime'] = $endTime;
- $post['adminId'] = $this->adminId;
- $post['createTime'] = $date;
- $post['addTime'] = $now;
- $post['merchantId'] = $this->merchantId;
- $post['deadline'] = isset($post['deadline']) && !empty($post['deadline']) ? strtotime($post['deadline']) : $startTime;
- $price = isset($post['price']) && !empty($post['price']) ? $post['price'] : 0;
- unset($post['price']);
- unset($post['_csrf']);
- unset($post['fee']);
- if($now > $post['startTime']){
- util::failInfo('开始时间小于当前时间');
- }
- if($post['startTime'] > $post['endTime']){
- util::failInfo('结束时间小于开始时间');
- }
- if($now > $post['deadline']){
- util::failInfo('报名截止时间小于当前时间');
- }
- $active = xhActiveService::add($post);
- $id = $active['id'];
- $ticketData = [
- 'price' =>$price,
- 'merchantId' => $this->merchantId,
- 'activeId' =>$id,
- 'name' =>'门票',
- 'createTime' =>date("Y-m-d H:i:s")
- ];
- $ticket = xhActiveTicketClassService::add($ticketData);
- $ticketId = $ticket['id'];
- $actData = ['classIdList' =>$ticketId];
- xhActiveService::updateById($id, $actData);
- util::successInfo();
- }
- public function actionEdit(){
- $id = Yii::$app->request->get('id');
- $active = xhActiveService::getById($id);
- $this->merchantCheck($active);//检测merchantId数据权限
- //票价
- $activeTickClass = xhActiveTicketClassService::getById($active['classIdList']);
- //dump($activeTickClass);
- $active['price'] = $activeTickClass['price'];
- $active['activeTickClassId'] = $activeTickClass['id'];
- return $this->render('edit', ['active'=>$active]);
- }
- public function actionUpdate(){
- $post = Yii::$app->request->post();
- $id = $post['id'];
- $active = xhActiveService::getById($id);
- $this->merchantCheck($active);//检测merchantId数据权限
- //活动更新
- $startTime = isset($post['startTime']) && !empty($post['startTime']) ? strtotime($post['startTime']) : $now + 600;
- $endTime = isset($post['endTime']) && !empty($post['endTime']) ? strtotime($post['endTime']) : $now + 86400;
- $post['startTime'] = $startTime;
- $post['endTime'] = $endTime;
- $post['deadline'] = isset($post['deadline']) && !empty($post['deadline']) ? strtotime($post['deadline']) : $startTime;
- xhActiveService::updateById($id, $post);
- //活动票价更新
- xhActiveTicketClassService::updateById($post['activeTickClassId'], ['price'=>$post['price']]);
- util::successInfo('活动更新成功!');
- }
- public function actionPassCheck(){
- $post = Yii::$app->request->post();
- $id = $post['id'];
- $action = $post['action'];
- $activeOrder = xhActiveOrderService::getById($id);
- if(empty($activeOrder)){
- $this->error();
- }
- if($action == 'pass' && $activeOrder['passStatus'] == 1){
- util::failInfo('已是通过状态', 'error');
- }
- if($action == 'failPass' && $activeOrder['passStatus'] == -1){
- util::failInfo('已是不通过状态', 'error');
- }
- //更改状态
- $passStatus = 0;
- if($action == 'pass'){
- $passStatus = 1;
- }else if($action == 'failPass'){
- $passStatus = -1;
- }else{
- echo '未知道动作状态';
- die;
- }
- $data = ['passStatus' => $passStatus];
- $re = xhActiveOrderService::updateById($id, $data);
- /*dump($data);
- dump($re);die;*/
- $activity = xhActiveService::getById($activeOrder['activeId']);
- $mobile = $activeOrder['bookMobile'];
- if($action == 'pass'){
- //发送短信
- xhCommonService::sendMobileMsg($mobile, '恭喜您,您报名的课程【'.$activity['title'].'】审核通过了,欢迎您的参加!',$this->merchant);
- util::successInfo('更新成功', 'success');
- }
- if($action == 'failPass'){
- xhCommonService::sendMobileMsg($mobile, '温馨提示:您报名的课程【'.$activity['title'].'】已经满员了哦,敬请期待下次课程!',$this->merchant);
- util::successInfo('更新成功', 'success');
- }
- }
- /**
- * 结束报名
- */
- public function actionFinish()
- {
- $get = Yii::$app->request->get();
- $id = isset($get['id']) ? $get['id'] : 0;
- $active = xhActiveService::getById($id);
- if($active['merchantId'] != $this->merchantId){
- util::failInfo('非法访问');
- }
- $now = time();
- xhActiveService::updateById($id, ['deadline'=>$now]);
- util::successInfo();
- }
- /**
- * 生成活动链接的二维码地址
- */
- public function actionShowActQrcode()
- {
- $get = Yii::$app->request->get();
- $id = isset($get['id']) ? $get['id'] : 0;
- $url = $this->frontUrl.'/pay/active?id='.$id.'&account='.$this->merchant['id'];
- $logo = Yii::getAlias("@app").'/../images'.$this->merchant['logo'];//取商家的logo
- $imgUrl = qrCodeUtil::generate($url,'backend_active_url_'.$this->merchantId.'_'.$id,$logo);
- $act = xhActiveService::getById($id);
- if($act['merchantId'] != $this->merchantId){
- util::stop('非法访问');
- }
- xhActiveService::updateById($id, ['urlQrCode' => $imgUrl]);
- util::successInfo('操作成功','A0001',['url' =>$imgUrl]);
- }
- public function actionSendActiveUrl()
- {
- $get = Yii::$app->request->get();
- $id = isset($get['activeId']) ? $get['activeId'] : 0;
- $active = xhActiveService::getById($id);
- $name = $active['title'];
- $url = Yii::$app->params['frontUrl']."/pay/active?id={$id}&account=".$this->merchant['id'];
- $admin = xhAdminToMerchantService::getAdminByMerchantId($this->merchantId);
- $openMerchant = xhWxOpenService::getMerchant();
- xhTMessageService::sendUrl($url,$name, $openMerchant, $admin);
- util::successInfo('已发送');
- }
-
- }
|