Commit 6bfe6285035175b92234b6c9b41dffdaef6a8a55
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
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<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<AdminUserDO> { |
| 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 | ... | ... |