Example #1
0
 public static function managerQueryWinner($app, $manager, $replyArr)
 {
     //活动类型ID
     $typeId = Event::getActivityTypeId($replyArr['event_id']);
     $result = BaseActivity::managerGetActivitySession($app['id'], $typeId, $manager['id']);
     switch ($result['status']) {
         case ErrorCode::err_activity_session_not_exist:
         case ErrorCode::err_activity_not_exist:
             return ReplyFormat::replyText(KshParams::ksh_error['error_activity_not_exist']);
             break;
         case ErrorCode::success:
             $param = BaseActivity::getActivityParam($app['id'], $typeId, $manager['id'], 'member_count');
             $memberCount = $param['param'];
             $param = BaseActivity::getActivityParam($app['id'], $typeId, $manager['id'], 'member_id');
             $memberIdArr = $param['param'];
             $param = BaseActivity::getActivityParam($app['id'], $typeId, $manager['id'], 'member_answers_results');
             $memberAnswerArr = $param['param'];
             $param = BaseActivity::getActivityParam($app['id'], $typeId, $manager['id'], 'question_count');
             $quesCount = $param['param'];
             $param = BaseActivity::getActivityParam($app['id'], $typeId, $manager['id'], 'prize_count');
             $prizeCount = $param['param'];
             $param = BaseActivity::getActivityParam($app['id'], $typeId, $manager['id'], 'is_draw');
             $isDraw = $param['param'];
             //检查活动题目是否设置
             if ($quesCount == 0) {
                 return ReplyFormat::replyText(KshParams::ksh_error['error_activity_question_not_set']);
             }
             //检查活动奖品是否设置
             if ($prizeCount == 0) {
                 return ReplyFormat::replyText(KshParams::ksh_error['error_activity_prize_not_set']);
             }
             //统计
             $winner = [];
             foreach ($memberIdArr as $memberId) {
                 $rightCount = 0;
                 $memberResult = $memberAnswerArr[$memberId];
                 foreach ($memberResult as $ques => $answer) {
                     if ($answer) {
                         $rightCount++;
                     }
                 }
                 if ($rightCount == $quesCount) {
                     $winner[] = $memberId;
                 }
             }
             //中奖人数
             $winnerCount = count($winner);
             //中奖着手机后4位尾号
             $mobileString = '';
             $Doctors = Doctor::whereIn('id', $winner)->get();
             foreach ($Doctors as $doctor) {
                 $mobileString .= substr_replace($doctor['mobile'], '****', 3, 4) . ', ' . PHP_EOL;
             }
             //检查是否开奖
             if (!$isDraw) {
                 return ReplyFormat::replyText(KshParams::ksh_error['error_manager_not_draw_activity']);
             } else {
                 //没有中奖的
                 if ($winnerCount == 0) {
                     return ReplyFormat::replyText(sprintf(KshParams::ksh_error['error_activity_no_winner'], $memberCount, $winnerCount));
                 } else {
                     if ($winnerCount > 0 && $winnerCount <= $memberCount) {
                         return ReplyFormat::replyText(sprintf(KshParams::ksh_success['success_query_winners'], $memberCount, $winnerCount, $mobileString));
                     }
                 }
             }
             break;
     }
     return false;
 }
Example #2
0
 public static function drawKsh($app, $manager, $replyArr)
 {
     //权限检查
     if ($manager['type'] != UserOpenid::TYPE_MANAGER) {
         return KshNotice::replyText($app, $manager, KshParams::ksh_error['error_no_authority_draw_activity']);
     }
     //获取活动类型ID
     $typeId = Event::getActivityTypeId($replyArr['event_id']);
     $result = BaseActivity::managerGetActivitySession($app['id'], $typeId, $manager['id']);
     switch ($result['status']) {
         case ErrorCode::err_activity_session_not_exist:
         case ErrorCode::err_activity_not_exist:
             return ReplyFormat::replyText(KshParams::ksh_error['error_activity_not_exist']);
             break;
         case ErrorCode::success:
             return KshUtils::draw($app['id'], $typeId, $manager['id']);
             break;
     }
     return false;
 }