Commit 3e5372436112c066d6bddf03e8fc4e14b4de2e4b

Authored by 痴货
1 parent 476dafbb

【功能优化】优化门店店员功能

Showing 11 changed files with 57 additions and 302 deletions
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryPickUpStoreController.java
@@ -3,14 +3,10 @@ package cn.iocoder.yudao.module.trade.controller.admin.delivery; @@ -3,14 +3,10 @@ package cn.iocoder.yudao.module.trade.controller.admin.delivery;
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 -import cn.iocoder.yudao.framework.security.core.LoginUser;  
7 -import cn.iocoder.yudao.module.system.api.user.AdminUserApi;  
8 import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.*; 6 import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.*;
9 import cn.iocoder.yudao.module.trade.convert.delivery.DeliveryPickUpStoreConvert; 7 import cn.iocoder.yudao.module.trade.convert.delivery.DeliveryPickUpStoreConvert;
10 import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; 8 import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO;
11 -import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreStaffDO;  
12 import cn.iocoder.yudao.module.trade.service.delivery.DeliveryPickUpStoreService; 9 import cn.iocoder.yudao.module.trade.service.delivery.DeliveryPickUpStoreService;
13 -import cn.iocoder.yudao.module.trade.service.delivery.DeliveryPickUpStoreStaffService;  
14 import io.swagger.v3.oas.annotations.Operation; 10 import io.swagger.v3.oas.annotations.Operation;
15 import io.swagger.v3.oas.annotations.Parameter; 11 import io.swagger.v3.oas.annotations.Parameter;
16 import io.swagger.v3.oas.annotations.tags.Tag; 12 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -26,9 +22,7 @@ import java.util.Collection; @@ -26,9 +22,7 @@ import java.util.Collection;
26 import java.util.List; 22 import java.util.List;
27 23
28 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 24 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
29 -import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;  
30 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; 25 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
31 -import static java.util.stream.Collectors.toList;  
32 26
33 @Tag(name = "管理后台 - 自提门店") 27 @Tag(name = "管理后台 - 自提门店")
34 @RestController 28 @RestController
@@ -39,9 +33,6 @@ public class DeliveryPickUpStoreController { @@ -39,9 +33,6 @@ public class DeliveryPickUpStoreController {
39 @Resource 33 @Resource
40 private DeliveryPickUpStoreService deliveryPickUpStoreService; 34 private DeliveryPickUpStoreService deliveryPickUpStoreService;
41 35
42 - @Resource  
43 - private DeliveryPickUpStoreStaffService deliveryPickUpStoreStaffService;  
44 -  
45 @PostMapping("/create") 36 @PostMapping("/create")
46 @Operation(summary = "创建自提门店") 37 @Operation(summary = "创建自提门店")
47 @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:create')") 38 @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:create')")
@@ -78,8 +69,8 @@ public class DeliveryPickUpStoreController { @@ -78,8 +69,8 @@ public class DeliveryPickUpStoreController {
78 @GetMapping("/list-all-simple") 69 @GetMapping("/list-all-simple")
79 @Operation(summary = "获得自提门店精简信息列表") 70 @Operation(summary = "获得自提门店精简信息列表")
80 public CommonResult<List<DeliveryPickUpStoreSimpleRespVO>> getSimpleDeliveryPickUpStoreList() { 71 public CommonResult<List<DeliveryPickUpStoreSimpleRespVO>> getSimpleDeliveryPickUpStoreList() {
81 - List<DeliveryPickUpStoreStaffDO> storeStaffDOS = deliveryPickUpStoreStaffService.selectStaffByUserId(getLoginUserId());  
82 - List<Long> storeIds = storeStaffDOS.stream().map(DeliveryPickUpStoreStaffDO::getStoreId).toList(); 72 + List<DeliveryPickUpStoreDO> storeStaffDOS = deliveryPickUpStoreService.selectStaffByUserId(getLoginUserId());
  73 + List<Long> storeIds = storeStaffDOS.stream().map(DeliveryPickUpStoreDO::getId).toList();
83 if(!storeIds.isEmpty()){ 74 if(!storeIds.isEmpty()){
84 List<DeliveryPickUpStoreDO> list = deliveryPickUpStoreService.getDeliveryPickUpStoreListByStatus( 75 List<DeliveryPickUpStoreDO> list = deliveryPickUpStoreService.getDeliveryPickUpStoreListByStatus(
85 CommonStatusEnum.ENABLE.getStatus(), storeIds); 76 CommonStatusEnum.ENABLE.getStatus(), storeIds);
@@ -120,8 +111,7 @@ public class DeliveryPickUpStoreController { @@ -120,8 +111,7 @@ public class DeliveryPickUpStoreController {
120 @Parameter(name = "id", description = "编号", required = true, example = "1024") 111 @Parameter(name = "id", description = "编号", required = true, example = "1024")
121 @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:query')") 112 @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:query')")
122 public CommonResult<DeliveryPickUpBindStoreStaffIdReqsVO> getDeliveryPickUpStoreStaff(@RequestParam("id") Long id) { 113 public CommonResult<DeliveryPickUpBindStoreStaffIdReqsVO> getDeliveryPickUpStoreStaff(@RequestParam("id") Long id) {
123 - DeliveryPickUpStoreDO deliveryPickUpStore = deliveryPickUpStoreService.getDeliveryPickUpStore(id);  
124 - return success(deliveryPickUpStoreStaffService.getDeliveryPickUpStoreStaff(deliveryPickUpStore.getId(),deliveryPickUpStore.getName())); 114 + return success(deliveryPickUpStoreService.getDeliveryPickUpStoreStaff(id));
125 } 115 }
126 116
127 117
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryPickUpStoreStaffController.java deleted
1 -package cn.iocoder.yudao.module.trade.controller.admin.delivery;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.module.system.api.user.AdminUserApi;  
7 -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.*;  
8 -import cn.iocoder.yudao.module.trade.convert.delivery.DeliveryPickUpStoreConvert;  
9 -import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO;  
10 -import cn.iocoder.yudao.module.trade.service.delivery.DeliveryPickUpStoreService;  
11 -import cn.iocoder.yudao.module.trade.service.delivery.DeliveryPickUpStoreStaffService;  
12 -import io.swagger.v3.oas.annotations.Operation;  
13 -import io.swagger.v3.oas.annotations.Parameter;  
14 -import io.swagger.v3.oas.annotations.tags.Tag;  
15 -import jakarta.annotation.Resource;  
16 -import jakarta.validation.Valid;  
17 -import org.springframework.security.access.prepost.PreAuthorize;  
18 -import org.springframework.validation.annotation.Validated;  
19 -import org.springframework.web.bind.annotation.*;  
20 -  
21 -import java.util.Collection;  
22 -import java.util.List;  
23 -  
24 -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;  
25 -  
26 -@Tag(name = "管理后台 - 自提门店店员")  
27 -@RestController  
28 -@RequestMapping("/trade/delivery/pick-up-store-staff")  
29 -@Validated  
30 -public class DeliveryPickUpStoreStaffController {  
31 -  
32 -  
33 - @Resource  
34 - private DeliveryPickUpStoreStaffService deliveryPickUpStoreStaffService;  
35 -  
36 - @DeleteMapping("/delete")  
37 - @Operation(summary = "删除自提门店店员")  
38 - @Parameter(name = "userId", description = "用户编号", required = true)  
39 - @Parameter(name = "storeId", description = "自提门店编号", required = true)  
40 - @PreAuthorize("@ss.hasPermission('trade:delivery:pick-up-store:delete')")  
41 - public CommonResult<Boolean> deleteDeliveryPickUpStoreStaff(@RequestParam("userId") Long id,@RequestParam("storeId") Long storeId) {  
42 - deliveryPickUpStoreStaffService.deleteDeliveryPickUpStoreStaff(id, storeId);  
43 - return success(true);  
44 - }  
45 -  
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,19 +2,23 @@ package cn.iocoder.yudao.module.trade.dal.dataobject.delivery;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  5 +import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler;
5 import com.baomidou.mybatisplus.annotation.KeySequence; 6 import com.baomidou.mybatisplus.annotation.KeySequence;
  7 +import com.baomidou.mybatisplus.annotation.TableField;
6 import com.baomidou.mybatisplus.annotation.TableId; 8 import com.baomidou.mybatisplus.annotation.TableId;
7 import com.baomidou.mybatisplus.annotation.TableName; 9 import com.baomidou.mybatisplus.annotation.TableName;
  10 +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
8 import lombok.Data; 11 import lombok.Data;
9 12
10 import java.time.LocalTime; 13 import java.time.LocalTime;
  14 +import java.util.List;
11 15
12 /** 16 /**
13 * 自提门店 DO 17 * 自提门店 DO
14 * 18 *
15 * @author jason 19 * @author jason
16 */ 20 */
17 -@TableName(value ="trade_delivery_pick_up_store") 21 +@TableName(value ="trade_delivery_pick_up_store", autoResultMap = true)
18 @KeySequence("trade_delivery_pick_up_store_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 22 @KeySequence("trade_delivery_pick_up_store_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
19 @Data 23 @Data
20 public class DeliveryPickUpStoreDO extends BaseDO { 24 public class DeliveryPickUpStoreDO extends BaseDO {
@@ -73,6 +77,11 @@ public class DeliveryPickUpStoreDO extends BaseDO { @@ -73,6 +77,11 @@ public class DeliveryPickUpStoreDO extends BaseDO {
73 * 经度 77 * 经度
74 */ 78 */
75 private Double longitude; 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.Builder;  
9 -import lombok.Data;  
10 -import lombok.NoArgsConstructor;  
11 -  
12 -// TODO @芋艿:后续再详细 review 一轮  
13 -// TODO @芋艿:可能改成 DeliveryPickUpStoreUserDO  
14 -/**  
15 - * 自提门店店员 DO  
16 - *  
17 - * @author jason  
18 - */  
19 -@TableName(value ="trade_delivery_pick_up_store_staff")  
20 -@KeySequence("trade_delivery_pick_up_store_staff_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。  
21 -@Data  
22 -public class DeliveryPickUpStoreStaffDO extends BaseDO {  
23 -  
24 - /**  
25 - * 编号,自增  
26 - */  
27 - @TableId  
28 - private Long id;  
29 -  
30 - /**  
31 - * 自提门店编号  
32 - *  
33 - * 关联 {@link DeliveryPickUpStoreDO#getId()}  
34 - */  
35 - private Long storeId;  
36 -  
37 - /**  
38 - * 管理员用户id  
39 - *  
40 - * 关联 {AdminUserDO#getId()}  
41 - */  
42 - private Long adminUserId;  
43 -  
44 - /**  
45 - * 状态  
46 - *  
47 - * 枚举 {@link CommonStatusEnum}  
48 - */  
49 - private Integer status;  
50 -  
51 -}  
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/delivery/DeliveryPickUpStoreMapper.java
@@ -28,6 +28,10 @@ public interface DeliveryPickUpStoreMapper extends BaseMapperX&lt;DeliveryPickUpSto @@ -28,6 +28,10 @@ public interface DeliveryPickUpStoreMapper extends BaseMapperX&lt;DeliveryPickUpSto
28 .inIfPresent(DeliveryPickUpStoreDO::getId, storeIds)); 28 .inIfPresent(DeliveryPickUpStoreDO::getId, storeIds));
29 } 29 }
30 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 + }
31 } 35 }
32 36
33 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.framework.mybatis.core.query.LambdaQueryWrapperX;  
5 -import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreStaffDO;  
6 -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;  
7 -import org.apache.ibatis.annotations.Mapper;  
8 -  
9 -import java.util.Collections;  
10 -import java.util.List;  
11 -  
12 -@Mapper  
13 -public interface DeliveryPickUpStoreStaffMapper extends BaseMapperX<DeliveryPickUpStoreStaffDO> {  
14 -  
15 - default Long selectStaffIdByUserIdAndStoreId(List<Long> userId, Long storeId){  
16 - return selectOne(new LambdaQueryWrapperX<DeliveryPickUpStoreStaffDO>()  
17 - .inIfPresent(DeliveryPickUpStoreStaffDO::getAdminUserId, userId)  
18 - .eqIfPresent(DeliveryPickUpStoreStaffDO::getStoreId, storeId))  
19 - .getId();  
20 - }  
21 -  
22 - default List<DeliveryPickUpStoreStaffDO> getUserIdsByStoreId(Long id){  
23 - return selectList(new LambdaQueryWrapperX<DeliveryPickUpStoreStaffDO>()  
24 - .eq(DeliveryPickUpStoreStaffDO::getStoreId,id));  
25 - }  
26 -  
27 - default void deleteStaffByUserIdsAndStoreId(List<Long> userIds, Long storeId){  
28 - Long StaffId = selectStaffIdByUserIdAndStoreId(userIds, storeId);  
29 - deleteById(StaffId);  
30 - }  
31 -}  
32 -  
33 -  
34 -  
35 -  
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryPickUpStoreService.java
1 package cn.iocoder.yudao.module.trade.service.delivery; 1 package cn.iocoder.yudao.module.trade.service.delivery;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpBindStoreStaffIdReqVO;  
5 -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreCreateReqVO;  
6 -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStorePageReqVO;  
7 -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreUpdateReqVO; 4 +import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.*;
8 import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; 5 import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO;
9 6
10 import jakarta.validation.Valid; 7 import jakarta.validation.Valid;
@@ -80,4 +77,18 @@ public interface DeliveryPickUpStoreService { @@ -80,4 +77,18 @@ public interface DeliveryPickUpStoreService {
80 * @return 77 * @return
81 */ 78 */
82 void bindDeliveryPickUpBindStoreStaffId(DeliveryPickUpBindStoreStaffIdReqVO bindStoreStaffIdVO); 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);
83 } 94 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryPickUpStoreServiceImpl.java
1 package cn.iocoder.yudao.module.trade.service.delivery; 1 package cn.iocoder.yudao.module.trade.service.delivery;
2 2
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.hutool.core.util.ObjectUtil;  
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
7 -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpBindStoreStaffIdReqVO;  
8 -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStoreCreateReqVO;  
9 -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.DeliveryPickUpStorePageReqVO;  
10 -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.*;
11 import cn.iocoder.yudao.module.trade.convert.delivery.DeliveryPickUpStoreConvert; 7 import cn.iocoder.yudao.module.trade.convert.delivery.DeliveryPickUpStoreConvert;
12 import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO; 8 import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO;
13 -import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreStaffDO;  
14 import cn.iocoder.yudao.module.trade.dal.mysql.delivery.DeliveryPickUpStoreMapper; 9 import cn.iocoder.yudao.module.trade.dal.mysql.delivery.DeliveryPickUpStoreMapper;
15 -import cn.iocoder.yudao.module.trade.dal.mysql.delivery.DeliveryPickUpStoreStaffMapper;  
16 -import com.mchange.lang.LongUtils;  
17 import org.springframework.stereotype.Service; 10 import org.springframework.stereotype.Service;
18 import org.springframework.validation.annotation.Validated; 11 import org.springframework.validation.annotation.Validated;
19 12
20 import jakarta.annotation.Resource; 13 import jakarta.annotation.Resource;
21 import java.util.Collection; 14 import java.util.Collection;
22 import java.util.List; 15 import java.util.List;
23 -import java.util.stream.Collectors;  
24 16
25 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 17 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
26 import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.PICK_UP_STORE_NOT_EXISTS; 18 import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.PICK_UP_STORE_NOT_EXISTS;
@@ -36,8 +28,9 @@ public class DeliveryPickUpStoreServiceImpl implements DeliveryPickUpStoreServic @@ -36,8 +28,9 @@ public class DeliveryPickUpStoreServiceImpl implements DeliveryPickUpStoreServic
36 28
37 @Resource 29 @Resource
38 private DeliveryPickUpStoreMapper deliveryPickUpStoreMapper; 30 private DeliveryPickUpStoreMapper deliveryPickUpStoreMapper;
  31 +
39 @Resource 32 @Resource
40 - private DeliveryPickUpStoreStaffMapper deliveryPickUpStoreStaffMapper; 33 + private AdminUserApi adminUserApi;
41 34
42 @Override 35 @Override
43 public Long createDeliveryPickUpStore(DeliveryPickUpStoreCreateReqVO createReqVO) { 36 public Long createDeliveryPickUpStore(DeliveryPickUpStoreCreateReqVO createReqVO) {
@@ -93,26 +86,23 @@ public class DeliveryPickUpStoreServiceImpl implements DeliveryPickUpStoreServic @@ -93,26 +86,23 @@ public class DeliveryPickUpStoreServiceImpl implements DeliveryPickUpStoreServic
93 86
94 @Override 87 @Override
95 public void bindDeliveryPickUpBindStoreStaffId(DeliveryPickUpBindStoreStaffIdReqVO bindStoreStaffIdVO) { 88 public void bindDeliveryPickUpBindStoreStaffId(DeliveryPickUpBindStoreStaffIdReqVO bindStoreStaffIdVO) {
96 - //查询旧列表  
97 - List<DeliveryPickUpStoreStaffDO> storeStaffDOS = deliveryPickUpStoreStaffMapper.getUserIdsByStoreId(bindStoreStaffIdVO.getId());  
98 - List<Long> oldStoreStaffIds = storeStaffDOS.stream().map(DeliveryPickUpStoreStaffDO::getAdminUserId).toList();  
99 - List<Long> newStoreStaffIds = bindStoreStaffIdVO.getStoreStaffIds();  
100 - List<List<Long>> diffList = CollectionUtils.diffList(oldStoreStaffIds, newStoreStaffIds, // id 不同,就认为是不同的记录  
101 - ObjectUtil::equal);  
102 - // 添加  
103 - if (CollUtil.isNotEmpty(diffList.get(0))) {  
104 - diffList.get(0).forEach(id -> {  
105 - DeliveryPickUpStoreStaffDO storeStaffDO = new DeliveryPickUpStoreStaffDO();  
106 - storeStaffDO.setStoreId(bindStoreStaffIdVO.getId());  
107 - storeStaffDO.setAdminUserId(id);  
108 - deliveryPickUpStoreStaffMapper.insert(storeStaffDO);  
109 - });  
110 - }  
111 - //删除  
112 - if (CollUtil.isNotEmpty(diffList.get(2))) {  
113 - deliveryPickUpStoreStaffMapper.deleteStaffByUserIdsAndStoreId(diffList.get(2), bindStoreStaffIdVO.getId());  
114 - } 89 + DeliveryPickUpStoreDO deliveryPickUpStoreDO = deliveryPickUpStoreMapper.selectById(bindStoreStaffIdVO.getId());
  90 + deliveryPickUpStoreDO.setStaffIds(bindStoreStaffIdVO.getStoreStaffIds());
  91 + deliveryPickUpStoreMapper.updateById(deliveryPickUpStoreDO);
  92 + }
115 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);
116 } 106 }
117 107
118 } 108 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryPickUpStoreStaffService.java deleted
1 -package cn.iocoder.yudao.module.trade.service.delivery;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.*;  
5 -import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO;  
6 -import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreStaffDO;  
7 -import cn.iocoder.yudao.module.trade.dal.mysql.delivery.DeliveryPickUpStoreStaffMapper;  
8 -import jakarta.annotation.Resource;  
9 -import jakarta.validation.Valid;  
10 -  
11 -import java.util.Collection;  
12 -import java.util.List;  
13 -  
14 -/**  
15 - * 自提门店店员 Service 接口  
16 - *  
17 - * @author jason  
18 - */  
19 -public interface DeliveryPickUpStoreStaffService {  
20 -  
21 - /**  
22 - * 查询门店绑定用户信息数组  
23 - *  
24 - * @param id 门店编号  
25 - * @return 用户信息数组  
26 - */  
27 - DeliveryPickUpBindStoreStaffIdReqsVO getDeliveryPickUpStoreStaff(Long id, String name);  
28 -  
29 - /**  
30 - * 删除自提门店店员  
31 - *  
32 - * @param id 门店店员编号  
33 - */  
34 - void deleteDeliveryPickUpStoreStaff(Long id, Long storeId);  
35 -  
36 - /**  
37 - * 根据用户id查询自提门店店员信息  
38 - * @param userId  
39 - * @return  
40 - */  
41 - List<DeliveryPickUpStoreStaffDO> selectStaffByUserId(Long userId);  
42 -}  
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryPickUpStoreStaffServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.trade.service.delivery;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
6 -import cn.iocoder.yudao.module.system.api.user.AdminUserApi;  
7 -import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;  
8 -import cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.pickup.*;  
9 -import cn.iocoder.yudao.module.trade.convert.delivery.DeliveryPickUpStoreConvert;  
10 -import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreDO;  
11 -import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryPickUpStoreStaffDO;  
12 -import cn.iocoder.yudao.module.trade.dal.mysql.delivery.DeliveryPickUpStoreMapper;  
13 -import cn.iocoder.yudao.module.trade.dal.mysql.delivery.DeliveryPickUpStoreStaffMapper;  
14 -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;  
15 -import jakarta.annotation.Resource;  
16 -import org.springframework.stereotype.Service;  
17 -import org.springframework.validation.annotation.Validated;  
18 -  
19 -import java.util.Arrays;  
20 -import java.util.Collection;  
21 -import java.util.Collections;  
22 -import java.util.List;  
23 -import java.util.stream.Collectors;  
24 -  
25 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
26 -import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.PICK_UP_STORE_NOT_EXISTS;  
27 -import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.PICK_UP_STORE_STAFF_NOT_EXISTS;  
28 -import static java.util.stream.Collectors.toList;  
29 -  
30 -/**  
31 - * 自提门店店员 Service 实现类  
32 - *  
33 - * @author jason  
34 - */  
35 -@Service  
36 -@Validated  
37 -public class DeliveryPickUpStoreStaffServiceImpl implements DeliveryPickUpStoreStaffService {  
38 -  
39 -  
40 - @Resource  
41 - private DeliveryPickUpStoreStaffMapper deliveryPickUpStoreStaffMapper;  
42 -  
43 - @Resource  
44 - private AdminUserApi adminUserApi;  
45 -  
46 -  
47 - @Override  
48 - public DeliveryPickUpBindStoreStaffIdReqsVO getDeliveryPickUpStoreStaff(Long id, String name) {  
49 - //1 查询绑定对应关系  
50 - List<DeliveryPickUpStoreStaffDO> storeStaffDOS = deliveryPickUpStoreStaffMapper.selectList(new LambdaQueryWrapperX<DeliveryPickUpStoreStaffDO>()  
51 - .eq(DeliveryPickUpStoreStaffDO::getStoreId, id)  
52 - .eq(DeliveryPickUpStoreStaffDO::getStatus, CommonStatusEnum.ENABLE.getStatus()));  
53 - List<Long> adminUserIds = storeStaffDOS.stream().map(DeliveryPickUpStoreStaffDO::getAdminUserId).collect(toList());  
54 - //2 查询绑定用户信息  
55 - List<AdminUserRespDTO> storeStaffs = adminUserApi.getUserList(adminUserIds);  
56 - return DeliveryPickUpBindStoreStaffIdReqsVO.builder().storeStaffs(storeStaffs).name(name).id(id).build();  
57 - }  
58 -  
59 - @Override  
60 - public void deleteDeliveryPickUpStoreStaff(Long userId, Long storeId) {  
61 - //通过用户编号和自提门店id查询  
62 - Long StaffId = deliveryPickUpStoreStaffMapper.selectStaffIdByUserIdAndStoreId(Collections.singletonList(userId), storeId);  
63 - // 校验存在  
64 - validateDeliveryPickUpStoreStaffExists(StaffId);  
65 - // 删除  
66 - deliveryPickUpStoreStaffMapper.deleteById(StaffId);  
67 - }  
68 -  
69 - @Override  
70 - public List<DeliveryPickUpStoreStaffDO> selectStaffByUserId(Long userId) {  
71 - return deliveryPickUpStoreStaffMapper.selectList(new LambdaQueryWrapper<DeliveryPickUpStoreStaffDO>().eq(DeliveryPickUpStoreStaffDO::getAdminUserId,userId));  
72 - }  
73 -  
74 - private void validateDeliveryPickUpStoreStaffExists(Long id) {  
75 - if (deliveryPickUpStoreStaffMapper.selectById(id) == null) {  
76 - throw exception(PICK_UP_STORE_STAFF_NOT_EXISTS);  
77 - }  
78 - }  
79 -}  
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,6 +7,7 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqV
7 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
8 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
9 9
  10 +import java.util.ArrayList;
10 import java.util.Collection; 11 import java.util.Collection;
11 import java.util.List; 12 import java.util.List;
12 13
@@ -34,6 +35,9 @@ public interface AdminUserMapper extends BaseMapperX&lt;AdminUserDO&gt; { @@ -34,6 +35,9 @@ public interface AdminUserMapper extends BaseMapperX&lt;AdminUserDO&gt; {
34 .inIfPresent(AdminUserDO::getDeptId, deptIds) 35 .inIfPresent(AdminUserDO::getDeptId, deptIds)
35 .orderByDesc(AdminUserDO::getId); 36 .orderByDesc(AdminUserDO::getId);
36 if(userIds != null){ 37 if(userIds != null){
  38 + if(userIds.isEmpty()){
  39 + return new PageResult<AdminUserDO>().setList(new ArrayList<>()).setTotal(0L);
  40 + }
37 adminUserDOLambdaQueryWrapperX.in(AdminUserDO::getId, userIds); 41 adminUserDOLambdaQueryWrapperX.in(AdminUserDO::getId, userIds);
38 } 42 }
39 return selectPage(reqVO, adminUserDOLambdaQueryWrapperX); 43 return selectPage(reqVO, adminUserDOLambdaQueryWrapperX);