diff --git a/hcframe-parent/hcframe-user/src/main/java/com/hcframe/user/module/auth/controller/RoleDeptController.java b/hcframe-parent/hcframe-user/src/main/java/com/hcframe/user/module/auth/controller/RoleDeptController.java new file mode 100644 index 0000000..f15aec6 --- /dev/null +++ b/hcframe-parent/hcframe-user/src/main/java/com/hcframe/user/module/auth/controller/RoleDeptController.java @@ -0,0 +1,51 @@ +package com.hcframe.user.module.auth.controller; + +import com.hcframe.base.common.ResultVO; +import com.hcframe.user.module.auth.service.RoleDeptService; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * + * @author Li Xinlei + * @version 1.0 + * @className RoleDeptController + * @date 2021-4-20 17:15:09 + * @description 描述 + */ + + +@RestController +@RequestMapping("/roleDept") +@Api(tags="机构授权") +public class RoleDeptController { + + final RoleDeptService roleDeptService; + + public RoleDeptController(RoleDeptService roleDeptService) { + this.roleDeptService = roleDeptService; + } + + @PostMapping("role") + public ResultVO roleDeptBind(String deptId, String roleIds) { + return roleDeptService.roleDeptBind(deptId,roleIds); + } + + @GetMapping("role") + public ResultVO getDeptRole(String deptId) { + return roleDeptService.getDeptRole(deptId); + } + + @PostMapping("roleGroup") + public ResultVO roleGroupBind(String deptId, String groupIds) { + return roleDeptService.roleGroupBind(deptId,groupIds); + } + + @GetMapping("roleGroup") + public ResultVO getDeptGroup(String deptId) { + return roleDeptService.getDeptGroup(deptId); + } +} diff --git a/hcframe-parent/hcframe-user/src/main/java/com/hcframe/user/module/auth/service/RoleDeptService.java b/hcframe-parent/hcframe-user/src/main/java/com/hcframe/user/module/auth/service/RoleDeptService.java new file mode 100644 index 0000000..44b62fe --- /dev/null +++ b/hcframe-parent/hcframe-user/src/main/java/com/hcframe/user/module/auth/service/RoleDeptService.java @@ -0,0 +1,22 @@ +package com.hcframe.user.module.auth.service; + +import com.hcframe.base.common.ResultVO; + +/** + * + * @author Li Xinlei + * @version 1.0 + * @className RoleDeptService + * @date 2021-4-20 17:16:50 + * @description 描述 + */ + +public interface RoleDeptService { + ResultVO roleDeptBind(String deptId, String roleIds); + + ResultVO roleGroupBind(String deptId, String groupIds); + + ResultVO getDeptRole(String deptId); + + ResultVO getDeptGroup(String deptId); +} diff --git a/hcframe-parent/hcframe-user/src/main/java/com/hcframe/user/module/auth/service/impl/RoleDeptServiceImpl.java b/hcframe-parent/hcframe-user/src/main/java/com/hcframe/user/module/auth/service/impl/RoleDeptServiceImpl.java new file mode 100644 index 0000000..819be82 --- /dev/null +++ b/hcframe-parent/hcframe-user/src/main/java/com/hcframe/user/module/auth/service/impl/RoleDeptServiceImpl.java @@ -0,0 +1,97 @@ +package com.hcframe.user.module.auth.service.impl; + +import com.hcframe.base.common.ResultVO; +import com.hcframe.base.common.utils.JudgeException; +import com.hcframe.base.module.data.module.BaseMapper; +import com.hcframe.base.module.data.module.BaseMapperImpl; +import com.hcframe.base.module.data.module.Condition; +import com.hcframe.base.module.data.service.TableService; +import com.hcframe.base.module.tableconfig.entity.OsSysTable; +import com.hcframe.user.module.auth.service.RoleDeptService; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * + * @author Li Xinlei + * @version 1.0 + * @className RoleDeptServiceImpl + * @date 2021-4-20 17:24:17 + * @description 描述 + */ +@Service +public class RoleDeptServiceImpl implements RoleDeptService { + + private static final String OS_REL_DEPT_ROLE = "OS_REL_DEPT_ROLE"; + private static final String DEPT_GROUP_ID = "DEPT_GROUP_ID"; + private static final String DEPT_ROLE_ID = "DEPT_ROLE_ID"; + private static final String OS_REL_DEPT_GROUP = "OS_REL_DEPT_GROUP"; + private static final String COMMA = ","; + + final BaseMapper baseMapper; + + final TableService tableService; + + public RoleDeptServiceImpl(@Qualifier(BaseMapperImpl.BASE) BaseMapper baseMapper, + TableService tableService) { + this.baseMapper = baseMapper; + this.tableService = tableService; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ResultVO roleDeptBind(String deptId, String roleIds) { + JudgeException.isNull(deptId,"deptId 不能为空"); + OsSysTable osSysTable = OsSysTable.builder().tableName(OS_REL_DEPT_ROLE).tablePk(DEPT_ROLE_ID).build(); + Condition condition = Condition.creatCriteria().andEqual("DEPT_ID",deptId).build(); + baseMapper.deleteByCondition(OS_REL_DEPT_ROLE, condition); + if (!StringUtils.isEmpty(roleIds)) { + for (String roleId : roleIds.split(COMMA)) { + Map map = new HashMap<>(2); + map.put("DEPT_ID", deptId.replaceAll("\"","")); + map.put("ROLE_ID", Integer.parseInt(roleId)); + tableService.save(osSysTable, map); + } + } + return ResultVO.getSuccess(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ResultVO roleGroupBind(String deptId, String groupIds) { + JudgeException.isNull(deptId,"deptId 不能为空"); + Condition condition = Condition.creatCriteria().andEqual("DEPT_ID",deptId).build(); + baseMapper.deleteByCondition(OS_REL_DEPT_GROUP, condition); + OsSysTable osSysTable = OsSysTable.builder().tableName(OS_REL_DEPT_GROUP).tablePk(DEPT_GROUP_ID).build(); + if (!StringUtils.isEmpty(groupIds)) { + for (String groupId : groupIds.split(COMMA)) { + Map map = new HashMap<>(2); + map.put("DEPT_ID", deptId.replaceAll("\"","")); + map.put("GROUP_ID", groupId); + tableService.save(osSysTable, map); + } + } + return ResultVO.getSuccess(); + } + + @Override + public ResultVO getDeptRole(String deptId) { + Condition condition = Condition.creatCriteria().andEqual("DEPT_ID",deptId).build(); + List> list = baseMapper.selectByCondition(OS_REL_DEPT_ROLE, condition); + return ResultVO.getSuccess(list); + } + + @Override + public ResultVO getDeptGroup(String deptId) { + Condition condition = Condition.creatCriteria().andEqual("DEPT_ID",deptId).build(); + List> list = baseMapper.selectByCondition(OS_REL_DEPT_GROUP, condition); + return ResultVO.getSuccess(list); + } + +}