From ea52270f97cc176b77fa907f3958c13e4388a05f Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Sat, 12 Jul 2025 13:17:52 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9AAPP=E9=A6=96=E9=A1=B5=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=E8=B0=83=E6=95=B4?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/xkt/StoreController.java | 2 + .../xkt/StoreProductStockController.java | 9 ++- .../xkt/UserAuthenticationController.java | 4 -- .../storeProdStock/StoreProdStockPageVO.java | 3 - .../StoreProdStockAppPageResDTO.java | 61 +++++++++++++++++++ .../xkt/mapper/StoreProductStockMapper.java | 8 +++ .../service/IStoreProductStockService.java | 8 +++ .../impl/StoreProductStockServiceImpl.java | 26 ++++++++ .../mapper/StoreProductStockMapper.xml | 23 ++++++- 9 files changed, 135 insertions(+), 9 deletions(-) create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/storeProductStock/StoreProdStockAppPageResDTO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java index 2c719c2ef..f24fb815b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java @@ -37,9 +37,11 @@ public class StoreController extends XktBaseController { final TokenService tokenService; + // TODO 获取试用期即将到期的档口 // TODO 获取试用期即将到期的档口 // TODO 获取获取正式使用即将到期的档口 + // TODO 获取获取正式使用即将到期的档口 @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductStockController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductStockController.java index 9bc0fe4d6..536cf9f2a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductStockController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreProductStockController.java @@ -41,7 +41,14 @@ public class StoreProductStockController extends XktBaseController { final IStoreProductStockService storeProdStockService; - @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store,seller,agent')||@ss.hasSupplierSubRole()") + @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,seller,agent')") + @ApiOperation(value = "[APP]查询库存列表", httpMethod = "POST", response = R.class) + @PostMapping("/app/page") + public R> selectAppPage(@Validated @RequestBody StoreProdStockPageVO pageVO) { + return R.ok(storeProdStockService.selectAppPage(BeanUtil.toBean(pageVO, StoreProdStockPageDTO.class))); + } + + @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()") @ApiOperation(value = "查询档口库存列表", httpMethod = "POST", response = R.class) @PostMapping("/page") public R> selectPage(@Validated @RequestBody StoreProdStockPageVO pageVO) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserAuthenticationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserAuthenticationController.java index d1a3e418a..3955b4d46 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserAuthenticationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/UserAuthenticationController.java @@ -30,10 +30,6 @@ public class UserAuthenticationController extends XktBaseController { final IUserAuthenticationService userAuthService; - // APP 代发联系功能 - // APP 代发联系功能 - // APP 代发联系功能 - @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") @ApiOperation(value = "新增代发 ", httpMethod = "POST", response = R.class) @PostMapping() diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockPageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockPageVO.java index 315f453de..8d9032da9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockPageVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdStock/StoreProdStockPageVO.java @@ -16,9 +16,6 @@ import javax.validation.constraints.NotNull; @Data public class StoreProdStockPageVO extends BasePageVO { - @ApiModelProperty(value = "档口ID", required = true) - @NotNull(message = "档口ID不能为空") - private Long storeId; @ApiModelProperty(value = "商品货号") private String prodArtNum; diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductStock/StoreProdStockAppPageResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductStock/StoreProdStockAppPageResDTO.java new file mode 100644 index 000000000..90eacdca3 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProductStock/StoreProdStockAppPageResDTO.java @@ -0,0 +1,61 @@ +package com.ruoyi.xkt.dto.storeProductStock; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口商品库存分页返回数据") +@Data +@Accessors(chain = true) +public class StoreProdStockAppPageResDTO { + + @ApiModelProperty(value = "档口商品库存ID") + private Long storeProdStockId; + @JsonIgnore + @ApiModelProperty(value = "档口商品ID") + private Long storeProdId; + @ApiModelProperty(value = "档口商品主图url") + private String mainPicUrl; + @ApiModelProperty(value = "商品货号") + private String prodArtNum; + @ApiModelProperty(value = "颜色名称") + private String colorName; + @ApiModelProperty(value = "尺码30") + private Integer size30; + @ApiModelProperty(value = "尺码31") + private Integer size31; + @ApiModelProperty(value = "尺码32") + private Integer size32; + @ApiModelProperty(value = "尺码33") + private Integer size33; + @ApiModelProperty(value = "尺码34") + private Integer size34; + @ApiModelProperty(value = "尺码35") + private Integer size35; + @ApiModelProperty(value = "尺码36") + private Integer size36; + @ApiModelProperty(value = "尺码37") + private Integer size37; + @ApiModelProperty(value = "尺码38") + private Integer size38; + @ApiModelProperty(value = "尺码39") + private Integer size39; + @ApiModelProperty(value = "尺码40") + private Integer size40; + @ApiModelProperty(value = "尺码41") + private Integer size41; + @ApiModelProperty(value = "尺码42") + private Integer size42; + @ApiModelProperty(value = "尺码43") + private Integer size43; + @ApiModelProperty(value = "总数量") + private Integer totalStock; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductStockMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductStockMapper.java index 63fc67f3e..e50e05ecf 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductStockMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreProductStockMapper.java @@ -3,6 +3,7 @@ package com.ruoyi.xkt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.xkt.domain.StoreProductStock; import com.ruoyi.xkt.dto.dailyStoreTag.DailyStoreTagDTO; +import com.ruoyi.xkt.dto.storeProductStock.StoreProdStockAppPageResDTO; import com.ruoyi.xkt.dto.storeProductStock.StoreProdStockDownloadDTO; import com.ruoyi.xkt.dto.storeProductStock.StoreProdStockPageDTO; import com.ruoyi.xkt.dto.storeProductStock.StoreProdStockPageResDTO; @@ -26,6 +27,13 @@ public interface StoreProductStockMapper extends BaseMapper { */ List selectStockPage(StoreProdStockPageDTO pageDTO); + /** + * 查询APP库存列表 + * @param pageDTO 入参 + * @return List + */ + List selectAppStockPage(StoreProdStockPageDTO pageDTO); + /** * 筛选库存前10的档口 * diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductStockService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductStockService.java index 50175f1e1..58965562d 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductStockService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreProductStockService.java @@ -98,4 +98,12 @@ public interface IStoreProductStockService { * @return List */ List export(StoreProdStockExportDTO exportDTO); + + /** + * 查询APP库存列表 + * + * @param pageDTO 入参 + * @return List + */ + Page selectAppPage(StoreProdStockPageDTO pageDTO); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStockServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStockServiceImpl.java index 1d46120c0..fc27477fc 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStockServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStockServiceImpl.java @@ -50,6 +50,32 @@ public class StoreProductStockServiceImpl implements IStoreProductStockService { final StoreProductMapper storeProdMapper; final StoreProductColorSizeMapper prodColorSizeMapper; + + /** + * 查询APP库存列表 + * + * @param pageDTO 入参 + * @return List + */ + @Override + @Transactional(readOnly = true) + public Page selectAppPage(StoreProdStockPageDTO pageDTO) { + PageHelper.startPage(pageDTO.getPageNum(), pageDTO.getPageSize()); + List stockList = this.storeProdStockMapper.selectAppStockPage(pageDTO); + if (CollectionUtils.isEmpty(stockList)) { + return Page.empty(pageDTO.getPageSize(), pageDTO.getPageNum()); + } + // 提取查询结果中的商店产品ID列表 + List storeProdIdList = stockList.stream().map(StoreProdStockAppPageResDTO::getStoreProdId).collect(Collectors.toList()); + // 查找排名第一个商品主图列表 + List mainPicList = this.storeProdFileMapper.selectMainPicByStoreProdIdList(storeProdIdList, FileType.MAIN_PIC.getValue(), 1); + Map mainPicMap = CollectionUtils.isEmpty(mainPicList) ? new HashMap<>() : mainPicList.stream() + .collect(Collectors.toMap(StoreProdMainPicDTO::getStoreProdId, StoreProdMainPicDTO::getFileUrl)); + // 为每个产品设置主图URL和标准尺码列表 + stockList.forEach(x -> x.setMainPicUrl(mainPicMap.get(x.getStoreProdId()))); + return Page.convert(new PageInfo<>(stockList)); + } + @Override @Transactional(readOnly = true) public Page selectPage(StoreProdStockPageDTO pageDTO) { diff --git a/xkt/src/main/resources/mapper/StoreProductStockMapper.xml b/xkt/src/main/resources/mapper/StoreProductStockMapper.xml index 427b8fa64..677724b66 100644 --- a/xkt/src/main/resources/mapper/StoreProductStockMapper.xml +++ b/xkt/src/main/resources/mapper/StoreProductStockMapper.xml @@ -4,7 +4,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + SELECT + sps.id AS storeProdStockId, sps.store_prod_id, sps.prod_art_num, sps.color_name, + sps.size_30 AS size30, sps.size_31 AS size31, sps.size_32 AS size32, sps.size_33 AS size33, sps.size_34 AS size34, sps.size_35 AS size35, sps.size_36 AS size36, sps.size_37 AS size37, + sps.size_38 AS size38, sps.size_39 AS size39, sps.size_40 AS size40, sps.size_41 AS size41, sps.size_42 AS size42, sps.size_43 AS size43, + (IFNULL(sps.size_30, 0) + IFNULL(sps.size_31, 0) + IFNULL(sps.size_32, 0) + IFNULL(sps.size_33, 0) + + IFNULL(sps.size_34, 0) + IFNULL(sps.size_35, 0) + IFNULL(sps.size_36, 0) + IFNULL(sps.size_37, 0) + + IFNULL(sps.size_38, 0) + IFNULL(sps.size_39, 0) + IFNULL(sps.size_40, 0) + IFNULL(sps.size_41, 0) + + IFNULL(sps.size_42, 0) + IFNULL(sps.size_43, 0)) AS totalStock + FROM + store_product_stock sps left join store_product sp on sps.store_prod_id = sp.id left join sys_product_category spc on sp.prod_cate_id = spc.id + WHERE + sps.del_flag = 0 + and sps.prod_art_num like concat('%', #{prodArtNum}, '%') + ORDER BY + sps.store_prod_id, + sps.store_color_id + + +