Commit 3e5372436112c066d6bddf03e8fc4e14b4de2e4b
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<DeliveryPickUpSto | @@ -28,6 +28,10 @@ public interface DeliveryPickUpStoreMapper extends BaseMapperX<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<AdminUserDO> { | @@ -34,6 +35,9 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> { | ||
| 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); |