From 9f8b3700ffbcc616a97e7ee2ea283ef4df3d666a Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期四, 04 六月 2026 08:43:55 +0800
Subject: [PATCH] 代码生成
---
server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java | 135 ++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 128 insertions(+), 7 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 06fe53c..5883343 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
@@ -237,6 +237,7 @@
.selectAs(Category::getDetail, Orders::getOrderLevel)
.select("s1.name", Orders::getDepositShopName)
.select("o2.code", Orders::getRelationOrderCode)
+ .select("s2.name", Orders::getTakeShopName)
.leftJoin(Category.class, Category::getId, Orders::getGoodLevel)
.leftJoin(DriverInfo.class, DriverInfo::getId, Orders::getAcceptDriver)
.leftJoin("shop_info s1 on s1.id = t.DEPOSIT_SHOP_ID")
@@ -248,6 +249,7 @@
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()), Orders::getCode, pageWrap.getModel().getCode());
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getDepositShopName()), "s1.name", pageWrap.getModel().getDepositShopName());
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getTakeShopName()), "s2.name", pageWrap.getModel().getTakeShopName());
+ queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getTakeShopName()), Orders::getType,Constants.ONE);
queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getGoodsInfo()), Orders::getGoodsInfo, pageWrap.getModel().getGoodsInfo());
queryWrapper.ge(pageWrap.getModel().getCreateStartTime() != null, Orders::getCreateTime, pageWrap.getModel().getCreateStartTime());
queryWrapper.le(pageWrap.getModel().getCreateEndTime() != null, Orders::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateEndTime()));
@@ -259,6 +261,8 @@
.or().like(DriverInfo::getTelephone, pageWrap.getModel().getDriverKeyword()));
queryWrapper.eq(pageWrap.getModel().getSettlementStatus() != null, Orders::getSettlementStatus, pageWrap.getModel().getSettlementStatus());
queryWrapper.eq(pageWrap.getModel().getAcceptDriver() != null, Orders::getAcceptDriver, pageWrap.getModel().getAcceptDriver());
+ queryWrapper.and(pageWrap.getModel().getTakeKeyword() != null, i -> i.like(Orders::getTakeUser, pageWrap.getModel().getTakeKeyword())
+ .or().like(Orders::getTakePhone, pageWrap.getModel().getTakeKeyword()));
queryWrapper.and(pageWrap.getModel().getShopId() != null, i -> i.eq(Orders::getDepositShopId, pageWrap.getModel().getShopId())
.or().eq(Orders::getTakeShopId, pageWrap.getModel().getShopId()));
queryWrapper.orderByDesc(Orders::getId);
@@ -1049,7 +1053,8 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鐢ㄦ埛淇℃伅寮傚父锛屾棤娉曞彂璧锋敮浠�");
}
PayResponse payResponse = wxPayV3(orders.getOutTradeNo(), orders.getTotalAmount(), orders.getId(),
- member.getOpenid(), Constants.OrdersAttach.STORAGE_ORDER);
+ member.getOpenid(), Constants.equalsInteger(orders.getType(), Constants.ONE)
+ ? Constants.OrdersAttach.DELIVERY_ORDER : Constants.OrdersAttach.STORAGE_ORDER);
payResponse.setLockKey(lockKey);
return payResponse;
}
@@ -1086,7 +1091,8 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鐢ㄦ埛淇℃伅寮傚父锛屾棤娉曞彂璧锋敮浠�");
}
return wxPayV3(orders.getOutTradeNo(), orders.getTotalAmount(), orders.getId(),
- member.getOpenid(), Constants.OrdersAttach.STORAGE_ORDER);
+ member.getOpenid(), Constants.equalsInteger(orders.getType(), Constants.ONE)
+ ? Constants.OrdersAttach.DELIVERY_ORDER : Constants.OrdersAttach.STORAGE_ORDER);
}
/**
@@ -1480,6 +1486,13 @@
}
}
+ private void clearVerifyCodes(Integer orderId) {
+ ordersMapper.update(null, new UpdateWrapper<Orders>().lambda()
+ .eq(Orders::getId, orderId)
+ .set(Orders::getMemberVerifyCode, null)
+ .set(Orders::getDriverVerifyCode, null));
+ }
+
private String getOrdersPrefix() {
try {
return systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
@@ -1576,9 +1589,9 @@
}
// 璁$畻钖叕锛堝垎锛�
- long driverFee = new BigDecimal(totalAmount).multiply(driverRata).longValue();
- long depositShopFee = new BigDecimal(totalAmount).multiply(depositShopRata).longValue();
- long takeShopFee = new BigDecimal(totalAmount).multiply(takeShopRata).longValue();
+ long driverFee = new BigDecimal(totalAmount).multiply(driverRata).setScale(0, RoundingMode.HALF_UP).longValue();
+ long depositShopFee = new BigDecimal(totalAmount).multiply(depositShopRata).setScale(0, RoundingMode.HALF_UP).longValue();
+ long takeShopFee = new BigDecimal(totalAmount).multiply(takeShopRata).setScale(0, RoundingMode.HALF_UP).longValue();
orders.setDriverFee(driverFee);
orders.setDepositShopFee(depositShopFee);
@@ -2834,7 +2847,8 @@
// 5. 鍞よ捣寰俊鏀粯V3
return wxPayV3(otherOrders.getOutTradeNo(), otherOrders.getPayAccount(), otherOrders.getId(),
- member.getOpenid(), Constants.OrdersAttach.OVERDUE_FEE);
+ member.getOpenid(), Constants.equalsInteger(order.getType(), Constants.ONE)
+ ? Constants.OrdersAttach.DELIVERY_OVERDUE_FEE : Constants.OrdersAttach.OVERDUE_FEE);
}
@Override
@@ -3385,6 +3399,7 @@
originalOrder.setFinishTime(now);
originalOrder.setUpdateTime(now);
ordersMapper.updateById(originalOrder);
+ clearVerifyCodes(originalOrder.getId());
// 瑙﹀彂鍘熻鍗曟敹鐩婅绠�
calculateAndSaveOrderFees(originalOrder.getId());
generateRevenueRecords(originalOrder.getId());
@@ -3428,7 +3443,7 @@
order.setFinishTime(now);
order.setInvoiceStatus(Constants.ONE);
ordersMapper.updateById(order);
- // 灏卞湴瀵勫瓨(type=0)鍙栦欢鏃跺浘鐗囦笉蹇呭~锛屽叾浠栫被鍨嬪彇浠跺繀濉�
+ clearVerifyCodes(order.getId());
if (!Constants.equalsInteger(order.getType(), Constants.ZERO)) {
if (images == null || images.isEmpty()) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璇蜂笂浼犲彇浠跺浘鐗�");
@@ -3597,6 +3612,7 @@
order.setInvoiceStatus(Constants.ONE);
order.setConfirmArriveTime(now);
ordersMapper.updateById(order);
+ clearVerifyCodes(order.getId());
// 璁㈠崟瀹屾垚锛岄噴鏀炬牳閿�鐮�
releaseVerifyCode(verifyCode);
// 淇濆瓨鍑哄簱鍥剧墖锛坥bj_type=13 闂ㄥ簵鍑哄簱鍥剧墖锛屾渶澶�3寮狅級
@@ -3675,6 +3691,7 @@
order.setFinishTime(now);
order.setUpdateTime(now);
ordersMapper.updateById(order);
+ clearVerifyCodes(order.getId());
// 8. 閲婃斁鏍搁攢鐮�
if (StringUtils.isNotBlank(order.getMemberVerifyCode())) {
@@ -3773,6 +3790,7 @@
order.setFinishTime(now);
order.setUpdateTime(now);
ordersMapper.updateById(order);
+ clearVerifyCodes(order.getId());
// 7. 鐢熸垚鏀剁泭璁板綍
calculateAndSaveOrderFees(orderId);
@@ -4895,6 +4913,7 @@
order.setFinishTime(now);
order.setUpdateTime(now);
ordersMapper.updateById(order);
+ clearVerifyCodes(order.getId());
// 閲婃斁鏍搁攢鐮�
if (StringUtils.isNotBlank(order.getMemberVerifyCode())) {
@@ -5476,4 +5495,106 @@
return vo;
}
+ @Override
+ public List<OrderTimelineVO> getOrderTimeline(Integer orderId) {
+ Orders order = ordersMapper.selectById(orderId);
+ if (order == null || Constants.equalsInteger(order.getDeleted(), Constants.ONE)) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ List<OrderTimelineVO> timeline = new ArrayList<>();
+ String imgPrefix = getOrdersPrefix();
+
+ // 闂ㄥ簵/鍙告満鍚嶇О
+ String depositShopName = "";
+ if (order.getDepositShopId() != null) {
+ ShopInfo depositShop = shopInfoMapper.selectById(order.getDepositShopId());
+ if (depositShop != null) {
+ depositShopName = depositShop.getName();
+ }
+ }
+ String takeShopName = "";
+ if (order.getTakeShopId() != null) {
+ ShopInfo takeShop = shopInfoMapper.selectById(order.getTakeShopId());
+ if (takeShop != null) {
+ takeShopName = takeShop.getName();
+ }
+ }
+ String driverName = "";
+ if (order.getAcceptDriver() != null) {
+ DriverInfo driver = driverInfoMapper.selectById(order.getAcceptDriver());
+ if (driver != null) {
+ driverName = driver.getName();
+ }
+ }
+
+ boolean isLocal = Constants.equalsInteger(order.getType(), Constants.ZERO);
+ boolean hasTakeShop = order.getTakeShopId() != null;
+ boolean isException = Constants.equalsInteger(order.getExceptionStatus(), Constants.ONE);
+ int status = order.getStatus() != null ? order.getStatus() : 0;
+
+ // 1. 闂ㄥ簵瀵勫瓨 (status >= 2)
+ if (status >= Constants.OrderStatus.deposited.getKey() && order.getDepositTime() != null) {
+ OrderTimelineVO node = new OrderTimelineVO();
+ node.setTitle("闂ㄥ簵銆�" + depositShopName + "銆戠‘璁ゆ敹浠�");
+ node.setTime(order.getDepositTime());
+ node.setImages(getFileUrls(orderId, Constants.FileType.ORDER_DEPOSIT.getKey(), imgPrefix));
+ timeline.add(node);
+ }
+
+ if (!isLocal) {
+ // 2. 鍙告満鍙栦欢 (status >= 4)
+ if (status >= Constants.OrderStatus.delivering.getKey() && order.getDriverTakeTime() != null) {
+ OrderTimelineVO node = new OrderTimelineVO();
+ node.setTitle("鍙告満銆�" + driverName + "銆戠‘璁ゅ彇浠�");
+ node.setTime(order.getDriverTakeTime());
+ node.setImages(getFileUrls(orderId, Constants.FileType.DRIVER_TAKE.getKey(), imgPrefix));
+ timeline.add(node);
+ }
+
+ if (isException) {
+ // 寮傚父锛氬叧鑱旀煡璇㈠紓甯歌鍗�
+ Orders exceptionOrder = ordersMapper.selectOne(new QueryWrapper<Orders>().lambda()
+ .eq(Orders::getRelationOrderId, orderId)
+ .eq(Orders::getExceptionStatus, Constants.ONE)
+ .last("limit 1"));
+ if (exceptionOrder != null) {
+ OrderTimelineVO node = new OrderTimelineVO();
+ node.setTitle("琛屾潕宸插紓甯歌浆瀛橈紝鏂拌鍗曞彿銆�" + exceptionOrder.getCode() + "銆�");
+ node.setTime(exceptionOrder.getCreateTime());
+ timeline.add(node);
+ }
+ } else {
+ // 3. 姝e父锛氬徃鏈洪�佽揪 (status >= 5)
+ if(StringUtils.isBlank(takeShopName)){
+ if (status >= Constants.OrderStatus.arrived.getKey() && order.getArriveTime() != null) {
+ OrderTimelineVO node = new OrderTimelineVO();
+ node.setTitle("鍙告満銆�" + driverName + "銆戠‘璁ら�佽揪");
+ node.setTime(order.getArriveTime());
+ node.setImages(getFileUrls(orderId, Constants.FileType.DRIVER_DONE.getKey(), imgPrefix));
+ timeline.add(node);
+ }
+ }
+ // 4. 鏈夐棬搴楋細闂ㄥ簵鏀朵欢 (status >= 5)
+ if (hasTakeShop && status >= Constants.OrderStatus.arrived.getKey() && order.getArriveTime() != null) {
+ OrderTimelineVO node = new OrderTimelineVO();
+ node.setTitle("闂ㄥ簵銆�" + takeShopName + "銆戠‘璁ゆ敹浠�");
+ node.setTime(order.getArriveTime());
+ node.setImages(getFileUrls(orderId, Constants.FileType.ORDER_TAKE.getKey(), imgPrefix));
+ timeline.add(node);
+ }
+ }
+ }
+
+ // 鏈�鍚庯細璁㈠崟瀹屾垚 (status = 7)
+ if (status == Constants.OrderStatus.finished.getKey() && order.getFinishTime() != null) {
+ OrderTimelineVO node = new OrderTimelineVO();
+ node.setTitle("璁㈠崟宸插畬鎴�");
+ node.setTime(order.getFinishTime());
+ timeline.add(node);
+ }
+
+ timeline.sort((a, b) -> b.getTime() != null && a.getTime() != null ? b.getTime().compareTo(a.getTime()) : 0);
+ return timeline;
+ }
+
}
--
Gitblit v1.9.3