From ccf8413a33e85589d0ed219bd1a0aff88e6a1e39 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 15 Dec 2021 14:48:58 +0800
Subject: [PATCH] Merge branch 'score-shop' into xc-prd
---
gc-shop/src/main/java/com/xzx/gc/shop/service/OrderService.java | 72 +++++++++++++++++++++++++----------
1 files changed, 51 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 b5146f9..05d418a 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
@@ -2,6 +2,8 @@
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.databind.DeserializationFeature;
@@ -24,6 +26,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.*;
@Service
@@ -197,6 +200,7 @@
}
// scoreOrder.setStatus(ScoreOrder.STATUS_DONE);
scoreOrder.setIsFinish(ScoreOrder.ISFINISH_YES);
+ scoreOrder.setIsFinishTime(new Date());
scoreOrder.setVoucherImg(CollUtil.join(model.getVoucherImgs(),","));
scoreOrderMapper.updateByPrimaryKeySelective(scoreOrder);
return scoreOrder.getId();
@@ -234,28 +238,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(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();
- }
- }
+ //不限购
+ 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{
//没有开启抢购,直接现价* 数量
@@ -483,4 +493,24 @@
statisticsVo.setTotalBuyCnt(Integer.parseInt(allData.get("totalBuy").toString()));
return statisticsVo;
}
+
+ public void autoConfirmReceipt() {
+ //获取七天之前后台点击确认提货的订单
+ DateTime dateTime = DateUtil.offsetDay(new Date(), -7);
+ //
+ List<ScoreOrder> orders = scoreOrderMapper.selectOrderByIsFinish(dateTime);
+ if(CollUtil.isNotEmpty(orders)){
+ for(ScoreOrder order : orders){
+ scoreOrderMapper.updateOrderStatusToDone(order.getId());
+ }
+ }
+
+ }
+
+
+// public static void main(String[] args) {
+// DateTime dateTime = DateUtil.offsetDay(new Date(), -7);
+// System.out.println(dateTime);
+// }
+
}
--
Gitblit v1.9.1