<?php /** *【线下培训-后台】班级成员删除 * @author: houyingcai * @email: 594609175@qq.com * @date : 2017-08-29 10:03:53 * @version $Id$ */ namespace Apicp\Controller\Team; use Common\Service\EducationService; use Common\Service\RightUsersService; use Common\Service\SignService; class DeleteController extends \Apicp\Controller\AbstractController { // 用户报名状态:未报名 const SIGN_NO = 0; // 用户报名状态:报名成功 const SIGN_SUCCESS = 1; public function Index_post() { $ru_ids = I('post.ru_ids'); $right_users_server = new RightUsersService(); $sign_server = new SignService(); // 班级人员ID不能为空 if (empty($ru_ids)) { E('_EMPTY_RU_IDS'); } $right_cond = [ 'ru_id' => $ru_ids ]; $right_users = $right_users_server->list_by_conds($right_cond); $ed_id = 0; try { // 事务开始 $right_users_server->start_trans(); // 执行删除操作 $rows = $right_users_server->delete($ru_ids); // 如果删除成功,更新培训表中的已参与人员数量 if ($rows) { $ed_id = $right_users[0]['ed_id']; $education_service = new EducationService(); // 获取培训数据 $education = $education_service->get($ed_id); $count = 0; $ed_join_count = 0; foreach ($right_users as $value) { $ed_join_count++; // 用户报名状态 $sign_up_status = $right_users_server->get_sign_up_status($education, $value); if (self::SIGN_SUCCESS == $sign_up_status) { $count++; } } // 删除签到记录 $del_uids = array_column($right_users, 'ru_uid'); if (!empty($del_uids)) { // 根据用户ID和培训ID删除签到记录 $where = [ 'ed_id' => $ed_id, 'sign_uid' => $del_uids ]; $del_count = $sign_server->count_by_conds($where); // 如果记录存在,进行删除 if ($del_count) { $sign_server->delete_by_conds($where); } } // 根据培训ID更新应参加人数 $conds = ['ed_id' => $ed_id]; // 更新应参与人数 $update_data['ed_join_count'] = $education['ed_join_count'] - $ed_join_count; $education_service->update_by_conds($conds, $update_data); // 已参与人数减去删除人数不为负数 if ($count && ($education['ed_joined_count'] - $count >= 0)) { // 待更新数据 $update_data = [ 'ed_joined_count' => $education['ed_joined_count'] - $count ]; // 更新培训已参与人数 $education_service->update($ed_id, $update_data); } } // 提交事务 $right_users_server->commit(); } catch (\Exception $e) { $right_users_server->rollback(); return false; } if ($ed_id) { // 更新首页推荐权限 $right_users_server->recommender($ed_id); } return true; } }