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