Commit 6bfe6285035175b92234b6c9b41dffdaef6a8a55

Authored by YunaiV
1 parent d5652b95

【代码优化】商城:门店自提的员工绑定

Showing 16 changed files with 115 additions and 152 deletions
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/system/package-info.java 0 → 100644
  1 +/**
  2 + * 占位符,可忽略
  3 + */
  4 +package cn.iocoder.yudao.module.trade.controller.admin.base.system;
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/base/system/user/UserSimpleBaseVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.trade.controller.admin.base.system.user;
  2 +
  3 +import io.swagger.v3.oas.annotations.media.Schema;
  4 +import lombok.Data;
  5 +
  6 +@Schema(description = "用户精简信息 VO")
  7 +@Data
  8 +public class UserSimpleBaseVO {
  9 +
  10 + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  11 + private Long id;
  12 +
  13 + @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
  14 + private String nickname;
  15 +
  16 + @Schema(description = "用户头像", example = "https://www.iocoder.cn/1.png")
  17 + private String avatar;
  18 +
  19 +}
0 20 \ No newline at end of file
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryPickUpStoreController.java
1 1 package cn.iocoder.yudao.module.trade.controller.admin.delivery;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
3 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  7 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
  8 +import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
  9 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
  10 +import cn.iocoder.yudao.module.trade.controller.admin.base.system.user.UserSimpleBaseVO;
6 11 import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.*;
7 12 import cn.iocoder.yudao.module.trade.convert.delivery.DeliveryPickUpStoreConvert;
8 13 import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO;
... ... @@ -10,19 +15,16 @@ import cn.iocoder.yudao.module.trade.service.delivery.DeliveryPickUpStoreService
10 15 import io.swagger.v3.oas.annotations.Operation;
11 16 import io.swagger.v3.oas.annotations.Parameter;
12 17 import io.swagger.v3.oas.annotations.tags.Tag;
  18 +import jakarta.annotation.Resource;
  19 +import jakarta.validation.Valid;
