src/main/java/com/whyc/controller/PermitGroupController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/controller/PermitGroupUserController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/PermitGroupMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/UserMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/PermitGroupService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/PermitGroupUserService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/UserService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/UserMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/controller/PermitGroupController.java
New file @@ -0,0 +1,67 @@ package com.whyc.controller; import com.whyc.dto.Response; import com.whyc.pojo.db_user.Permitgroup; import com.whyc.service.PermitGroupService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; @RestController @RequestMapping("permitGroup") @Api(tags = "用户管理-权限管理") public class PermitGroupController { @Autowired private PermitGroupService service; @PostMapping @ApiOperation(value = "权限组添加") public Response<Boolean> add(@RequestBody List<Permitgroup> permitGroupList){ Response<Boolean> response = service.add(permitGroupList); return response; } @PostMapping("update") @ApiOperation(value = "权限组编辑") public Response<Boolean> update(@RequestBody List<Permitgroup> permitGroupList){ Response<Boolean> response = service.update(permitGroupList); return response; } @PostMapping("delete") @ApiOperation(value = "权限组删除") public Response delete(@RequestParam Integer permitGroupId){ boolean deleteFlag = service.delete(permitGroupId); if(!deleteFlag){ return new Response().set(0,false,"删除失败,默认管理员权限组不能删除"); } return new Response().set(1,true,"删除成功"); } @GetMapping("list") @ApiOperation(value = "权限组列表") public Response getList(){ List<Permitgroup> list = service.getList(); return new Response().setII(1,list.size()>0,list,"权限组列表"); } @GetMapping("info") @ApiOperation(value = "权限组-用户-权限信息查询") public Response getPermitGroupInfo(@RequestParam Integer permitGroupId){ Map resultMap = service.getPermitGroupInfo(permitGroupId); return new Response().setII(1,resultMap.size()>0,resultMap,"权限组-用户-权限信息查询"); } @GetMapping("permitList") @ApiOperation(value = "查询所有的权限名称信息") public Response<List<Permitgroup>> getPermitList(){ List<Permitgroup> list = service.getPermitList(); return new Response().setII(1,list.size()>0,list,"查询所有的权限名称信息"); } } src/main/java/com/whyc/controller/PermitGroupUserController.java
New file @@ -0,0 +1,43 @@ package com.whyc.controller; import com.whyc.dto.Response; import com.whyc.pojo.db_user.Permitgroup; import com.whyc.pojo.db_user.PermitgroupUsr; import com.whyc.service.PermitGroupUserService; import com.whyc.util.ActionUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("permitGroupUser") @Api(tags = "用户管理-权限管理-用户") public class PermitGroupUserController { @Autowired private PermitGroupUserService service; @PostMapping("userBatch") @ApiOperation(value = "添加|移除用户",notes = "operationFlag为1,添加;-1,移除") public Response updateUser(@RequestBody List<PermitgroupUsr> groupUserList, @RequestParam int operationFlag){ service.updateBatch(groupUserList, operationFlag); if (operationFlag == 1) { return new Response().set(1,true, "添加成功"); } else { return new Response().set(1,true, "移除成功"); } } @GetMapping("permitList") @ApiOperation(value = "用户对应的权限列表") public Response<List<Permitgroup>> getPermitList(){ Integer userId = ActionUtil.getUser().getId(); List<Permitgroup> permitList = service.getPermitByUser(userId); return new Response().setII(1,permitList.size()>0,permitList,"用户对应的权限列表"); } } src/main/java/com/whyc/mapper/PermitGroupMapper.java
New file @@ -0,0 +1,7 @@ package com.whyc.mapper; import com.whyc.pojo.db_user.Permitgroup; public interface PermitGroupMapper extends CustomMapper<Permitgroup> { } src/main/java/com/whyc/mapper/UserMapper.java
@@ -12,4 +12,6 @@ //当前用户所在包机组下所有的用户(下拉) List<User> getBaojiUserByUid(@Param("baojiIdList") List<Integer> baojiIdList); List<User> searchCS_All2(); } src/main/java/com/whyc/service/PermitGroupService.java
New file @@ -0,0 +1,187 @@ package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.whyc.dto.Response; import com.whyc.mapper.CommonMapper; import com.whyc.mapper.PermitGroupMapper; import com.whyc.mapper.PermitGroupUserMapper; import com.whyc.mapper.UserMapper; import com.whyc.pojo.db_user.Permitgroup; import com.whyc.pojo.db_user.PermitgroupUsr; import com.whyc.pojo.db_user.User; import com.whyc.util.ActionUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; @Service @Transactional public class PermitGroupService { @Resource private PermitGroupMapper mapper; @Resource private PermitGroupUserMapper permitGroupUserMapper; @Resource private CommonMapper commonMapper; @Resource private UserMapper userInfMapper; @Autowired private UserService userService; @Transactional public Response<Boolean> add(List<Permitgroup> permitGroupList) { //首先校验当前用户所在的权限组,是否存在权限编辑权限 permit_edit_permit // if (!checkUserPermit()) return new Response<Boolean>().set(1, false, "当前用户没有权限编辑权限组"); Response<Boolean> response = new Response(); //权限互斥,查询已存在的权限组,不允许存在权限完全一样的权限组 /* QueryWrapper<PermitGroup> wrapper = Wrappers.query(); //wrapper.select("permit_group_id","permit_item_name","permit_item_value"); wrapper.select("permit_group_id","permit_item_value").ge("permit_group_id",100); List<PermitGroup> existGroupList = mapper.selectList(wrapper); Map<Integer, List<PermitGroup>> existGroupListMap = existGroupList.stream().collect(Collectors.groupingBy(PermitGroup::getPermitGroupId)); Set<Integer> keySet = existGroupListMap.keySet(); Iterator<Integer> iterator = keySet.iterator(); while (iterator.hasNext()){ boolean diff = false; List<PermitGroup> existGroupListII = existGroupListMap.get(iterator.next()); for (int i = 0; i < existGroupListII.size(); i++) { if(!permitGroupList.get(i).getPermitItemValue().equals(existGroupListII.get(i).getPermitItemValue())){ //存在差异,进入下个组校验 diff = true; break; } } //如果每项都不存在差异 if(!diff){ return response.set(1,false,"有存在权限完全相同的权限组,无法添加"); } }*/ //权限组id生成 int maxValue = (int) commonMapper.getMaxValue("plus_user", "tb_user_permitgroup", "permit_group_id"); int newPermitGroupId = maxValue+1; permitGroupList.stream().forEach(permitGroup -> permitGroup.setPermitGroupId(newPermitGroupId)); mapper.insertBatchSomeColumn(permitGroupList); return response.set(1,true,"添加成功"); } //验证权限 private boolean checkUserPermit() { Integer uId = ActionUtil.getUser().getId(); List<String> itemList = permitGroupUserMapper.getItemList(uId); if (!itemList.contains("permit_edit_permit")){ return false; } return true; } //验证指定权限 public boolean checkUserPermitWithName(String permitName) { Integer uid = ActionUtil.getUser().getId(); List<String> itemList = permitGroupUserMapper.getItemList(uid); if (!itemList.contains(permitName)){ return false; } return true; } @Transactional public Response<Boolean> update(List<Permitgroup> permitGroupList) { //首先校验当前用户所在的权限组,是否存在权限编辑权限 permit_edit_permit //if (!checkUserPermit()) return new Response<Boolean>().set(1, false, "当前用户没有权限编辑权限组"); Response<Boolean> response = new Response<>(); //权限互斥,查询已存在的权限组,不允许存在权限完全一样的权限组(应该剔除掉数据库中的自己权限组的校验,可以不更新) /*QueryWrapper<PermitGroup> wrapper = Wrappers.query(); //wrapper.select("permit_group_id","permit_item_name","permit_item_value"); wrapper.select("permit_group_id","permit_item_value").ge("permit_group_id",100).ne("permit_group_id",permitGroupList.get(0).getPermitGroupId()); List<PermitGroup> existGroupList = mapper.selectList(wrapper); Map<Integer, List<PermitGroup>> existGroupListMap = existGroupList.stream().collect(Collectors.groupingBy(PermitGroup::getPermitGroupId)); Set<Integer> keySet = existGroupListMap.keySet(); Iterator<Integer> iterator = keySet.iterator(); while (iterator.hasNext()){ boolean diff = false; List<PermitGroup> existGroupListII = existGroupListMap.get(iterator.next()); for (int i = 0; i < existGroupListII.size(); i++) { if(!permitGroupList.get(i).getPermitItemValue().equals(existGroupListII.get(i).getPermitItemValue())){ //存在差异,进入下个组校验 diff = true; break; } } //如果每项都不存在差异 if(!diff){ return response.set(1,false,"有存在权限完全相同的权限组,无法更新"); } }*/ //先删除,后增加 UpdateWrapper<Permitgroup> updateWrapper = Wrappers.update(); updateWrapper.eq("permit_group_id",permitGroupList.get(0).getPermitGroupId()); mapper.delete(updateWrapper); mapper.insertBatchSomeColumn(permitGroupList); return response.set(1,true,"更新成功"); } @Transactional public boolean delete(Integer permitGroupId) { if(permitGroupId==100001){ return false; } //删除权限组表记录 UpdateWrapper<Permitgroup> groupWrapper = Wrappers.update(); groupWrapper.eq("permit_group_id",permitGroupId); mapper.delete(groupWrapper); //删除权限组对应的用户记录 UpdateWrapper<PermitgroupUsr> groupUserWrapper = Wrappers.update(); groupUserWrapper.eq("permit_group_id",permitGroupId); permitGroupUserMapper.delete(groupUserWrapper); return true; } public List<Permitgroup> getList() { QueryWrapper<Permitgroup> wrapper = Wrappers.query(); wrapper.select("distinct permit_group_id,permit_group_name"); return mapper.selectList(wrapper); } public Map getPermitGroupInfo(Integer permitGroupId) { Map<String,List> resultMap = new HashMap<>(); //查询权限组已添加的用户 List<User> relatedUserInfList = permitGroupUserMapper.getUserInf(permitGroupId); //查询权限组未添加的用户 //List<UserInf> allUserInfList = userInfMapper.selectList(null); //List<UserInf> notRelatedUserInfList = allUserInfList.stream().filter(userInf -> !relatedUserInfList.contains(userInf)).collect(Collectors.toList()); //查询未被添加到所有权限组的用户 List<User> notRelatedUserInfList = userService.searchCS_All2(); //查询权限组的明细权限 QueryWrapper<Permitgroup> wrapper = Wrappers.query(); wrapper.eq("permit_group_id",permitGroupId); List<Permitgroup> permitGroupList = mapper.selectList(wrapper); resultMap.put("usersAdded",relatedUserInfList); resultMap.put("usersNotAdded",notRelatedUserInfList); resultMap.put("permits",permitGroupList); return resultMap; } public List<Permitgroup> getPermitList() { QueryWrapper<Permitgroup> wrapper = Wrappers.query(); wrapper.select("distinct permit_item_name"); List<Permitgroup> permitGroups = mapper.selectList(wrapper); return permitGroups; } } src/main/java/com/whyc/service/PermitGroupUserService.java
New file @@ -0,0 +1,61 @@ package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.whyc.mapper.PermitGroupUserMapper; import com.whyc.pojo.db_user.Permitgroup; import com.whyc.pojo.db_user.PermitgroupUsr; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; @Service public class PermitGroupUserService { @Resource private PermitGroupUserMapper mapper; public List<Permitgroup> getPermitByUser(Integer userId){ if(userId<=100){ //内置用户包含所有得权限 return mapper.getAllPermitList(); }else{ return mapper.getPermitByUser(userId); } } public void update(PermitgroupUsr groupUser, int operationFlag) { if(operationFlag==1) { mapper.insert(groupUser); }else{ UpdateWrapper<PermitgroupUsr> wrapper = Wrappers.update(); wrapper.eq("permit_group_id",groupUser.getPermitGroupId()).eq("uid",groupUser.getUid()); mapper.delete(wrapper); } } public void updateBatch(List<PermitgroupUsr> groupUserList, int operationFlag) { if(operationFlag==1) { mapper.insertBatchSomeColumn(groupUserList); }else{ UpdateWrapper<PermitgroupUsr> wrapper = Wrappers.update(); wrapper.eq("permit_group_id",groupUserList.get(0).getPermitGroupId()); List<Integer> uIdList = groupUserList.stream().map(e -> e.getUid()).collect(Collectors.toList()); wrapper.in("uid",uIdList); mapper.delete(wrapper); } } public PermitgroupUsr getPermitGroup(Long uId) { QueryWrapper<PermitgroupUsr> wrapper = Wrappers.query(); wrapper.select("permit_group_id").eq("uid",uId).last(" limit 1"); return mapper.selectOne(wrapper); } public List<String> getItemList(Integer uId) { return mapper.getItemList(uId); } } src/main/java/com/whyc/service/UserService.java
@@ -195,5 +195,7 @@ return new Response().set(0,false,"新密码修改失败"); } } public List<User> searchCS_All2() { return userMapper.searchCS_All2(); } } src/main/resources/mapper/UserMapper.xml
@@ -22,4 +22,9 @@ </where> </select> <select id="searchCS_All2" resultType="com.whyc.pojo.db_user.User"> SELECT uid,uname FROM db_user.tb_user where uid not in (select distinct uid from db_user.tb_user_permitgroup_usr) and uid>100 order by uid </select> </mapper>