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