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)); }
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)); }
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; }