2 Commits 4e78fdc52c ... 78a7167712

Auteur SHA1 Message Date
  shasha 78a7167712 Merge remote-tracking branch 'origin/master' il y a 3 semaines
  shasha 2e72f88dfe 装货配置的装货员选择过滤角色发货 il y a 3 semaines

+ 4 - 0
snowy-admin-web/src/api/sys/userApi.js

@@ -62,6 +62,10 @@ export default {
 	userSelector(data) {
 		return request('userSelector', data, 'get')
 	},
+	// 根据角色名称获取用户选择器
+	userSelectorByRole(data) {
+		return request('userSelectorByRole', data, 'get')
+	},
 	// 用户拥有角色
 	userOwnRole(data) {
 		return request('ownRole', data, 'get')

+ 2 - 1
snowy-admin-web/src/views/biz/bizloadpoint/userForm.vue

@@ -69,7 +69,8 @@
 			})
 		},
 		userPageApi: (param) => {
-			return userApi.userSelector(param).then((data) => {
+			param.roleName = '发货'
+			return userApi.userSelectorByRole(param).then((data) => {
 				return Promise.resolve(data)
 			})
 		}

+ 12 - 0
snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/controller/SysUserController.java

@@ -353,4 +353,16 @@ public class SysUserController {
     public CommonResult<Page<SysUser>> userSelector(SysUserSelectorUserParam sysUserSelectorUserParam) {
         return CommonResult.data(sysUserService.userSelector(sysUserSelectorUserParam));
     }
+
+    /**
+     * 根据角色获取用户选择器
+     *
+     * @author xuyuxiang
+     * @date 2022/4/24 20:00
+     */
+    @Operation(summary = "根据角色获取用户选择器")
+    @GetMapping("/sys/user/userSelectorByRole")
+    public CommonResult<Page<SysUser>> userSelectorByRole(SysUserSelectorUserParam sysUserSelectorUserParam) {
+        return CommonResult.data(sysUserService.userSelectorByRole(sysUserSelectorUserParam));
+    }
 }

+ 4 - 0
snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/param/SysUserSelectorUserParam.java

@@ -38,6 +38,10 @@ public class SysUserSelectorUserParam {
     @Schema(description = "组织id")
     private String orgId;
 
+    /** 角色名称 */
+    @Schema(description = "角色名称")
+    private String roleName;
+
     /** 姓名关键词 */
     @Schema(description = "姓名关键词")
     private String searchKey;

+ 8 - 0
snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/SysUserService.java

@@ -439,6 +439,14 @@ public interface SysUserService extends IService<SysUser> {
      */
     Page<SysUser> userSelector(SysUserSelectorUserParam sysUserSelectorUserParam);
 
+    /**
+     * userSelectorByRole
+     *
+     * @author xuyuxiang
+     * @date 2022/4/24 20:08
+     */
+    Page<SysUser> userSelectorByRole(SysUserSelectorUserParam sysUserSelectorUserParam);
+
     /**
      * 获取登录用户的站内信分页
      *

+ 55 - 0
snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java

@@ -1540,6 +1540,61 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         }
     }
 
+        @Override
+    public Page<SysUser> userSelectorByRole(SysUserSelectorUserParam sysUserSelectorUserParam) {
+        // 查询角色
+        LambdaQueryWrapper<SysRole> roleQW = new LambdaQueryWrapper<>();
+        roleQW.select(SysRole::getId);
+        roleQW.eq(SysRole::getName, sysUserSelectorUserParam.getRoleName());
+        List<String> sysRoleIdList = CollStreamUtil.toList(sysRoleService.list(roleQW), SysRole::getId);
+
+        LambdaQueryWrapper<SysUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        // 只查询部分字段
+        lambdaQueryWrapper.select(SysUser::getId, SysUser::getOrgId, SysUser::getPositionId, SysUser::getAccount,
+                                    SysUser::getName, SysUser::getSortCode, SysUser::getGender, SysUser::getEntryDate);
+        // 判断角色
+        if(null != sysRoleIdList && 0 < sysRoleIdList.size()){
+            QueryWrapper<SysUser> queryWrapper = new QueryWrapper<SysUser>().checkSqlInjection();
+            if (ObjectUtil.isNotEmpty(sysUserSelectorUserParam.getSearchKey())) {
+                queryWrapper.like("a.name", sysUserSelectorUserParam.getSearchKey());
+            }
+            if (ObjectUtil.isNotEmpty(sysUserSelectorUserParam.getOrgId())) {
+                // 如果组织id不为空,则查询该组织及其子组织下的所有人
+                List<String> childOrgIdList = CollStreamUtil.toList(sysOrgService.getChildListById(sysOrgService
+                        .getAllOrgList(), sysUserSelectorUserParam.getOrgId(), true), SysOrg::getId);
+                if (ObjectUtil.isNotEmpty(childOrgIdList)) {
+                    queryWrapper.in("a.org_id", childOrgIdList);
+                }
+            }
+            if (ObjectUtil.isNotEmpty(sysRoleIdList)) {
+                queryWrapper.in("sro.ID", sysRoleIdList);
+            }
+            queryWrapper.eq("a.DELETE_FLAG", "NOT_DELETE");
+            return this.baseMapper.page(CommonPageRequest.defaultPage(), queryWrapper);
+        }else{
+            // 角色不存在,默认查询全部人员
+            if(ObjectUtil.isAllEmpty(sysUserSelectorUserParam.getOrgId(), sysUserSelectorUserParam.getSearchKey())) {
+                return this.getAllUserSelectorList();
+            } else {
+                if (ObjectUtil.isNotEmpty(sysUserSelectorUserParam.getOrgId())) {
+                    // 如果组织id不为空,则查询该组织及其子组织下的所有人
+                    List<String> childOrgIdList = CollStreamUtil.toList(sysOrgService.getChildListById(sysOrgService
+                            .getAllOrgList(), sysUserSelectorUserParam.getOrgId(), true), SysOrg::getId);
+                    if (ObjectUtil.isNotEmpty(childOrgIdList)) {
+                        lambdaQueryWrapper.in(SysUser::getOrgId, childOrgIdList);
+                    } else {
+                        return new Page<>();
+                    }
+                }
+                if (ObjectUtil.isNotEmpty(sysUserSelectorUserParam.getSearchKey())) {
+                    lambdaQueryWrapper.like(SysUser::getName, sysUserSelectorUserParam.getSearchKey());
+                }
+                lambdaQueryWrapper.orderByAsc(SysUser::getSortCode);
+                return this.page(CommonPageRequest.defaultPage(), lambdaQueryWrapper);
+            }
+        }
+    }
+
     @Override
     public Page<SysUserMessageResult> loginMessagePage(SysUserMessagePageParam sysUserMessagePageParam) {
         Page<SysUserMessageResult> resultPage = new Page<>();