Browse Source

Merge remote-tracking branch 'origin/master'

李进 2 năm trước cách đây
mục cha
commit
51136294bd

+ 22 - 11
authorize-api-service/src/main/java/com/xy/service/impl/SysWorkUserServiceImpl.java

@@ -85,7 +85,7 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
         save(sysWorkUser);
         List<Long> roleIds = addDto.getRoleIds();
         if (CollUtil.isNotEmpty(roleIds)) {
-            List<SysUserRole> sysUserRoleList = roleIds.stream().map(roleId -> new SysUserRole()
+            List<SysUserRole> sysUserRoleList = roleIds.stream().map(roleId -> new SysUserRole().createId()
                     .setRoleId(roleId).setWorkUserId(sysWorkUser.getId()).setSysId(addDto.getSysId())).collect(Collectors.toList());
             //保存用户角色绑定信息
             sysUserRoleService.saveBatch(sysUserRoleList);
@@ -94,7 +94,7 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
         List<Long> deptIds = addDto.getDeptIds();
         if (CollUtil.isNotEmpty(deptIds)) {
             //关联部门
-            List<SysUserDept> sysUserDeptList = deptIds.stream().map(deptId -> new SysUserDept()
+            List<SysUserDept> sysUserDeptList = deptIds.stream().map(deptId -> new SysUserDept().createId()
                     .setDeptId(deptId).setWorkUserId(sysWorkUser.getId()).setSysId(addDto.getSysId())).collect(Collectors.toList());
             //保存用户部门 绑定信息
             sysUserDeptService.saveBatch(sysUserDeptList);
@@ -220,15 +220,21 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
     @ApiOperation("集合查询")
     public R<List<SysWorkVo>> list(ListDto listDto) {
         Long sysId = listDto.getSysId();
+        //部门分配为可选,先判断是否存在
+        List<SysUserDept> sysUserDepts = sysUserDeptService.list(Wrappers.<SysUserDept>lambdaQuery().eq(SysUserDept::getSysId, sysId).eq(SysUserDept::getWorkUserId, listDto.getId()));
+
         //条件构造
         JoinLambdaWrapper<SysWorkUser> joinLambdaWrapper = new JoinLambdaWrapper<>(SysWorkUser.class)
                 .in(SysWorkUser::getId, listDto.getId())
                 .leftJoin(SysUserRole.class, SysUserRole::getWorkUserId, SysWorkUser::getId).eq(sysId != null, SysUserRole::getSysId, sysId)
                 .manyToManySelect(SysWorkVo::getRoleIds, Long.class, cb -> cb.add(SysUserRole::getRoleId))
-                .end()
-                .leftJoin(SysUserDept.class, SysUserDept::getWorkUserId, SysWorkUser::getId).eq(sysId != null, SysUserDept::getSysId, sysId)
-                .manyToManySelect(SysWorkVo::getDeptIds, Long.class, cb -> cb.add(SysUserDept::getDeptId))
                 .end();
+        if (CollUtil.isNotEmpty(sysUserDepts)) {
+            joinLambdaWrapper.leftJoin(SysUserDept.class, SysUserDept::getWorkUserId, SysWorkUser::getId).eq(sysId != null, SysUserDept::getSysId, sysId)
+                    .manyToManySelect(SysWorkVo::getDeptIds, Long.class, cb -> cb.add(SysUserDept::getDeptId))
+                    .end();
+        }
+
         //查询数据
         List<SysWorkVo> sysWorkVos = baseMapper.joinSelectList(joinLambdaWrapper, SysWorkVo.class);
         if (sysWorkVos.size() > 0) {
@@ -244,7 +250,9 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
             //查询部门信息
             JList<List<Long>> deptIdss = new JArrayList<>(sysWorkVos).getProperty(SysWorkVo::getDeptIds);
             List<Long> deptIds = new ArrayList<>();
-            deptIdss.forEach(longs -> deptIds.addAll(longs));
+            if (CollUtil.isNotEmpty(deptIdss) && CollUtil.isNotEmpty(sysUserDepts)) {
+                deptIdss.forEach(longs -> deptIds.addAll(longs));
+            }
             JMap<Long, SysDept> sysDeptJMap = new JHashMap<>();
             if (deptIds.size() > 0) {
                 List<SysDept> sysDepts = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>().in(SysDept::getId, deptIds));
@@ -263,13 +271,16 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
                 }
                 List<Long> workVoDeptIds = sysWorkVo.getDeptIds();
                 sysWorkVo.setDeptNames(new ArrayList<>());
-                for (Long workVoDeptId : workVoDeptIds) {
-                    SysDept sysDept = sysDeptJMap.get(workVoDeptId);
-                    if (sysDept == null) {
-                        break;
+                if (CollUtil.isNotEmpty(workVoDeptIds)) {
+                    for (Long workVoDeptId : workVoDeptIds) {
+                        SysDept sysDept = sysDeptJMap.get(workVoDeptId);
+                        if (sysDept == null) {
+                            break;
+                        }
+                        sysWorkVo.getDeptNames().add(sysDept.getName());
                     }
-                    sysWorkVo.getDeptNames().add(sysDept.getName());
                 }
+
             }
         }
         sysWorkVos.forEach(sysWorkVo -> sysWorkVo.setPassword(null));

+ 4 - 0
authorize-start/src/main/resources/bootstrap.yml

@@ -47,6 +47,10 @@ cloud:
       name: authorize
   service:
     name: dev-authorize
+  feign:
+    head:
+      carr-heads:
+        - satoken
 
 sa-token:
   # token名称 (同时也是cookie名称)