Compare commits

3 Commits

Author SHA1 Message Date
5eda003316 联动 上下架 2026-03-30 17:38:34 +08:00
a79964c9b6 联动 上下架 2026-03-30 17:02:28 +08:00
22c1436375 库存 上下架 2026-03-30 16:20:22 +08:00
2 changed files with 37 additions and 20 deletions

View File

@@ -25,9 +25,15 @@ public class ProductIsSaleParam implements Serializable {
/**
* 上下架类型 product-商品 sku-SKU
*/
@NotBlank(message = "上下架类型不能为空", groups = DefaultGroup.class)
@NotBlank(message = "上下架属性不能为空", groups = DefaultGroup.class)
private String type;
/**
* 操作类型
* stock 库存 sale 上下架
*/
private String optType = "sale";
/**
* 商品id/sku id
*/

View File

@@ -6,7 +6,6 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.write.handler.SheetWriteHandler;
import com.alibaba.excel.write.merge.OnceAbsoluteMergeStrategy;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONWriter;
@@ -49,7 +48,6 @@ import java.time.LocalDate;
import java.time.LocalTime;
import java.time.format.TextStyle;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import static com.czg.constant.CacheConstant.ADMIN_CLIENT_PRODUCT_LIST;
@@ -717,30 +715,36 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
sensitiveOperation = "下架";
}
Long prodId = null;
if (ProductIsSaleTypeEnum.SKU.value().equals(type)) {
if (ProductIsSaleTypeEnum.SKU.value().equals(type) && "sale".equals(param.getOptType())) {
ProdSku prodSku = prodSkuMapper.selectOneById(id);
if (prodSku == null) {
throw new CzgException("SKU不存在");
}
prodId = prodSku.getProductId();
prodSku.setIsGrounding(isSale);
prodSkuMapper.update(prodSku);
long normalCount = prodSkuMapper.selectCountByQuery(QueryWrapper.create()
.eq(ProdSku::getProductId, prodSku.getProductId())
.eq(ProdSku::getIsGrounding, SystemConstants.OneZero.ZERO)
.eq(ProdSku::getIsGrounding, SystemConstants.OneZero.ONE)
.eq(ProdSku::getIsDel, SystemConstants.OneZero.ZERO)
);
if (normalCount == 0) {
Product product = mapper.selectOneById(prodId);
if (normalCount == 0 && product.getIsSale() == SystemConstants.OneZero.ONE) {
UpdateChain.of(Product.class)
.set(Product::getIsSale, isSale)
.set(Product::getIsSale, SystemConstants.OneZero.ZERO)
.eq(Product::getId, prodSku.getProductId())
.eq(Product::getShopId, shopId)
.update();
}else if(normalCount > 0 && product.getIsSale() == SystemConstants.OneZero.ZERO) {
UpdateChain.of(Product.class)
.set(Product::getIsSale, SystemConstants.OneZero.ONE)
.eq(Product::getId, prodSku.getProductId())
.eq(Product::getShopId, shopId)
.update();
prodId = prodSku.getProductId();
}
Long productId = prodSku.getProductId();
Product product = mapper.selectOneById(productId);
sensitiveOperation = sensitiveOperation + "商品:" + product.getName() + " 规格:" + prodSku.getSpecInfo();
} else if (ProductIsSaleTypeEnum.PRODUCT.value().equals(type)) {
if("sale".equals(param.getOptType())){
UpdateChain.of(Product.class)
.set(Product::getIsSale, isSale)
.eq(Product::getId, id)
@@ -751,6 +755,13 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
.eq(ProdSku::getProductId, id)
.eq(ProdSku::getShopId, shopId)
.update();
}else if("stock".equals(param.getOptType())){
UpdateChain.of(Product.class)
.set(Product::getIsStock, isSale)
.eq(Product::getId, id)
.eq(Product::getShopId, shopId)
.update();
}
Product product = mapper.selectOneById(id);
prodId = product.getId();
sensitiveOperation = sensitiveOperation + "商品:" + product.getName();