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