From cbbc18e79cb498901290451ecf5b9fdbd2a212aa Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期二, 24 九月 2024 18:43:47 +0800
Subject: [PATCH] 1.合伙人-手机号修改

---
 src/main/java/com/mzl/flower/service/payment/OrderService.java |   79 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 75 insertions(+), 4 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 34d6b5b..3b76438 100644
--- a/src/main/java/com/mzl/flower/service/payment/OrderService.java
+++ b/src/main/java/com/mzl/flower/service/payment/OrderService.java
@@ -68,10 +68,8 @@
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 @Transactional
@@ -1614,4 +1612,77 @@
 
 
     }
+
+    @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