From c7d9c1d4c8e497bf38025d1e9a69a649afac6148 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 11 Nov 2021 15:15:42 +0800
Subject: [PATCH] 20211108

---
 gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java |   29 ++++++++++++++++++-----------
 1 files changed, 18 insertions(+), 11 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 20729e4..b5146f9 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
@@ -210,15 +210,15 @@
             throw new RestException(-3, "商品不存在或已下架");
         }
 
-        if (ScoreGoods.ISQG_YES.equals(goods.getIsQg())) {
-            if (new Date().before(goods.getQgStartTime())) {
-                throw new RestException(-3, "抢购未开始");
-            }
-
-            if (new Date().after(goods.getQgEndTime())) {
-                throw new RestException(-3, "抢购已结束");
-            }
-        }
+//        if (ScoreGoods.ISQG_YES.equals(goods.getIsQg())) {
+//            if (new Date().before(goods.getQgStartTime())) {
+//                throw new RestException(-3, "抢购未开始");
+//            }
+//
+//            if (new Date().after(goods.getQgEndTime())) {
+//                throw new RestException(-3, "抢购已结束");
+//            }
+//        }
 
         if (addGoodsOrderDto.getCnt() > sku.getStock()) {
             throw new RestException(-3, "库存不足");
@@ -230,6 +230,7 @@
         }
 
         BigDecimal totalPrice = BigDecimal.ZERO;
+        BigDecimal unitPrice = BigDecimal.ZERO;
         if (ScoreGoods.ISQG_YES.equals(goods.getIsQg())) {
             //限购数量
             Integer quotaTime = goods.getQuotaTime() == null ? 0:goods.getQuotaTime();
@@ -239,22 +240,27 @@
             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));
+                    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 = totalPrice.divide(BigDecimal.valueOf(addGoodsOrderDto.getCnt()));
                     }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{
             //没有开启抢购,直接现价* 数量
             totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt()));
+            unitPrice = sku.getPresentPrice();
         }
         BigDecimal score = new BigDecimal(accountInfo.getCollectScore());
         if (score.compareTo(totalPrice) < 0) {
@@ -279,7 +285,8 @@
         orderDetails.setOrderId(order.getId());
         orderDetails.setCnt(addGoodsOrderDto.getCnt());
         orderDetails.setTotalPrice(totalPrice);
-        orderDetails.setUnitPrice(sku.getPresentPrice());
+//        orderDetails.setUnitPrice(sku.getPresentPrice());
+        orderDetails.setUnitPrice(unitPrice);
         orderDetails.setGoodsId(goods.getId());
         orderDetails.setSkuId(sku.getId());
         orderDetails.setThumb(goods.getThumb());

--
Gitblit v1.9.1