diff --git a/cereshop-app/src/main/java/com/shop/cereshop/app/dao/product/CereProductSkuDAO.java b/cereshop-app/src/main/java/com/shop/cereshop/app/dao/product/CereProductSkuDAO.java index 6b82a82..2e4b8fc 100644 --- a/cereshop-app/src/main/java/com/shop/cereshop/app/dao/product/CereProductSkuDAO.java +++ b/cereshop-app/src/main/java/com/shop/cereshop/app/dao/product/CereProductSkuDAO.java @@ -9,11 +9,8 @@ import com.shop.cereshop.app.page.cart.CartSku; import com.shop.cereshop.app.page.product.*; import com.shop.cereshop.app.param.groupwork.GroupWorkSettlementParam; import com.shop.cereshop.app.param.settlement.ProductSku; -import com.shop.cereshop.commons.domain.product.CereProductSku; +import com.shop.cereshop.commons.domain.product.*; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.shop.cereshop.commons.domain.product.Sku; -import com.shop.cereshop.commons.domain.product.SkuName; -import com.shop.cereshop.commons.domain.product.SkuValue; import com.shop.cereshop.commons.domain.tool.CereComposeSkuInfo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -110,4 +107,7 @@ public interface CereProductSkuDAO extends BaseMapper { List selectSceneTypeList(@Param("shopId") Long shopId, @Param("sceneType") Integer sceneType); + + CereShopProduct findShopProdBySkuId(@Param("skuId") Long skuId); + } diff --git a/cereshop-app/src/main/java/com/shop/cereshop/app/service/order/impl/CereShopOrderServiceImpl.java b/cereshop-app/src/main/java/com/shop/cereshop/app/service/order/impl/CereShopOrderServiceImpl.java index f351fd9..213878b 100644 --- a/cereshop-app/src/main/java/com/shop/cereshop/app/service/order/impl/CereShopOrderServiceImpl.java +++ b/cereshop-app/src/main/java/com/shop/cereshop/app/service/order/impl/CereShopOrderServiceImpl.java @@ -9,6 +9,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.fasterxml.jackson.databind.ObjectMapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -125,10 +126,7 @@ import com.shop.cereshop.commons.domain.order.CereOrderReconciliation; import com.shop.cereshop.commons.domain.order.CereShopOrder; import com.shop.cereshop.commons.domain.pay.CerePayLog; import com.shop.cereshop.commons.domain.platformtool.*; -import com.shop.cereshop.commons.domain.product.CereCommentWord; -import com.shop.cereshop.commons.domain.product.CereProductMember; -import com.shop.cereshop.commons.domain.product.CereProductSku; -import com.shop.cereshop.commons.domain.product.CereProductStatsByDay; +import com.shop.cereshop.commons.domain.product.*; import com.shop.cereshop.commons.domain.scene.CereShopScene; import com.shop.cereshop.commons.domain.scene.CereShopSceneMember; import com.shop.cereshop.commons.domain.sensitive.CerePlatformSensitive; @@ -399,6 +397,18 @@ public class CereShopOrderServiceImpl implements CereShopOrderService { }else if (param.getPaymentMode() == null) { param.setPaymentMode(PayConfig.paymentMode); } + //校验商品是否有效(非上架商品为无效) + if (ObjectUtils.isNotEmpty(param.getShops())){ + for (OrderProductParam shop : param.getShops()) { + for (ProductSku productSku : shop.getSkus()) { + CereShopProduct product = cereProductSkuService.findShopProdBySkuId(productSku.getSkuId()); + if (product.getShelveState() != 1){ + throw new CoBusinessException(CoReturnFormat.HAVE_INVALID_PRODUCT); + } + + } + } + } //额外的校验 PlaceOrderTemplate placeOrderTemplate = placeOrderFactory.getPlaceOrderTemplate(param.getType()); return placeOrderTemplate.placeOrder(param, user, ip, time); diff --git a/cereshop-app/src/main/java/com/shop/cereshop/app/service/product/CereProductSkuService.java b/cereshop-app/src/main/java/com/shop/cereshop/app/service/product/CereProductSkuService.java index 17d10a2..0ba64ba 100644 --- a/cereshop-app/src/main/java/com/shop/cereshop/app/service/product/CereProductSkuService.java +++ b/cereshop-app/src/main/java/com/shop/cereshop/app/service/product/CereProductSkuService.java @@ -9,10 +9,7 @@ import com.shop.cereshop.app.page.cart.CartSku; import com.shop.cereshop.app.page.product.*; import com.shop.cereshop.app.param.groupwork.GroupWorkSettlementParam; import com.shop.cereshop.app.param.settlement.ProductSku; -import com.shop.cereshop.commons.domain.product.CereProductSku; -import com.shop.cereshop.commons.domain.product.Sku; -import com.shop.cereshop.commons.domain.product.SkuName; -import com.shop.cereshop.commons.domain.product.SkuValue; +import com.shop.cereshop.commons.domain.product.*; import com.shop.cereshop.commons.exception.CoBusinessException; import java.util.List; @@ -85,4 +82,6 @@ public interface CereProductSkuService { int rollbackStock(Long skuId, Integer buyNumber); List findSkuValueBySkuId(String skuName, Long skuId); + + CereShopProduct findShopProdBySkuId(Long skuId); } diff --git a/cereshop-app/src/main/java/com/shop/cereshop/app/service/product/impl/CereProductSkuServiceImpl.java b/cereshop-app/src/main/java/com/shop/cereshop/app/service/product/impl/CereProductSkuServiceImpl.java index 7cb1520..a107954 100644 --- a/cereshop-app/src/main/java/com/shop/cereshop/app/service/product/impl/CereProductSkuServiceImpl.java +++ b/cereshop-app/src/main/java/com/shop/cereshop/app/service/product/impl/CereProductSkuServiceImpl.java @@ -11,10 +11,7 @@ import com.shop.cereshop.app.page.product.*; import com.shop.cereshop.app.param.groupwork.GroupWorkSettlementParam; import com.shop.cereshop.app.param.settlement.ProductSku; import com.shop.cereshop.app.service.product.CereProductSkuService; -import com.shop.cereshop.commons.domain.product.CereProductSku; -import com.shop.cereshop.commons.domain.product.Sku; -import com.shop.cereshop.commons.domain.product.SkuName; -import com.shop.cereshop.commons.domain.product.SkuValue; +import com.shop.cereshop.commons.domain.product.*; import com.shop.cereshop.commons.exception.CoBusinessException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -200,4 +197,8 @@ public class CereProductSkuServiceImpl implements CereProductSkuService { return cereProductSkuDAO.findSkuValueBySkuId(skuName, skuId); } + @Override + public CereShopProduct findShopProdBySkuId(Long skuId) { + return cereProductSkuDAO.findShopProdBySkuId(skuId); + } } diff --git a/cereshop-app/src/main/resources/mybatis/mapper/product/CereProductSkuDAO.xml b/cereshop-app/src/main/resources/mybatis/mapper/product/CereProductSkuDAO.xml index 23c5621..9f619b8 100644 --- a/cereshop-app/src/main/resources/mybatis/mapper/product/CereProductSkuDAO.xml +++ b/cereshop-app/src/main/resources/mybatis/mapper/product/CereProductSkuDAO.xml @@ -613,4 +613,10 @@ join cere_sku_real_info b on b.sku_id = a.sku_id and b.activity_type = #{sceneType} join cere_shop_product c on b.product_id = c.product_id and c.shop_id = #{shopId} and c.shelve_state = 1 + +