商品模块代码提交

This commit is contained in:
Tankaikai 2025-02-19 20:16:03 +08:00
parent 6312eff400
commit 1f3954df60
3 changed files with 40 additions and 9 deletions

View File

@ -4,6 +4,7 @@ import com.czg.log.annotation.OperationLog;
import com.czg.product.dto.ProdSkuDTO; import com.czg.product.dto.ProdSkuDTO;
import com.czg.product.dto.ProductDTO; import com.czg.product.dto.ProductDTO;
import com.czg.product.param.ProductIsSaleParam; import com.czg.product.param.ProductIsSaleParam;
import com.czg.product.param.ProductIsSoldOutParam;
import com.czg.product.service.ProductService; import com.czg.product.service.ProductService;
import com.czg.resp.CzgResult; import com.czg.resp.CzgResult;
import com.czg.utils.AssertUtil; import com.czg.utils.AssertUtil;
@ -97,4 +98,15 @@ public class ProductController {
return CzgResult.success(); return CzgResult.success();
} }
/**
* 商品-标记售罄
*/
@PostMapping("/markIsSoldOut")
@OperationLog("商品-标记售罄")
//@SaAdminCheckPermission("product:markIsSoldOut")
public CzgResult<Void> markIsSoldOutProduct(@RequestBody @Validated({DefaultGroup.class}) ProductIsSoldOutParam param) {
productService.markProductIsSoldOut(param);
return CzgResult.success();
}
} }

View File

@ -3,6 +3,7 @@ package com.czg.product.service;
import com.czg.product.dto.ProductDTO; import com.czg.product.dto.ProductDTO;
import com.czg.product.entity.Product; import com.czg.product.entity.Product;
import com.czg.product.param.ProductIsSaleParam; import com.czg.product.param.ProductIsSaleParam;
import com.czg.product.param.ProductIsSoldOutParam;
import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService; import com.mybatisflex.core.service.IService;
@ -28,4 +29,6 @@ public interface ProductService extends IService<Product> {
boolean deleteProduct(Long id); boolean deleteProduct(Long id);
boolean onOffProduct(ProductIsSaleParam param); boolean onOffProduct(ProductIsSaleParam param);
boolean markProductIsSoldOut(ProductIsSoldOutParam param);
} }

View File

@ -16,6 +16,7 @@ import com.czg.product.entity.Product;
import com.czg.product.enums.ProductIsSaleTypeEnum; import com.czg.product.enums.ProductIsSaleTypeEnum;
import com.czg.product.enums.ProductTypeEnum; import com.czg.product.enums.ProductTypeEnum;
import com.czg.product.param.ProductIsSaleParam; import com.czg.product.param.ProductIsSaleParam;
import com.czg.product.param.ProductIsSoldOutParam;
import com.czg.product.service.ProductService; import com.czg.product.service.ProductService;
import com.czg.sa.StpKit; import com.czg.sa.StpKit;
import com.czg.service.product.mapper.ProdSkuMapper; import com.czg.service.product.mapper.ProdSkuMapper;
@ -256,23 +257,38 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
String type = param.getType(); String type = param.getType();
Long id = param.getId(); Long id = param.getId();
Integer isSale = param.getIsSale(); Integer isSale = param.getIsSale();
UpdateChain.of(ProdSku.class)
.set(ProdSku::getIsGrounding, isSale)
.eq(ProdSku::getId, id)
.update();
if (ProductIsSaleTypeEnum.PRODUCT.value().equals(type)) { if (ProductIsSaleTypeEnum.PRODUCT.value().equals(type)) {
UpdateChain.of(Product.class) UpdateChain.of(Product.class)
.set(Product::getIsSale, isSale) .set(Product::getIsSale, isSale)
.eq(Product::getId, id) .eq(Product::getId, id)
.eq(Product::getShopId, shopId) .eq(Product::getShopId, shopId)
.update(); .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; 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;
}
} }