Esempio n. 1
0
 private function _getScratch($responseId, $openId, $type)
 {
     $disable = 1;
     $logTable = 'scratch_log';
     Yii::import('application.modules.scratch.models.ScratchModel');
     Yii::import('application.modules.scratch.models.ScratchLogModel');
     $scratch = ScratchModel::model()->findByPk($responseId);
     if (!$type) {
         $keywords = KeywordsModel::model()->find('type=:type and responseId=:responseId', array(':type' => Globals::TYPE_SCRATCH, ':responseId' => $responseId));
         $content = '参与' . $scratch->title . '请回复:正版(混版)' . $keywords->name;
         $responseObj = new WeChatTextResponse($content);
         return $responseObj;
     }
     //查看刮卡次数
     $totalCount = $scratch->times;
     if ($totalCount == -1) {
         //本活动只能参与一次
         $count = ScratchLogModel::model($logTable)->count('openId=:openId and scratchId=:scratchId', array(':openId' => $openId, ':scratchId' => $scratch->id));
         if ($count > 0) {
             $disable = 0;
         }
     }
     if ($totalCount > 0) {
         $start = strtotime(date('Y-m-d')) - 1;
         $end = strtotime(date('Y-m-d', strtotime('1 days'))) - 1;
         $count = ScratchLogModel::model($logTable)->count('openId=:openId and scratchId=:scratchId and datetime>:start and datetime<:end', array(':openId' => $openId, ':scratchId' => $scratch->id, ':start' => $start, ':end' => $end));
         if ($count >= $totalCount) {
             $disable = 0;
         }
     }
     if ($disable == 0) {
         $content = $totalCount == -1 ? '你本次活动的参与次数已完' : '今天的刮奖次数已完,明天再来吧';
         $responseObj = new WeChatTextResponse($content);
         return $responseObj;
     }
     if ($scratch->startTime > date('Y-m-d H:i:s')) {
         $content = $scratch->unstartMsg ? $scratch->unstartMsg : "抱歉,还未开始呢";
     } elseif ($scratch->endTime < date('Y-m-d H:i:s')) {
         $content = $scratch->endMsg ? $scratch->endMsg : "抱歉,你来晚了";
     } elseif ($scratch->status == 0) {
         $content = $scratch->pauseMsg ? $scratch->pauseMsg : "抱歉,活动暂时停止";
     } else {
         $string = $openId . '|' . $responseId . '|' . $type;
         $code = Globals::authcode($string, 'ENCODE');
         $url = Yii::app()->params['siteUrl'] . Yii::app()->createUrl('scratch/handle', array('code' => $code));
         $responseObj = new WeChatArticleResponse();
         $responseObj->add_article($scratch->title, '', Yii::app()->params['siteUrl'] . '/wechat/' . Yii::app()->params['scratchPath'] . '/' . $scratch->wechatId . '/' . $scratch->backgroundPic, $url);
     }
     $responseObj = isset($responseObj) ? $responseObj : new WeChatTextResponse($content);
     return $responseObj;
 }
Esempio n. 2
0
 /**
  * 刮刮乐活动开关
  * @param $id
  */
 public function actionScratchStatus($id)
 {
     $status = Yii::app()->request->getParam('status');
     $model = ScratchModel::model()->findByPk($id);
     $model->status = in_array($status, array(0, 1)) ? $status : 0;
     $model->save();
     echo json_encode(array('result' => 0));
 }
Esempio n. 3
0
 public function actionSave()
 {
     //status 更新为2
     $success = false;
     $table = 'scratch_awards';
     $tel = $_POST['tel'];
     $msg = '中奖信息失效或系统异常';
     $encryption = $_POST['encryption'];
     $name = $_POST['code'];
     list($openid, $grade, $scratchId) = explode('|', Globals::authcode($encryption, 'DECODE'));
     $scratchInfo = ScratchModel::model()->findByPk($scratchId);
     if ($scratchInfo && $tel) {
         $awards = unserialize($scratchInfo->awards);
         if ($awards[$grade] && $awards[$grade]['name'] == $name) {
             $success = true;
             $msg = '你的信息已收录,我们会及时联系你';
             //存储用户信息
             $codeInfo = ScratchAwardsModel::model($table)->find('openId=:openId and scratchId=:scratchId and grade=:grade', array(':openId' => $openid, ':scratchId' => $scratchId, ':grade' => $grade));
             $codeInfo->status = 2;
             $codeInfo->telphone = $tel;
             $codeInfo->save();
         }
     }
     echo json_encode(array('success' => $success, 'msg' => $msg));
 }