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() { 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); } 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); } 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,前端联级选择器最后才不会出现 暂无数据的bug 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); } 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); } } 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>