From 552238172036acf08ccf36134282a06b5e21b936 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期五, 22 五月 2026 18:07:49 +0800
Subject: [PATCH] 代码生成
---
server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java | 421 +++++++++++++++++++++++++++++++++++++---------------
1 files changed, 299 insertions(+), 122 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 3524470..06fe53c 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
@@ -133,6 +133,8 @@
@Autowired
private MemberCouponMapper memberCouponMapper;
+ @Autowired
+ private CouponMapper couponMapper;
@Autowired
private AreasBiz areasBiz;
@@ -234,10 +236,12 @@
.selectAll(Orders.class)
.selectAs(Category::getDetail, Orders::getOrderLevel)
.select("s1.name", Orders::getDepositShopName)
- .leftJoin(Category.class, Category::getId, Orders::getGoodType)
+ .select("o2.code", Orders::getRelationOrderCode)
+ .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")
- .leftJoin("shop_info s2 on s2.id = t.TAKE_SHOP_ID") ;
+ .leftJoin("shop_info s2 on s2.id = t.TAKE_SHOP_ID")
+ .leftJoin("orders o2 on o2.id = t.RELATION_ORDER_ID")
;
Utils.MP.blankToNull(pageWrap.getModel());
queryWrapper.eq(pageWrap.getModel().getDeleted() != null, Orders::getDeleted, pageWrap.getModel().getDeleted());
@@ -346,7 +350,7 @@
}
/**
- * 璁$畻灏卞湴瀛樺彇棰勪及璐圭敤
+ * 璁$畻灏卞湴瀵勫瓨棰勪及璐圭敤
*
* 璁$畻瑙勫垯锛�
* 1. 鏍规嵁鍩庡競+鐗╁搧绫诲瀷 鏌ヨ pricing_rule(type=0)锛宖ieldA=categoryId, fieldB=鍗曚环(鍒�/澶�)
@@ -355,7 +359,7 @@
* 4. 淇濅环璐圭敤 = 鎶ヤ环閲戦 脳 淇濅环璐圭巼锛堝瓧鍏� INSURANCE_RATE锛夛紝鍏冭浆鍒�
* 5. 鎬讳环鏍� = 鐗╁搧浠锋牸 + 淇濅环璐圭敤
*
- * @param dto 灏卞湴瀛樺彇璁′环璇锋眰鍙傛暟
+ * @param dto 灏卞湴瀵勫瓨璁′环璇锋眰鍙傛暟
* @return 浠锋牸璁$畻缁撴灉
*/
@Override
@@ -445,7 +449,7 @@
}
/**
- * 璁$畻寮傚湴瀛樺彇棰勪及璐圭敤
+ * 璁$畻鍚屽煄瀵勯�侀浼拌垂鐢�
*
* 璁$畻瑙勫垯锛�
* 1. 璋冪敤鑵捐鍦板浘API璁$畻瀵勪欢鐐逛笌鍙栦欢鐐圭殑椹捐溅璺濈(绫斥啋鍏噷)
@@ -460,7 +464,7 @@
* 7. 鍔犳�ヨ垂鐢� = 鐗╁搧浠锋牸 脳 鍔犳�ョ郴鏁帮紙瀛楀吀 URGENT_COEFFICIENT锛�
* 8. 鎬讳环鏍� = 鐗╁搧浠锋牸 + 淇濅环璐圭敤 + 鍔犳�ヨ垂鐢�
*
- * @param dto 寮傚湴瀛樺彇璁′环璇锋眰鍙傛暟
+ * @param dto 鍚屽煄瀵勯�佽浠疯姹傚弬鏁�
* @return 浠锋牸璁$畻缁撴灉
*/
@Override
@@ -497,7 +501,7 @@
ruleMap.put(r.getFieldA(), r);
}
- // 鏌ヨ灏卞湴瀛樺彇璁′环瑙勫垯 pricing_rule type=0锛岀敤浜庤幏鍙� locallyPrice
+ // 鏌ヨ灏卞湴瀵勫瓨璁′环瑙勫垯 pricing_rule type=0锛岀敤浜庤幏鍙� locallyPrice
List<PricingRule> localRules = pricingRuleMapper.selectList(new QueryWrapper<PricingRule>().lambda()
.eq(PricingRule::getDeleted, Constants.ZERO)
.eq(PricingRule::getType, Constants.ZERO)
@@ -551,7 +555,7 @@
long subtotal = unitPrice * item.getQuantity();
- // 灏卞湴瀛樺彇鍗曚环
+ // 灏卞湴瀵勫瓨鍗曚环
PricingRule localRule = localRuleMap.get(String.valueOf(item.getCategoryId()));
Long locallyPrice = localRule != null ? Long.parseLong(localRule.getFieldB()) : null;
@@ -662,7 +666,7 @@
.le(MemberCoupon::getLimitPrice, totalPrice)
.ge(MemberCoupon::getEndDate, now)
.orderByDesc(MemberCoupon::getPrice)
- .orderByAsc(MemberCoupon::getEndDate));
+ .orderByAsc(MemberCoupon::getCreateDate));
result.setAvailableCoupons(availableCoupons);
if (couponId == null) {
@@ -810,7 +814,7 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璇烽�夋嫨鍙栦欢搴楅摵鎴栬緭鍏ヨ嚜閫夊彇浠跺湴鍧�");
}
} else {
- // 灏卞湴瀛樺彇锛氬彇浠堕棬搴楀悓瀵勪欢闂ㄥ簵
+ // 灏卞湴瀵勫瓨锛氬彇浠堕棬搴楀悓瀵勪欢闂ㄥ簵
takeShop = depositShop;
}
@@ -860,6 +864,7 @@
orders.setPayStatus(Constants.ZERO); // 鏈敮浠�
orders.setCommentStatus(Constants.ZERO); // 鏈瘎浠�
orders.setSettlementStatus(Constants.ZERO); // 鏈粨绠�
+ orders.setExceptionStatus(Constants.ZERO); // 闈炲紓甯�
orders.setDeleted(Constants.ZERO);
orders.setCreateTime(now);
orders.setUpdateTime(now);
@@ -1151,6 +1156,11 @@
if (Objects.isNull(order)) {
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
+ // 瀹炰粯閲戦 = 鏀粯閲戦 - 閫�娆鹃噾棰� + 閫炬湡璐圭敤
+ long pay = order.getPayAmount() != null ? order.getPayAmount() : 0L;
+ long refund = order.getRefundAmount() != null ? order.getRefundAmount() : 0L;
+ long overdue = order.getOverdueAmount() != null ? order.getOverdueAmount() : 0L;
+ order.setPayAmount(pay - refund + overdue);
OrderDetailVO vo = new OrderDetailVO();
vo.setOrder(order);
@@ -1219,6 +1229,25 @@
}
}
+ // 璇勪环淇℃伅
+ List<OrderComment> comments = orderCommentMapper.selectList(new QueryWrapper<OrderComment>().lambda()
+ .eq(OrderComment::getOrderId, id)
+ .eq(OrderComment::getDeleted, Constants.ZERO));
+ if (CollectionUtils.isNotEmpty(comments)) {
+ for (OrderComment c : comments) {
+ if (Constants.equalsInteger(c.getTargetType(), Constants.ONE)) {
+ vo.setDepositScore(c.getScore());
+ } else if (Constants.equalsInteger(c.getTargetType(), Constants.TWO)) {
+ vo.setTakeScore(c.getScore());
+ } else if (Constants.equalsInteger(c.getTargetType(), Constants.THREE)) {
+ vo.setDriverScore(c.getScore());
+ }
+ }
+ vo.setCommentContent(comments.get(0).getContent());
+ vo.setCommentTime(comments.get(0).getCreateTime());
+ vo.setCommentImages(getFileUrls(id, Constants.FileType.COMMENT_ATTACH.getKey(), imgPrefix));
+ }
+
// 鍙栨秷/閫�娆剧姸鎬佹椂鏌ヨ閫�娆捐褰�
Integer status = order.getStatus();
if (status != null && (status == Constants.OrderStatus.overdue.getStatus()
@@ -1257,7 +1286,7 @@
vo.setCode(order.getCode());
vo.setPayAmountYuan(order.getPayAmount() != null ? Constants.getFormatMoney(order.getPayAmount()) : 0);
vo.setType(order.getType());
- vo.setTypeDesc(order.getType() != null && order.getType() == Constants.ONE ? "寮傚湴瀛樺彇" : "灏卞湴瀛樺彇");
+ vo.setTypeDesc(order.getType() != null && order.getType() == Constants.ONE ? "鍚屽煄瀵勯��" : "灏卞湴瀵勫瓨");
vo.setDetailList(buildDetailList(id));
return vo;
@@ -1276,9 +1305,9 @@
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
- // 鍓嶇疆鏉′欢鏍¢獙锛氬紓鍦板瓨鍙� + 宸插瘎瀛�
+ // 鍓嶇疆鏉′欢鏍¢獙锛氬悓鍩庡瘎閫� + 宸插瘎瀛�
if (!Constants.ONE.equals(order.getType())) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浠呮敮鎸佸紓鍦板瓨鍙栬鍗曟淳鍗�");
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浠呮敮鎸佸悓鍩庡瘎閫佽鍗曟淳鍗�");
}
if (!Integer.valueOf(Constants.OrderStatus.deposited.getStatus()).equals(order.getStatus())) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浠呭凡瀵勫瓨鐘舵�佽鍗曞彲娲惧崟");
@@ -1508,7 +1537,7 @@
*
* @param orders 璁㈠崟瀹炰綋锛堥渶瑕� totalAmount銆乧ityId 宸茶缃級
* @param depositShop 瀵勪欢闂ㄥ簵锛堥渶瑕� companyType锛�
- * @param takeShop 鍙栦欢闂ㄥ簵锛堥渶瑕� companyType锛屽氨鍦板瓨鍙栨椂涓� depositShop 鐩稿悓锛�
+ * @param takeShop 鍙栦欢闂ㄥ簵锛堥渶瑕� companyType锛屽氨鍦板瘎瀛樻椂涓� depositShop 鐩稿悓锛�
*/
private void calculateAndSetFeeAllocation(Orders orders, ShopInfo depositShop, ShopInfo takeShop) {
Long totalAmount = orders.getTotalAmount() != null ? orders.getTotalAmount() : 0L;
@@ -1655,7 +1684,8 @@
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
- wrapper.ge(Orders::getFinishTime, cal.getTime());
+ wrapper.ge(Orders::getFinishTime, cal.getTime())
+ .eq(Orders::getStatus, Constants.OrderStatus.finished.getKey());
}
}
// 鍏抽敭璇嶆悳绱細鏀朵欢浜�/鏀朵欢浜虹數璇濇ā绯娿�佽鍗曞彿绮惧噯
@@ -1719,8 +1749,13 @@
// 璇勪环鐘舵��
vo.setCommentStatus(o.getCommentStatus());
+
+ String dateStr = new SimpleDateFormat("dd").format(o.getPayTime() != null ? o.getPayTime() : new Date());
+ String autoNumStr = String.format("%03d", o.getAutoNum() != null ? o.getAutoNum() : 0);
+ String sort = o.getDepositShopId() + "-" + dateStr + "-" + autoNumStr;
//搴忓彿
- vo.setSortnum(Constants.formatIntegerNum(o.getDepositShopId())+"-"+o.getId());
+ vo.setSortnum(sort);
+
if(o.getTakeShopId()!=null){
vo.setSortnumTake(Constants.formatIntegerNum(o.getTakeShopId())+"-"+o.getId());
}
@@ -1737,6 +1772,8 @@
fillOverdueStatus(vo, o, details);
// 浼樻儬鍒告姷鎵i噾棰�
vo.setDeductionAmount(o.getDeductionAmount());
+ // 寮傚父璁㈠崟鏍囪瘑
+ vo.setAbnormalOrder(o.getExceptionStatus());
// 鍙紑绁ㄩ噾棰濓紙鏀粯閲戦 - 閫�娆鹃噾棰濓級
if (model != null && model.getInvoiceStatus() != null && Constants.equalsInteger(model.getInvoiceStatus(), Constants.ONE)) {
long payAmt = o.getPayAmount() != null ? o.getPayAmount() : 0L;
@@ -1815,7 +1852,7 @@
.or(w3-> w3.eq(Orders::getType, Constants.ONE).eq(Orders::getDepositShopId, shopId)
.eq(Orders::getStatus, Constants.OrderStatus.waitDeposit.getStatus()))
.or(w2 -> w2.eq(Orders::getType, Constants.ONE).eq(Orders::getTakeShopId, shopId)
- .eq(Orders::getStatus, Constants.OrderStatus.arrived.getStatus())))
+ .in(Orders::getStatus, Constants.OrderStatus.arrived.getStatus(),Constants.OrderStatus.delivering.getStatus())))
);
} else {
wrapper.and(w -> w.eq(Orders::getDepositShopId, shopId).or().eq(Orders::getTakeShopId, shopId));
@@ -1975,6 +2012,7 @@
vo.setUrgentAmount(order.getUrgentAmount());
vo.setIsUrgent(order.getIsUrgent());
vo.setActualPayAmount(Constants.equalsInteger(order.getPayStatus(), Constants.ONE)?order.getPayAmount():order.getEstimatedAmount());
+ vo.setDeductionAmount(order.getDeductionAmount());
// 鏍囪
vo.setExceptionStatus(order.getExceptionStatus());
@@ -1988,13 +2026,12 @@
vo.setPayCountdownMs(calcPayCountdownMs(order));
}
//搴忓彿
- vo.setSortnum(Constants.formatIntegerNum(order.getDepositShopId())+"-"+order.getId());
- if(order.getTakeShopId()!=null){
- String dateStr = new SimpleDateFormat("dd").format(order.getPayTime() != null ? order.getPayTime() : new Date());
- String autoNumStr = String.format("%03d", order.getAutoNum() != null ? order.getAutoNum() : 0);
- String sort = order.getTakeShopId() + "-" + dateStr + "-" + autoNumStr;
- vo.setSortnumTake(sort);
- }
+// vo.setSortnum(Constants.formatIntegerNum(order.getDepositShopId())+"-"+order.getId());
+ String dateStr = new SimpleDateFormat("dd").format(order.getPayTime() != null ? order.getPayTime() : new Date());
+ String autoNumStr = String.format("%03d", order.getAutoNum() != null ? order.getAutoNum() : 0);
+ String sort = order.getDepositShopId() + "-" + dateStr + "-" + autoNumStr;
+ vo.setSortnum(sort);
+ vo.setDepositShopId(order.getDepositShopId());
// 瀛樹欢闂ㄥ簵
if (order.getDepositShopId() != null) {
ShopInfo depositShop = shopInfoMapper.selectById(order.getDepositShopId());
@@ -2135,6 +2172,10 @@
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
+ if (Constants.equalsInteger(order.getExceptionStatus(), Constants.ONE)) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "寮傚父璁㈠崟鏃犳硶鍙栨秷");
+ }
+
Integer status = order.getStatus();
if (status == null) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璁㈠崟鐘舵�佸紓甯�");
@@ -2170,8 +2211,6 @@
"orderNo", order.getCode());
// 鐭俊閫氱煡浼氬憳锛氳鍗曞凡鍙栨秷
Member cancelMember2 = memberMapper.selectById(memberId);
- sendSmsNotify(cancelMember2 != null ? cancelMember2.getTelephone() : null,
- Constants.SmsNotify.MEMBER_CANCELLED, "orderNo", order.getCode());
// 璋冪敤寰俊閫�娆綱3锛屽叏棰濋��娆�
String outRefundNo = ID.nextGUID();
@@ -2209,6 +2248,8 @@
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "閫�娆惧け璐ワ紝璇疯仈绯诲鏈嶅鐞�");
}
ordersRefundMapper.insert(refund);
+ sendSmsNotify(cancelMember2 != null ? cancelMember2.getTelephone() : null,
+ Constants.SmsNotify.MEMBER_CANCELLED, "orderNo", order.getCode());
restoreCoupon(order);
return;
}
@@ -2282,16 +2323,71 @@
* 淇濆瓨鍙栨秷璁㈠崟鎿嶄綔鏃ュ織
*/
private void restoreCoupon(Orders order) {
-// if (order.getCouponId() == null || order.getDeductionAmount() == null || order.getDeductionAmount() <= 0) {
-// return;
-// }
-// memberCouponMapper.update(new UpdateWrapper<MemberCoupon>().lambda()
-// .set(MemberCoupon::getStatus, Constants.CouponStatus.claimed.getKey())
-// .set(MemberCoupon::getUseDate, null)
-// .set(MemberCoupon::getOrderId, null)
-// .eq(MemberCoupon::getId, order.getCouponId())
-// .eq(MemberCoupon::getOrderId, order.getId())
-// .eq(MemberCoupon::getStatus, Constants.CouponStatus.used.getKey()));
+ if (order.getCouponId() == null || order.getDeductionAmount() == null || order.getDeductionAmount() <= 0) {
+ return;
+ }
+ memberCouponMapper.update(new UpdateWrapper<MemberCoupon>().lambda()
+ .set(MemberCoupon::getStatus, Constants.CouponStatus.claimed.getKey())
+ .set(MemberCoupon::getUseDate, null)
+ .set(MemberCoupon::getOrderId, null)
+ .eq(MemberCoupon::getId, order.getCouponId())
+ .eq(MemberCoupon::getOrderId, order.getId())
+ .eq(MemberCoupon::getStatus, Constants.CouponStatus.used.getKey()));
+ }
+
+ private void giftOrderCoupon(Integer memberId) {
+ String orderCountStr = operationConfigBiz.getConfig().getOrderCouponOrderCount();
+ String giftCountStr = operationConfigBiz.getConfig().getOrderCouponGiftCount();
+ String couponIdsStr = operationConfigBiz.getConfig().getOrderCouponId();
+ if (StringUtils.isAnyBlank(orderCountStr, giftCountStr, couponIdsStr)) return;
+
+ int orderCount = Integer.parseInt(orderCountStr);
+ int maxGift = Integer.parseInt(giftCountStr);
+
+ Member member = memberMapper.selectById(memberId);
+ if (member == null) return;
+ int gifted = member.getOrderCouponGiftCount() != null ? member.getOrderCouponGiftCount() : 0;
+ if (gifted >= maxGift) return;
+
+ long completedCount = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
+ .eq(Orders::getMemberId, memberId)
+ .eq(Orders::getDeleted, Constants.ZERO)
+ .notIn(Orders::getStatus,
+ Constants.OrderStatus.waitPay.getKey(),
+ Constants.OrderStatus.waitDeposit.getKey()));
+ if (completedCount < orderCount || completedCount % orderCount != 0) return;
+
+ String[] idArr = couponIdsStr.split(",");
+ Date now = new Date();
+ for (String idStr : idArr) {
+ String trimmed = idStr.trim();
+ if (StringUtils.isBlank(trimmed)) continue;
+ Coupon coupon = couponMapper.selectById(Integer.valueOf(trimmed));
+ if (coupon == null || Constants.equalsInteger(coupon.getIsdeleted(), Constants.ONE)) continue;
+ MemberCoupon mc = new MemberCoupon();
+ mc.setCouponId(coupon.getId());
+ mc.setMemberId(memberId);
+ mc.setStatus(Constants.CouponStatus.waitClaim.getKey());
+ Calendar validCal = Calendar.getInstance();
+ validCal.add(Calendar.DAY_OF_MONTH, coupon.getPushDays() != null ? coupon.getPushDays() : 7);
+ mc.setValidDate(validCal.getTime());
+ mc.setName(coupon.getName());
+ mc.setInfo(coupon.getInfo());
+ mc.setType(coupon.getType());
+ mc.setLimitPrice(coupon.getLimitPrice());
+ mc.setPrice(coupon.getPrice());
+ mc.setGetMethod(coupon.getGetMethod());
+ mc.setCouponType(coupon.getCouponType());
+ mc.setPushDays(coupon.getPushDays());
+ mc.setValidDays(coupon.getValidDays());
+ mc.setIsdeleted(Constants.ZERO);
+ mc.setCreateDate(now);
+ mc.setEditDate(now);
+ memberCouponMapper.insert(mc);
+ }
+
+ member.setOrderCouponGiftCount(gifted + 1);
+ memberMapper.updateById(member);
}
private void saveCancelLog(Orders order, Constants.OrderLogType logType, String reason, Integer memberId) {
@@ -2322,9 +2418,10 @@
if (Constants.equalsInteger(order.getManualRefund(), Constants.ONE)) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璇ヨ鍗曞凡鎵嬪姩閫�娆�");
}
- // 寮傚父璁㈠崟涓嶅厑璁告墜鍔ㄩ��娆�
- if (Constants.equalsInteger(order.getExceptionStatus(), Constants.ONE)) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "寮傚父璁㈠崟涓嶆敮鎸佹墜鍔ㄩ��娆�");
+ // 灏卞湴瀵勫瓨寮傚父璁㈠崟涓嶅厑璁告墜鍔ㄩ��娆�
+ if (Constants.equalsInteger(order.getExceptionStatus(), Constants.ONE)
+ && Constants.equalsInteger(order.getType(), Constants.ZERO)) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "灏卞湴瀵勫瓨寮傚父璁㈠崟涓嶆敮鎸佹墜鍔ㄩ��娆�");
}
// 2. 鏍¢獙閫�娆鹃噾棰�
@@ -2406,7 +2503,7 @@
refund.setRefundTime(now);
ordersRefundMapper.updateById(refund);
// 閫�娆炬垚鍔燂紝鎵ц鎵f
- processManualRefundDeduction(order, depositShopDeduct, takeShopDeduct, driverDeduct);
+ //processManualRefundDeduction(order, depositShopDeduct, takeShopDeduct, driverDeduct);
} else if (com.wechat.pay.java.service.refund.model.Status.PROCESSING.equals(refundStatus)) {
refund.setStatus(Constants.ZERO); // 閫�娆句腑锛岀瓑鍥炶皟
ordersRefundMapper.updateById(refund);
@@ -2428,7 +2525,6 @@
// 7. 鏇存柊璁㈠崟锛氭爣璁板凡鎵嬪姩閫�娆撅紝绱姞閫�娆鹃噾棰�
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getManualRefund, Constants.ONE)
- .setSql(" REFUND_AMOUNT = IFNULL(REFUND_AMOUNT, 0) + " + dto.getRefundAmount())
.set(Orders::getUpdateTime, now)
.eq(Orders::getId, order.getId()));
}
@@ -2511,10 +2607,11 @@
Long driverDeduct = deductJson.getLong("driverDeduct");
processManualRefundDeduction(order, depositShopDeduct, takeShopDeduct, driverDeduct);
- // 鏍囪璁㈠崟宸叉墜鍔ㄩ��娆撅紝绱姞閫�娆鹃噾棰�
+ // 鏍囪璁㈠崟宸叉墜鍔ㄩ��娆撅紝绱姞閫�娆鹃噾棰濓紝鍚屾鏇存柊totalAmount
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getManualRefund, Constants.ONE)
.setSql(" REFUND_AMOUNT = IFNULL(REFUND_AMOUNT, 0) + " + refundRecord.getRefundAmount())
+ .setSql(" TOTAL_AMOUNT = IFNULL(TOTAL_AMOUNT, 0) - " + refundRecord.getRefundAmount())
.set(Orders::getUpdateTime, new Date())
.eq(Orders::getId, order.getId()));
}
@@ -2767,13 +2864,27 @@
if (otherOrders.getOrderId() != null) {
Orders order = ordersMapper.selectById(otherOrders.getOrderId());
if (order != null) {
- order.setOverdueStatus(Constants.TWO); // 2=宸叉敮浠�
- // 鎬婚噾棰� = 鍘熼噾棰� + 閫炬湡璐圭敤
Long overdueFee = otherOrders.getPayAccount() != null ? otherOrders.getPayAccount() : 0L;
long newTotal = (order.getTotalAmount() != null ? order.getTotalAmount() : 0L) + overdueFee;
+
+ // 寮傚父灏卞湴瀵勫瓨璁㈠崟锛氬悓鏃舵洿鏂颁富璁㈠崟瀹為檯閫炬湡璐圭敤
+ boolean isAbnormal = Constants.equalsInteger(order.getExceptionStatus(), Constants.ONE)
+ && Constants.equalsInteger(order.getType(), Constants.ZERO);
+ if(isAbnormal){
+ long shopException = isAbnormal ? (order.getShopCompensationAmount() != null ? order.getShopCompensationAmount() : 0L) : 0L;
+ long driverException = isAbnormal ? (order.getExceptionFee() != null ? order.getExceptionFee() : 0L) : 0L;
+ long actualOverdueFee = isAbnormal ? (overdueFee - shopException - driverException) : 0L;
+ if(actualOverdueFee!=order.getOverdueAmount()){
+ order.setOverdueAmount(actualOverdueFee);
+ }
+ }
+
+ order.setOverdueStatus(Constants.TWO); // 2=宸叉敮浠�
order.setTotalAmount(newTotal);
order.setUpdateTime(now);
ordersMapper.updateById(order);
+
+
// 閲嶇畻涓夋柟鏀剁泭
calculateAndSaveOrderFees(order.getId());
}
@@ -3262,6 +3373,39 @@
sendOrderNotice(order.getMemberId(), Constants.MemberOrderNotify.WAIT_PICKUP_REMIND, order.getId(),
"orderNo", order.getCode(), "shopName", shopName);
}
+ // 瀵勫瓨鎴愬姛璧犻�佷紭鎯犲埜
+ giftOrderCoupon(order.getMemberId());
+ // 寮傚父璁㈠崟瀵勫瓨鏍搁攢锛氭爣璁板師璁㈠崟瀹屾垚
+ if (Constants.equalsInteger(order.getExceptionStatus(), Constants.ONE) && order.getRelationOrderId() != null) {
+ Orders originalOrder = ordersMapper.selectById(order.getRelationOrderId());
+ if (originalOrder != null) {
+ originalOrder.setStatus(Constants.OrderStatus.finished.getStatus());
+ originalOrder.setInvoiceStatus(Constants.ONE);
+ originalOrder.setSettlementStatus(Constants.ZERO);
+ originalOrder.setFinishTime(now);
+ originalOrder.setUpdateTime(now);
+ ordersMapper.updateById(originalOrder);
+ // 瑙﹀彂鍘熻鍗曟敹鐩婅绠�
+ calculateAndSaveOrderFees(originalOrder.getId());
+ generateRevenueRecords(originalOrder.getId());
+ // 璁板綍鍘熻鍗曟棩蹇�
+ saveShopVerifyLog(originalOrder, Constants.OrderLogType.shopTake, "寮傚父璁㈠崟鏍搁攢锛屽師璁㈠崟瀹屾垚", remark, shopId);
+ // 閫氱煡浼氬憳锛氳鍗曞凡瀹屾垚
+ sendOrderNotice(originalOrder.getMemberId(), Constants.MemberOrderNotify.FINISHED, originalOrder.getId(),
+ "orderNo", originalOrder.getCode());
+ // 閫氱煡瀛樹欢闂ㄥ簵鍜屽彇浠堕棬搴�
+ String settleDays = operationConfigBiz.getConfig().getSettlementDate();
+ notifyBothShops(originalOrder, Constants.ShopOrderNotify.FINISHED,
+ "orderNo", originalOrder.getCode(),
+ "settleDays", settleDays != null ? settleDays : "7");
+ // 閫氱煡鍙告満锛氳鍗曞凡瀹屾垚
+ if (originalOrder.getAcceptDriver() != null) {
+ sendDriverNotice(originalOrder.getAcceptDriver(), Constants.DriverOrderNotify.FINISHED, originalOrder.getId(),
+ "orderNo", originalOrder.getCode(),
+ "settleDays", settleDays != null ? settleDays : "7");
+ }
+ }
+ }
} else if (Constants.equalsInteger(status, Constants.OrderStatus.arrived.getStatus())) {
// 寮傚湴瀵勫瓨 + 鏃犲彇浠堕棬搴� 鈫� 鏃犳硶鏍搁攢锛堝鎴疯嚜鍙栵紝鏃犻棬搴楁搷浣滐級
if (Constants.equalsInteger(order.getType(), Constants.ONE) && order.getTakeShopId() == null) {
@@ -3430,30 +3574,7 @@
sendOrderNotice(order.getMemberId(), Constants.MemberOrderNotify.WAIT_PICKUP_REMIND, order.getId(),
"orderNo", order.getCode(), "shopName", shopName);
}
- // 寮傚父璁㈠崟瀵勫瓨鏍搁攢锛氭爣璁板師璁㈠崟瀹屾垚
- if (Constants.equalsInteger(order.getExceptionStatus(), Constants.ONE) && order.getRelationOrderId() != null) {
- Orders originalOrder = ordersMapper.selectById(order.getRelationOrderId());
- if (originalOrder != null) {
- originalOrder.setStatus(Constants.OrderStatus.finished.getStatus());
- originalOrder.setInvoiceStatus(Constants.ONE);
- originalOrder.setFinishTime(now);
- originalOrder.setUpdateTime(now);
- ordersMapper.updateById(originalOrder);
- // 瑙﹀彂鍘熻鍗曟敹鐩婅绠�
- calculateAndSaveOrderFees(originalOrder.getId());
- generateRevenueRecords(originalOrder.getId());
- // 閫氱煡浼氬憳锛氳鍗曞凡瀹屾垚
- sendOrderNotice(originalOrder.getMemberId(), Constants.MemberOrderNotify.FINISHED, originalOrder.getId(),
- "orderNo", originalOrder.getCode());
- // 閫氱煡鍙告満锛氳鍗曞凡瀹屾垚
- if (originalOrder.getAcceptDriver() != null) {
- String settleDays = operationConfigBiz.getConfig().getSettlementDate();
- sendDriverNotice(originalOrder.getAcceptDriver(), Constants.DriverOrderNotify.FINISHED, originalOrder.getId(),
- "orderNo", originalOrder.getCode(),
- "settleDays", settleDays != null ? settleDays : "7");
- }
- }
- }
+
} else if (Constants.equalsInteger(status, Constants.OrderStatus.arrived.getStatus())) {
// 寮傚湴瀵勫瓨 + 鏃犲彇浠堕棬搴� 鈫� 鏃犳硶鏍搁攢锛堝鎴疯嚜鍙栵紝鏃犻棬搴楁搷浣滐級
if (Constants.equalsInteger(order.getType(), Constants.ONE) && order.getTakeShopId() == null) {
@@ -3681,13 +3802,17 @@
}
Long totalAmount = order.getTotalAmount() != null ? order.getTotalAmount() : 0L;
+ Long shopCompensationAmount = order.getShopCompensationAmount() != null ? order.getShopCompensationAmount() : 0L;
+ Long exceptionFee = order.getExceptionFee() != null ? order.getExceptionFee() : 0L;
+ // 鍒嗘垚鍩烘暟 = 鎬婚噾棰� - 闂ㄥ簵寮傚父閲戦 - 鍙告満寮傚父閲戦
+ Long feeBase = totalAmount - shopCompensationAmount - exceptionFee;
// 璐圭巼锛堜负绌烘椂榛樿0锛�
BigDecimal depositRate = order.getDepositShopFeeRata() != null ? order.getDepositShopFeeRata() : BigDecimal.ZERO;
BigDecimal takeRate = order.getTakeShopFeeRata() != null ? order.getTakeShopFeeRata() : BigDecimal.ZERO;
BigDecimal driverRate = order.getDriverFeeRata() != null ? order.getDriverFeeRata() : BigDecimal.ZERO;
//瀛樹欢闂ㄥ簵鏀剁泭
- Long depositShopFee = new BigDecimal(totalAmount)
+ Long depositShopFee = new BigDecimal(feeBase)
.multiply(depositRate)
.setScale(0, RoundingMode.HALF_UP)
.longValue();
@@ -3697,14 +3822,14 @@
if (Constants.equalsInteger(order.getType(), Constants.ONE)) {
// 寮傚湴瀵勫瓨锛氬瓨浠堕棬搴� + 鍙告満
- driverFee = new BigDecimal(totalAmount)
+ driverFee = new BigDecimal(feeBase)
.multiply(driverRate)
.setScale(0, RoundingMode.HALF_UP)
.longValue();
// 寮傚湴瀵勫瓨涓旀湁鍙栦欢闂ㄥ簵锛氬姞涓婂彇浠堕棬搴楁敹鐩�
if (order.getTakeShopId() != null) {
- takeShopFee = new BigDecimal(totalAmount)
+ takeShopFee = new BigDecimal(feeBase)
.multiply(takeRate)
.setScale(0, RoundingMode.HALF_UP)
.longValue();
@@ -3742,6 +3867,29 @@
}
}
+ // 寮傚父璁㈠崟锛氬瓨浠堕棬搴楀紓甯歌ˉ鍋挎敹鐩婏紙鍗曠嫭涓�鏉¤褰曪紝type=5锛�
+ if (Constants.equalsInteger(order.getExceptionStatus(), Constants.ONE)
+ && order.getShopCompensationAmount() != null && order.getShopCompensationAmount() > 0
+ && order.getDepositShopId() != null) {
+ ShopInfo depositShop = shopInfoMapper.selectById(order.getDepositShopId());
+ if (depositShop != null && depositShop.getId() != null) {
+ Revenue shopExRevenue = new Revenue();
+ shopExRevenue.setMemberId(depositShop.getId());
+ shopExRevenue.setMemberType(Constants.TWO); // 2=闂ㄥ簵
+ shopExRevenue.setType(5); // 5=寮傚父閲戦
+ shopExRevenue.setOptType(Constants.ONE); // 1=鏀跺叆
+ shopExRevenue.setAmount(order.getShopCompensationAmount());
+ shopExRevenue.setVaildStatus(Constants.ZERO);
+ shopExRevenue.setObjId(orderId);
+ shopExRevenue.setObjType(Constants.ZERO);
+ shopExRevenue.setStatus(Constants.ZERO);
+ shopExRevenue.setOrderNo(order.getCode());
+ shopExRevenue.setDeleted(Constants.ZERO);
+ shopExRevenue.setCreateTime(now);
+ revenueMapper.insert(shopExRevenue);
+ }
+ }
+
// 鍙栦欢闂ㄥ簵鏀剁泭锛堝紓鍦板瘎瀛樹笖鏈夊彇浠堕棬搴楋級
if (takeShopFee > 0 && order.getTakeShopId() != null) {
ShopInfo takeShop = shopInfoMapper.selectById(order.getTakeShopId());
@@ -3760,27 +3908,33 @@
}
}
- // 寮傚父璁㈠崟锛氬徃鏈哄紓甯歌ˉ鍋匡紙寮傚湴 + 寮傚父鏍囪 + 鏈夊紓甯歌ˉ鍋块噾棰濓級
+ // 寮傚父璁㈠崟锛氬徃鏈哄紓甯歌ˉ鍋匡紙寮傚湴 + 寮傚父鏍囪锛屼粠鍏宠仈寮傚父瀛愯鍗曡幏鍙杄xceptionFee锛�
if (Constants.equalsInteger(order.getType(), Constants.ONE)
&& Constants.equalsInteger(order.getExceptionStatus(), Constants.ONE)
- && order.getExceptionFee() != null && order.getExceptionFee() > 0
&& order.getAcceptDriver() != null) {
- DriverInfo driver = driverInfoMapper.selectById(order.getAcceptDriver());
- if (driver != null && driver.getMemberId() != null) {
- Revenue exRevenue = new Revenue();
- exRevenue.setMemberId(driver.getMemberId());
- exRevenue.setMemberType(Constants.ONE); // 1=鍙告満
- exRevenue.setType(5); // 5=寮傚父閲戦
- exRevenue.setOptType(Constants.ONE); // 1=鏀跺叆
- exRevenue.setAmount(order.getExceptionFee());
- exRevenue.setVaildStatus(Constants.ZERO);
- exRevenue.setObjId(orderId);
- exRevenue.setObjType(Constants.ZERO);
- exRevenue.setStatus(Constants.ZERO);
- exRevenue.setOrderNo(order.getCode());
- exRevenue.setDeleted(Constants.ZERO);
- exRevenue.setCreateTime(now);
- revenueMapper.insert(exRevenue);
+ Orders childOrder = ordersMapper.selectOne(new QueryWrapper<Orders>().lambda()
+ .eq(Orders::getRelationOrderId, orderId)
+ .eq(Orders::getExceptionStatus, Constants.ONE)
+ .eq(Orders::getDeleted, Constants.ZERO)
+ .last("limit 1"));
+ if (childOrder != null && childOrder.getExceptionFee() != null && childOrder.getExceptionFee() > 0) {
+ DriverInfo driver = driverInfoMapper.selectById(order.getAcceptDriver());
+ if (driver != null && driver.getMemberId() != null) {
+ Revenue exRevenue = new Revenue();
+ exRevenue.setMemberId(driver.getMemberId());
+ exRevenue.setMemberType(Constants.ONE); // 1=鍙告満
+ exRevenue.setType(5); // 5=寮傚父閲戦
+ exRevenue.setOptType(Constants.ONE); // 1=鏀跺叆
+ exRevenue.setAmount(childOrder.getExceptionFee());
+ exRevenue.setVaildStatus(Constants.ZERO);
+ exRevenue.setObjId(orderId);
+ exRevenue.setObjType(Constants.ZERO);
+ exRevenue.setStatus(Constants.ZERO);
+ exRevenue.setOrderNo(order.getCode());
+ exRevenue.setDeleted(Constants.ZERO);
+ exRevenue.setCreateTime(now);
+ revenueMapper.insert(exRevenue);
+ }
}
}
@@ -3881,14 +4035,16 @@
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鏍搁攢鐮佹棤鏁�");
}
- // 浠呭紓鍦板瘎瀛� + 鏈夊彇浠堕棬搴� + 娲鹃�佷腑(4) 鍙牳閿�
- if (!Constants.equalsInteger(order.getType(), Constants.ONE)) {
+ // 浠呭紓鍦板瘎瀛� + 鏈夊彇浠堕棬搴� + 娲鹃�佷腑(4) 鍙牳閿�锛堝紓甯歌鍗曞厑璁革級
+ if (!Constants.equalsInteger(order.getType(), Constants.ONE)
+ && !Constants.equalsInteger(order.getExceptionStatus(), Constants.ONE)) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浠呭紓鍦板瘎瀛樿鍗曟敮鎸佸徃鏈烘牳閿�");
}
- if (order.getTakeShopId() == null) {
+ if (order.getTakeShopId() == null && !Constants.equalsInteger(order.getExceptionStatus(), Constants.ONE)) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璇ヨ鍗曟棤鍙栦欢闂ㄥ簵锛屾棤闇�鍙告満鏍搁攢");
}
- if (!Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.delivering.getStatus())) {
+ if (!Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.delivering.getStatus())
+ && !Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.deposited.getStatus())) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠璁㈠崟鐘舵�佷笉鍏佽鏍搁攢");
}
@@ -4012,8 +4168,7 @@
if (Constants.equalsInteger(order.getExceptionStatus(), Constants.ONE)
&& order.getRelationOrderId() != null) {
Orders originalOrder = ordersMapper.selectById(order.getRelationOrderId());
- long driverExceptionFee = (originalOrder != null && originalOrder.getExceptionFee() != null)
- ? originalOrder.getExceptionFee() : 0L;
+ long driverExceptionFee = order.getExceptionFee() != null ? order.getExceptionFee() : 0L;
long shopExceptionFee = order.getShopCompensationAmount() != null ? order.getShopCompensationAmount() : 0L;
long totalExceptionFee = driverExceptionFee + shopExceptionFee;
@@ -4027,13 +4182,14 @@
overdueFee = totalExceptionFee;
overdueDays = totalExceptionFee > 0 ? 1 : 0;
} else {
- // 闈炲綋澶╁彇浠讹細姝e父閫炬湡璁$畻 + 鍙告満寮傚父璐圭敤锛堜笉鍚棬搴楀紓甯歌垂鐢級
+ // 闈炲綋澶╁彇浠讹細姝e父閫炬湡璁$畻 + 鍙告満寮傚父璐圭敤锛堜笉鍚棬搴楀紓甯歌垂鐢級锛岄棬搴楀紓甯搁噾棰濇竻闆�
OverdueFeeVO normalOverdue = calculateOverdueFeeInternal(order, details);
long normalFee = (normalOverdue != null && normalOverdue.getOverdueFee() != null)
? normalOverdue.getOverdueFee() : 0L;
overdueFee = normalFee + driverExceptionFee;
overdueDays = (normalOverdue != null && normalOverdue.getOverdueDays() != null)
? normalOverdue.getOverdueDays() : 0;
+ order.setShopCompensationAmount(0L);
}
order.setConfirmArriveTime(now);
@@ -4601,7 +4757,7 @@
sendSmsNotify(member != null ? member.getTelephone() : null,
Constants.SmsNotify.MEMBER_CANCELLED, "orderNo", order.getCode());
}
-
+ restoreCoupon(order);
count++;
} catch (Exception e) {
log.error("鍙栨秷瓒呮椂璁㈠崟寮傚父, orderId={}, error={}", order.getId(), e.getMessage());
@@ -5019,29 +5175,26 @@
}
targetLat = order.getDepositLat();
targetLgt = order.getDepositLgt();
- } else if (Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.arrived.getStatus())) {
- // status=5 闂ㄥ簵瀹屾垚鏍搁攢
- if (Constants.equalsInteger(order.getType(), Constants.ZERO)) {
- // 灏卞湴瀛樺彇 鈫� 瀵规瘮瀛樹欢闂ㄥ簵
- if (!Constants.equalsInteger(order.getDepositShopId(), userId)) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏃犳潈鎿嶄綔璇ヨ鍗�");
- }
- targetLat = order.getDepositLat();
- targetLgt = order.getDepositLgt();
- } else {
- // 寮傚湴瀛樺彇 鈫� 瀵规瘮鍙栦欢闂ㄥ簵
- if (!Constants.equalsInteger(order.getTakeShopId(), userId)) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏃犳潈鎿嶄綔璇ヨ鍗�");
- }
- targetLat = order.getTakeLat();
- targetLgt = order.getTakeLgt();
+ } else if (Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.arrived.getStatus())&&Constants.equalsInteger(order.getType(), Constants.ZERO)) {
+ // 灏卞湴瀵勫瓨 鈫� 瀵规瘮瀛樹欢闂ㄥ簵
+ if (!Constants.equalsInteger(order.getDepositShopId(), userId)) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏃犳潈鎿嶄綔璇ヨ鍗�");
}
+ targetLat = order.getDepositLat();
+ targetLgt = order.getDepositLgt();
+ } else if ((Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.delivering.getStatus())||Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.arrived.getStatus()))&&Constants.equalsInteger(order.getType(), Constants.ONE)) {
+ // 鍚屽煄瀵勯�� 鈫� 瀵规瘮鍙栦欢闂ㄥ簵
+ if (!Constants.equalsInteger(order.getTakeShopId(), userId)) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏃犳潈鎿嶄綔璇ヨ鍗�");
+ }
+ targetLat = order.getTakeLat();
+ targetLgt = order.getTakeLgt();
} else {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璁㈠崟鐘舵�佷笉鍏佽姝ゆ搷浣�");
}
} else if (Constants.equalsInteger(userType, Constants.ONE)) {
// 鍙告満鎿嶄綔
- if (Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.deposited.getStatus())) {
+ if (Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.accepted.getStatus())) {
// status=2 鍙告満鍙栦欢
if (!Constants.equalsInteger(order.getAcceptDriver(), userId)) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏃犳潈鎿嶄綔璇ヨ鍗�");
@@ -5082,8 +5235,8 @@
if (original.getTakeShopId() != null) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璇ヨ鍗曞凡鍏宠仈鍙栦欢闂ㄥ簵锛屼笉鏀寔寮傚父澶勭悊");
}
- if (!Constants.equalsInteger(original.getStatus(), Constants.FIVE)) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浠呮敮鎸佸凡閫佽揪鐘舵�佺殑璁㈠崟");
+ if (!Constants.equalsInteger(original.getStatus(), Constants.OrderStatus.delivering.getKey())) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浠呮敮鎸侀厤閫佷腑鐨勮鍗曡繘琛屽紓甯稿鐞�");
}
if (Constants.equalsInteger(original.getExceptionStatus(), Constants.ONE)) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璇ヨ鍗曞凡澶勭悊杩囧紓甯革紝璇峰嬁閲嶅鎿嶄綔");
@@ -5096,7 +5249,7 @@
Date now = new Date();
- // ========== B. 鍒涘缓鏂拌鍗曪紙灏卞湴瀛樺彇锛� ==========
+ // ========== B. 鍒涘缓鏂拌鍗曪紙灏卞湴瀵勫瓨锛� ==========
String orderCode = "JC" + new java.text.SimpleDateFormat("yyyyMMddHHmmss").format(now)
+ String.format("%04d", new java.util.Random().nextInt(10000));
String orderTradeNo = generateOrderTradeNo();
@@ -5137,7 +5290,7 @@
}
}
- // 瀛樹欢闂ㄥ簵鍒嗘垚鍗犳瘮锛堝氨鍦板瓨鍙栵級
+ // 瀛樹欢闂ㄥ簵鍒嗘垚鍗犳瘮锛堝氨鍦板瘎瀛橈級
Integer cityId = Integer.valueOf(original.getCityId());
boolean isCompany = Constants.equalsInteger(newShop.getCompanyType(), Constants.ONE);
int fallbackFieldA = isCompany ? Constants.FIVE : Constants.SIX;
@@ -5147,7 +5300,7 @@
newOrder.setCode(orderCode);
newOrder.setOutTradeNo(orderTradeNo);
newOrder.setMemberId(original.getMemberId());
- newOrder.setType(Constants.ZERO); // 灏卞湴瀛樺彇
+ newOrder.setType(Constants.ZERO); // 灏卞湴瀵勫瓨
newOrder.setCityId(original.getCityId());
newOrder.setStatus(Constants.ONE); // 寰呭瘎瀛�
newOrder.setPayStatus(Constants.ONE); // 宸叉敮浠�
@@ -5198,8 +5351,8 @@
newOrder.setDeclaredAmount(0L);
newOrder.setDeclaredFee(0L);
newOrder.setPrice(price);
- newOrder.setBasicAmount(basicAmount);
- newOrder.setEstimatedAmount(basicAmount);
+ newOrder.setBasicAmount(0L);//);
+ newOrder.setEstimatedAmount(0L);//basicAmount);
newOrder.setTotalAmount(0L);
newOrder.setPayAmount(0L);
newOrder.setManualRefund(Constants.ZERO);
@@ -5214,6 +5367,8 @@
// 闂ㄥ簵琛ュ伩閲戦
newOrder.setShopCompensationAmount(dto.getShopCompensation());
+ // 鍙告満寮傚父琛ュ伩閲戦
+ newOrder.setExceptionFee(dto.getDriverCompensation());
newOrder.setRemark(dto.getRemark());
newOrder.setPlatformSmsNotified(Constants.ZERO);
@@ -5270,7 +5425,6 @@
// ========== E. 鏇存柊鍘熻鍗� ==========
ordersMapper.update(new UpdateWrapper<Orders>().lambda()
.set(Orders::getExceptionStatus, Constants.ONE)
- .set(Orders::getExceptionFee, dto.getDriverCompensation())
.set(Orders::getUpdateTime, now)
.eq(Orders::getId, original.getId()));
@@ -5299,4 +5453,27 @@
}
}
+ @Override
+ public ManualRefundDetailVO getManualRefundDetail(Integer orderId) {
+ OrdersRefund refundRecord = ordersRefundMapper.selectOne(new QueryWrapper<OrdersRefund>().lambda()
+ .eq(OrdersRefund::getOrderId, orderId)
+ .eq(OrdersRefund::getType, Constants.FOUR)
+ .eq(OrdersRefund::getDeleted, Constants.ZERO)
+ .orderByDesc(OrdersRefund::getCreateTime)
+ .last("limit 1"));
+ if (refundRecord == null) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ ManualRefundDetailVO vo = new ManualRefundDetailVO();
+ vo.setRefundAmount(refundRecord.getRefundAmount());
+ if (StringUtils.isNotBlank(refundRecord.getDeductInfo())) {
+ JSONObject json = JSONObject.parseObject(refundRecord.getDeductInfo());
+ vo.setDepositShopDeduct(json.getLong("depositShopDeduct"));
+ vo.setTakeShopDeduct(json.getLong("takeShopDeduct"));
+ vo.setDriverDeduct(json.getLong("driverDeduct"));
+ }
+ vo.setRefundRemark(refundRecord.getRefundRemark());
+ return vo;
+ }
+
}
--
Gitblit v1.9.3