From ab9cd2c82bd64de8e33510db1d1e78a5b3b4de70 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 20 四月 2026 19:37:20 +0800
Subject: [PATCH] 代码生成
---
server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java | 262 +++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 218 insertions(+), 44 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 8fa0b27..4e9ea0d 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
@@ -8,14 +8,16 @@
import com.doumee.biz.system.OperationConfigBiz;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.wx.WxMiniConfig;
-import com.doumee.config.wx.WxMiniUtilService;
+import com.doumee.config.wx.WxPayProperties;
+import com.doumee.config.wx.WxPayV3Service;
+import com.wechat.pay.java.service.refund.model.Refund;
import com.doumee.core.constants.Constants;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.DateUtil;
-import com.doumee.core.utils.Tencent.MapUtil;
+import com.doumee.core.utils.geocode.MapUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.*;
import com.doumee.dao.business.model.*;
@@ -30,11 +32,12 @@
import com.doumee.dao.dto.MyOrderDTO;
import com.doumee.dao.dto.OrderItemDTO;
import com.doumee.dao.vo.*;
+import com.doumee.service.business.NoticeService;
import com.doumee.service.business.OrderLogService;
import com.doumee.service.business.OrdersService;
+import com.doumee.dao.business.model.Notice;
import com.doumee.service.business.AreasService;
import com.doumee.service.business.PricingRuleService;
-import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
@@ -45,17 +48,11 @@
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.math.RoundingMode;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
import java.util.*;
import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
/**
* 瀵勫瓨璁㈠崟淇℃伅Service瀹炵幇
@@ -104,8 +101,7 @@
@Autowired
private RevenueMapper revenueMapper;
- @Autowired
- private WxMiniUtilService wxMiniUtilService;
+
@Autowired
private SystemUserMapper systemUserMapper;
@@ -127,6 +123,15 @@
@Autowired
private AreasService areasService;
+
+ @Autowired
+ private NoticeService noticeService;
+
+ @Autowired
+ private WxPayV3Service wxPayV3Service;
+
+ @Autowired
+ private WxPayProperties wxPayProperties;
@Override
public Integer create(Orders orders) {
@@ -413,7 +418,7 @@
// 1. 璋冪敤鑵捐鍦板浘璺濈鐭╅樀API璁$畻椹捐溅璺濈
String from = dto.getFromLat() + "," + dto.getFromLgt();
String to = dto.getToLat() + "," + dto.getToLgt();
- JSONObject distanceResult = MapUtil.distanceSingle("driving", from, to);
+ JSONObject distanceResult = MapUtil.direction("driving", from, to);
BigDecimal distance = distanceResult.getBigDecimal("distance");
// distance 鍗曚綅涓虹背锛岃浆涓哄叕閲�
BigDecimal distanceKm = distance.divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP);
@@ -518,16 +523,17 @@
// 5. 鍔犳�ヨ垂鐢細鐗╁搧浠锋牸 脳 鍔犳�ョ郴鏁�(瀛楀吀 URGENT_COEFFICIENT)
long urgentFeeFen = 0L;
- if (Boolean.TRUE.equals(dto.getUrgent())) {
- String urgentRateStr = systemDictDataBiz.queryByCode(
- Constants.OPERATION_CONFIG, Constants.OP_URGENT_COEFFICIENT).getCode();
- BigDecimal urgentRate = new BigDecimal(urgentRateStr);
- urgentFeeFen = new BigDecimal(itemPriceTotal).multiply(urgentRate)
- .setScale(0, RoundingMode.HALF_UP).longValue();
- }
+ String urgentRateStr = systemDictDataBiz.queryByCode(
+ Constants.OPERATION_CONFIG, Constants.OP_URGENT_COEFFICIENT).getCode();
+ BigDecimal urgentRate = new BigDecimal(urgentRateStr);
+ urgentFeeFen = new BigDecimal(itemPriceTotal).multiply(urgentRate)
+ .setScale(0, RoundingMode.HALF_UP).longValue();
- // 6. 鎬讳环鏍� = 鐗╁搧浠锋牸 + 淇濅环璐圭敤 + 鍔犳�ヨ垂鐢�
- long totalPrice = itemPriceTotal + insuranceFeeFen + urgentFeeFen;
+ // 6. 鎬讳环鏍� = 鐗╁搧浠锋牸 + 淇濅环璐圭敤 + 鍔犳�ヨ垂鐢紙鍔犳�ユ椂鎵嶅寘鍚姞鎬ヨ垂锛�
+ long totalPrice = itemPriceTotal + insuranceFeeFen;
+ if (Boolean.TRUE.equals(dto.getUrgent())) {
+ totalPrice += urgentFeeFen;
+ }
PriceCalculateVO result = new PriceCalculateVO();
result.setItemList(itemList);
@@ -666,9 +672,9 @@
takeLocationValue = takeShop.getAddress();
} else if (dto.getTakeLat() != null && dto.getTakeLgt() != null && StringUtils.isNotBlank(dto.getTakeLocation())) {
// 鏃犲彇浠堕棬搴楋紝鏍¢獙瀛樹欢鐐逛笌鑷�夊彇浠剁偣鏄惁鍦ㄥ悓涓�鍩庡競
- if (MapUtil.isSameCity(depositShop.getLatitude(), depositShop.getLongitude(),
+ if (!MapUtil.isSameCity(depositShop.getLatitude(), depositShop.getLongitude(),
dto.getTakeLat().doubleValue(), dto.getTakeLgt().doubleValue())) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "寮傚湴瀵勫瓨璁㈠崟瀛樺彇鐐逛笉鑳藉湪鍚屼竴鍩庡競锛屽闇�鍚屽煄瀵勫瓨璇烽�夋嫨灏辫繎闂ㄥ簵");
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "寮傚湴瀵勫瓨璁㈠崟瀛樺彇鐐逛笉鍦ㄥ悓涓�鍩庡競锛屽闇�璇烽�夋嫨鍚屽煄闂ㄥ簵");
}
takeLat = dto.getTakeLat();
takeLgt = dto.getTakeLgt();
@@ -836,7 +842,8 @@
if (member == null || StringUtils.isBlank(member.getOpenid())) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鐢ㄦ埛淇℃伅寮傚父锛屾棤娉曞彂璧锋敮浠�");
}
- PayResponse payResponse = wxPay(orders, member.getOpenid(), Constants.OrdersAttach.STORAGE_ORDER);
+ PayResponse payResponse = wxPayV3(orders.getOutTradeNo(), orders.getTotalAmount(), orders.getId(),
+ member.getOpenid(), Constants.OrdersAttach.STORAGE_ORDER);
payResponse.setLockKey(lockKey);
return payResponse;
}
@@ -871,7 +878,8 @@
if (member == null || StringUtils.isBlank(member.getOpenid())) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鐢ㄦ埛淇℃伅寮傚父锛屾棤娉曞彂璧锋敮浠�");
}
- return wxPay(orders, member.getOpenid(), Constants.OrdersAttach.STORAGE_ORDER);
+ return wxPayV3(orders.getOutTradeNo(), orders.getTotalAmount(), orders.getId(),
+ member.getOpenid(), Constants.OrdersAttach.STORAGE_ORDER);
}
/**
@@ -906,7 +914,32 @@
}
}
+ /**
+ * 鍞よ捣寰俊鏀粯V3
+ *
+ * @param outTradeNo 鍟嗘埛璁㈠崟鍙�
+ * @param totalCents 鏀粯閲戦锛堝垎锛�
+ * @param orderId 璁㈠崟涓婚敭
+ * @param openid 鐢ㄦ埛寰俊openid
+ * @param ordersAttach 璁㈠崟鏀粯绫诲瀷
+ * @return PayResponse 鍖呭惈寰俊璋冭捣鍙傛暟鍜岃鍗曚富閿�
+ */
+ private PayResponse wxPayV3(String outTradeNo, Long totalCents, Integer orderId,
+ String openid, Constants.OrdersAttach ordersAttach) {
+ Map<String, String> payParams = wxPayV3Service.createOrder(
+ outTradeNo,
+ ordersAttach.getName(),
+ totalCents != null ? totalCents : 0L,
+ openid,
+ wxPayProperties.getV3NotifyUrl(),
+ ordersAttach.getKey()
+ );
+ PayResponse payResponse = new PayResponse();
+ payResponse.setResponse(payParams);
+ payResponse.setOrderId(orderId);
+ return payResponse;
+ }
@@ -1240,14 +1273,17 @@
// 瀵勪欢闂ㄥ簵鍗犳瘮锛歠ieldA=0(浼佷笟瀵�)/1(涓汉瀵�)
int depositFieldA = Constants.equalsInteger(depositShop.getCompanyType(), Constants.ONE) ? Constants.ZERO : Constants.ONE;
BigDecimal depositShopRata = getRevenueShareRata(cityId, depositFieldA);
- // 鍙栦欢闂ㄥ簵鍗犳瘮锛歠ieldA=2(浼佷笟鍙�)/3(涓汉鍙�)
- int takeFieldA = Constants.equalsInteger(takeShop.getCompanyType(), Constants.ONE) ? Constants.TWO : Constants.THREE;
- BigDecimal takeShopRata = getRevenueShareRata(cityId, takeFieldA);
+ // 鍙栦欢闂ㄥ簵鍗犳瘮锛氭棤鍙栦欢闂ㄥ簵鏃舵瘮渚嬩负0
+ BigDecimal takeShopRata = BigDecimal.ZERO;
+ if (takeShop != null) {
+ int takeFieldA = Constants.equalsInteger(takeShop.getCompanyType(), Constants.ONE) ? Constants.TWO : Constants.THREE;
+ takeShopRata = getRevenueShareRata(cityId, takeFieldA);
+ }
// 璁$畻钖叕锛堝垎锛夛細totalAmount 涓哄垎锛宺ata 涓烘瘮渚嬪�硷紙濡� 0.15 琛ㄧず 15%锛�
long driverFee = new BigDecimal(totalAmount).multiply(driverRata).longValue();
long depositShopFee = new BigDecimal(totalAmount).multiply(depositShopRata).longValue();
- long takeShopFee = totalAmount - driverFee - depositShopFee;
+ long takeShopFee = new BigDecimal(totalAmount).multiply(takeShopRata).longValue();
orders.setDriverFee(driverFee);
orders.setDepositShopFee(depositShopFee);
@@ -1664,10 +1700,11 @@
refund.setCreateTime(now);
refund.setDeleted(Constants.ZERO);
- // 璋冪敤寰俊閫�娆撅紝鍏ㄩ閫�娆�
- String refundCode = wxMiniUtilService.wxRefund(order.getOutTradeNo(), order.getPayAmount(), order.getPayAmount());
- refund.setRefundCode(refundCode);
- refund.setRefundTime(new Date());
+ // 璋冪敤寰俊閫�娆綱3锛屽叏棰濋��娆�
+ Refund refundResult = wxPayV3Service.refund(order.getOutTradeNo(), order.getPayAmount(), order.getPayAmount(),
+ "璁㈠崟閫�娆�", wxPayProperties.getV3RefundNotifyUrl());
+ refund.setRefundCode(refundResult.getOutRefundNo());
+ refund.setStatus(Constants.ZERO); // 閫�娆句腑
ordersRefundMapper.insert(refund);
order.setStatus(Constants.OrderStatus.cancelled.getStatus());
@@ -1676,6 +1713,9 @@
ordersMapper.updateById(order);
saveCancelLog(order, "浼氬憳鍙栨秷璁㈠崟锛堝緟瀵勫瓨锛屽叏棰濋��娆撅級", reason, memberId);
+ // 閫氱煡浼氬憳锛氶��娆句腑
+ sendOrderNotice(memberId, Constants.MemberOrderNotify.REFUNDING, orderId,
+ "orderNo", order.getCode());
return;
}
@@ -1686,6 +1726,11 @@
order.setCancelTime(now);
ordersMapper.updateById(order);
saveCancelLog(order, "浼氬憳鐢宠鍙栨秷璁㈠崟锛堝凡瀵勫瓨/宸叉帴鍗曪級", reason, memberId);
+ // 閫氱煡瀛樹欢闂ㄥ簵锛氶��娆剧敵璇�
+ if (order.getDepositShopId() != null) {
+ sendShopNotice(order.getDepositShopId(), Constants.ShopOrderNotify.REFUNDING, orderId,
+ "orderNo", order.getCode());
+ }
return;
}
@@ -1724,6 +1769,52 @@
log.setCreateTime(new Date());
log.setDeleted(Constants.ZERO);
orderLogService.create(log);
+ }
+
+ /**
+ * 鍙戦�佽鍗曠珯鍐呬俊閫氱煡
+ */
+ private void sendOrderNotice(Integer memberId, Constants.MemberOrderNotify notify, Integer orderId, String... params) {
+ Notice notice = new Notice();
+ notice.setUserType(0); // 0=浼氬憳
+ notice.setUserId(memberId);
+ notice.setTitle(notify.getTitle());
+ notice.setContent(notify.format(params));
+ notice.setObjId(orderId);
+ notice.setObjType(0); // 0=璁㈠崟
+ notice.setStatus(0); // 0=鏈
+ notice.setIsdeleted(Constants.ZERO);
+ notice.setCreateDate(new Date());
+ noticeService.create(notice);
+ }
+
+ /**
+ * 鍙戦�侀棬搴楃珯鍐呬俊閫氱煡
+ */
+ private void sendShopNotice(Integer shopId, Constants.ShopOrderNotify notify, Integer orderId, String... params) {
+ Notice notice = new Notice();
+ notice.setUserType(2); // 2=闂ㄥ簵
+ notice.setUserId(shopId);
+ notice.setTitle(notify.getTitle());
+ notice.setContent(notify.format(params));
+ notice.setObjId(orderId);
+ notice.setObjType(0); // 0=璁㈠崟
+ notice.setStatus(0); // 0=鏈
+ notice.setIsdeleted(Constants.ZERO);
+ notice.setCreateDate(new Date());
+ noticeService.create(notice);
+ }
+
+ /**
+ * 閫氱煡瀛樹欢闂ㄥ簵鍜屽彇浠堕棬搴楋紙璁㈠崟瀹屾垚/璇勪环绛夛級
+ */
+ private void notifyBothShops(Orders order, Constants.ShopOrderNotify notify, String... params) {
+ if (order.getDepositShopId() != null) {
+ sendShopNotice(order.getDepositShopId(), notify, order.getId(), params);
+ }
+ if (order.getTakeShopId() != null) {
+ sendShopNotice(order.getTakeShopId(), notify, order.getId(), params);
+ }
}
@Override
@@ -1767,6 +1858,17 @@
}
}
ordersMapper.updateById(order);
+
+ // 閫氱煡浼氬憳锛氳鍗曞緟鏍搁獙
+ sendOrderNotice(order.getMemberId(), Constants.MemberOrderNotify.WAIT_VERIFY, order.getId(),
+ "orderNo", order.getCode(),
+ "storeCode", order.getMemberVerifyCode());
+
+ // 灏卞湴瀵勫瓨璁㈠崟锛氶�氱煡瀛樹欢闂ㄥ簵寰呮牳楠�
+ if (Constants.ZERO.equals(order.getType()) && order.getDepositShopId() != null) {
+ sendShopNotice(order.getDepositShopId(), Constants.ShopOrderNotify.WAIT_VERIFY, order.getId(),
+ "orderNo", order.getCode());
+ }
}
@Override
@@ -1810,8 +1912,9 @@
otherOrders.setCreateTime(now);
otherOrdersMapper.insert(otherOrders);
- // 5. 鍞よ捣寰俊鏀粯
- return wxPayForOtherOrder(otherOrders, member.getOpenid(), Constants.OrdersAttach.OVERDUE_FEE);
+ // 5. 鍞よ捣寰俊鏀粯V3
+ return wxPayV3(otherOrders.getOutTradeNo(), otherOrders.getPayAccount(), otherOrders.getId(),
+ member.getOpenid(), Constants.OrdersAttach.OVERDUE_FEE);
}
@Override
@@ -1910,8 +2013,9 @@
otherOrders.setCreateTime(now);
otherOrdersMapper.insert(otherOrders);
- // 5. 鍞よ捣寰俊鏀粯
- return wxPayForOtherOrder(otherOrders, member.getOpenid(), Constants.OrdersAttach.SHOP_DEPOSIT);
+ // 5. 鍞よ捣寰俊鏀粯V3
+ return wxPayV3(otherOrders.getOutTradeNo(), otherOrders.getPayAccount(), otherOrders.getId(),
+ member.getOpenid(), Constants.OrdersAttach.SHOP_DEPOSIT);
}
@Override
@@ -2048,6 +2152,12 @@
}
}
}
+
+ // 閫氱煡鐩稿叧闂ㄥ簵锛氳鍗曞凡缁撶畻
+ notifyBothShops(order, Constants.ShopOrderNotify.SETTLED,
+ "orderNo", order.getCode(),
+ "amount", String.valueOf(Constants.getFormatMoney(
+ order.getTotalAmount() != null ? order.getTotalAmount() : 0L)));
}
}
@@ -2144,6 +2254,14 @@
if (isRemote && order.getAcceptDriver() != null) {
updateTargetScore(Constants.THREE, order.getAcceptDriver());
}
+
+ // 閫氱煡浼氬憳锛氳鍗曞凡璇勪环
+ sendOrderNotice(memberId, Constants.MemberOrderNotify.EVALUATED, order.getId(),
+ "orderNo", order.getCode());
+
+ // 閫氱煡瀛樹欢闂ㄥ簵鍜屽彇浠堕棬搴楋細璁㈠崟宸茶瘎浠�
+ notifyBothShops(order, Constants.ShopOrderNotify.EVALUATED,
+ "orderNo", order.getCode());
}
/**
@@ -2246,6 +2364,16 @@
saveVerifyImages(order.getId(), images, Constants.FileType.ORDER_DEPOSIT.getKey(), shopId);
// 璁板綍璁㈠崟鏃ュ織
saveShopVerifyLog(order, "闂ㄥ簵纭瀵勫瓨", "闂ㄥ簵銆�" + shopName + "銆戠‘璁ゅ瘎瀛�", remark, shopId);
+ // 閫氱煡浼氬憳锛氶棬搴楁牳閿�鎴愬姛
+ if (Constants.equalsInteger(order.getType(), Constants.ONE)) {
+ // 寮傚湴瀵勫瓨 鈫� 寰呮姠鍗�
+ sendOrderNotice(order.getMemberId(), Constants.MemberOrderNotify.WAIT_GRAB, order.getId(),
+ "orderNo", order.getCode());
+ } else {
+ // 灏卞湴瀵勫瓨 鈫� 寰呭彇浠舵彁閱�
+ sendOrderNotice(order.getMemberId(), Constants.MemberOrderNotify.WAIT_PICKUP_REMIND, order.getId(),
+ "orderNo", order.getCode());
+ }
} else if (Constants.equalsInteger(status, Constants.OrderStatus.arrived.getStatus())) {
// 寮傚湴瀵勫瓨 + 鏃犲彇浠堕棬搴� 鈫� 鏃犳硶鏍搁攢锛堝鎴疯嚜鍙栵紝鏃犻棬搴楁搷浣滐級
if (Constants.equalsInteger(order.getType(), Constants.ONE) && order.getTakeShopId() == null) {
@@ -2268,6 +2396,14 @@
generateRevenueRecords(order.getId());
// 璁板綍璁㈠崟鏃ュ織
saveShopVerifyLog(order, "闂ㄥ簵纭鍙栦欢", "闂ㄥ簵銆�" + shopName + "銆戠‘璁ゅ彇浠讹紝璁㈠崟瀹屾垚", remark, shopId);
+ // 閫氱煡浼氬憳锛氳鍗曞凡瀹屾垚
+ sendOrderNotice(order.getMemberId(), Constants.MemberOrderNotify.FINISHED, order.getId(),
+ "orderNo", order.getCode());
+ // 閫氱煡瀛樹欢闂ㄥ簵鍜屽彇浠堕棬搴楋細璁㈠崟宸插畬鎴�
+ String settleDays = operationConfigBiz.getConfig().getSettlementDate();
+ notifyBothShops(order, Constants.ShopOrderNotify.FINISHED,
+ "orderNo", order.getCode(),
+ "settleDays", settleDays != null ? settleDays : "7");
} else {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠璁㈠崟鐘舵�佷笉鍏佽鏍搁攢");
}
@@ -2344,13 +2480,14 @@
refundRecord.setDeleted(Constants.ZERO);
ordersRefundMapper.insert(refundRecord);
- // 璋冪敤寰俊閫�娆撅紙鏀惧湪鏈�鍚庯紝纭繚鍓嶇疆鎿嶄綔鍏ㄩ儴鎴愬姛锛�
- String refundCode = wxMiniUtilService.wxRefund(
- order.getOutTradeNo(), order.getPayAmount(), order.getRefundAmount());
+ // 璋冪敤寰俊閫�娆綱3锛堟斁鍦ㄦ渶鍚庯紝纭繚鍓嶇疆鎿嶄綔鍏ㄩ儴鎴愬姛锛�
+ Refund refundResult = wxPayV3Service.refund(
+ order.getOutTradeNo(), order.getPayAmount(), order.getRefundAmount(),
+ "璁㈠崟閫�娆�", wxPayProperties.getV3RefundNotifyUrl());
- // 閫�娆炬垚鍔熷悗鍥炲~閫�娆惧崟鍙峰拰鏃堕棿
- refundRecord.setRefundCode(refundCode);
- refundRecord.setRefundTime(new Date());
+ // 閫�娆炬垚鍔熷悗鍥炲~閫�娆惧崟鍙凤紝鏍囪閫�娆句腑
+ refundRecord.setRefundCode(refundResult.getOutRefundNo());
+ refundRecord.setStatus(Constants.ZERO); // 閫�娆句腑
ordersRefundMapper.updateById(refundRecord);
}
@@ -2364,6 +2501,14 @@
logInfo += "锛岄��娆�" + Constants.getFormatMoney(order.getRefundAmount()) + "鍏�";
}
saveShopVerifyLog(order, "闂ㄥ簵纭鍑哄簱", logInfo, remark, shopId);
+ // 閫氱煡浼氬憳锛氳鍗曞凡瀹屾垚
+ sendOrderNotice(order.getMemberId(), Constants.MemberOrderNotify.FINISHED, order.getId(),
+ "orderNo", order.getCode());
+ // 閫氱煡瀛樹欢闂ㄥ簵鍜屽彇浠堕棬搴楋細璁㈠崟宸插畬鎴�
+ String settleDays = operationConfigBiz.getConfig().getSettlementDate();
+ notifyBothShops(order, Constants.ShopOrderNotify.FINISHED,
+ "orderNo", order.getCode(),
+ "settleDays", settleDays != null ? settleDays : "7");
}
@Override
@@ -2401,6 +2546,15 @@
// 7. 鐢熸垚鏀剁泭璁板綍
calculateAndSaveOrderFees(orderId);
generateRevenueRecords(orderId);
+
+ // 閫氱煡浼氬憳锛氳鍗曞凡瀹屾垚
+ sendOrderNotice(memberId, Constants.MemberOrderNotify.FINISHED, orderId,
+ "orderNo", order.getCode());
+ // 閫氱煡瀛樹欢闂ㄥ簵鍜屽彇浠堕棬搴楋細璁㈠崟宸插畬鎴�
+ String settleDays = operationConfigBiz.getConfig().getSettlementDate();
+ notifyBothShops(order, Constants.ShopOrderNotify.FINISHED,
+ "orderNo", order.getCode(),
+ "settleDays", settleDays != null ? settleDays : "7");
}
@Override
@@ -2552,6 +2706,26 @@
// 淇濆瓨闄勪欢锛坥bj_type=3 闂ㄥ簵鍏ュ簱鍥剧墖锛屾渶澶�3寮狅級
saveVerifyImages(order.getId(), images, Constants.FileType.ORDER_TAKE.getKey(), driverId);
+
+ // 閫氱煡浼氬憳锛氳鍗曞凡閫佽揪
+ String destination = order.getTakeShopAddress() != null ? order.getTakeShopAddress() : "";
+ if (order.getMemberVerifyCode() != null) {
+ sendOrderNotice(order.getMemberId(), Constants.MemberOrderNotify.ARRIVED_HAS_SHOP, order.getId(),
+ "orderNo", order.getCode(),
+ "destination", destination,
+ "pickupCode", order.getMemberVerifyCode());
+ } else {
+ sendOrderNotice(order.getMemberId(), Constants.MemberOrderNotify.ARRIVED_NO_SHOP, order.getId(),
+ "orderNo", order.getCode(),
+ "destination", destination);
+ }
+
+ // 閫氱煡鍙栦欢闂ㄥ簵锛氳鍗曞凡閫佽揪
+ if (order.getTakeShopId() != null) {
+ sendShopNotice(order.getTakeShopId(), Constants.ShopOrderNotify.ARRIVED, order.getId(),
+ "orderNo", order.getCode(),
+ "destination", destination);
+ }
}
/**
@@ -2953,7 +3127,7 @@
// 鑵捐鍦板浘璺濈鐭╅樀API璁$畻瀹為檯璺濈
String from = fromLat + "," + fromLng;
String to = toLat + "," + toLng;
- JSONObject distanceResult = MapUtil.distanceSingle("driving", from, to);
+ JSONObject distanceResult = MapUtil.direction("driving", from, to);
// 鑾峰彇璺濈锛堢背锛夛紝杞叕閲�
int distanceMeters = distanceResult.getIntValue("distance");
--
Gitblit v1.9.3