Ver Fonte

#MOD 业务用户角色维护

谭斌 há 2 anos atrás
pai
commit
8751db7955

+ 30 - 19
authorize-api-service/src/main/java/com/xy/service/impl/SysWorkUserServiceImpl.java

@@ -26,8 +26,8 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import static com.xy.utils.PlusBeans.toIPage;
 import static com.xy.utils.PlusBeans.toPageBean;
@@ -57,11 +57,8 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
         save(sysWorkUser);
         List<Long> roleIds = addDto.getRoleIds();
         if (CollUtil.isNotEmpty(roleIds)) {
-            List<SysUserRole> sysUserRoleList = new ArrayList<>(16);
-            roleIds.forEach(roleId -> {
-                sysUserRoleList.add(new SysUserRole()
-                        .setRoleId(roleId).setWorkUserId(sysWorkUser.getId()).setSysId(sysWorkUser.getSysId()));
-            });
+            List<SysUserRole> sysUserRoleList = roleIds.stream().map(roleId -> new SysUserRole()
+                    .setRoleId(roleId).setWorkUserId(sysWorkUser.getId()).setSysId(sysWorkUser.getSysId())).collect(Collectors.toList());
             //保存用户角色绑定信息
             sysUserRoleService.saveBatch(sysUserRoleList);
         }
@@ -69,12 +66,9 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
         List<Long> deptIds = addDto.getDeptIds();
         if (CollUtil.isNotEmpty(deptIds)) {
             //关联部门
-            List<SysUserDept> sysUserDeptList = new ArrayList<>(16);
-            deptIds.forEach(deptId -> {
-                sysUserDeptList.add(new SysUserDept()
-                        .setDeptId(deptId).setWorkUserId(sysWorkUser.getId()).setSysId(sysWorkUser.getSysId()));
-            });
-            //保存用户bumen 绑定信息
+            List<SysUserDept> sysUserDeptList = deptIds.stream().map(deptId -> new SysUserDept()
+                    .setDeptId(deptId).setWorkUserId(sysWorkUser.getId()).setSysId(sysWorkUser.getSysId())).collect(Collectors.toList());
+            //保存用户部门 绑定信息
             sysUserDeptService.saveBatch(sysUserDeptList);
         }
         return R.ok(Boolean.TRUE);
@@ -84,18 +78,35 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
     @Transactional(rollbackFor = Exception.class)
     public R<Boolean> update(UpdateDto updateDto) {
         SysWorkUser sysWorkUser = Beans.copy(SysWorkUser.class, updateDto).update(Long.parseLong(SaTokenUtils.getId().toString()));
+        List<Long> roleIds = updateDto.getRoleIds();
+        if (CollUtil.isNotEmpty(roleIds)) {
+            List<SysUserRole> surList = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery()
+                    .eq(SysUserRole::getWorkUserId, sysWorkUser.getId())
+                    .eq(SysUserRole::getSysId, sysWorkUser.getSysId()));
+
+            if (CollUtil.isNotEmpty(surList)) {
+                removeBatchByIds(surList);
+                List<SysUserRole> sysUserRoleList = roleIds.stream().map(roleId -> new SysUserRole()
+                        .setRoleId(roleId).setWorkUserId(sysWorkUser.getId()).setSysId(sysWorkUser.getSysId())).collect(Collectors.toList());
+                //保存用户角色绑定信息
+                sysUserRoleService.saveBatch(sysUserRoleList);
+            }
+
+        }
+
         //更新用户信息
         updateById(sysWorkUser);
-        String deptIds = updateDto.getDeptIds();
-        if (StrUtil.isNotBlank(deptIds)) {
-            SysUserDept sysUserDept = sysUserDeptService.getOne(Wrappers.<SysUserDept>lambdaQuery()
+        List<Long> deptIds = updateDto.getDeptIds();
+        if (CollUtil.isNotEmpty(deptIds)) {
+            List<SysUserDept> sysUserDeptList = sysUserDeptService.list(Wrappers.<SysUserDept>lambdaQuery()
                     .eq(SysUserDept::getWorkUserId, sysWorkUser.getId())
                     .eq(SysUserDept::getSysId, sysWorkUser.getSysId()));
-            if (sysUserDept == null) {
-
+            if (CollUtil.isNotEmpty(sysUserDeptList)) {
+                removeBatchByIds(sysUserDeptList);
+                List<SysUserDept> newSysUserDeptList = deptIds.stream().map(deptId -> new SysUserDept()
+                        .setDeptId(deptId).setWorkUserId(sysWorkUser.getId()).setSysId(sysWorkUser.getSysId())).collect(Collectors.toList());
+                sysUserDeptService.saveBatch(newSysUserDeptList);
             }
-            //关联部门
-            sysUserDeptService.saveOrUpdate(sysUserDept);
         }
         return R.ok(Boolean.TRUE);
     }

+ 5 - 4
authorize-api/src/main/java/com/xy/dto/SysWorkUser/UpdateDto.java

@@ -7,6 +7,7 @@ import lombok.experimental.Accessors;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
+import java.util.List;
 
 @Data
 @ApiModel("业务用户更新请求")
@@ -36,11 +37,11 @@ public class UpdateDto {
     @ApiModelProperty(value = "状态", required = false)
     private Boolean status;
 
-    @ApiModelProperty(value = "角色(多个(,)逗号隔开)", required = true)
-    private String roleIds;
+    @ApiModelProperty(value = "角色ID(数组)", required = true)
+    private List<Long> roleIds;
 
-    @ApiModelProperty(value = "部门ID(多个(,)逗号隔开)", required = false)
-    private String deptIds;
+    @ApiModelProperty(value = "部门ID(数组)", required = false)
+    private List<Long> deptIds;
 
 
 }