From 69b8427aa15998e9e67a80dc1f8489f1fb8f93de Mon Sep 17 00:00:00 2001 From: dy-hu <dy-hu@haihangyun.com> Date: Wed, 19 Jun 2024 21:36:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=9F=8E=E5=89=8D=E7=AB=AF=E3=80=81?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E8=AE=A2=E5=8D=95=E6=8F=90=E4=BA=A4=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E6=96=B0=E5=A2=9E=E4=B8=8B=E5=8D=95=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E4=B8=8A=E6=9E=B6=E6=A0=A1=E9=AA=8C=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cereshop/app/dao/product/CereProductSkuDAO.java | 8 ++++---- .../service/order/impl/CereShopOrderServiceImpl.java | 18 ++++++++++++++---- .../app/service/product/CereProductSkuService.java | 7 +++---- .../product/impl/CereProductSkuServiceImpl.java | 9 +++++---- .../mybatis/mapper/product/CereProductSkuDAO.xml | 6 ++++++ 5 files changed, 32 insertions(+), 16 deletions(-) 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<CereProductSku> { List<CereProductSku> 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<SkuValue> 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 </select> + + <select id="findShopProdBySkuId" resultType="com.shop.cereshop.commons.domain.product.CereShopProduct"> + SELECT csp.* from cere_shop_product csp + join cere_product_sku cps on csp.product_id = cps.product_id + where cps.sku_id = #{skuId} + </select> </mapper>