From 3e210fac9492b90e21ca9bf76c1d9a8fda1f4388 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 13 五月 2026 11:32:17 +0800
Subject: [PATCH] 代码生成

---
 server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java |   66 +++++++++++++++++++++++++--------
 1 files changed, 50 insertions(+), 16 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
index 13217de..7cba5c5 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
@@ -802,6 +802,7 @@
         orders.setDeleted(Constants.ZERO);
         orders.setCreateTime(now);
         orders.setUpdateTime(now);
+        orders.setIsConverted(Constants.ZERO);
 
         // 瀵勪欢淇℃伅
         orders.setDepositShopId(dto.getDepositShopId());
@@ -1216,7 +1217,6 @@
         com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper<Orders> updateWrapper =
                 new UpdateWrapper<Orders>().lambda()
                 .eq(Orders::getId, order.getId())
-                .set(Orders::getIsUrgent, Constants.ONE)
                 .set(Orders::getPlatformRewardAmount, urgentFeeFen)
                 .set(Orders::getPlatformSmsNotified, Constants.ZERO) // 閲嶇疆閫氱煡鐘舵�佷负鏈�氱煡
                 .set(Orders::getPlatformSmsNotifiedTime, new Date()) // 閲嶇疆閫氱煡鍩哄噯鏃堕棿涓哄綋鍓�
