diff --git a/cash-api/product-server/src/main/java/com/czg/controller/admin/ProductController.java b/cash-api/product-server/src/main/java/com/czg/controller/admin/ProductController.java index 834dfe94..2fbeeb45 100644 --- a/cash-api/product-server/src/main/java/com/czg/controller/admin/ProductController.java +++ b/cash-api/product-server/src/main/java/com/czg/controller/admin/ProductController.java @@ -4,6 +4,7 @@ import com.czg.log.annotation.OperationLog; import com.czg.product.dto.ProdSkuDTO; import com.czg.product.dto.ProductDTO; import com.czg.product.param.ProductIsSaleParam; +import com.czg.product.param.ProductIsSoldOutParam; import com.czg.product.service.ProductService; import com.czg.resp.CzgResult; import com.czg.utils.AssertUtil; @@ -97,4 +98,15 @@ public class ProductController { return CzgResult.success(); } + /** + * 商品-标记售罄 + */ + @PostMapping("/markIsSoldOut") + @OperationLog("商品-标记售罄") + //@SaAdminCheckPermission("product:markIsSoldOut") + public CzgResult markIsSoldOutProduct(@RequestBody @Validated({DefaultGroup.class}) ProductIsSoldOutParam param) { + productService.markProductIsSoldOut(param); + return CzgResult.success(); + } + } \ No newline at end of file diff --git a/cash-common/cash-common-service/src/main/java/com/czg/product/service/ProductService.java b/cash-common/cash-common-service/src/main/java/com/czg/product/service/ProductService.java index 80ed1277..d1cee7ca 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/product/service/ProductService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/product/service/ProductService.java @@ -3,6 +3,7 @@ package com.czg.product.service; import com.czg.product.dto.ProductDTO; import com.czg.product.entity.Product; import com.czg.product.param.ProductIsSaleParam; +import com.czg.product.param.ProductIsSoldOutParam; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; @@ -28,4 +29,6 @@ public interface ProductService extends IService { boolean deleteProduct(Long id); boolean onOffProduct(ProductIsSaleParam param); + + boolean markProductIsSoldOut(ProductIsSoldOutParam param); } \ No newline at end of file diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java index 26be71f2..dc8f4bf3 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ProductServiceImpl.java @@ -16,6 +16,7 @@ import com.czg.product.entity.Product; import com.czg.product.enums.ProductIsSaleTypeEnum; import com.czg.product.enums.ProductTypeEnum; import com.czg.product.param.ProductIsSaleParam; +import com.czg.product.param.ProductIsSoldOutParam; import com.czg.product.service.ProductService; import com.czg.sa.StpKit; import com.czg.service.product.mapper.ProdSkuMapper; @@ -256,23 +257,38 @@ public class ProductServiceImpl extends ServiceImpl impl String type = param.getType(); Long id = param.getId(); Integer isSale = param.getIsSale(); + UpdateChain.of(ProdSku.class) + .set(ProdSku::getIsGrounding, isSale) + .eq(ProdSku::getId, id) + .update(); if (ProductIsSaleTypeEnum.PRODUCT.value().equals(type)) { UpdateChain.of(Product.class) .set(Product::getIsSale, isSale) .eq(Product::getId, id) .eq(Product::getShopId, shopId) .update(); - UpdateChain.of(ProdSku.class) - .set(ProdSku::getIsGrounding, isSale) - .eq(ProdSku::getProductId, id) - .update(); - } else if (ProductIsSaleTypeEnum.SKU.value().equals(type)) { - UpdateChain.of(ProdSku.class) - .set(ProdSku::getIsGrounding, isSale) - .eq(ProdSku::getId, id) - .update(); } return true; } + @Override + @Transactional(rollbackFor = Exception.class) + public boolean markProductIsSoldOut(ProductIsSoldOutParam param) { + Long shopId = StpKit.USER.getLoginIdAsLong(); + String type = param.getType(); + Long id = param.getId(); + Integer isSoldOut = param.getIsSoldOut(); + UpdateChain.of(ProdSku.class) + .set(ProdSku::getIsPauseSale, isSoldOut) + .eq(ProdSku::getProductId, id) + .update(); + if (ProductIsSaleTypeEnum.PRODUCT.value().equals(type)) { + UpdateChain.of(Product.class) + .set(Product::getIsSoldStock, isSoldOut) + .eq(Product::getId, id) + .eq(Product::getShopId, shopId) + .update(); + } + return true; + } } \ No newline at end of file