From 3e3b289a1dbedd82bcb737db750d69d268ef412e Mon Sep 17 00:00:00 2001 From: wl <173@qq.com> Date: 星期四, 27 十月 2022 13:35:52 +0800 Subject: [PATCH] 解决部门bug --- ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java | 10 +++ ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java | 22 +++++-- ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java | 65 +++++++++++---------- ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java | 5 + ycl-common/src/main/java/com/ycl/service/user/UmsDepartManageService.java | 4 ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java | 4 + ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml | 32 ++++++++++ 7 files changed, 102 insertions(+), 40 deletions(-) diff --git a/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java b/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java index 4f02c6b..fc07da8 100644 --- a/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java +++ b/ycl-common/src/main/java/com/ycl/controller/depart/DepartController.java @@ -9,9 +9,7 @@ import com.ycl.api.BasePageVO; import com.ycl.api.CommonResult; import com.ycl.controller.BaseController; -import com.ycl.entity.depart.DepartManager; import com.ycl.entity.depart.UmsDepart; -import com.ycl.entity.user.UmsDepartManage; import com.ycl.service.depart.UmsDepartService; import com.ycl.service.user.UmsDepartManageService; import com.ycl.utils.auth.UserAuthUtil; @@ -126,19 +124,31 @@ @ApiOperation("鐢ㄦ埛淇敼瑙掕壊") @PutMapping(value = "/user_update_Role") public CommonResult userUpdateRole(@RequestParam Long id, - @RequestParam List<Long> roles) { + @RequestParam List<Long> roles) { umsAdminDepartService.userUpdateRoles(id, roles); return CommonResult.success("update success"); } @ApiOperation("鐢ㄦ埛淇敼閮ㄩ棬") @PutMapping(value = "/user_update_depart") - public CommonResult userUpdateDepart(@RequestParam Long id, - @RequestParam List<UmsDepartManage> departmentIds) { - umsAdminDepartService.userUpdateDepart(id, departmentIds); + public CommonResult userUpdateDepart(@RequestParam Long userId, + @RequestParam Long departId) { + umsAdminDepartService.userUpdateDepart(userId,departId); return CommonResult.success("update success"); } + @ApiOperation("鏌ヨ涓嶅湪閮ㄩ棬鐨勫墿浣欎汉鍛�") + @GetMapping("/query_surplus_user") + public CommonResult searchSurplusUser() { + return CommonResult.success(departService.selectSurplusUser()); + } + + @ApiOperation("鏌ヨ涓嶅湪閮ㄩ棬鐨勫墿浣欎汉鍛樺拰宸插湪閮ㄩ棬鐨勪汉") + @GetMapping("/query_surplus_exist_user") + public CommonResult searchSurplusUser(@RequestParam Long id) { + return CommonResult.success(departService.selectSurplusUserAndExistUser(id)); + } + @ApiOperation("鏌ヨ椤剁骇閮ㄩ棬") @GetMapping(value = "/query_father") public CommonResult search() { diff --git a/ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java b/ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java index a89249a..b327b6b 100644 --- a/ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java +++ b/ycl-common/src/main/java/com/ycl/mapper/depart/UmsDepartMapper.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.entity.depart.UmsDepart; +import com.ycl.entity.user.UmsAdmin; import com.ycl.vo.depart.UmsDepartVO; import org.apache.ibatis.annotations.Param; @@ -20,4 +21,8 @@ List<UmsDepart> selectDepartList(); List<UmsDepartVO> selectPageByName(@Param("departName") String departName, @Param("offset") Long offset, @Param("size") Long size); + + List<UmsAdmin> selectSurplusUser(); + + List<UmsAdmin> selectSurplusUserAndExistUser(@Param("id") Long id); } diff --git a/ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java b/ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java index 550c14d..90dd3aa 100644 --- a/ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java +++ b/ycl-common/src/main/java/com/ycl/service/depart/UmsDepartService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.entity.depart.UmsDepart; +import com.ycl.entity.user.UmsAdmin; import com.ycl.vo.depart.DepartVO; import com.ycl.vo.depart.UmsDepartVO; import org.springframework.web.bind.annotation.RequestParam; @@ -70,4 +71,7 @@ */ void updateStatus(DepartVO.StatusDepartVO params); + List<UmsAdmin> selectSurplusUser(); + + List<UmsAdmin> selectSurplusUserAndExistUser(Long id); } diff --git a/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java index bc40ae3..11614e3 100644 --- a/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java +++ b/ycl-common/src/main/java/com/ycl/service/depart/impl/UmsDepartServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.entity.depart.UmsDepart; +import com.ycl.entity.user.UmsAdmin; import com.ycl.enums.common.ResultCode; import com.ycl.exception.ApiException; import com.ycl.mapper.depart.UmsDepartMapper; @@ -146,6 +147,15 @@ } } + @Override + public List<UmsAdmin> selectSurplusUser() { + return sccgDepartMapper.selectSurplusUser(); + } + + @Override + public List<UmsAdmin> selectSurplusUserAndExistUser(Long id) { + return sccgDepartMapper.selectSurplusUserAndExistUser(id); + } /** * 鍒╃敤閫掑綊灏嗘渶鍚庝竴绾х┖闆嗗悎鍙樹负null锛屽墠绔仈绾ч�夋嫨鍣ㄦ渶鍚庢墠涓嶄細鍑虹幇 鏆傛棤鏁版嵁鐨刡ug diff --git a/ycl-common/src/main/java/com/ycl/service/user/UmsDepartManageService.java b/ycl-common/src/main/java/com/ycl/service/user/UmsDepartManageService.java index c7a1d6e..2c54f74 100644 --- a/ycl-common/src/main/java/com/ycl/service/user/UmsDepartManageService.java +++ b/ycl-common/src/main/java/com/ycl/service/user/UmsDepartManageService.java @@ -8,7 +8,7 @@ /** * <p> - * 鏈嶅姟绫� + * 鏈嶅姟绫� * </p> * * @author lyq @@ -26,5 +26,5 @@ void userUpdateRoles(Long id, List<Long> roles); - void userUpdateDepart(Long id, List<UmsDepartManage> roles); + void userUpdateDepart(Long userId,Long departId); } diff --git a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java index b9f8f3a..d0c2e46 100644 --- a/ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java +++ b/ycl-common/src/main/java/com/ycl/service/user/impl/UmsDepartManageServiceImpl.java @@ -15,6 +15,7 @@ import com.ycl.service.user.UmsDepartManageService; import com.ycl.vo.depart.DepartVO; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; @@ -113,40 +114,40 @@ } } //缁戝畾鑿滃崟浜庣敤鎴� - ArrayList<UmsRoleMenuRelation> umsRoleMenuRelations = new ArrayList<>(); - for (Long role : roles) { - umsRoleMenuRelations.addAll(roleMenuRelationMapper - .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>() - .eq(UmsRoleMenuRelation::getRoleId, role))); - } - umsRoleMenuRelations - .stream() - .map(item->item.getMenuId()) - .collect(Collectors.toList()) - .stream() - .distinct() - .collect(Collectors.toList()) - .stream() - .forEach(item -> { - AdminMenuRelation adminMenuRelation = new AdminMenuRelation(); - adminMenuRelation.setAdminId(id); - adminMenuRelation.setMenuId(item); - adminMenuRelationMapper.insert(adminMenuRelation); - }); + ArrayList<UmsRoleMenuRelation> umsRoleMenuRelations = new ArrayList<>(); + for (Long role : roles) { + umsRoleMenuRelations.addAll(roleMenuRelationMapper + .selectList(new LambdaQueryWrapper<UmsRoleMenuRelation>() + .eq(UmsRoleMenuRelation::getRoleId, role))); + } + umsRoleMenuRelations + .stream() + .map(item -> item.getMenuId()) + .collect(Collectors.toList()) + .stream() + .distinct() + .collect(Collectors.toList()) + .stream() + .forEach(item -> { + AdminMenuRelation adminMenuRelation = new AdminMenuRelation(); + adminMenuRelation.setAdminId(id); + adminMenuRelation.setMenuId(item); + adminMenuRelationMapper.insert(adminMenuRelation); + }); } @Override - public void userUpdateDepart(Long id, List<UmsDepartManage> departIds) { - umsDepartManageMapper.delete(new LambdaQueryWrapper<UmsDepartManage>().eq(UmsDepartManage::getUserId,id)); - departIds - .stream() - .forEach(item->{ - UmsDepartManage umsDepartManage = new UmsDepartManage(); - umsDepartManage.setDepartId(item.getDepartId()); - umsDepartManage.setUserId(id); - umsDepartManage.setIsLeader(item.getIsLeader()); - umsDepartManage.setCreateTime(new Date()); - umsDepartManageMapper.insert(umsDepartManage); - }); + @Transactional(rollbackFor = Exception.class) + public void userUpdateDepart(Long userId,Long departId) { + umsDepartManageMapper.delete(new LambdaQueryWrapper<UmsDepartManage>().eq(UmsDepartManage::getUserId,userId)); + UmsDepartManage umsDepartManage = new UmsDepartManage(); + umsDepartManage.setUserId(userId); + umsDepartManage.setCreateTime(new Date()); + umsDepartManage.setDepartId(departId); + umsDepartManageMapper.insert(umsDepartManage); + UmsAdmin umsAdmin = new UmsAdmin(); + umsAdmin.setDepartmentId(departId); + umsAdmin.setId(userId); + umsAdminService.updateById(umsAdmin); } } \ No newline at end of file diff --git a/ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml b/ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml index d600e03..e2b5f47 100644 --- a/ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml +++ b/ycl-common/src/main/resources/mapper/depart/UmsDepartMapper.xml @@ -61,5 +61,37 @@ left join ums_depart as pd on t_0.parent_id = pd.id </select> + <select id="selectSurplusUser" resultType="com.ycl.entity.user.UmsAdmin"> + SELECT + t.id, + t3.username + FROM + ( SELECT t1.id FROM ums_admin t1 UNION ALL SELECT t2.user_id FROM ums_depart_manager t2 ) t + LEFT JOIN ums_admin t3 on t3.id =t.id + GROUP BY + id + HAVING + count( * )= 1 + </select> + <select id="selectSurplusUserAndExistUser" resultType="com.ycl.entity.user.UmsAdmin" parameterType="java.lang.Long"> + SELECT + t4.id, + t4.username + FROM + ums_depart_manager t3 + LEFT JOIN ums_admin t4 ON t3.user_id = t4.id + WHERE + t3.depart_id = #{id} UNION ALL + SELECT + t.id, + t3.username + FROM + ( SELECT t1.id FROM ums_admin t1 UNION ALL SELECT t2.user_id FROM ums_depart_manager t2 ) t + LEFT JOIN ums_admin t3 ON t3.id = t.id + GROUP BY + id + HAVING + count( * )= 1 + </select> </mapper> -- Gitblit v1.8.0