@@ -1237,7 +1237,8 @@
         if (dto.getDriverId() != null) {
             // 鏍¢獙鍙告満淇℃伅
             DriverInfo driverInfo = driverInfoMapper.selectOne(new QueryWrapper<DriverInfo>().lambda()
-                    .eq(DriverInfo::getMemberId, dto.getDriverId())
+                    .eq(DriverInfo::getId, dto.getDriverId())
+                    .eq(DriverInfo::getVersionType, Constants.ZERO)
                     .eq(DriverInfo::getDeleted, Constants.ZERO)
                     .last("limit 1"));
             if (driverInfo == null) {
@@ -1258,13 +1259,10 @@
             updateWrapper.set(Orders::getAcceptType, 1); // 1=绯荤粺娲惧崟
             updateWrapper.set(Orders::getStatus, Constants.OrderStatus.accepted.getStatus());
 
-            Member driver = memberMapper.selectById(dto.getDriverId());
-            String driverName = driver != null ? driver.getName() : String.valueOf(dto.getDriverId());
-
             OrderLog driverLog = new OrderLog();
             driverLog.setOrderId(order.getId());
             driverLog.setTitle(Constants.OrderLogType.assignDriver.getTitle());
-            driverLog.setLogInfo(Constants.OrderLogType.assignDriver.format(driverName, dto.getUrgentFee().toPlainString()));
+            driverLog.setLogInfo(Constants.OrderLogType.assignDriver.format(driverInfo.getName(), dto.getUrgentFee().toPlainString()));
             driverLog.setObjType(Constants.OrderLogType.assignDriver.getStatus());
             driverLog.setOrderStatus(Constants.OrderStatus.accepted.getStatus());
             driverLog.setOptUserType(3);
@@ -2128,6 +2126,7 @@
             updateWrapper.lambda()
                     .eq(Orders::getId, order.getId())
                     .set(Orders::getType, Constants.ZERO)
+                    .set(Orders::getIsConverted, Constants.ONE)
                     .set(Orders::getTakeShopId, order.getDepositShopId())
                     .set(Orders::getTakeShopName, order.getDepositShopName())
                     .set(Orders::getTakeShopAddress, order.getDepositShopAddress())
@@ -3542,6 +3541,7 @@
                 new QueryWrapper<OrdersDetail>().lambda()
                         .eq(OrdersDetail::getOrderId, orderId)
                         .eq(OrdersDetail::getDeleted, Constants.ZERO));
+
         OverdueFeeVO overdueInfo = calculateOverdueFeeInternal(order, details);
 
         Date now = new Date();
@@ -3570,17 +3570,26 @@
                 int actualDays = calcActualDepositDays(now, order.getDepositTime());
                 order.setDepositDays(actualDays);
 
-                int estimatedDays = order.getEstimatedDepositDays() != null ? order.getEstimatedDepositDays() : 1;
-                int refundDays = estimatedDays - actualDays;
-                if (refundDays > 0) {
-                    // 閫�娆鹃噾棰� = 閫�娆惧ぉ鏁� 脳 危(鐗╁搧鍗曚环 脳 鏁伴噺)
-                    long dailyBaseFee = 0L;
-                    for (OrdersDetail d : details) {
-                        dailyBaseFee += (d.getUnitPrice() != null ? d.getUnitPrice() : 0L)
-                                * (d.getNum() != null ? d.getNum() : 0);
+                long dailyBaseFee = 0L;
+                for (OrdersDetail d : details) {
+                    dailyBaseFee += (d.getLocallyPrice() != null ? d.getLocallyPrice() : 0L)
+                            * (d.getNum() != null ? d.getNum() : 0);
+                }
+
+                if (Constants.equalsInteger(order.getIsConverted(), Constants.ONE)) {
+                    // 杞崲璁㈠崟锛氬疄闄呰垂鐢ㄤ笌宸蹭粯閲戦瀵规瘮
+                    long actualFee = (long) actualDays * dailyBaseFee;
+                    long payAmount = order.getPayAmount() != null ? order.getPayAmount() : 0L;
+                    if (actualFee < payAmount) {
+                        order.setRefundAmount(payAmount - actualFee);
                     }
-                    long refundAmount = (long) refundDays * dailyBaseFee;
-                    order.setRefundAmount(refundAmount);
+                } else {
+                    // 鏅�氳鍗曪細鎸夐璁″ぉ鏁颁笌瀹為檯澶╂暟宸绠楅��娆�
+                    int estimatedDays = order.getEstimatedDepositDays() != null ? order.getEstimatedDepositDays() : 1;
+                    int refundDays = estimatedDays - actualDays;
+                    if (refundDays > 0) {
+                        order.setRefundAmount((long) refundDays * dailyBaseFee);
+                    }
                 }
             }
 
@@ -3769,6 +3778,31 @@
 
         if (Constants.equalsInteger(order.getType(), Constants.ZERO)) {
             // ========== 灏卞湴瀵勫瓨 ==========
+
+            // 杞崲璁㈠崟锛堝紓鍦拌浆灏卞湴锛夛細鎸夊瘎瀛樻椂闂村埌褰撳墠鏃堕棿璁$畻瀹為檯璐圭敤
+            if (Constants.equalsInteger(order.getIsConverted(), Constants.ONE)) {
+                int actualDays = calcActualDepositDays(now, order.getDepositTime());
+                long actualFee = (long) actualDays * dailyBaseFee;
+                long payAmount = order.getPayAmount() != null ? order.getPayAmount() : 0L;
+
+                OverdueFeeVO vo = new OverdueFeeVO();
+                vo.setDailyBaseFee(dailyBaseFee);
+                if (actualFee <= payAmount) {
+                    // 瀹為檯璐圭敤 <= 宸蹭粯閲戦锛氭湭閫炬湡
+                    vo.setOverdue(false);
+                    vo.setOverdueDays(0);
+                    vo.setOverdueFee(0L);
+                } else {
+                    // 瀹為檯璐圭敤 > 宸蹭粯閲戦锛氶�炬湡锛屽樊浠蜂负閫炬湡璐圭敤
+                    int overDays = actualDays - (order.getEstimatedDepositDays() != null ? order.getEstimatedDepositDays() : 1);
+                    vo.setOverdue(true);
+                    vo.setOverdueDays(Math.max(overDays, 1));
+                    vo.setOverdueFee(actualFee - payAmount);
+                }
+                return vo;
+            }
+
+            // 鏅�氬氨鍦板瘎瀛�
             overdueDays = calcLocalOverdueDays(now, order.getExpectedTakeTime());
             overdueFee = (long) overdueDays * dailyBaseFee;
 

--
Gitblit v1.9.3