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