package com.dk.mdm.service.mst; import com.dk.common.infrastructure.annotaiton.Pagination; import com.dk.common.model.pojo.PageList; import com.dk.common.response.ResponseResultUtil; import com.dk.common.response.ResponseResultVO; import com.dk.mdm.infrastructure.convert.mst.RoleConvert; import com.dk.mdm.model.pojo.mst.Role; import com.dk.mdm.mapper.mst.RoleMapper; import com.dk.common.service.BaseService; import com.dk.common.mapper.BaseMapper; import com.dk.mdm.model.pojo.mst.RoleFun; import com.dk.mdm.model.pojo.mst.RoleSensitive; import com.dk.mdm.model.query.mst.RoleQuery; import com.dk.mdm.model.response.mst.RoleResponse; import com.dk.mdm.model.vo.mst.RoleVo; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; @Service @Transactional public class RoleService extends BaseService { @Override public BaseMapper getRepository() { return roleMapper; } @Autowired private RoleMapper roleMapper; @Autowired private RoleFunService roleFunService; @Autowired private RoleSensitiveService roleSensitiveService; @Autowired private RoleConvert roleConvert; /** * @desc : 重写主键 * @author : 周兴 * @date : 2024/2/29 20:29 */ @Override public String getPrimaryKey() { return "role_id"; } /** * @desc : 查询角色 * @author : 于继渤 * @date : 2023/1/5 9:39 */ @Pagination public ResponseResultVO> selectByCond(RoleQuery roleQuery) { return super.mergeListWithCount(roleQuery, roleMapper.selectByCond(roleQuery), roleMapper.countByCond(roleQuery)); } /** * @desc : 新建角色 * @author : 于继渤 * @date : 2023/1/5 9:39 */ @Transactional( rollbackFor = {Exception.class} ) public ResponseResultVO saveRole(RoleVo roleVO) { Role role = roleConvert.convertToPo(roleVO); Integer displayNo = roleMapper.selectDisplayNo(new RoleQuery()); role.setDisplayNo(displayNo); roleMapper.insert(role); String setRoleCode = roleMapper.setRoleCode(role); role.setRoleCode(setRoleCode); roleMapper.updateById(role); setRoleItem(roleVO, role); return ResponseResultUtil.success(); } private void setRoleItem(RoleVo roleVO, Role role) { if(roleVO.getRoleFunList() != null && roleVO.getRoleFunList().size() > 0){ //新建角色功能权限 for (RoleFun roleFun : roleVO.getRoleFunList()) { roleFun.setRoleId(role.getRoleId()); roleFun.setCpId(role.getCpId()); } roleFunService.saveRoleFun(roleVO.getRoleFunList()); } if(roleVO.getRoleSensitiveList() != null && roleVO.getRoleSensitiveList().size() > 0){ //新建角色敏感信息权限 for (RoleSensitive roleSensitive : roleVO.getRoleSensitiveList()) { roleSensitive.setRoleId(role.getRoleId()); roleSensitive.setCpId(role.getCpId()); } roleSensitiveService.saveRoleSensitive(roleVO.getRoleSensitiveList()); } } /** * @desc : 编辑角色 * @author : 于继渤 * @date : 2023/1/5 9:39 */ @Transactional( rollbackFor = {Exception.class} ) public ResponseResultVO updateRole(RoleVo roleVO) { Role role = roleConvert.convertToPo(roleVO); roleMapper.updateById(role); if(roleVO.getRoleFunList() != null){ //删除历史功能权限 roleFunService.deleteRoleId(roleVO.getRoleId()); } if(roleVO.getRoleSensitiveList() != null){ //删除历史敏感信息权限 roleSensitiveService.deleteRoleId(roleVO.getRoleId()); } setRoleItem(roleVO, role); return ResponseResultUtil.success(); } /** * @desc : 启用停用 * @author : 于继渤 * @date : 2023/1/5 9:39 */ @Transactional( rollbackFor = {Exception.class} ) public ResponseResultVO deactivateEnable(RoleVo roleVO) { Role role = roleConvert.convertToPo(roleVO); roleMapper.updateById(role); return ResponseResultUtil.success(); } }