From 11c95afd1e44bcd3d70dbcf77e790596ec80a53e Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期二, 24 九月 2024 18:54:59 +0800
Subject: [PATCH] fix: 剔除加价限制条件
---
src/main/java/com/mzl/flower/service/payment/OrderService.java | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 112 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/mzl/flower/service/payment/OrderService.java b/src/main/java/com/mzl/flower/service/payment/OrderService.java
index 68f2395..3b76438 100644
--- a/src/main/java/com/mzl/flower/service/payment/OrderService.java
+++ b/src/main/java/com/mzl/flower/service/payment/OrderService.java
@@ -14,6 +14,7 @@
import com.mzl.flower.dto.PriceDTO;
import com.mzl.flower.dto.request.menber.MemberGrowthRecordDTO;
import com.mzl.flower.dto.request.payment.*;
+import com.mzl.flower.dto.response.coupon.CouponRecordVO;
import com.mzl.flower.dto.response.flower.FlowerCartListDTO;
import com.mzl.flower.dto.response.flower.FlowerCartListWrapDTO;
import com.mzl.flower.dto.response.flower.FlowerDTO;
@@ -60,15 +61,15 @@
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.time.LocalTime;
+import java.util.*;
+import java.util.stream.Collectors;
@Service
@Transactional
@@ -1098,6 +1099,15 @@
List<OrderPointGoodsListDTO> pointGoodsList = orderMapper.getPointGoodsList(id);
dto.setPointGoodsList(pointGoodsList);
+ //判断优惠券ID是否为空 用户优惠券id
+ if(StringUtils.isNotBlank(o.getMemberCouponId())){
+ CouponRecordVO couponRecordVO = couponRecordService.getCouponRecordById(o.getMemberCouponId());
+ if(!ObjectUtils.isEmpty(couponRecordVO)){
+ dto.setCouponDiscountType(couponRecordVO.getCouponDiscountType());
+ dto.setMinOrderAmount("满"+couponRecordVO.getMinOrderAmount());
+ }
+ }
+
return dto;
}
@@ -1575,7 +1585,104 @@
}
public Integer getFlowerCompleteNumToday(String userId,Long flowerId){
- Integer completeNum= orderMapper.getFlowerCompleteNumToday(userId,flowerId);
+
+ int completeNum = 0;
+ // 获取当前时间
+ LocalDateTime now = LocalDateTime.now();
+ // 构造今天的17:00
+ LocalDateTime todayAtFivePM = LocalDateTime.of(LocalDate.now(), LocalTime.of(17, 0));
+ // 定义时间区间的开始和结束时间
+ LocalDateTime startTime;
+ LocalDateTime endTime;
+
+ if (now.isAfter(todayAtFivePM)) {
+ // 当前时间大于今天的17:00,取今天17:00到明天17:00的区间
+ startTime = todayAtFivePM;
+ endTime = todayAtFivePM.plusDays(1); // 明天的17:00
+ } else {
+ // 当前时间小于今天的17:00,取昨天17:00到今天17:00的区间
+ startTime = todayAtFivePM.minusDays(1); // 昨天的17:00
+ endTime = todayAtFivePM; // 今天的17:00
+ }
+
+ // 调用Mapper方法,传递开始时间和结束时间
+ completeNum = orderMapper.getFlowerCompleteNumWithinTimeRange(userId, flowerId, startTime, endTime);
+
return completeNum;
+
+
+ }
+
+ @Transactional
+ public String copyOrder(String id) {
+ List<OrderItem> ls = orderItemMapper.selectList(
+ new QueryWrapper<OrderItem>().eq("order_id", id));
+ StringBuilder sb=new StringBuilder();
+ ls.stream().forEach(orderItem -> {
+ Cart cart = null;
+ final Long flowerId = orderItem.getFlowerId();
+ final Integer num = orderItem.getNum();
+ final String userId=orderItem.getCreateBy();
+ // 查看当前的花是否已经下架
+ Flower flower = flowerMapper.selectById(flowerId);
+ // 查看当前的花的限购
+ final Integer limited = flower.getLimited();
+
+ // 查看当前购物车里面是否已经存在当前花
+ cart = cartMapper.selectOne(new QueryWrapper<Cart>()
+ .eq("create_by", orderItem.getCreateBy()).eq("flower_id",flowerId));
+
+ if(null==cart){
+ cart = new Cart();
+ cart.setFlowerId(flowerId);
+ cart.setNum(0);
+ cart.create(orderItem.getCreateBy());
+ }
+
+ if (!flower.getStatus().equals(Constants.FLOWER_STATUS.UP.name())) {
+ sb.append(flower.getName() + "已下架");
+ }else if(flower.getStatus().equals(Constants.FLOWER_STATUS.UP.name())){
+ // 未下架库存逻辑控制
+ Integer tmpNum=cart.getNum()+num;
+ //查看当前的库存
+ if (null!=flower.getStock() && flower.getStock() > 0 && flower.getStock().compareTo(tmpNum) >= 0) {
+ // 库存充足
+ cart.setNum(tmpNum);
+ } else if (null!=flower.getStock() && flower.getStock() > 0 && flower.getStock().compareTo(tmpNum) < 0) {
+ // 库存不足,剩多少给多少
+ cart.setNum(flower.getStock());
+ sb.append(flower.getName() + "购物车的总数超过库存,已调整成库存数!");
+ }else {
+ sb.append(flower.getName() + "已无库存");
+ }
+
+ // 限购控制,如果当前的购物车的数量大于限购的话,则需要控制
+ if(null!=limited && limited>0){
+ Integer buyedNum= getFlowerCompleteNumToday(userId,flowerId);
+ Integer todayNum=cart.getNum()+buyedNum;
+ //
+ if(todayNum>limited){
+ cart.setNum(limited-buyedNum<=0?0:limited-buyedNum);
+ sb.append(flower.getName() + "购物车的总数超过限购,已调整成未限购数!");
+ }
+ }
+
+ }
+
+ if(null!=cart){
+ // 插入购物车
+ if(null!=cart.getId()){
+ // 新增
+ cartMapper.updateById(cart);
+ }else{
+ // 更新
+ cartMapper.insert(cart);
+ }
+ }
+
+ });
+
+ return sb.toString();
+
}
}
--
Gitblit v1.9.3