<?php /** *【线下培训-后台】报名审核 * * @author: houyingcai * @email: 594609175@qq.com * @date : 2017-08-29 10:07:24 */ namespace Apicp\Controller\Team; use Common\Service\EducationService; use Common\Service\RightUsersService; class AuditController extends \Apicp\Controller\AbstractController { public function Index_post() { $params = I('post.'); $ed_id = intval($params['ed_id']); if (!$ed_id) { E('_EMPTY_ED_ID'); } // 获取培训数据 $education_server = new EducationService(); $education = $education_server->get($ed_id); if (empty($education)) { E('_ERR_EDUCATION_NOT_EXIST'); } $ru_ids = $params['ru_ids']; // 人员参数不能为空 if (empty($ru_ids)) { E('_EMPTY_RU_IDS'); } // 人员参数无效 if (!is_array($ru_ids)) { E('_ERR_RU_IDS_INVALID'); } $ru_check_status = intval($params['ru_check_status']); // 审核参数不能为空 if (empty($ru_check_status)) { E('_EMPTY_RU_CHECK_STATUS'); } // 审核参数无效 if (!in_array($ru_check_status, [RightUsersService::SIGN_CHECK_PASS, RightUsersService::SIGN_CHECK_UN_PASS])) { E('_ERR_RU_CHECK_STATUS_INVALID'); } $right_users_service = new RightUsersService(); // 开启审核 if ($education['ed_is_sign_up'] == EducationService::EDUCATION_SIGN_OPEN && $education['ed_is_check'] == EducationService::EDUCATION_CHECK && RightUsersService::SIGN_CHECK_PASS == $params['ru_check_status']) { $where = [ 'ru_check_status' => RightUsersService::SIGN_CHECK_PASS, 'ed_id' => $ed_id ]; $count = $right_users_service->count_by_conds($where); $count_ru_ids = count($params['ru_ids']) + $count; if ($education['ed_sign_up_number'] > 0 && $count_ru_ids > $education['ed_sign_up_number']) { // 报名人数超过限额 E('_ERR_EDU_USER_COUNT'); } } // 审核内容 $params['ru_comments'] = raddslashes($params['ru_comments']); unset($params['ed_id'], $params['ru_ids']); $conds['ru_id'] = $ru_ids; // 查询已经审核过的人员 $e_joined_count = $right_users_service->count_by_conds([ 'ru_id' => $ru_ids, 'ru_check_status' => RightUsersService::SIGN_CHECK_PASS ]); try { $right_users_service->start_trans(); // 更新要进行审核的人员 $res = $right_users_service->update_by_conds($conds, $params); if ($res) { // 通过 if (RightUsersService::SIGN_CHECK_PASS == $params['ru_check_status']) { // 更新培训已参与人数(增) 减掉之前通过的 $education_server->update( $ed_id, ['ed_joined_count' => $education['ed_joined_count'] + count($ru_ids) - $e_joined_count] ); } elseif (RightUsersService::SIGN_CHECK_UN_PASS == $params['ru_check_status']) { // 更新培训已参与人数(减) 前去之前通过的 $education_server->update( $ed_id, ['ed_joined_count' => $education['ed_joined_count'] - $e_joined_count] ); } } $right_users_service->commit(); } catch (\Exception $e) { $right_users_service->rollback(); return false; } // 组装消息通知参数数组 $check_status = ''; if (RightUsersService::SIGN_CHECK_PASS == $ru_check_status) { $check_status = '已通过'; } elseif (RightUsersService::SIGN_CHECK_UN_PASS == $ru_check_status) { $check_status = '未通过'; } $right_users = $right_users_service->list_by_conds($conds); $ru_uids = array_column($right_users, 'ru_uid'); $msg_params = [ 'ed_id' => $ed_id, 'name' => $education['ed_name'], 'content' => $params['ru_comments'], 'uids' => $ru_uids, 'check_status' => $check_status ]; // 发送提醒消息 $right_users_service->send_msg($msg_params, EducationService::MSG_CHECK_STATUS); } }