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 | 92 +++++++++++++++++++++++++++++++++++++++-------
1 files changed, 78 insertions(+), 14 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 dd4d79c..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
@@ -65,9 +68,10 @@
String name = StrUtil.isEmpty(model.getName())?model.getName():StringUtils.encode(model.getName());
String orderNo = model.getOrderNo();
List<Integer> status = new ArrayList<>();
- if(CollUtil.isNotEmpty(status)){
+ if(CollUtil.isNotEmpty(model.getStatus())){
status = model.getStatus();
- }else{
+ }
+ if(CollUtil.isEmpty(model.getStatus())){
status.add(1);
status.add(2);
status.add(3);
@@ -196,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();
@@ -209,15 +214,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, "库存不足");
@@ -228,7 +233,45 @@
throw new RestException(-3, "积分不足");
}
- BigDecimal totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt()));
+ BigDecimal totalPrice = BigDecimal.ZERO;
+ BigDecimal unitPrice = BigDecimal.ZERO;
+ if (ScoreGoods.ISQG_YES.equals(goods.getIsQg())) {
+ //限购数量
+ Integer quotaTime = goods.getQuotaTime() == null ? 0:goods.getQuotaTime();
+ //不限购
+ if(quotaTime == 0){
+ totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt()));
+ unitPrice = sku.getPresentPrice();
+ }else{
+ //抢购时间内,用户购买该商品的数量
+ 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{
+ //没有开启抢购,直接现价* 数量
+ totalPrice = sku.getPresentPrice().multiply(BigDecimal.valueOf(addGoodsOrderDto.getCnt()));
+ unitPrice = sku.getPresentPrice();
+ }
BigDecimal score = new BigDecimal(accountInfo.getCollectScore());
if (score.compareTo(totalPrice) < 0) {
throw new RestException(-3, "积分不足");
@@ -252,7 +295,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());
@@ -270,8 +314,8 @@
if (StrUtil.isNotBlank(addressInfo.getTagName())) {
address.append(StrUtil.isNotBlank(addressInfo.getHouseName()) ? addressInfo.getHouseName() : "");
if (Constants.ADDRESS_TYPE_HOME.equals(addressInfo.getTagName())) {
- address.append(StrUtil.isNotBlank(addressInfo.getHouseNumber()) ? addressInfo.getHouseNumber() : "");
address.append(StrUtil.isNotBlank(addressInfo.getUnitName()) ? addressInfo.getUnitName() : "");
+ address.append(StrUtil.isNotBlank(addressInfo.getHouseNumber()) ? addressInfo.getHouseNumber() : "");
}
}
expressInfo.setAddress(address.toString());
@@ -449,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