From 207262199086205d856882803643ed56328e18b5 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Thu, 27 Jun 2024 14:09:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=85=A5=E5=BA=93=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BA=93=E5=AD=98=E8=AD=A6=E5=91=8A=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/product/StockController.java | 30 ++++++++++++++++++- .../product/TbProductSkuRepository.java | 7 ++++- .../impl/productimpl/StockServiceImpl.java | 19 ++++++++++++ .../cashier/service/product/StockService.java | 9 +++++- .../java/cn/ysk/cashier/vo/StockPageImpl.java | 26 ++++++++++++++++ .../ysk/cashier/vo/StockUpdateWarnLineVO.java | 13 ++++++++ .../java/cn/ysk/cashier/vo/StockV2Vo.java | 23 ++++++++++++++ 7 files changed, 124 insertions(+), 3 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/vo/StockPageImpl.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/vo/StockUpdateWarnLineVO.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/StockController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/StockController.java index ea203e2a..a0c67487 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/StockController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/product/StockController.java @@ -1,21 +1,32 @@ package cn.ysk.cashier.controller.product; +import cn.hutool.core.util.StrUtil; import cn.ysk.cashier.annotation.Log; import cn.ysk.cashier.dto.product.StockQueryDto; import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.service.product.StockService; +import cn.ysk.cashier.utils.BeanUtil; +import cn.ysk.cashier.utils.SecurityUtils; +import cn.ysk.cashier.vo.StockPageImpl; import cn.ysk.cashier.vo.StockUpdateValueVO; +import cn.ysk.cashier.vo.StockUpdateWarnLineVO; +import cn.ysk.cashier.vo.StockV2Vo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; +import java.util.Map; @RestController @RequiredArgsConstructor @@ -89,7 +100,14 @@ public class StockController { public ResponseEntity queryTbProductV2(StockQueryDto criteria, @RequestParam(required = false, defaultValue = "0") Integer page, @RequestParam(required = false, defaultValue = "10") Integer size){ - return new ResponseEntity<>(stockService.queryAllV2(criteria,page,size), HttpStatus.OK); + Page stockV2Vos = stockService.queryAllV2(criteria, page, size); + Map dataMap = BeanUtil.transBean2Map(stockV2Vos); + if (stockV2Vos.getContent().isEmpty()) { + dataMap.put("warnLine", 0); + }else { + dataMap.put("warnLine", stockV2Vos.getContent().get(0).getWarnLine()); + } + return new ResponseEntity<>(dataMap, HttpStatus.OK); } @GetMapping("/sku") @@ -113,4 +131,14 @@ public class StockController { return new ResponseEntity<>("修改成功", HttpStatus.OK); } + @PutMapping("warnLine") + @ApiOperation("修改商品警告线") + public ResponseEntity updateProductWarnLine(@RequestBody StockUpdateWarnLineVO stockUpdateWarnLineVO) { + if (StrUtil.isBlank(stockUpdateWarnLineVO.getShopId()) || stockUpdateWarnLineVO.getWarnLine() == null || stockUpdateWarnLineVO.getWarnLine() <= 0) { + throw new BadRequestException("参数有误"); + } + stockService.updateProductWarnLine(stockUpdateWarnLineVO); + return new ResponseEntity<>("修改成功", HttpStatus.OK); + } + } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java index e924e355..1a4f57fc 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/product/TbProductSkuRepository.java @@ -59,7 +59,7 @@ public interface TbProductSkuRepository extends JpaRepository queryAllV2(StockQueryDto criteria, Integer page, Integer size); List queryProductSku(String productId); @@ -37,4 +38,10 @@ public interface StockService { void updateIsStock(Integer proId, String shopId,Integer isStock); void updateProductStatus(StockUpdateValueVO updateValueVO); + + /** + * 商品库存警戒线设置 + * @param stockUpdateWarnLineVO 警戒线 + */ + void updateProductWarnLine(StockUpdateWarnLineVO stockUpdateWarnLineVO); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockPageImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockPageImpl.java new file mode 100644 index 00000000..74ce66d1 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockPageImpl.java @@ -0,0 +1,26 @@ +package cn.ysk.cashier.vo; + +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; + +import java.util.List; + +public class StockPageImpl extends PageImpl { + private Integer warnLine; + + public StockPageImpl(List content, Pageable pageable, long total) { + super(content, pageable, total); + } + + public StockPageImpl(List content) { + super(content); + } + + public Integer getWarnLine() { + return warnLine; + } + + public void setWarnLine(Integer warnLine) { + this.warnLine = warnLine; + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockUpdateWarnLineVO.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockUpdateWarnLineVO.java new file mode 100644 index 00000000..1b7aa7db --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockUpdateWarnLineVO.java @@ -0,0 +1,13 @@ +package cn.ysk.cashier.vo; + +import lombok.Data; + +import javax.validation.constraints.Min; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +@Data +public class StockUpdateWarnLineVO { + private String shopId; + private Integer warnLine; +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockV2Vo.java b/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockV2Vo.java index d8979eec..18736c12 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockV2Vo.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/vo/StockV2Vo.java @@ -22,6 +22,7 @@ public class StockV2Vo { private Integer isDistribute; private Integer isPauseSale; private Object number; + private Integer warnLine; public StockV2Vo(Integer proId, Integer skuId, String name, String unitName,String specSnap, Object number,Object stockNumber, Integer isDistribute) { this.proId = proId; @@ -55,6 +56,28 @@ public class StockV2Vo { this.isPauseSale = isPauseSale; } + public StockV2Vo(Integer id, Integer proId,String img,String name,String unitName, String type, String specSnap, + Object isStock, Object number, Integer isDistribute, Integer isPauseSale, boolean isPro, Integer warnLine) { + this.id = id.toString() + "-" + proId.toString(); + if (isPro) { + this.id += proId; + } else { + this.id += id; + } + this.skuId = id; + this.proId = proId; + this.img = img; + this.name = name; + this.unitName = unitName; + setType(type); + this.specSnap = specSnap; + this.isStock = isStock; + this.stockNumber = number; + this.isDistribute = isDistribute; + this.isPauseSale = isPauseSale; + this.warnLine = warnLine; + } + public void setType(String type) { switch (type) { case "normal":