<?php /** * 权限范围添加 * AbstractController.class.php * $author$ */ namespace Apicp\Controller\Integral; use Common\Model\AuthorityMainModel; use Common\Model\PluginModel; use Common\Service\AuthorityMainService; use Common\Service\AuthorityService; use Common\Service\PluginService; class AuthorityAddController extends AbstractController { public function index() { try { $authorityMainServ = new AuthorityMainService(); $haveAuthorityServ = new AuthorityService(); $pluginServ = new PluginService(); $authorityMainServ->start_trans(); $haveAuthorityServ->start_trans(); // 写入主表数据 $pluginData = $pluginServ->get_by_conds(['ap_key' => PluginModel::INTEGRAL_CENTER]); $amId = $authorityMainServ->insert([ 'ap_id' => $pluginData['ap_id'], 'visible_range' => AuthorityMainModel::VISIBLE_RANGE_ALL, 'visible_range_type' => $haveAuthorityServ->getRankFilter() ]); // 拼装写入数据 $insertData = []; $ids = []; foreach (I('post.obj_list') as $item) { $ids[] = $item['authority_id']; $insertData[] = [ 'am_id' => $amId, 'authority_id' => $item['authority_id'], 'authority_id_type' => $item['authority_id_type'], ]; } // 是否已经存在 if (!empty($ids)) { $isExist = $haveAuthorityServ->listAuthorityWithVisibleRangeType($ids, $this->getRankFilter()); if (!empty($isExist)) { E(L('_ERR_DATA_CAN_NOT_REPEAT', ['name' => '可查看权限范围'])); } } if (empty($insertData)) { E('_ERR_EMPTY_POST'); } // 写入权限对象数据 $haveAuthorityServ->insert_all($insertData); $authorityMainServ->commit(); $haveAuthorityServ->commit(); } catch (\Exception $e) { E($e->getCode() . ':' . $e->getMessage()); $authorityMainServ->rollback(); $haveAuthorityServ->rollback(); } return true; } }