Ejemplo n.º 1
0
 public function actionCreate()
 {
     $model = new ActiveModel();
     if (isset($_POST['ActiveModel'])) {
         $model->type = Globals::TYPE_REGISTRATION;
         $model->attributes = $_POST['ActiveModel'];
         $model->wechatId = $this->wechatInfo->id;
         //奖项处理
         for ($i = 1; $i <= 3; $i++) {
             ${'award' . $i} = $_POST['award' . $i];
             ${'isentity' . $i} = $_POST['isentity' . $i] ? $_POST['isentity' . $i] : 0;
             $awards[$i] = array('name' => ${'award' . $i}, 'isentity' => ${'isentity' . $i});
         }
         $model->awards = serialize($awards);
         if ($model->validate()) {
             $model->save();
             $keywords = $_POST['ActiveModel']['keywords'];
             $isAccurate = $_POST['ActiveModel']['isAccurate'];
             $keywordsArray = explode(',', $keywords);
             $this->saveKeywords($keywordsArray, $model->id, $isAccurate, Globals::TYPE_ACTIVE);
             ShowMessage::success('添加成功', Yii::app()->createUrl('registration'));
         }
     }
     Yii::app()->clientScript->scriptMap['jquery.js'] = false;
     $this->render('create', array('model' => $model, 'wechatId' => $this->wechatInfo->id, 'responseId' => 0));
 }
Ejemplo n.º 2
0
 public function actionActive()
 {
     $result = -1;
     $prize = 1;
     $msg = '活动已结束';
     $sinDate = 0;
     $table = 'active_awards';
     $logTable = 'active_log';
     $encryption = Yii::app()->request->getParam('encryption');
     list($openId, $activeId, $type) = explode('|', Globals::authcode($encryption, 'DECODE'));
     $active = ActiveModel::model()->findByPk($activeId);
     //活动是否开始
     if ($active->startTime > date('Y-m-d H:i:s')) {
         $prize = 1;
     } elseif ($active->endTime < date('Y-m-d H:i:s')) {
         $prize = 1;
     } elseif ($active->status == 0) {
         $prize = 1;
     }
     $prize = $active->status == 0 ? 0 : $prize;
     if ($prize == 1) {
         //检查今天是否已经签到
         $startTime = strtotime(date('Y-m-d'));
         $endTime = strtotime(date('Y-m-d', strtotime('+1 days'))) - 1;
         $logExit = ActiveLogModel::model($logTable)->find('activeId=:activeId and openId=:openId and
         datetime>=' . $startTime . ' and datetime<=' . $endTime, array(':activeId' => $activeId, ':openId' => $openId));
         if ($logExit) {
             $result = 1;
             //签到过了
             $msg = '你今天已经签过到了';
         } else {
             $count = ActiveLogModel::model($logTable)->count('activeId=:activeId and openId=:openId', array(':activeId' => $activeId, ':openId' => $openId));
             $count = $count + 1;
             $awardsArray = unserialize($active->awards);
             if (isset($awardsArray[$count])) {
                 //获取礼包码
                 $code = ActiveAwardsModel::model($table)->find('activeId=:activeId and grade=:grade and
                     type=:type and openId is null', array(':activeId' => $activeId, ':grade' => $count, ':type' => $type));
                 if ($code) {
                     $code->status = 2;
                     $code->awardsInfo = $awardsArray[$count]['name'];
                     $code->openId = $openId;
                     $code->datetime = time();
                     $code->save();
                     $result = 2;
                     //  $msg = '恭喜你,获得' . $awardsArray[$count]['name'] . ',礼包码为:'.$code->code;
                     $msg = '恭喜签到' . $count . '次,活动礼包激活码:' . $code->code;
                 } else {
                     $result = -3;
                     $msg = '抱歉,礼包码发完了,请联系客服';
                 }
             } else {
                 $result = 3;
                 $msg = '恭喜你,签到成功';
             }
             $sinDate = date('md');
             //log
             $log = new ActiveLogModel($logTable);
             $log->datetime = time();
             $log->openId = $openId;
             $log->activeId = $activeId;
             $log->save();
         }
     }
     echo json_encode(array('success' => $result, 'msg' => $msg, 'sinDate' => $sinDate));
 }
Ejemplo n.º 3
0
 private function _getRegistration($responseId, $openId, $type)
 {
     $active = ActiveModel::model()->findByPk($responseId);
     if (!$type) {
         $keywords = KeywordsModel::model()->find('type=:type and responseId=:responseId', array(':type' => Globals::TYPE_ACTIVE, ':responseId' => $responseId));
         $content = '参与' . $active->title . '请回复:正版(混版,pps)' . $keywords->name . '参与活动。回复:' . $keywords->name . '中奖查询,查询中奖信息';
         $responseObj = new WeChatTextResponse($content);
         return $responseObj;
     }
     if ($type == -1) {
         $content = $this->_getActiveAwards($openId, $responseId, Globals::TYPE_REGISTRATION);
     } else {
         if ($active->startTime > date('Y-m-d H:i:s')) {
             $content = $active->unstartMsg ? $active->unstartMsg : "抱歉,还未开始呢";
         } elseif ($active->endTime < date('Y-m-d H:i:s')) {
             $content = $active->endMsg ? $active->endMsg : "抱歉,你来晚了";
         } elseif ($active->status == 0) {
             $content = $active->pauseMsg ? $active->pauseMsg : "抱歉,活动暂时停止";
         } else {
             $string = $openId . '|' . $responseId . '|' . $type;
             $code = Globals::authcode($string, 'ENCODE');
             $url = Yii::app()->params['siteUrl'] . Yii::app()->createUrl('registration/handle', array('code' => $code));
             $responseObj = new WeChatArticleResponse();
             $responseObj->add_article($active->title, '', Yii::app()->params['siteUrl'] . '/wechat/upload/market/registration/active.jpg', $url);
         }
     }
     $responseObj = isset($responseObj) ? $responseObj : new WeChatTextResponse($content);
     return $responseObj;
 }