Przeglądaj źródła

重置指定人员的指定角色

chenshudong 4 miesięcy temu
rodzic
commit
6d11885e96

+ 11 - 0
airport-admin/src/main/java/com/sundot/airport/web/controller/system/SysUserController.java

@@ -17,6 +17,7 @@ import com.sundot.airport.attendance.domain.portrait.WorkHoursStats;
17
 import com.sundot.airport.check.domain.CheckLargeScreenCommonDto;
17
 import com.sundot.airport.check.domain.CheckLargeScreenCommonDto;
18
 import com.sundot.airport.check.domain.CheckLargeScreenCorrectionDto;
18
 import com.sundot.airport.check.domain.CheckLargeScreenCorrectionDto;
19
 import com.sundot.airport.check.domain.CheckLargeScreenCorrectionQueryParamDto;
19
 import com.sundot.airport.check.domain.CheckLargeScreenCorrectionQueryParamDto;
20
+import com.sundot.airport.common.core.domain.ResetUserRoleDto;
20
 import com.sundot.airport.common.core.domain.SysLargeScreenWorkingPortraitDto;
21
 import com.sundot.airport.common.core.domain.SysLargeScreenWorkingPortraitDto;
21
 import com.sundot.airport.common.enums.RoleTypeEnum;
22
 import com.sundot.airport.common.enums.RoleTypeEnum;
22
 import com.sundot.airport.exam.domain.DailyTask;
23
 import com.sundot.airport.exam.domain.DailyTask;
@@ -527,6 +528,16 @@ public class SysUserController extends BaseController {
527
     }
528
     }
528
 
529
 
529
     /**
530
     /**
531
+     * 重置指定人员的指定角色
532
+     */
533
+    @PreAuthorize("@ss.hasPermi('system:user:edit')")
534
+    @Log(title = "重置指定人员的指定角色", businessType = BusinessType.UPDATE)
535
+    @PostMapping("/resetUserRole")
536
+    public AjaxResult resetUserRole(@RequestBody ResetUserRoleDto resetUserRoleDto) {
537
+        return toAjax(userService.resetUserRole(resetUserRoleDto));
538
+    }
539
+
540
+    /**
530
      * 根据用户ID获取岗位选择框列表
541
      * 根据用户ID获取岗位选择框列表
531
      */
542
      */
532
     @PreAuthorize("@ss.hasPermi('system:user:query')")
543
     @PreAuthorize("@ss.hasPermi('system:user:query')")

+ 29 - 0
airport-common/src/main/java/com/sundot/airport/common/core/domain/ResetUserRoleDto.java

@@ -0,0 +1,29 @@
1
+package com.sundot.airport.common.core.domain;
2
+
3
+import lombok.Data;
4
+
5
+import java.io.Serializable;
6
+import java.util.List;
7
+
8
+/**
9
+ * 重置指定人员的指定角色Dto
10
+ *
11
+ * @author sundot
12
+ * @date 2020/12/01
13
+ */
14
+@Data
15
+public class ResetUserRoleDto implements Serializable {
16
+
17
+    private static final long serialVersionUID = 1L;
18
+
19
+    /**
20
+     * 用户账号列表
21
+     */
22
+    private List<String> userNameList;
23
+
24
+    /**
25
+     * 角色key列表
26
+     */
27
+    private List<String> roleKeyList;
28
+
29
+}

+ 10 - 2
airport-system/src/main/java/com/sundot/airport/system/service/ISysUserService.java

@@ -3,6 +3,7 @@ package com.sundot.airport.system.service;
3
 import java.util.List;
3
 import java.util.List;
4
 
4
 
5
 import com.sundot.airport.common.core.domain.BaseLargeScreenQueryParamDto;
5
 import com.sundot.airport.common.core.domain.BaseLargeScreenQueryParamDto;
6
+import com.sundot.airport.common.core.domain.ResetUserRoleDto;
6
 import com.sundot.airport.common.core.domain.entity.SysUser;
7
 import com.sundot.airport.common.core.domain.entity.SysUser;
7
 import com.sundot.airport.system.domain.SysLargeScreenCooperationDto;
8
 import com.sundot.airport.system.domain.SysLargeScreenCooperationDto;
8
 import com.sundot.airport.system.domain.SysLargeScreenCooperationQueryParamDto;
9
 import com.sundot.airport.system.domain.SysLargeScreenCooperationQueryParamDto;