13 20 import org.springframework.security.access.prepost.PreAuthorize;
14 21 import org.springframework.validation.annotation.Validated;
15 22 import org.springframework.web.bind.annotation.*;
16 23  
17   -import jakarta.annotation.Resource;
18   -import jakarta.validation.Valid;
19   -
20   -import java.util.ArrayList;
21 24 import java.util.Collection;
22 25 import java.util.List;
23 26  
24 27 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
25   -import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
26 28  
27 29 @Tag(name = "管理后台 - 自提门店")
28 30 @RestController
... ... @@ -33,6 +35,9 @@ public class DeliveryPickUpStoreController {
33 35 @Resource
34 36 private DeliveryPickUpStoreService deliveryPickUpStoreService;
35 37  
  38 + @Resource
  39 + private AdminUserApi adminUserApi;
  40 +
36 41 @PostMapping("/create")
37 42 @Operation(summary = "创建自提门店")
38 43 @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:create')")
... ... @@ -63,22 +68,21 @@ public class DeliveryPickUpStoreController {
63 68 @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:query')")
64 69 public CommonResult<DeliveryPickUpStoreRespVO> getDeliveryPickUpStore(@RequestParam("id") Long id) {
65 70 DeliveryPickUpStoreDO deliveryPickUpStore = deliveryPickUpStoreService.getDeliveryPickUpStore(id);
66   - return success(DeliveryPickUpStoreConvert.INSTANCE.convert(deliveryPickUpStore));
  71 + if (deliveryPickUpStore == null) {
  72 + return success(null);
  73 + }
  74 + List<AdminUserRespDTO> verifyUsers = CollUtil.isNotEmpty(deliveryPickUpStore.getVerifyUserIds()) ?
  75 + adminUserApi.getUserList(deliveryPickUpStore.getVerifyUserIds()) : null;
  76 + return success(BeanUtils.toBean(deliveryPickUpStore, DeliveryPickUpStoreRespVO.class)
  77 + .setVerifyUsers(BeanUtils.toBean(verifyUsers, UserSimpleBaseVO.class)));
67 78 }
68 79  
69   - @GetMapping("/list-all-simple")
  80 + @GetMapping("/simple-list")
70 81 @Operation(summary = "获得自提门店精简信息列表")
71 82 public CommonResult<List<DeliveryPickUpStoreSimpleRespVO>> getSimpleDeliveryPickUpStoreList() {
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   -
  83 + List<DeliveryPickUpStoreDO> list = deliveryPickUpStoreService.getDeliveryPickUpStoreListByStatus(
  84 + CommonStatusEnum.ENABLE.getStatus());
  85 + return success(DeliveryPickUpStoreConvert.INSTANCE.convertList1(list));
82 86 }
83 87  
84 88 @GetMapping("/list")
... ... @@ -101,18 +105,9 @@ public class DeliveryPickUpStoreController {
101 105 @PostMapping("/bind")
102 106 @Operation(summary = "绑定自提店员")
103 107 @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:create')")
104   - public CommonResult<Boolean> bindDeliveryPickUpBindStoreStaffId(@Valid @RequestBody DeliveryPickUpBindStoreStaffIdReqVO bindStoreStaffIdVO) {
105   - deliveryPickUpStoreService.bindDeliveryPickUpBindStoreStaffId(bindStoreStaffIdVO);
  108 + public CommonResult<Boolean> bindDeliveryPickUpStore(@Valid @RequestBody DeliveryPickUpBindReqVO bindReqVO) {
  109 + deliveryPickUpStoreService.bindDeliveryPickUpStore(bindReqVO);
106 110 return success(true);
107 111 }
108 112  
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   -
118 113 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpBindStoreStaffIdReqVO.java renamed to yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpBindReqVO.java
1 1 package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup;
2 2  
3 3 import io.swagger.v3.oas.annotations.media.Schema;
  4 +import jakarta.validation.constraints.NotEmpty;
4 5 import jakarta.validation.constraints.NotNull;
5 6 import lombok.Data;
6   -import lombok.EqualsAndHashCode;
7 7 import lombok.ToString;
8 8  
9 9 import java.util.List;
10 10  
11   -@Schema(description = "管理后台 - 自提门店创建 Request VO")
  11 +@Schema(description = "管理后台 - 自提门店绑定核销人 Request VO")
12 12 @Data
13 13 @ToString(callSuper = true)
14   -public class DeliveryPickUpBindStoreStaffIdReqVO {
  14 +public class DeliveryPickUpBindReqVO {
15 15  
16 16 @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "23128")
17 17 @NotNull(message = "编号不能为空")
18 18 private Long id;
19 19  
20 20 @Schema(description = "绑定用户编号组数", requiredMode = Schema.RequiredMode.REQUIRED, example = "23128")
21   - @NotNull(message = "绑定用户编号组数不能未空")
22   - private List<Long> storeStaffIds;
  21 + @NotEmpty(message = "绑定用户编号组数不能未空")
  22 + private List<Long> verifyUserIds;
23 23  
24 24 -}
  25 +}
25 26 \ No newline at end of file
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpBindStoreStaffIdReqsVO.java deleted
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/admin/delivery/vo/pickup/DeliveryPickUpStoreRespVO.java
1 1 package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup;
2 2  
  3 +import cn.iocoder.yudao.module.trade.controller.admin.base.system.user.UserSimpleBaseVO;
3 4 import io.swagger.v3.oas.annotations.media.Schema;
4 5 import lombok.Data;
5 6 import lombok.EqualsAndHashCode;
6 7 import lombok.ToString;
7 8  
8 9 import java.time.LocalDateTime;
  10 +import java.util.List;
9 11  
10 12 @Schema(description = "管理后台 - 自提门店 Response VO")
11 13 @Data
... ... @@ -19,4 +21,7 @@ public class DeliveryPickUpStoreRespVO extends DeliveryPickUpStoreBaseVO {
19 21 @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
20 22 private LocalDateTime createTime;
21 23  
  24 + @Schema(description = "核销用户数组", requiredMode = Schema.RequiredMode.REQUIRED)
  25 + private List<UserSimpleBaseVO> verifyUsers;
  26 +
22 27 }
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreSimpleRespVO.java
... ... @@ -5,6 +5,8 @@ import lombok.AllArgsConstructor;
5 5 import lombok.Data;
6 6 import lombok.NoArgsConstructor;
7 7  
  8 +import java.util.List;
  9 +
8 10 @Schema(description = "管理后台 - 自提门店精简信息 Response VO")
9 11 @Data
10 12 @NoArgsConstructor
... ... @@ -29,4 +31,7 @@ public class DeliveryPickUpStoreSimpleRespVO {
29 31 @Schema(description = "门店详细地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "复旦大学路 188 号")
30 32 private String detailAddress;
31 33  
  34 + @Schema(description = "绑定用户编号组数", requiredMode = Schema.RequiredMode.REQUIRED, example = "23128")
  35 + private List<Long> verifyUserIds;
  36 +
32 37 }
... ...
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(), null);
  43 + CommonStatusEnum.ENABLE.getStatus());
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/convert/delivery/DeliveryPickUpStoreConvert.java
... ... @@ -26,8 +26,6 @@ public interface DeliveryPickUpStoreConvert {
26 26  
27 27 DeliveryPickUpStoreDO convert(DeliveryPickUpStoreUpdateReqVO bean);
28 28  
29   - DeliveryPickUpStoreRespVO convert(DeliveryPickUpStoreDO bean);
30   -
31 29 List<DeliveryPickUpStoreRespVO> convertList(List<DeliveryPickUpStoreDO> list);
32 30  
33 31 PageResult<DeliveryPickUpStoreRespVO> convertPage(PageResult<DeliveryPickUpStoreDO> page);
... ... @@ -43,14 +41,13 @@ public interface DeliveryPickUpStoreConvert {
43 41  
44 42 default List<AppDeliveryPickUpStoreRespVO> convertList(List<DeliveryPickUpStoreDO> list,
45 43 Double latitude, Double longitude) {
46   - List<AppDeliveryPickUpStoreRespVO> voList = CollectionUtils.convertList(list, store -> {
  44 + return CollectionUtils.convertList(list, store -> {
47 45 AppDeliveryPickUpStoreRespVO storeVO = convert03(store);
48 46 if (latitude != null && longitude != null) {
49 47 storeVO.setDistance(NumberUtils.getDistance(latitude, longitude, storeVO.getLatitude(), storeVO.getLongitude()));
50 48 }
51 49 return storeVO;
52 50 });
53   - return voList;
54 51 }
55 52 @Mapping(source = "areaId", target = "areaName", qualifiedByName = "convertAreaIdToAreaName")
56 53 AppDeliveryPickUpStoreRespVO convert03(DeliveryPickUpStoreDO bean);
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/delivery/DeliveryPickUpStoreDO.java
... ... @@ -3,11 +3,11 @@ package cn.iocoder.yudao.module.trade.dal.dataobject.delivery;
3 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 5 import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler;
  6 +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
6 7 import com.baomidou.mybatisplus.annotation.KeySequence;
7 8 import com.baomidou.mybatisplus.annotation.TableField;
8 9 import com.baomidou.mybatisplus.annotation.TableId;
9 10 import com.baomidou.mybatisplus.annotation.TableName;
10   -import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
11 11 import lombok.Data;
12 12  
13 13 import java.time.LocalTime;
... ... @@ -77,11 +77,16 @@ public class DeliveryPickUpStoreDO extends BaseDO {
77 77 * 经度
78 78 */
79 79 private Double longitude;
  80 +
80 81 /**
81   - * 店员id列表
  82 + * 核销员工用户编号数组
  83 + *
  84 + * 订单自提核销时,只有对应门店的店员才能核销
  85 + *
  86 + * 关联 {@link AdminUserRespDTO#getId()} 管理员编号
82 87 */
83 88 @TableField(typeHandler = LongListTypeHandler.class)
84   - private List<Long> staffIds;
  89 + private List<Long> verifyUserIds;
85 90  
86 91 /**
87 92 * 门店状态
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/delivery/DeliveryPickUpStoreMapper.java
... ... @@ -22,16 +22,10 @@ public interface DeliveryPickUpStoreMapper extends BaseMapperX&lt;DeliveryPickUpSto
22 22 .orderByDesc(DeliveryPickUpStoreDO::getId));
23 23 }
24 24  
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));
  25 + default List<DeliveryPickUpStoreDO> selectListByStatus(Integer status) {
  26 + return selectList(DeliveryPickUpStoreDO::getStatus, status);
29 27 }
30 28  
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   - }
35 29 }
36 30  
37 31  
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryPickUpStoreService.java
... ... @@ -54,41 +54,26 @@ public interface DeliveryPickUpStoreService {
54 54 List<DeliveryPickUpStoreDO> getDeliveryPickUpStoreList(Collection<Long> ids);
55 55  
56 56 /**
57   - * 获得自提门店分页
58   - *
59   - * @param pageReqVO 分页查询
60   - * @return 自提门店分页
61   - */
62   - PageResult<DeliveryPickUpStoreDO> getDeliveryPickUpStorePage(DeliveryPickUpStorePageReqVO pageReqVO);
63   -
64   - /**
65 57 * 获得指定状态的自提门店列表
66 58 *
67 59 * @param status 状态
68   - * @param storeIds 指定门店id
69 60 * @return 自提门店列表
70 61 */
71   - List<DeliveryPickUpStoreDO> getDeliveryPickUpStoreListByStatus(Integer status, List<Long> storeIds);
  62 + List<DeliveryPickUpStoreDO> getDeliveryPickUpStoreListByStatus(Integer status);
72 63  
73 64 /**
74   - * 绑定自提店员
  65 + * 获得自提门店分页
75 66 *
76   - * @param bindStoreStaffIdVO 绑定数据
77   - * @return
  67 + * @param pageReqVO 分页查询
  68 + * @return 自提门店分页
78 69 */
79   - void bindDeliveryPickUpBindStoreStaffId(DeliveryPickUpBindStoreStaffIdReqVO bindStoreStaffIdVO);
  70 + PageResult<DeliveryPickUpStoreDO> getDeliveryPickUpStorePage(DeliveryPickUpStorePageReqVO pageReqVO);
80 71  
81 72 /**
82   - * 根据门店id获取自提店员
83   - * @param id 门店id
84   - * @return 自提店员
  73 + * 绑定自提店员
  74 + *
  75 + * @param bindReqVO 绑定数据
85 76 */
86   - DeliveryPickUpBindStoreStaffIdReqsVO getDeliveryPickUpStoreStaff(Long id);
  77 + void bindDeliveryPickUpStore(DeliveryPickUpBindReqVO bindReqVO);
87 78  
88   - /**
89   - * 根据用户id查询自提门店店员信息
90   - * @param userId 用户id
91   - * @return 自提门店店员信息
92   - */
93   - List<DeliveryPickUpStoreDO> selectStaffByUserId(Long userId);
94 79 }
... ...
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.framework.common.util.object.BeanUtils;
4 5 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.*;
  6 +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpBindReqVO;
  7 +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreCreateReqVO;
  8 +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStorePageReqVO;
  9 +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreUpdateReqVO;
7 10 import cn.iocoder.yudao.module.trade.convert.delivery.DeliveryPickUpStoreConvert;
8 11 import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO;
9 12 import cn.iocoder.yudao.module.trade.dal.mysql.delivery.DeliveryPickUpStoreMapper;
  13 +import jakarta.annotation.Resource;
10 14 import org.springframework.stereotype.Service;
11 15 import org.springframework.validation.annotation.Validated;
12 16  
13   -import jakarta.annotation.Resource;
14 17 import java.util.Collection;
15 18 import java.util.List;
16 19  
... ... @@ -59,7 +62,8 @@ public class DeliveryPickUpStoreServiceImpl implements DeliveryPickUpStoreServic
59 62 }
60 63  
61 64 private void validateDeliveryPickUpStoreExists(Long id) {
62   - if (deliveryPickUpStoreMapper.selectById(id) == null) {
  65 + DeliveryPickUpStoreDO deliveryPickUpStore = deliveryPickUpStoreMapper.selectById(id);
  66 + if (deliveryPickUpStore == null) {
63 67 throw exception(PICK_UP_STORE_NOT_EXISTS);
64 68 }
65 69 }
... ... @@ -75,34 +79,25 @@ public class DeliveryPickUpStoreServiceImpl implements DeliveryPickUpStoreServic
75 79 }
76 80  
77 81 @Override
78   - public PageResult<DeliveryPickUpStoreDO> getDeliveryPickUpStorePage(DeliveryPickUpStorePageReqVO pageReqVO) {
79   - return deliveryPickUpStoreMapper.selectPage(pageReqVO);
80   - }
81   -
82   - @Override
83   - public List<DeliveryPickUpStoreDO> getDeliveryPickUpStoreListByStatus(Integer status, List<Long> storeIds) {
84   - return deliveryPickUpStoreMapper.selectListByStatus(status, storeIds);
  82 + public List<DeliveryPickUpStoreDO> getDeliveryPickUpStoreListByStatus(Integer status) {
  83 + return deliveryPickUpStoreMapper.selectListByStatus(status);
85 84 }
86 85  
87 86 @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();
  87 + public PageResult<DeliveryPickUpStoreDO> getDeliveryPickUpStorePage(DeliveryPickUpStorePageReqVO pageReqVO) {
  88 + return deliveryPickUpStoreMapper.selectPage(pageReqVO);
101 89 }
102 90  
103 91 @Override
104   - public List<DeliveryPickUpStoreDO> selectStaffByUserId(Long userId) {
105   - return deliveryPickUpStoreMapper.selectStaffByUserId(userId);
  92 + public void bindDeliveryPickUpStore(DeliveryPickUpBindReqVO bindReqVO) {
  93 + // 1.1 校验门店存在
  94 + validateDeliveryPickUpStoreExists(bindReqVO.getId());
  95 + // 1.2 校验用户存在
  96 + adminUserApi.validateUserList(bindReqVO.getVerifyUserIds());
  97 +
  98 + // 2. 更新
  99 + DeliveryPickUpStoreDO updateObj = BeanUtils.toBean(bindReqVO, DeliveryPickUpStoreDO.class);
  100 + deliveryPickUpStoreMapper.updateById(updateObj);
106 101 }
107 102  
108 103 }
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserPageReqVO.java
... ... @@ -35,7 +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")
  38 + @Schema(description = "角色编号", example = "1024")
39 39 private Long roleId;
40 40  
41 41 }
... ...
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java
... ... @@ -7,7 +7,6 @@ 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;
11 10 import java.util.Collection;
12 11 import java.util.List;
13 12  
... ... @@ -26,21 +25,15 @@ public interface AdminUserMapper extends BaseMapperX&lt;AdminUserDO&gt; {
26 25 return selectOne(AdminUserDO::getMobile, mobile);
27 26 }
28 27  
29   - default PageResult<AdminUserDO> selectPage(UserPageReqVO reqVO, Collection<Long> deptIds,List<Long> userIds) {
30   - LambdaQueryWrapperX<AdminUserDO> adminUserDOLambdaQueryWrapperX = new LambdaQueryWrapperX<AdminUserDO>()
  28 + default PageResult<AdminUserDO> selectPage(UserPageReqVO reqVO, Collection<Long> deptIds, Collection<Long> userIds) {
  29 + return selectPage(reqVO, new LambdaQueryWrapperX<AdminUserDO>()
31 30 .likeIfPresent(AdminUserDO::getUsername, reqVO.getUsername())
32 31 .likeIfPresent(AdminUserDO::getMobile, reqVO.getMobile())
33 32 .eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus())
34 33 .betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getCreateTime())
35 34 .inIfPresent(AdminUserDO::getDeptId, deptIds)
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);
  35 + .inIfPresent(AdminUserDO::getId, userIds)
  36 + .orderByDesc(AdminUserDO::getId));
44 37 }
45 38  
46 39 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,10 +22,8 @@ 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;
26 25 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
27 26 import cn.iocoder.yudao.module.system.dal.mysql.dept.UserPostMapper;
28   -import cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleMapper;
29 27 import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
30 28 import cn.iocoder.yudao.module.system.service.dept.DeptService;
31 29 import cn.iocoder.yudao.module.system.service.dept.PostService;
... ... @@ -46,11 +44,9 @@ import org.springframework.transaction.annotation.Transactional;
46 44 import java.io.InputStream;
47 45 import java.time.LocalDateTime;
48 46 import java.util.*;
49   -import java.util.stream.Collectors;
50 47  
51 48 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
52   -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
53   -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
  49 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
54 50 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
55 51 import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.*;
56 52  
... ... @@ -82,8 +78,6 @@ public class AdminUserServiceImpl implements AdminUserService {
82 78  
83 79 @Resource
84 80 private UserPostMapper userPostMapper;
85   - @Resource
86   - private UserRoleMapper userRoleMapper;
87 81  
88 82 @Resource
89 83 private FileApi fileApi;
... ... @@ -277,12 +271,11 @@ public class AdminUserServiceImpl implements AdminUserService {
277 271  
278 272 @Override
279 273 public PageResult<AdminUserDO> getUserPage(UserPageReqVO reqVO) {
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   - }
  274 + // 如果有角色编号,查询角色对应的用户编号
  275 + Set<Long> userIds = reqVO.getRoleId() != null ?
  276 + permissionService.getUserRoleIdListByRoleId(singleton(reqVO.getRoleId())) : null;
  277 +
  278 + // 分页查询
286 279 return userMapper.selectPage(reqVO, getDeptCondition(reqVO.getDeptId()), userIds);
287 280 }
288 281  
... ...