public static function addMemberMsgRecord($wechatId, $activityTypeId, $managerId, $memberId, $memberMsg, $replyParamName) { $param = BaseActivity::getActivityParam($wechatId, $activityTypeId, $managerId, 'member_msg_records'); $records = $param['param']; $key = time(); //时间戳作为记录的key $records[$memberId][$key] = ['send' => $memberMsg, 'reply' => $replyParamName]; $isUpdate = BaseActivity::updateActivityParam($wechatId, $activityTypeId, $managerId, 'member_msg_records', $records); if ($isUpdate) { return true; } return false; }
public static function answerKsh($app, $user, $replyArr) { //权限检查 if ($user['type'] != UserOpenid::TYPE_DOCTOR) { return KshNotice::replyText($app, $user, KshParams::ksh_error['error_no_authority_answer_question']); } //答案编号是否为空 if (!array_key_exists('cmd_number', $replyArr)) { return KshNotice::replyText($app, $user, KshParams::ksh_error['error_empty_member_answer_code']); } //因为答案中可能有数字相同的编号, 所以多个题目的答案中间不能有分隔符 $answerString = $replyArr['cmd_number'][0]; $answerArr = []; for ((int) ($i = 0); $i < strlen($answerString); $i++) { $answerArr[] = $answerString[$i]; } //获取当前活动session $typeId = Event::getActivityTypeId($replyArr['event_id']); $result = BaseActivity::memberGetActivitySession($app['id'], $typeId, $user['id']); switch ($result['status']) { case ErrorCode::err_activity_manager_not_found: return KshNotice::replyText($app, $user, KshParams::ksh_error['error_member_not_in_activity']); break; case ErrorCode::err_activity_not_exist: case ErrorCode::err_activity_session_not_exist: return KshNotice::replyText($app, $user, KshParams::ksh_error['error_activity_not_exist']); break; case ErrorCode::success: //答题前检查 $activity = $result['param']['activity']; $checkRes = KshUtils::checkBeforeAnswer($app, $typeId, $activity['activity_manager_id'], $user, $answerArr, $replyArr['cmd_original']); if ($checkRes != 'success') { return $checkRes; } //答题 $answerRes = KshUtils::answer($app['id'], $typeId, $activity['activity_manager_id'], $user['id'], $answerArr); if ($answerRes != 'success') { KshUtils::addMemberMsgRecord($app['id'], $typeId, $activity['activity_manager_id'], $user['id'], $replyArr['cmd_original'], 'error_update_activity_status'); return KshNotice::replyText($app, $user, KshParams::ksh_error['error_update_activity_status']); } else { KshUtils::addMemberMsgRecord($app['id'], $typeId, $activity['activity_manager_id'], $user['id'], $replyArr['cmd_original'], 'success_answer_activity_question'); return KshNotice::replyText($app, $user, KshParams::ksh_success['success_answer_activity_question']); } break; } return false; }