Commit d5652b950efc6a83f58a515ee89760539fde2e9a

Authored by 芋道源码
Committed by Gitee
2 parents 2c4d8298 3e537243

!1098 【新增功能】添加扫描枪、门店店员绑定功能

Merge pull request !1098 from 痴货/jh-smq
Showing 14 changed files with 181 additions and 83 deletions
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/ErrorCodeConstants.java
... ... @@ -80,6 +80,7 @@ public interface ErrorCodeConstants {
80 80  
81 81 // ========== 物流 PICK_UP 模块 1-011-006-000 ==========
82 82 ErrorCode PICK_UP_STORE_NOT_EXISTS = new ErrorCode(1_011_006_000, "自提门店不存在");
  83 + ErrorCode PICK_UP_STORE_STAFF_NOT_EXISTS = new ErrorCode(1_011_006_000, "自提门店店员不存在");
83 84  
84 85 // ========== 分销用户 模块 1-011-007-000 ==========
85 86 ErrorCode BROKERAGE_USER_NOT_EXISTS = new ErrorCode(1_011_007_000, "分销用户不存在");
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryPickUpStoreController.java
... ... @@ -16,10 +16,13 @@ import org.springframework.web.bind.annotation.*;
16 16  
17 17 import jakarta.annotation.Resource;
18 18 import jakarta.validation.Valid;
  19 +
  20 +import java.util.ArrayList;
19 21 import java.util.Collection;
20 22 import java.util.List;
21 23  
22 24 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  25 +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
23 26  
24 27 @Tag(name = "管理后台 - 自提门店")
25 28 @RestController
... ... @@ -66,9 +69,16 @@ public class DeliveryPickUpStoreController {
66 69 @GetMapping("/list-all-simple")
67 70 @Operation(summary = "获得自提门店精简信息列表")
68 71 public CommonResult<List<DeliveryPickUpStoreSimpleRespVO>> getSimpleDeliveryPickUpStoreList() {
69   - List<DeliveryPickUpStoreDO> list = deliveryPickUpStoreService.getDeliveryPickUpStoreListByStatus(
70   - CommonStatusEnum.ENABLE.getStatus());
71   - return success(DeliveryPickUpStoreConvert.INSTANCE.convertList1(list));
  72 + List<DeliveryPickUpStoreDO> storeStaffDOS = deliveryPickUpStoreService.selectStaffByUserId(getLoginUserId());
  73 + List<Long> storeIds = storeStaffDOS.stream().map(DeliveryPickUpStoreDO::getId).toList();
  74 + if(!storeIds.isEmpty()){
  75 + List<DeliveryPickUpStoreDO> list = deliveryPickUpStoreService.getDeliveryPickUpStoreListByStatus(
  76 + CommonStatusEnum.ENABLE.getStatus(), storeIds);
  77 + return success(DeliveryPickUpStoreConvert.INSTANCE.convertList1(list));
  78 + }else{
  79 + return success(new ArrayList<>());
  80 + }
  81 +
72 82 }
73 83  
74 84 @GetMapping("/list")
... ... @@ -88,4 +98,21 @@ public class DeliveryPickUpStoreController {
88 98 return success(DeliveryPickUpStoreConvert.INSTANCE.convertPage(pageResult));
89 99 }
90 100  
  101 + @PostMapping("/bind")
  102 + @Operation(summary = "绑定自提店员")
  103 + @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:create')")
  104 + public CommonResult<Boolean> bindDeliveryPickUpBindStoreStaffId(@Valid @RequestBody DeliveryPickUpBindStoreStaffIdReqVO bindStoreStaffIdVO) {
  105 + deliveryPickUpStoreService.bindDeliveryPickUpBindStoreStaffId(bindStoreStaffIdVO);
  106 + return success(true);
  107 + }
  108 +
  109 + @GetMapping("/get-store-staff")
  110 + @Operation(summary = "查询门店绑定情况")
  111 + @Parameter(name = "id", description = "编号", required = true, example = "1024")
  112 + @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:query')")
  113 + public CommonResult<DeliveryPickUpBindStoreStaffIdReqsVO> getDeliveryPickUpStoreStaff(@RequestParam("id") Long id) {
  114 + return success(deliveryPickUpStoreService.getDeliveryPickUpStoreStaff(id));
  115 + }
  116 +
  117 +
91 118 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpBindStoreStaffIdReqVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import jakarta.validation.constraints.NotNull;
  5 +import lombok.Data;
  6 +import lombok.EqualsAndHashCode;
  7 +import lombok.ToString;
  8 +
  9 +import java.util.List;
  10 +
  11 +@Schema(description = "管理后台 - 自提门店创建 Request VO")
  12 +@Data
  13 +@ToString(callSuper = true)
  14 +public class DeliveryPickUpBindStoreStaffIdReqVO {
  15 +
  16 + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23128")
  17 + @NotNull(message = "编号不能为空")
  18 + private Long id;
  19 +
  20 + @Schema(description = "绑定用户编号组数", requiredMode = Schema.RequiredMode.REQUIRED, example = "23128")
  21 + @NotNull(message = "绑定用户编号组数不能未空")
  22 + private List<Long> storeStaffIds;
  23 +
  24 +}
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpBindStoreStaffIdReqsVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup;
  2 +
  3 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
  4 +import io.swagger.v3.oas.annotations.media.Schema;
  5 +import jakarta.validation.constraints.NotNull;
  6 +import lombok.Builder;
  7 +import lombok.Data;
  8 +import lombok.ToString;
  9 +
  10 +import java.util.List;
  11 +
  12 +@Schema(description = "管理后台 - 自提门店创建 Request VO")
  13 +@Data
  14 +@ToString(callSuper = true)
  15 +@Builder
  16 +public class DeliveryPickUpBindStoreStaffIdReqsVO {
  17 +
  18 + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23128")
  19 + private Long id;
  20 +
  21 + @Schema(description = "门店名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "23128")
  22 + private String name;
  23 +
  24 + @Schema(description = "绑定用户信息组数", requiredMode = Schema.RequiredMode.REQUIRED, example = "23128")
  25 + private List<AdminUserRespDTO> storeStaffs;
  26 +
  27 +}
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/delivery/AppDeliverPickUpStoreController.java
... ... @@ -40,7 +40,7 @@ public class AppDeliverPickUpStoreController {
40 40 @RequestParam(value = "latitude", required = false) Double latitude,
41 41 @RequestParam(value = "longitude", required = false) Double longitude) {
42 42 List<DeliveryPickUpStoreDO> list = deliveryPickUpStoreService.getDeliveryPickUpStoreListByStatus(
43   - CommonStatusEnum.ENABLE.getStatus());
  43 + CommonStatusEnum.ENABLE.getStatus(), null);
44 44 return success(DeliveryPickUpStoreConvert.INSTANCE.convertList(list, latitude, longitude));
45 45 }
46 46  
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/delivery/DeliveryPickUpStoreDO.java
... ... @@ -2,19 +2,23 @@ package cn.iocoder.yudao.module.trade.dal.dataobject.delivery;
2 2  
3 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  5 +import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler;
5 6 import com.baomidou.mybatisplus.annotation.KeySequence;
  7 +import com.baomidou.mybatisplus.annotation.TableField;
6 8 import com.baomidou.mybatisplus.annotation.TableId;
7 9 import com.baomidou.mybatisplus.annotation.TableName;
  10 +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
8 11 import lombok.Data;
9 12  
10 13 import java.time.LocalTime;
  14 +import java.util.List;
11 15  
12 16 /**
13 17 * 自提门店 DO
14 18 *
15 19 * @author jason
16 20 */
17   -@TableName(value ="trade_delivery_pick_up_store")
  21 +@TableName(value ="trade_delivery_pick_up_store", autoResultMap = true)
18 22 @KeySequence("trade_delivery_pick_up_store_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
19 23 @Data
20 24 public class DeliveryPickUpStoreDO extends BaseDO {
... ... @@ -73,6 +77,11 @@ public class DeliveryPickUpStoreDO extends BaseDO {
73 77 * 经度
74 78 */
75 79 private Double longitude;
  80 + /**
  81 + * 店员id列表
  82 + */
  83 + @TableField(typeHandler = LongListTypeHandler.class)
  84 + private List<Long> staffIds;
76 85  
77 86 /**
78 87 * 门店状态
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/delivery/DeliveryPickUpStoreStaffDO.java deleted
1   -package cn.iocoder.yudao.module.trade.dal.dataobject.delivery;
2   -
3   -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4   -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5   -import com.baomidou.mybatisplus.annotation.KeySequence;
6   -import com.baomidou.mybatisplus.annotation.TableId;
7   -import com.baomidou.mybatisplus.annotation.TableName;
8   -import lombok.Data;
9   -
10   -// TODO @芋艿:后续再详细 review 一轮
11   -// TODO @芋艿:可能改成 DeliveryPickUpStoreUserDO
12   -/**
13   - * 自提门店店员 DO
14   - *
15   - * @author jason
16   - */
17   -@TableName(value ="trade_delivery_pick_up_store_staff")
18   -@KeySequence("trade_delivery_pick_up_store_staff_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
19   -@Data
20   -public class DeliveryPickUpStoreStaffDO extends BaseDO {
21   -
22   - /**
23   - * 编号,自增
24   - */
25   - @TableId
26   - private Long id;
27   -
28   - /**
29   - * 自提门店编号
30   - *
31   - * 关联 {@link DeliveryPickUpStoreDO#getId()}
32   - */
33   - private Long storeId;
34   -
35   - /**
36   - * 管理员用户id
37   - *
38   - * 关联 {AdminUserDO#getId()}
39   - */
40   - private Long adminUserId;
41   -
42   - /**
43   - * 状态
44   - *
45   - * 枚举 {@link CommonStatusEnum}
46   - */
47   - private Integer status;
48   -
49   -}
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/delivery/DeliveryPickUpStoreMapper.java
... ... @@ -22,10 +22,16 @@ public interface DeliveryPickUpStoreMapper extends BaseMapperX&lt;DeliveryPickUpSto
22 22 .orderByDesc(DeliveryPickUpStoreDO::getId));
23 23 }
24 24  
25   - default List<DeliveryPickUpStoreDO> selectListByStatus(Integer status) {
26   - return selectList(DeliveryPickUpStoreDO::getStatus, status);
  25 + default List<DeliveryPickUpStoreDO> selectListByStatus(Integer status, List<Long> storeIds) {
  26 + return selectList(new LambdaQueryWrapperX<DeliveryPickUpStoreDO>()
  27 + .eq(DeliveryPickUpStoreDO::getStatus, status)
  28 + .inIfPresent(DeliveryPickUpStoreDO::getId, storeIds));
27 29 }
28 30  
  31 + default List<DeliveryPickUpStoreDO> selectStaffByUserId(Long userId){
  32 + return selectList(new LambdaQueryWrapperX<DeliveryPickUpStoreDO>()
  33 + .and(userId != null, w -> w.apply("FIND_IN_SET({0}, staff_ids)", userId)));
  34 + }
29 35 }
30 36  
31 37  
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/delivery/DeliveryPickUpStoreStaffMapper.java deleted
1   -package cn.iocoder.yudao.module.trade.dal.mysql.delivery;
2   -
3   -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4   -import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreStaffDO;
5   -import org.apache.ibatis.annotations.Mapper;
6   -
7   -@Mapper
8   -public interface DeliveryPickUpStoreStaffMapper extends BaseMapperX<DeliveryPickUpStoreStaffDO> {
9   -
10   -}
11   -
12   -
13   -
14   -
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryPickUpStoreService.java
1 1 package cn.iocoder.yudao.module.trade.service.delivery;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4   -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreCreateReqVO;
5   -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStorePageReqVO;
6   -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreUpdateReqVO;
  4 +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.*;
7 5 import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO;
8 6  
9 7 import jakarta.validation.Valid;
... ... @@ -67,7 +65,30 @@ public interface DeliveryPickUpStoreService {
67 65 * 获得指定状态的自提门店列表
68 66 *
69 67 * @param status 状态
  68 + * @param storeIds 指定门店id
70 69 * @return 自提门店列表
71 70 */
72   - List<DeliveryPickUpStoreDO> getDeliveryPickUpStoreListByStatus(Integer status);
  71 + List<DeliveryPickUpStoreDO> getDeliveryPickUpStoreListByStatus(Integer status, List<Long> storeIds);
  72 +
  73 + /**
  74 + * 绑定自提店员
  75 + *
  76 + * @param bindStoreStaffIdVO 绑定数据
  77 + * @return
  78 + */
  79 + void bindDeliveryPickUpBindStoreStaffId(DeliveryPickUpBindStoreStaffIdReqVO bindStoreStaffIdVO);
  80 +
  81 + /**
  82 + * 根据门店id获取自提店员
  83 + * @param id 门店id
  84 + * @return 自提店员
  85 + */
  86 + DeliveryPickUpBindStoreStaffIdReqsVO getDeliveryPickUpStoreStaff(Long id);
  87 +
  88 + /**
  89 + * 根据用户id查询自提门店店员信息
  90 + * @param userId 用户id
  91 + * @return 自提门店店员信息
  92 + */
  93 + List<DeliveryPickUpStoreDO> selectStaffByUserId(Long userId);
73 94 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryPickUpStoreServiceImpl.java
1 1 package cn.iocoder.yudao.module.trade.service.delivery;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4   -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreCreateReqVO;
5   -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStorePageReqVO;
6   -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreUpdateReqVO;
  4 +import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
  5 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
  6 +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.*;
7 7 import cn.iocoder.yudao.module.trade.convert.delivery.DeliveryPickUpStoreConvert;
8 8 import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO;
9 9 import cn.iocoder.yudao.module.trade.dal.mysql.delivery.DeliveryPickUpStoreMapper;
... ... @@ -29,6 +29,9 @@ public class DeliveryPickUpStoreServiceImpl implements DeliveryPickUpStoreServic
29 29 @Resource
30 30 private DeliveryPickUpStoreMapper deliveryPickUpStoreMapper;
31 31  
  32 + @Resource
  33 + private AdminUserApi adminUserApi;
  34 +
32 35 @Override
33 36 public Long createDeliveryPickUpStore(DeliveryPickUpStoreCreateReqVO createReqVO) {
34 37 // 插入
... ... @@ -77,8 +80,29 @@ public class DeliveryPickUpStoreServiceImpl implements DeliveryPickUpStoreServic
77 80 }
78 81  
79 82 @Override
80   - public List<DeliveryPickUpStoreDO> getDeliveryPickUpStoreListByStatus(Integer status) {
81   - return deliveryPickUpStoreMapper.selectListByStatus(status);
  83 + public List<DeliveryPickUpStoreDO> getDeliveryPickUpStoreListByStatus(Integer status, List<Long> storeIds) {
  84 + return deliveryPickUpStoreMapper.selectListByStatus(status, storeIds);
  85 + }
  86 +
  87 + @Override
  88 + public void bindDeliveryPickUpBindStoreStaffId(DeliveryPickUpBindStoreStaffIdReqVO bindStoreStaffIdVO) {
  89 + DeliveryPickUpStoreDO deliveryPickUpStoreDO = deliveryPickUpStoreMapper.selectById(bindStoreStaffIdVO.getId());
  90 + deliveryPickUpStoreDO.setStaffIds(bindStoreStaffIdVO.getStoreStaffIds());
  91 + deliveryPickUpStoreMapper.updateById(deliveryPickUpStoreDO);
  92 + }
  93 +
  94 + @Override
  95 + public DeliveryPickUpBindStoreStaffIdReqsVO getDeliveryPickUpStoreStaff(Long id) {
  96 + DeliveryPickUpStoreDO store = deliveryPickUpStoreMapper.selectById(id);
  97 + List<Long> adminUserIds = store.getStaffIds();
  98 + //2 查询绑定用户信息
  99 + List<AdminUserRespDTO> storeStaffs = adminUserApi.getUserList(adminUserIds);
  100 + return DeliveryPickUpBindStoreStaffIdReqsVO.builder().storeStaffs(storeStaffs).name(store.getName()).id(id).build();
  101 + }
  102 +
  103 + @Override
  104 + public List<DeliveryPickUpStoreDO> selectStaffByUserId(Long userId) {
  105 + return deliveryPickUpStoreMapper.selectStaffByUserId(userId);
82 106 }
83 107  
84 108 }
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.java
... ... @@ -35,4 +35,7 @@ public class UserPageReqVO extends PageParam {
35 35 @Schema(description = "部门编号,同时筛选子部门", example = "1024")
36 36 private Long deptId;
37 37  
  38 + @Schema(description = "角色id", example = "1024")
  39 + private Long roleId;
  40 +
38 41 }
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java
... ... @@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqV
7 7 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
8 8 import org.apache.ibatis.annotations.Mapper;
9 9  
  10 +import java.util.ArrayList;
10 11 import java.util.Collection;
11 12 import java.util.List;
12 13  
... ... @@ -25,14 +26,21 @@ public interface AdminUserMapper extends BaseMapperX&lt;AdminUserDO&gt; {
25 26 return selectOne(AdminUserDO::getMobile, mobile);
26 27 }
27 28  
28   - default PageResult<AdminUserDO> selectPage(UserPageReqVO reqVO, Collection<Long> deptIds) {
29   - return selectPage(reqVO, new LambdaQueryWrapperX<AdminUserDO>()
  29 + default PageResult<AdminUserDO> selectPage(UserPageReqVO reqVO, Collection<Long> deptIds,List<Long> userIds) {
  30 + LambdaQueryWrapperX<AdminUserDO> adminUserDOLambdaQueryWrapperX = new LambdaQueryWrapperX<AdminUserDO>()
30 31 .likeIfPresent(AdminUserDO::getUsername, reqVO.getUsername())
31 32 .likeIfPresent(AdminUserDO::getMobile, reqVO.getMobile())
32 33 .eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus())
33 34 .betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getCreateTime())
34 35 .inIfPresent(AdminUserDO::getDeptId, deptIds)
35   - .orderByDesc(AdminUserDO::getId));
  36 + .orderByDesc(AdminUserDO::getId);
  37 + if(userIds != null){
  38 + if(userIds.isEmpty()){
  39 + return new PageResult<AdminUserDO>().setList(new ArrayList<>()).setTotal(0L);
  40 + }
  41 + adminUserDOLambdaQueryWrapperX.in(AdminUserDO::getId, userIds);
  42 + }
  43 + return selectPage(reqVO, adminUserDOLambdaQueryWrapperX);
36 44 }
37 45  
38 46 default List<AdminUserDO> selectListByNickname(String nickname) {
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
... ... @@ -22,8 +22,10 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqV
22 22 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO;
23 23 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
24 24 import cn.iocoder.yudao.module.system.dal.dataobject.dept.UserPostDO;
  25 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO;
25 26 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
26 27 import cn.iocoder.yudao.module.system.dal.mysql.dept.UserPostMapper;
  28 +import cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleMapper;
27 29 import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
28 30 import cn.iocoder.yudao.module.system.service.dept.DeptService;
29 31 import cn.iocoder.yudao.module.system.service.dept.PostService;
... ... @@ -44,6 +46,7 @@ import org.springframework.transaction.annotation.Transactional;
44 46 import java.io.InputStream;
45 47 import java.time.LocalDateTime;
46 48 import java.util.*;
  49 +import java.util.stream.Collectors;
47 50  
48 51 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
49 52 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
... ... @@ -79,6 +82,8 @@ public class AdminUserServiceImpl implements AdminUserService {
79 82  
80 83 @Resource
81 84 private UserPostMapper userPostMapper;
  85 + @Resource
  86 + private UserRoleMapper userRoleMapper;
82 87  
83 88 @Resource
84 89 private FileApi fileApi;
... ... @@ -272,7 +277,13 @@ public class AdminUserServiceImpl implements AdminUserService {
272 277  
273 278 @Override
274 279 public PageResult<AdminUserDO> getUserPage(UserPageReqVO reqVO) {
275   - return userMapper.selectPage(reqVO, getDeptCondition(reqVO.getDeptId()));
  280 + List<Long> userIds = null;
  281 + if (reqVO.getRoleId() != null){
  282 + //查询角色信息
  283 + List<UserRoleDO> userRoleDOS = userRoleMapper.selectListByRoleIds(List.of(reqVO.getRoleId()));
  284 + userIds = userRoleDOS.stream().map(UserRoleDO::getUserId).toList();
  285 + }
  286 + return userMapper.selectPage(reqVO, getDeptCondition(reqVO.getDeptId()), userIds);
276 287 }
277 288  
278 289 @Override
... ...