Beispiel #1
0
 /**
  * Handler activity by command
  *
  * @param $app WechatApp
  * @param $user User
  * @return string message
  */
 public static function handle($app, $openId, $replyArr)
 {
     $user = UserCache::getByOpenId($app, $openId);
     $eventCode = Event::getEventCode($replyArr['event_id']);
     if (!$user) {
         SysLog::error(__FILE__, __METHOD__, __LINE__, 'user not found by openid');
         return false;
     }
     if (!$user['mobile']) {
         return ReplyFormat::replyText(SysParams::sys_error['error_user_not_register']);
     }
     switch ($eventCode) {
         case self::ACTIVITY_INIT:
             return KshActivity::startKsh($app, $user, $replyArr, $user['time_out']);
             break;
         case self::ACTIVITY_CLOSE:
             return KshActivity::stopKsh($app, $user, $replyArr);
             break;
         case self::ACTIVITY_DRAW:
             return KshActivity::drawKsh($app, $user, $replyArr);
             break;
         case self::QUESTION_BROWSE:
             return KshActivity::browseKshQuestionStore($app, $user, $replyArr);
             break;
         case self::PRIZE_BROWSE:
             return KshActivity::browseKshPrizeStore($app, $user, $replyArr);
             break;
         case self::ACTIVITY_JOIN:
             return KshActivity::joinKsh($app, $user, $replyArr);
             break;
         case self::ACTIVITY_ANSWER:
             return KshActivity::answerKsh($app, $user, $replyArr);
             break;
         case self::QUERY_WINNER:
             return KshActivity::queryWinner($app, $user, $replyArr);
             break;
         case self::QUERY_PRIZE:
             return KshActivity::queryPrize($app, $user, $replyArr);
             break;
             //            case self::QUESTION_CHOOSE:
             //                return Ksh::setActivityQuestion($app, $user, $replyArr);
             //                break;
             //            case self::PRIZE_CHOOSE:
             //                return Ksh::setActivityPrize($app, $user, $replyArr);
             //                break;
         //            case self::QUESTION_CHOOSE:
         //                return Ksh::setActivityQuestion($app, $user, $replyArr);
         //                break;
         //            case self::PRIZE_CHOOSE:
         //                return Ksh::setActivityPrize($app, $user, $replyArr);
         //                break;
         default:
             return false;
             break;
     }
 }
Beispiel #2
0
 /**
  * Get reply define by command content.
  *
  * @param $cmdType
  * @param $cmdBody
  * @return array
  */
 public static function getReplyDefine($app, $cmdType, $cmdBody)
 {
     if (isset($app) && isset($cmdType) && isset($cmdBody)) {
         $cmd = Command::match($cmdBody);
         if (!$cmd['texts']) {
             Log::error('invalid command content');
             return null;
         }
         $reply = self::where(['wechat_id' => $app['id'], 'cmd_type' => $cmdType, 'cmd_content' => $cmd['texts'][0]])->get()->first();
         if (!$reply) {
             Log::error('command content not found' . json_encode($cmd));
             return null;
         }
         $replyArr = ['event_id' => $reply['event_id'], 'is_prefix' => $reply['is_prefix'], 'reply_type' => $reply['reply_type'], 'event_code' => Event::getEventCode($reply['event_id']), 'is_activity_event' => Event::isActivity($reply['event_id']), 'reply_json' => json_decode(base64_decode($reply['reply_json']), true), 'cmd_original' => $cmdBody];
         if ($cmd['texts']) {
             $replyArr['cmd_text'] = $cmd['texts'][0];
         }
         if ($cmd['numbers']) {
             $replyArr['cmd_number'] = $cmd['numbers'];
         }
         return $replyArr;
     }
     return null;
 }