<?php /** * Created by IntelliJ IDEA. * 保存计算等级规则设置 * Date: 17/5/24 * Time: 下午2:19 */ namespace Apicp\Controller\Level; use Com\PackageValidate; use Common\Common\Integral; use VcySDK\Exception; class SaveController extends AbstractController { public function Index_post() { // 获取并验证提交数据 $validate = new PackageValidate([ 'eilType' => 'requireWithNone:eilId', 'eilObjId' => 'requireWithNone:eilId', ], [ 'eilType.requireWithNone' => L('_ERR_PARAM_CAN_NOT_BE_EMPTY', ['name' => '积分等级计算类型']), 'eilObjId.requireWithNone' => L('_ERR_PARAM_CAN_NOT_BE_EMPTY', ['name' => '岗位或角色ID']), ], [ 'eilId', 'eilType', 'eilObjId', 'eilLevelSetting' ]); $integralUtil = new Integral(); // 获取默认计算等级数据 if (empty($validate->postData['eilLevelSetting'])) { $defaultLevel = $integralUtil->getDefaultLevel(); $validate->postData['eilLevelSetting'] = $defaultLevel['levels']; } // 验证等级规则合法性 $this->verificationLevel($validate->postData['eilLevelSetting']); // 保存 settype($validate->postData['eilObjId'], 'array'); foreach ($validate->postData['eilObjId'] as $eilObjId) { $this->levelSave( $integralUtil, $validate->postData['eilId'], $validate->postData['eilType'], $eilObjId, $validate->postData['eilLevelSetting']); } return true; } /** * 保存积分等级规则 * @param $integralUtil * @param $eilId * @param $eilType * @param $eilObjId * @param $eilLevelSetting */ private function levelSave($integralUtil, $eilId, $eilType, $eilObjId, $eilLevelSetting) { try { $integralUtil->levelSave($eilId, $eilType, $eilObjId, $eilLevelSetting); } catch (Exception $e) { // 当抛错不是 已经有重复等级规则 时才抛错 if (!in_array($e->getSdkCode(), ['EXIST_ROLE_LEVEL', 'EXIST_JOB_LEVEL'])) { E($e->getMessage()); } } } }