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