This commit is contained in:
moxiangrong
2024-02-22 18:12:41 +08:00
parent 8c015f02de
commit 8e918267ca
5 changed files with 21 additions and 4 deletions

View File

@ -1801,6 +1801,7 @@ public class AppStoreOrderServiceImpl extends ServiceImpl<StoreOrderMapper, Stor
//会员是否包邮
if (priceGroupDTO.getVipFreeShipping()) {
storeFreePostage = storePostage;
cartInfo.forEach(res -> res.setPostagePrice(BigDecimal.ZERO));
storePostage = BigDecimal.ZERO;
}

View File

@ -74,4 +74,6 @@ public interface ErrorCodeConstants {
ErrorCode CAMPAIGN_NUMBER_ERROR = new ErrorCode(1008007011, " 超出活动购买数量!");
ErrorCode CAMPAIGN_PRICE_NOT_ZERO_ERROR = new ErrorCode(1008007012, " 选择规格[{}]的商品活动价格不能为0");
}

View File

@ -18,6 +18,7 @@ import co.yixiang.yshop.module.product.dal.dataobject.storeproduct.StoreProductD
import co.yixiang.yshop.module.product.dal.dataobject.storeproductattrvalue.StoreProductAttrValueDO;
import co.yixiang.yshop.module.product.dal.mysql.campaigndetail.CampaignDetailMapper;
import co.yixiang.yshop.module.product.dal.mysql.campaigninfo.CampaignInfoMapper;
import co.yixiang.yshop.module.product.enums.campaign.CampaignTypeEnum;
import co.yixiang.yshop.module.product.enums.common.PageTypeEnum;
import co.yixiang.yshop.module.product.enums.spu.ProductSpuStatusEnum;
import co.yixiang.yshop.module.product.mq.producer.PayRefundProducer;
@ -35,6 +36,7 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.TimeUnit;
@ -113,6 +115,13 @@ public class CampaignInfoServiceImpl implements CampaignInfoService {
for (CampaignDetailCreateReqVO detail : details) {
StoreProductAttrValueDO productAttrValueDO = productAttrValueDOMap.get(detail.getSkuId());
if (ObjectUtil.isNull(productAttrValueDO)) throw exception(STORE_PRODUCT_ATTR_VALUE_NOT_EXISTS);
// 计算折扣价格
if (CampaignTypeEnum.DISCOUNT.getValue().equals(createReqVO.getType()))
detail.setPrice(productAttrValueDO.getPrice().multiply(detail.getDiscount())
.divide(BigDecimal.TEN).setScale(2, RoundingMode.HALF_UP));
// 活动价格不能为0
if(productAttrValueDO.getPrice().compareTo(BigDecimal.ZERO) == 0)
throw exception(CAMPAIGN_PRICE_NOT_ZERO_ERROR, productAttrValueDO.getSku());
// 检测价格
if (productAttrValueDO.getPrice().compareTo(detail.getPrice()) < 0)
throw exception(CAMPAIGN_PASS_ORIGINAL_PRICE_ERROR, productAttrValueDO.getSku());
@ -223,6 +232,13 @@ public class CampaignInfoServiceImpl implements CampaignInfoService {
for (CampaignDetailCreateReqVO detail : details) {
StoreProductAttrValueDO productAttrValueDO = productAttrValueDOMap.get(detail.getSkuId());
if (ObjectUtil.isNull(productAttrValueDO)) throw exception(STORE_PRODUCT_ATTR_VALUE_NOT_EXISTS);
// 计算折扣价格
if (CampaignTypeEnum.DISCOUNT.getValue().equals(updateReqVO.getType()))
detail.setPrice(productAttrValueDO.getPrice().multiply(detail.getDiscount())
.divide(BigDecimal.TEN).setScale(2, RoundingMode.HALF_UP));
// 活动价格不能为0
if(productAttrValueDO.getPrice().compareTo(BigDecimal.ZERO) == 0)
throw exception(CAMPAIGN_PRICE_NOT_ZERO_ERROR, productAttrValueDO.getSku());
// 检测价格
if (productAttrValueDO.getPrice().compareTo(detail.getPrice()) < 0)
throw exception(CAMPAIGN_PASS_ORIGINAL_PRICE_ERROR, productAttrValueDO.getSku());

View File

@ -52,6 +52,7 @@
TRUNCATE TABLE yshop_store_order_status;
TRUNCATE TABLE yshop_store_cart;
TRUNCATE TABLE yshop_store_order_cart_info;
TRUNCATE TABLE yshop_store_order_detail;
TRUNCATE TABLE yshop_store_after_sales;
TRUNCATE TABLE yshop_store_after_sales_item;
TRUNCATE TABLE yshop_store_after_sales_status;