From cf2deb37da116d7e2877f741971db4fa207e8617 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 23 Jul 2021 10:36:39 +0800
Subject: [PATCH] fix

---
 gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java b/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java
index 9e0743d..8b89b3d 100644
--- a/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java
+++ b/gc-order/src/main/java/com/xzx/gc/order/service/JhyOrderService.java
@@ -63,7 +63,9 @@
     public void addJhyOrder(AddJhyOrderDto orderDto) {
         JhyInfo jhyInfo = jhyInfoMapper.selectJhyInfoByUserId(orderDto.getUserId());
         if (jhyInfo != null && JhyInfo.CHECK_PASS.equals(jhyInfo.getStatus())) {
-            throw new RestException(-3, "集货员不能下单");
+            if (JhyInfo.IS_JHY_Y.equals(jhyInfo.getIsJhy())) {
+                throw new RestException(-3, "集货员不能下单");
+            }
         }
 
         AddressInfo addressInfo = addressMapper.selectByPrimaryKey(orderDto.getAddressId());
@@ -89,6 +91,18 @@
                 address.append(StrUtil.isNotBlank(addressInfo.getUnitName()) ? addressInfo.getUnitName() : "");
             }
         }
+
+        List<JhyOrder> addressExist = jhyOrderMapper.selectJhyOrderListByStatus(StrUtil.split("1,2", ','), orderDto.getUserId());
+        if (CollUtil.isNotEmpty(addressExist)) {
+            for (JhyOrder order : addressExist) {
+                String orderAddr = order.getArea() + order.getAddress();
+
+                if (orderAddr.equals(address.toString())) {
+                    throw new RestException(-3, "同一地址仅能有一单在进行中");
+                }
+            }
+        }
+
         jhyOrder.setAddress(address.toString());
 
         jhyOrder.setUsername(addressInfo.getRelaName());
@@ -150,9 +164,17 @@
             throw new RestException(-3, "不是集货员");
         }
 
+        if (JhyInfo.IS_JHY_N.equals(jhyInfo.getIsJhy())) {
+            throw new RestException(-3, "暂无法抢单");
+        }
+
         JhyOrder order = jhyOrderMapper.selectByPrimaryKey(orderId);
         if (order == null) {
             throw new RestException(-3, "订单不存在");
+        }
+
+        if (order.getUserId().equals(jhyInfo.getUserId())) {
+            throw new RestException(-3, "不能抢自己的单");
         }
 
         order.setJhyId(userId);
@@ -197,13 +219,11 @@
             orderItems.setTitle(environmentalInfo.getTitle());
             orderItems.setPrice(new BigDecimal(environmentalInfo.getPrice()));
             BigDecimal total = orderItems.getPrice().multiply(BigDecimal.valueOf(40)).multiply(weight);
-            log.info("======>{}, {}, {}", total, orderItems.getPrice(), weight);
             orderItems.setScore(total.setScale(0, BigDecimal.ROUND_DOWN).toString());
             orderItems.setWeight(weight);
             jhyOrderItemsMapper.insert(orderItems);
 
             totalScore = totalScore.add(total);
-            log.info("=====>>>{}", totalScore);
         }
 
         JhyOrder order = jhyOrderMapper.selectByPrimaryKey(confirmDto.getOrderId());

--
Gitblit v1.9.1