@@ -224,18 +225,25 @@ public interface ISysUserService {
224
     public int resetUserPost();
225
     public int resetUserPost();
225
 
226
 
226
     /**
227
     /**
228
+     * 重置指定人员的指定角色
229
+     *
230
+     * @return 结果
231
+     */
232
+    public int resetUserRole(ResetUserRoleDto resetUserRoleDto);
233
+
234
+    /**
227
      * 根据角色标识查询用户列表
235
      * 根据角色标识查询用户列表
228
      *
236
      *
229
      * @param roleKeyList 角色标识
237
      * @param roleKeyList 角色标识
230
      * @return 用户列表
238
      * @return 用户列表
231
      */
239
      */
232
     public List<SysUser> selectUserListByRoleKey(List<String> roleKeyList);
240
     public List<SysUser> selectUserListByRoleKey(List<String> roleKeyList);
233
-    
241
+
234
     /**
242
     /**
235
      * 根据角色标识和站点ID查询用户列表
243
      * 根据角色标识和站点ID查询用户列表
236
      *
244
      *
237
      * @param roleKeyList 角色标识
245
      * @param roleKeyList 角色标识
238
-     * @param stationId 站点ID
246
+     * @param stationId   站点ID
239
      * @return 用户列表
247
      * @return 用户列表
240
      */
248
      */
241
     public List<SysUser> selectUserListByRoleKeyAndDeptId(List<String> roleKeyList, Long stationId);
249
     public List<SysUser> selectUserListByRoleKeyAndDeptId(List<String> roleKeyList, Long stationId);

+ 31 - 0
airport-system/src/main/java/com/sundot/airport/system/service/impl/SysUserServiceImpl.java

@@ -18,6 +18,7 @@ import cn.hutool.core.collection.CollectionUtil;
18
 import cn.hutool.core.util.ObjUtil;
18
 import cn.hutool.core.util.ObjUtil;
19
 import cn.hutool.core.util.StrUtil;
19
 import cn.hutool.core.util.StrUtil;
20
 import com.sundot.airport.common.core.domain.BaseLargeScreenQueryParamDto;
20
 import com.sundot.airport.common.core.domain.BaseLargeScreenQueryParamDto;
21
+import com.sundot.airport.common.core.domain.ResetUserRoleDto;
21
 import com.sundot.airport.common.core.domain.entity.SysDept;
22
 import com.sundot.airport.common.core.domain.entity.SysDept;
22
 import com.sundot.airport.common.core.domain.entity.SysDictData;
23
 import com.sundot.airport.common.core.domain.entity.SysDictData;
23
 import com.sundot.airport.common.dto.UserInfo;
24
 import com.sundot.airport.common.dto.UserInfo;
@@ -603,6 +604,36 @@ public class SysUserServiceImpl implements ISysUserService {
603
     }
604
     }
604
 
605
 
605
     /**
606
     /**
607
+     * 重置指定人员的指定角色
608
+     *
609
+     * @return 结果
610
+     */
611
+    @Transactional(rollbackFor = Exception.class)
612
+    @Override
613
+    public int resetUserRole(ResetUserRoleDto resetUserRoleDto) {
614
+        List<SysUserRole> list = new ArrayList<>();
615
+        List<SysRole> sysRoleList = roleMapper.selectRoleList(new SysRole());
616
+        List<Long> roleIdList = sysRoleList.stream().filter(sysRole -> resetUserRoleDto.getRoleKeyList().contains(sysRole.getRoleKey())).map(SysRole::getRoleId).distinct().collect(Collectors.toList());
617
+        resetUserRoleDto.getUserNameList().forEach(x -> {
618
+            SysUser sysUser = userMapper.selectUserByUserName(x);
619
+            if (sysUser == null) {
620
+                throw new ServiceException("根据【" + x + "】未查询到用户信息");
621
+            }
622
+            userRoleMapper.deleteUserRoleByUserId(sysUser.getUserId());
623
+            roleIdList.forEach(y -> {
624
+                SysUserRole sysUserRole = new SysUserRole();
625
+                sysUserRole.setUserId(sysUser.getUserId());
626
+                sysUserRole.setRoleId(y);
627
+                list.add(sysUserRole);
628
+            });
629
+        });
630
+        if (CollUtil.isNotEmpty(list)) {
631
+            userRoleMapper.batchUserRole(list);
632
+        }
633
+        return 1;
634
+    }
635
+
636
+    /**
606
      * 根据角色标识查询用户列表
637
      * 根据角色标识查询用户列表
607
      *
638
      *
608
      * @param roleKeyList 角色标识
639
      * @param roleKeyList 角色标识