From 52ae90b3ad7eb167af53e2b61f10d7bc08860c3d Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 11 Nov 2021 17:02:14 +0800 Subject: [PATCH] 20211108 --- gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java | 49 ++++++++++++++++++++++++++++--------------------- 1 files changed, 28 insertions(+), 21 deletions(-) diff --git a/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java b/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java index 7d3e689..501c1f7 100644 --- a/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java +++ b/gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java @@ -24,6 +24,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; @Service @@ -234,28 +235,34 @@ if (ScoreGoods.ISQG_YES.equals(goods.getIsQg())) { //限购数量 Integer quotaTime = goods.getQuotaTime() == null ? 0:goods.getQuotaTime(); - //抢购时间内,用户购买该商品的数量 - Integer sumCnt = scoreOrderMapper.selectGoodsQuotaTime(addGoodsOrderDto.getUserId(),goods.getId(),goods.getQgStartTime(),goods.getQgEndTime()); - //剩余限购数量 - quotaTime = quotaTime-sumCnt; - if(goods.getQgStartTime().before(new Date()) && goods.getQgEndTime().after(new Date())){ - if(addGoodsOrderDto.getCnt() <= quotaTime){ - totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(quotaTime)); - unitPrice = sku.getPresentPrice(); - }else{ - if(quotaTime > 0){ - totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(quotaTime)).add( - sku.getOriginalPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt()-quotaTime))); - unitPrice = totalPrice.divide(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); - }else{ - totalPrice = sku.getOriginalPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); - unitPrice = sku.getOriginalPrice(); - } - } + //不限购 + if(quotaTime == 0){ + totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); + unitPrice = sku.getPresentPrice(); }else{ - //开启抢购,不再时间内,直接原价* 数量 - totalPrice = sku.getOriginalPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); - unitPrice = sku.getOriginalPrice(); + //抢购时间内,用户购买该商品的数量 + Integer sumCnt = scoreOrderMapper.selectGoodsQuotaTime(addGoodsOrderDto.getUserId(),goods.getId(),goods.getQgStartTime(),goods.getQgEndTime()); + //剩余限购数量 + quotaTime = quotaTime-sumCnt; + if(goods.getQgStartTime().before(new Date()) && goods.getQgEndTime().after(new Date())){ + if(addGoodsOrderDto.getCnt() <= quotaTime){ + totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); + unitPrice = sku.getPresentPrice(); + }else{ + if(quotaTime > 0){ + totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(quotaTime)).add( + sku.getOriginalPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt()-quotaTime))); + unitPrice = sku.getOriginalPrice(); + }else{ + totalPrice = sku.getOriginalPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); + unitPrice = sku.getOriginalPrice(); + } + } + }else{ + //开启抢购,不再时间内,直接原价* 数量 + totalPrice = sku.getOriginalPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt())); + unitPrice = sku.getOriginalPrice(); + } } }else{ //没有开启抢购,直接现价* 数量 -- Gitblit v1.9.1