From 2ab42edae9d271f5f464b7be475e217752dacb38 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 22 四月 2026 09:24:47 +0800
Subject: [PATCH] 代码生成
---
server/services/src/main/java/com/doumee/service/business/DriverInfoService.java | 9 +
server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java | 115 ++++++++++++
server/services/src/main/java/com/doumee/config/wx/WxMiniConfig.java | 65 +++---
server/services/src/main/java/com/doumee/dao/vo/OrderItemVO.java | 8
server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java | 9
server/services/src/main/java/com/doumee/config/wx/WxPayV3Service.java | 2
server/services/src/main/resources/application-dev.yml | 27 --
server/web/src/main/java/com/doumee/api/web/AccountApi.java | 26 ++
server/services/src/main/java/com/doumee/service/business/ShopInfoService.java | 6
server/services/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java | 2
server/web/src/main/java/com/doumee/api/web/DriverInfoApi.java | 13 +
server/services/src/main/java/com/doumee/dao/vo/MyOrderVO.java | 22 ++
server/services/src/main/java/com/doumee/dao/business/model/WithdrawalOrders.java | 3
server/web/src/main/java/com/doumee/api/web/OrdersApi.java | 4
server/services/src/main/java/com/doumee/config/wx/WxPayProperties.java | 14
server/services/src/main/java/com/doumee/core/constants/Constants.java | 45 ++++
server/services/db/db_change.sql | 6
server/services/src/main/java/com/doumee/service/business/MemberService.java | 2
server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 10
server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java | 100 +++++++++-
server/web/src/main/resources/application.yml | 2
server/admin/src/main/resources/application.yml | 2
server/services/src/main/java/com/doumee/config/alipay/AlipayFundTransUniTransfer.java | 2
server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java | 4
24 files changed, 390 insertions(+), 108 deletions(-)
diff --git a/server/admin/src/main/resources/application.yml b/server/admin/src/main/resources/application.yml
index c39e822..a67904a 100644
--- a/server/admin/src/main/resources/application.yml
+++ b/server/admin/src/main/resources/application.yml
@@ -3,7 +3,7 @@
port: 10010
# 椤圭洰淇℃伅閰嶇疆
project:
- name: 杩戝揩
+ name: 楂橀搧琛屾潕瀵勫瓨
version: 1.0.0
# 鐜锛岀敓浜х幆澧僷roduction锛屽紑鍙戠幆澧僤evelopment
env: production
diff --git a/server/services/db/db_change.sql b/server/services/db/db_change.sql
index b240fc2..96b2a07 100644
--- a/server/services/db/db_change.sql
+++ b/server/services/db/db_change.sql
@@ -5,6 +5,12 @@
-- ============================================================
+-- 2026/04/22 鎻愮幇璁板綍琛ㄥ鍔犳敮浠樺疂瀹炲悕濮撳悕瀛楁
+-- ============================================================
+ALTER TABLE `withdrawal_orders` ADD COLUMN `ALI_NAME` VARCHAR(50) DEFAULT NULL COMMENT '鏀粯瀹濆疄鍚嶅鍚�' AFTER `ALI_ACCOUNT`;
+
+
+-- ============================================================
-- 2026/04/20 鍟嗘埛涓庡徃鏈哄鍔犳敮浠樺疂瀹炲悕濮撳悕瀛楁
-- ============================================================
ALTER TABLE `shop_info` ADD COLUMN `ALI_NAME` VARCHAR(50) DEFAULT NULL COMMENT '鏀粯瀹濆疄鍚嶅鍚�' AFTER `ALI_ACCOUNT`;
diff --git a/server/services/src/main/java/com/doumee/config/alipay/AlipayFundTransUniTransfer.java b/server/services/src/main/java/com/doumee/config/alipay/AlipayFundTransUniTransfer.java
index be51792..49b9be6 100644
--- a/server/services/src/main/java/com/doumee/config/alipay/AlipayFundTransUniTransfer.java
+++ b/server/services/src/main/java/com/doumee/config/alipay/AlipayFundTransUniTransfer.java
@@ -188,7 +188,7 @@
// 璁剧疆杞处涓氬姟鐨勬爣棰�
data.setOrderTitle("浣i噾鎶ラ叕");
// 璁剧疆鍘熸敮浠樺疂涓氬姟鍗曞彿
- data.setOriginalOrderId("20190620110075000006640000063056");
+ data.setOriginalOrderId(dto.getOutBizNo());
// 璁剧疆鏀舵鏂逛俊鎭�
data.setOrderTitle("浣i噾鎶ラ叕");
Participant payeeInfo = new Participant();
diff --git a/server/services/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java b/server/services/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
index 1adf556..508a36a 100644
--- a/server/services/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
+++ b/server/services/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java
@@ -119,7 +119,7 @@
* @param token 鍘熶护鐗�
* @return 鏂颁护鐗�
*/
- public void logoutForH5(String token) {
+ public void logout(String token) {
try {
//鍒犻櫎鑰佺殑token
redisTemplate.delete(Constants.REDIS_TOKEN_KEY+token);
diff --git a/server/services/src/main/java/com/doumee/config/wx/WxMiniConfig.java b/server/services/src/main/java/com/doumee/config/wx/WxMiniConfig.java
index d386941..9666dc4 100644
--- a/server/services/src/main/java/com/doumee/config/wx/WxMiniConfig.java
+++ b/server/services/src/main/java/com/doumee/config/wx/WxMiniConfig.java
@@ -8,19 +8,20 @@
import com.github.binarywang.wxpay.constant.WxPayConstants;
import com.github.binarywang.wxpay.service.WxPayService;
import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
-import com.wechat.pay.java.core.Config;
import com.wechat.pay.java.core.RSAAutoCertificateConfig;
-import com.wechat.pay.java.core.RSAPublicKeyConfig;
import com.wechat.pay.java.core.notification.NotificationParser;
-import com.wechat.pay.java.core.notification.RSAPublicKeyNotificationConfig;
import com.wechat.pay.java.service.payments.jsapi.JsapiServiceExtension;
import com.wechat.pay.java.service.refund.RefundService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.util.StreamUtils;
import javax.annotation.PostConstruct;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
/**
* 寰俊灏忕▼搴忕粍浠�
@@ -50,7 +51,7 @@
@PostConstruct
void init() {
this.load_WxMaService();
- this.load_wxPayService();
+// this.load_wxPayService();
this.load_wxPayV3Service();
// this.load_wxAppPayService();
}
@@ -70,48 +71,44 @@
/**
* 鍒濆鍖栧井淇″皬绋嬪簭鏀粯 V2
*/
- public void load_wxPayService() {
- WxPayConfig payConfig = new WxPayConfig();
- payConfig.setTradeType(WxPayConstants.TradeType.JSAPI);
- payConfig.setSignType(WxPayConstants.SignType.MD5);
- payConfig.setAppId(StringUtils.trimToNull(wxPayProperties.getAppId()));
- payConfig.setMchId(StringUtils.trimToNull(wxPayProperties.getMchId()));
- payConfig.setMchKey(StringUtils.trimToNull(wxPayProperties.getMchKey()));
- payConfig.setKeyPath(StringUtils.trimToNull(wxPayProperties.getKeyPath()));
- payConfig.setNotifyUrl(StringUtils.trimToNull(wxPayProperties.getNotifyUrl()));
- WxPayService wxPayService = new WxPayServiceImpl();
- wxPayService.setConfig(payConfig);
- this.wxPayService = wxPayService;
- }
+// public void load_wxPayService() {
+// WxPayConfig payConfig = new WxPayConfig();
+// payConfig.setTradeType(WxPayConstants.TradeType.JSAPI);
+// payConfig.setSignType(WxPayConstants.SignType.MD5);
+// payConfig.setAppId(StringUtils.trimToNull(wxPayProperties.getAppId()));
+// payConfig.setMchId(StringUtils.trimToNull(wxPayProperties.getMchId()));
+// payConfig.setMchKey(StringUtils.trimToNull(wxPayProperties.getMchKey()));
+// payConfig.setKeyPath(StringUtils.trimToNull(wxPayProperties.getKeyPath()));
+// payConfig.setNotifyUrl(StringUtils.trimToNull(wxPayProperties.getNotifyUrl()));
+// WxPayService wxPayService = new WxPayServiceImpl();
+// wxPayService.setConfig(payConfig);
+// this.wxPayService = wxPayService;
+// }
/**
* 鍒濆鍖栧井淇℃敮浠� V3锛圝SAPI + 閫�娆� + 鍥炶皟楠岀锛�
+ * 浣跨敤骞冲彴璇佷功妯″紡锛堣嚜鍔ㄤ笅杞藉拰绠$悊寰俊骞冲彴璇佷功锛�
*/
public void load_wxPayV3Service() {
try {
- Config config =
- new RSAPublicKeyConfig.Builder()
- .merchantId(wxPayProperties.getMchId()) //寰俊鏀粯鐨勫晢鎴峰彿
- .privateKeyFromPath(wxPayProperties.getPrivateKeyPath()) // 鍟嗘埛API璇佷功绉侀挜鐨勫瓨鏀捐矾寰�
- .merchantSerialNumber(wxPayProperties.getSerialNumer()) //鍟嗘埛API璇佷功搴忓垪鍙�
- .publicKeyFromPath(wxPayProperties.getPubKeyPath()) //寰俊鏀粯鍏挜鐨勫瓨鏀捐矾寰�
- .publicKeyId(wxPayProperties.getPublicKeyId()) //寰俊鏀粯鍏挜ID
- .apiV3Key(wxPayProperties.getApiV3Key()) //APIv3瀵嗛挜
- .build();
+ // 浠� classpath 璇诲彇鍟嗘埛绉侀挜
+ ClassPathResource keyResource = new ClassPathResource(StringUtils.trimToNull(wxPayProperties.getPrivateKeyPath()));
+ InputStream keyStream = keyResource.getInputStream();
+ String privateKey = StreamUtils.copyToString(keyStream, StandardCharsets.UTF_8);
+ keyStream.close();
-
- // 鏀粯鍏挜閰嶇疆锛堢敤浜庡洖璋冮獙绛撅級
- RSAPublicKeyNotificationConfig notifyConfig = new RSAPublicKeyNotificationConfig.Builder()
- .publicKeyFromPath(wxPayProperties.getPubKeyPath())
- .publicKeyId(wxPayProperties.getPublicKeyId())
- .apiV3Key(wxPayProperties.getApiV3Key())
+ RSAAutoCertificateConfig config = new RSAAutoCertificateConfig.Builder()
+ .merchantId(StringUtils.trimToNull(wxPayProperties.getMchId()))
+ .privateKey(privateKey)
+ .merchantSerialNumber(StringUtils.trimToNull(wxPayProperties.getSerialNumer()))
+ .apiV3Key(StringUtils.trimToNull(wxPayProperties.getApiV3Key()))
.build();
v3JsapiService = new JsapiServiceExtension.Builder().config(config).build();
v3RefundService = new RefundService.Builder().config(config).build();
- v3NotificationParser = new NotificationParser(notifyConfig);
+ v3NotificationParser = new NotificationParser(config);
- log.info("寰俊鏀粯V3鍒濆鍖栨垚鍔�");
+ log.info("寰俊鏀粯V3鍒濆鍖栨垚鍔燂紙骞冲彴璇佷功妯″紡锛�");
} catch (Exception e) {
log.error("寰俊鏀粯V3鍒濆鍖栧け璐�: {}", e.getMessage(), e);
}
diff --git a/server/services/src/main/java/com/doumee/config/wx/WxPayProperties.java b/server/services/src/main/java/com/doumee/config/wx/WxPayProperties.java
index 69d36b6..350ce71 100644
--- a/server/services/src/main/java/com/doumee/config/wx/WxPayProperties.java
+++ b/server/services/src/main/java/com/doumee/config/wx/WxPayProperties.java
@@ -34,12 +34,12 @@
/**
* 鏀粯API瀵嗛挜
*/
- private String mchKey;
+// private String mchKey;
/**
* 鏀粯鍥炶皟鍦板潃
*/
- private String notifyUrl;
+// private String notifyUrl;
/**
* V3鏀粯鍥炶皟鍦板潃
@@ -54,7 +54,7 @@
/**
* 鏀粯璇佷功(p12)
*/
- private String keyPath;
+// private String keyPath;
@@ -73,18 +73,18 @@
/**
* 閫�娆惧洖璋�
*/
- private String refundNotifyUrl;
+// private String refundNotifyUrl;
/**
* 鍟嗘埛鏀粯鍏挜
*/
- private String pubKeyPath;
+// private String pubKeyPath;
/**
* 鏀粯绉橀挜
*/
- private String privateCertPath;
+// private String privateCertPath;
/**
* 鏀粯key
@@ -95,6 +95,6 @@
/**
* 寰俊鏀粯鍏挜ID
*/
- private String publicKeyId;
+// private String publicKeyId;
}
diff --git a/server/services/src/main/java/com/doumee/config/wx/WxPayV3Service.java b/server/services/src/main/java/com/doumee/config/wx/WxPayV3Service.java
index 6a5ace2..ef98b8f 100644
--- a/server/services/src/main/java/com/doumee/config/wx/WxPayV3Service.java
+++ b/server/services/src/main/java/com/doumee/config/wx/WxPayV3Service.java
@@ -121,7 +121,7 @@
return result;
} catch (Exception e) {
log.error("寰俊鏀粯V3閫�娆惧け璐�: {}", e.getMessage(), e);
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "閫�娆惧け璐ワ細" + e.getMessage());
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "閫�娆惧け璐ワ細璇疯仈绯荤鐞嗗憳");
}
}
diff --git a/server/services/src/main/java/com/doumee/core/constants/Constants.java b/server/services/src/main/java/com/doumee/core/constants/Constants.java
index e9e0622..c0e59b4 100644
--- a/server/services/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -102,6 +102,7 @@
public static final int ORDER_LOG_CANCEL = 4; // 鍙栨秷璁㈠崟
public static final int ORDER_LOG_CONFIRM_ARRIVE = 5; // 纭椤惧鍒板簵
public static final int ORDER_LOG_DRIVER_PICKUP = 6; // 鍙告満瀹屾垚鍙栦欢
+ public static final int ORDER_LOG_DRIVER_DELIVER = 7; // 鍙告満纭閫佽揪
public static final String SUCCESS = "SUCCESS";
public static final String FAIL = "FAIL";
@@ -369,9 +370,16 @@
return null;
}
- public static String getDescByKey(int index) {
+ public static String getDescByKey(int index,int type) {
for (OrderStatus c : OrderStatus.values()) {
if (c.getKey() == index) {
+ if (c.getKey() == 5) {
+ if(Constants.equalsInteger(type,Constants.ZERO)){
+ return "寰呭彇浠�";
+ }else{
+ return Constants.equalsInteger(type,Constants.ONE)?"宸插埌搴�":"宸查�佽揪";
+ }
+ }
return c.getValue();
}
}
@@ -516,6 +524,41 @@
}
/**
+ * 鍙告満璁㈠崟绔欏唴淇¢�氱煡鏋氫妇
+ * title: 閫氱煡鏍囬
+ * content: 閫氱煡鏂囨妯℃澘锛屽崰浣嶇鐢� {xxx} 琛ㄧず
+ */
+ @Getter
+ @AllArgsConstructor
+ public enum DriverOrderNotify {
+ WAIT_DELIVER("waitDeliver", "璁㈠崟寰呴厤閫�", "鎮ㄥ凡鎶㈠崟鎴愬姛锛岃鍗曪細{orderNo}璇锋寜鏃跺埌{shopName}鍙栦欢"),
+ DELIVERING("delivering", "閰嶉�佷腑", "琛屾潕璁㈠崟锛歿orderNo}宸插彇浠讹紝姝e湪閰嶉�佷腑锛岃鎸夋椂閫佽揪"),
+ ARRIVED("arrived", "宸查�佽揪", "琛屾潕璁㈠崟锛歿orderNo}宸查�佽揪{destination},璇疯仈绯荤敤鎴风‘璁ょ鏀�"),
+ FINISHED("finished", "璁㈠崟宸插畬鎴�", "琛屾潕璁㈠崟锛歿orderNo}宸插畬鎴愶紝鐩稿叧璁㈠崟缁撶畻浼氬湪{settleDays}涓伐浣滄棩鍐呯粨绠�"),
+ EVALUATED("evaluated", "璁㈠崟宸茶瘎浠�", "琛屾潕璁㈠崟锛歿orderNo}鐢ㄦ埛宸插畬鎴愯瘎浠凤紝鍙墠寰�璁㈠崟鏌ョ湅璇勪环鍐呭"),
+ REFUNDING("refunding", "閫�娆句腑", "琛屾潕璁㈠崟锛歿orderNo}鐢ㄦ埛宸叉彁浜ら��娆剧敵璇凤紝璇ヨ鍗曚换鍔″凡鍙栨秷锛岃鍕垮墠寰�銆�"),
+ SETTLED("settled", "璁㈠崟宸茬粨绠�", "琛屾潕璁㈠崟锛歿orderNo}骞冲彴宸插畬鎴愮粨绠楋紝閲戦涓簕amount}鍏冿紝璇锋敞鎰忔煡鏀躲��"),
+ CANCELLED("cancelled", "璁㈠崟鍙栨秷鎴愬姛", "琛屾潕璁㈠崟锛歿orderNo}宸插府鎮ㄥ彇娑堬紝鎮ㄤ粖鏃ヨ繕鍙富鍔ㄥ彇娑坽cancelLimit}娆¤鍗曪紝璇峰悎鐞嗗畨鎺掓帴鍗曘��")
+ ;
+
+ private final String key;
+ private final String title;
+ private final String content;
+
+ /**
+ * 鏍煎紡鍖栭�氱煡鍐呭
+ * @param params 閿�煎锛屽 "orderNo","123" 浜ゆ浛浼犲叆
+ */
+ public String format(String... params) {
+ String result = this.content;
+ for (int i = 0; i < params.length - 1; i += 2) {
+ result = result.replace("{" + params[i] + "}", params[i + 1]);
+ }
+ return result;
+ }
+ }
+
+ /**
* 寰楀埌request瀵硅薄
*
* @return
diff --git a/server/services/src/main/java/com/doumee/dao/business/model/WithdrawalOrders.java b/server/services/src/main/java/com/doumee/dao/business/model/WithdrawalOrders.java
index 51edffa..b2a58e5 100644
--- a/server/services/src/main/java/com/doumee/dao/business/model/WithdrawalOrders.java
+++ b/server/services/src/main/java/com/doumee/dao/business/model/WithdrawalOrders.java
@@ -96,6 +96,9 @@
@ApiModelProperty(value = "鏀粯瀹濇彁鐜拌处鎴�")
private String aliAccount;
+ @ApiModelProperty(value = "鏀粯瀹濆疄鍚嶅鍚�")
+ private String aliName;
+
@ApiModelProperty(value = "瀹℃壒鎿嶄綔浜猴紙鍏宠仈system_user锛�", example = "1")
private Integer userId;
diff --git a/server/services/src/main/java/com/doumee/dao/vo/MyOrderVO.java b/server/services/src/main/java/com/doumee/dao/vo/MyOrderVO.java
index 57d180f..8d96a90 100644
--- a/server/services/src/main/java/com/doumee/dao/vo/MyOrderVO.java
+++ b/server/services/src/main/java/com/doumee/dao/vo/MyOrderVO.java
@@ -26,8 +26,12 @@
@ApiModelProperty(value = "瀵勫瓨鏂瑰紡:0=灏卞湴瀛樺彇锛�1=寮傚湴瀛樺彇")
private Integer type;
- @ApiModelProperty(value = "璁㈠崟鐘舵��")
+ @ApiModelProperty(value = "灏卞湴瀵勫瓨鐘舵�侊細0=寰呮敮浠�;1=寰呭瘎瀛�;2=宸插瘎瀛�;5=寰呭彇浠�;6=瀛樺湪閫炬湡;7=宸插畬鎴�;96:璁㈠崟鍏抽棴锛堥��娆撅級;97:鍙栨秷閫炬湡;98=鍙栨秷涓�;99=宸插彇娑�;" +
+ " 寮傚湴瀵勫瓨鐘舵�侊細0=寰呮敮浠�;1=寰呭瘎瀛�;2=宸插瘎瀛�;3=宸叉帴鍗�;4=娲鹃�佷腑;5=宸插埌搴�/宸查�佽揪;6=瀛樺湪閫炬湡;7=宸插畬鎴�;96:璁㈠崟鍏抽棴锛堥��娆撅級;97:鍙栨秷閫炬湡;98=鍙栨秷涓�;99=宸插彇娑�")
private Integer status;
+
+ @ApiModelProperty(value = "鐘舵�佹枃妗�")
+ private String statusName;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@@ -37,7 +41,13 @@
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date expectedTakeTime;
+ @ApiModelProperty(value = "浼氬憳鍙栦欢鐮�")
+ private String memberVerifyCode;
+
// ---- 瀛樹欢闂ㄥ簵 ----
+
+ @ApiModelProperty(value = "瀛樹欢闂ㄥ簵涓婚敭")
+ private Integer depositShopId;
@ApiModelProperty(value = "瀛樹欢闂ㄥ簵鍚嶇О")
private String depositShopName;
@@ -49,6 +59,9 @@
private String depositShopPhone;
// ---- 鍙栦欢淇℃伅 ----
+
+ @ApiModelProperty(value = "鍙栦欢闂ㄥ簵涓婚敭锛堟湁鍙栦欢闂ㄥ簵鏃惰繑鍥烇級")
+ private Integer takeShopId;
@ApiModelProperty(value = "鍙栦欢闂ㄥ簵鍚嶇О锛堟湁鍙栦欢闂ㄥ簵鏃惰繑鍥烇級")
private String takeShopName;
@@ -70,7 +83,7 @@
// ---- 璐圭敤 ----
- @ApiModelProperty(value = "鎶ヤ环淇濊垂锛堝垎锛�")
+ @ApiModelProperty(value = "淇濅环淇濊垂锛堝垎锛�")
private Long declaredFee;
@ApiModelProperty(value = "棰勪及璐圭敤锛堝垎锛�")
@@ -96,4 +109,9 @@
@ApiModelProperty(value = "褰撳墠闂ㄥ簵瑙掕壊锛�1=瀛樹欢闂ㄥ簵锛�2=鍙栦欢闂ㄥ簵锛堜粎闂ㄥ簵绔繑鍥烇級")
private Integer shopRole;
+
+ // ---- 璇勪环 ----
+
+ @ApiModelProperty(value = "璇勪环鐘舵�侊細0=鏈瘎浠凤紱1=宸茶瘎浠�")
+ private Integer commentStatus;
}
diff --git a/server/services/src/main/java/com/doumee/dao/vo/OrderItemVO.java b/server/services/src/main/java/com/doumee/dao/vo/OrderItemVO.java
index f55f79e..1d4f825 100644
--- a/server/services/src/main/java/com/doumee/dao/vo/OrderItemVO.java
+++ b/server/services/src/main/java/com/doumee/dao/vo/OrderItemVO.java
@@ -25,9 +25,9 @@
@ApiModelProperty(value = "鏁伴噺")
private Integer num;
- @ApiModelProperty(value = "鍗曚环锛堝厓锛�")
- private Double unitPriceYuan;
+ @ApiModelProperty(value = "鍗曚环锛堝垎锛�")
+ private Long unitPrice;
- @ApiModelProperty(value = "灏忚璐圭敤锛堝厓锛�")
- private Double subtotal;
+ @ApiModelProperty(value = "灏忚璐圭敤锛堝垎锛�")
+ private Long subtotal;
}
diff --git a/server/services/src/main/java/com/doumee/service/business/DriverInfoService.java b/server/services/src/main/java/com/doumee/service/business/DriverInfoService.java
index c274cc4..769f3d1 100644
--- a/server/services/src/main/java/com/doumee/service/business/DriverInfoService.java
+++ b/server/services/src/main/java/com/doumee/service/business/DriverInfoService.java
@@ -6,6 +6,7 @@
import com.doumee.dao.dto.DriverGrabOrderDTO;
import com.doumee.dao.business.model.DriverInfo;
import com.doumee.dao.dto.DriverLoginRequest;
+import com.doumee.dao.dto.DriverDeliverDTO;
import com.doumee.dao.dto.DriverPickupDTO;
import com.doumee.dao.dto.DriverRegisterRequest;
import com.doumee.dao.dto.DriverVerifyRequest;
@@ -241,4 +242,12 @@
*/
void confirmPickup(Integer driverId, DriverPickupDTO dto);
+ /**
+ * 鍙告満纭閫佽揪锛堝紓鍦板瘎瀛樻棤鍙栦欢闂ㄥ簵锛夛紝璁㈠崟鐘舵�佷粠娲鹃�佷腑(4)鍙樹负宸查�佽揪(5)
+ *
+ * @param driverId 鍙告満涓婚敭
+ * @param dto 閫佽揪璇锋眰鍙傛暟
+ */
+ void confirmDeliver(Integer driverId, DriverDeliverDTO dto);
+
}
diff --git a/server/services/src/main/java/com/doumee/service/business/MemberService.java b/server/services/src/main/java/com/doumee/service/business/MemberService.java
index 3512e96..5c45c70 100644
--- a/server/services/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/services/src/main/java/com/doumee/service/business/MemberService.java
@@ -149,7 +149,7 @@
PlatformAboutVO getPlatformAboutUs();
- void logOut(String token,Integer memberId);
+ void logOut(String token,Integer memberId,Integer userType);
void logOff(String token,Integer memberId);
diff --git a/server/services/src/main/java/com/doumee/service/business/ShopInfoService.java b/server/services/src/main/java/com/doumee/service/business/ShopInfoService.java
index 590941b..4fe95a7 100644
--- a/server/services/src/main/java/com/doumee/service/business/ShopInfoService.java
+++ b/server/services/src/main/java/com/doumee/service/business/ShopInfoService.java
@@ -193,10 +193,10 @@
ShopLoginVO shopPasswordLogin(ShopLoginDTO dto);
/**
- * 闂ㄥ簵闈欓粯鐧诲綍锛堟牴鎹畂penid锛�
- * @param openid
+ * 闂ㄥ簵闈欓粯鐧诲綍锛堥粯璁ょ敤鎴锋惡甯︾殑openid杩涜鏌ヨ锛�
+ * @param memberId
* @return 鐧诲綍缁撴灉
*/
- ShopLoginVO shopSilentLogin(String openid);
+ ShopLoginVO shopSilentLogin(Integer memberId);
}
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java
index 920b9e6..b0b876c 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/DriverInfoServiceImpl.java
@@ -141,6 +141,27 @@
noticeService.create(notice);
}
+ /**
+ * 鍙戦�佸徃鏈虹珯鍐呬俊閫氱煡
+ */
+ private void sendDriverNotice(Integer driverId, Constants.DriverOrderNotify notify, Integer orderId, String... params) {
+ DriverInfo driver = driverInfoMapper.selectById(driverId);
+ if (driver == null || driver.getMemberId() == null) {
+ return;
+ }
+ Notice notice = new Notice();
+ notice.setUserType(1); // 1=鍙告満
+ notice.setUserId(driver.getMemberId());
+ 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);
+ }
+
@Override
public Integer create(DriverInfo driverInfo) {
driverInfoMapper.insert(driverInfo);
@@ -1169,6 +1190,12 @@
// 閫氱煡浼氬憳锛氬徃鏈哄彉鏇�
sendOrderNotice(order.getMemberId(), Constants.MemberOrderNotify.DRIVER_CHANGED, orderId,
"orderNo", order.getCode());
+
+ // 閫氱煡鍙告満锛氬彇娑堟垚鍔�
+ int remainLimit = limit - (todayCancelCount != null ? todayCancelCount.intValue() + 1 : 1);
+ sendDriverNotice(driverId, Constants.DriverOrderNotify.CANCELLED, orderId,
+ "orderNo", order.getCode(),
+ "cancelLimit", String.valueOf(Math.max(remainLimit, 0)));
}
@Override
@@ -1243,6 +1270,12 @@
sendShopNotice(order.getDepositShopId(), Constants.ShopOrderNotify.WAIT_PICKUP, orderId,
"orderNo", order.getCode());
}
+
+ // 閫氱煡鍙告満锛氭姠鍗曟垚鍔�
+ String shopName = order.getDepositShopName() != null ? order.getDepositShopName() : order.getDepositLocation();
+ sendDriverNotice(driverId, Constants.DriverOrderNotify.WAIT_DELIVER, orderId,
+ "orderNo", order.getCode(),
+ "shopName", shopName != null ? shopName : "");
}
@Override
@@ -1318,6 +1351,88 @@
"orderNo", order.getCode(),
"driverName", driver.getName());
}
+
+ // 閫氱煡鍙告満锛氬凡鍙栦欢閰嶉�佷腑
+ sendDriverNotice(driverId, Constants.DriverOrderNotify.DELIVERING, orderId,
+ "orderNo", order.getCode());
+ }
+
+ @Override
+ @Transactional
+ public void confirmDeliver(Integer driverId, DriverDeliverDTO dto) {
+ Integer orderId = dto.getOrderId();
+
+ // 1. 鏍¢獙鍙告満
+ DriverInfo driver = driverInfoMapper.selectById(driverId);
+ if (driver == null) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鍙告満淇℃伅涓嶅瓨鍦�");
+ }
+
+ // 2. 鏍¢獙璁㈠崟
+ Orders order = ordersMapper.selectById(orderId);
+ if (order == null || Constants.ONE.equals(order.getDeleted())) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "璁㈠崟涓嶅瓨鍦�");
+ }
+ if (!Constants.ONE.equals(order.getType())) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浠呭紓鍦板瘎瀛樿鍗曟敮鎸佹鎿嶄綔");
+ }
+ if (order.getTakeShopId() != null) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏈夊彇浠堕棬搴楃殑璁㈠崟璇烽�佽揪鑷抽棬搴楁牳閿�");
+ }
+ if (!Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.delivering.getStatus())) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠璁㈠崟鐘舵�佷笉鍏佽纭閫佽揪");
+ }
+ if (!driverId.equals(order.getAcceptDriver())) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鏃犳潈鎿嶄綔璇ヨ鍗�");
+ }
+
+ // 3. 淇濆瓨閫佽揪鍥剧墖
+ Date now = new Date();
+ if (dto.getImages() != null && !dto.getImages().isEmpty()) {
+ int sortNum = 0;
+ for (String url : dto.getImages()) {
+ Multifile multifile = new Multifile();
+ multifile.setObjId(orderId);
+ multifile.setObjType(Constants.FileType.DRIVER_DONE.getKey());
+ multifile.setType(Constants.ZERO);
+ multifile.setFileurl(url);
+ multifile.setIsdeleted(Constants.ZERO);
+ multifile.setCreateDate(now);
+ multifile.setSortnum(sortNum++);
+ multifileMapper.insert(multifile);
+ }
+ }
+
+ // 4. 鏇存柊璁㈠崟鐘舵�佷负宸查�佽揪(5)
+ ordersMapper.update(new UpdateWrapper<Orders>().lambda()
+ .set(Orders::getStatus, Constants.OrderStatus.arrived.getStatus())
+ .set(Orders::getArriveTime, now)
+ .set(Orders::getUpdateTime, now)
+ .eq(Orders::getId, orderId));
+
+ // 5. 鍐欏叆鎿嶄綔鏃ュ織
+ OrderLog log = new OrderLog();
+ log.setOrderId(orderId);
+ log.setTitle("鍙告満纭閫佽揪");
+ log.setLogInfo(StringUtils.isNotBlank(dto.getRemark()) ? dto.getRemark() : "鍙告満銆�" + driver.getName() + "銆戝凡閫佽揪");
+ log.setObjType(Constants.ORDER_LOG_DRIVER_DELIVER);
+ log.setOptUserId(driver.getMemberId());
+ log.setOptUserType(Constants.ONE);
+ log.setOrderStatus(Constants.OrderStatus.arrived.getStatus());
+ log.setCreateTime(now);
+ log.setDeleted(Constants.ZERO);
+ orderLogMapper.insert(log);
+
+ // 6. 閫氱煡浼氬憳锛氳鍗曞凡閫佽揪锛堟棤鍙栦欢闂ㄥ簵锛�
+ String destination = StringUtils.isNotBlank(order.getTakeShopAddress()) ? order.getTakeShopAddress() : "鐩殑鍦�";
+ sendOrderNotice(order.getMemberId(), Constants.MemberOrderNotify.ARRIVED_NO_SHOP, orderId,
+ "orderNo", order.getCode(),
+ "destination", destination);
+
+ // 閫氱煡鍙告満锛氬凡閫佽揪
+ sendDriverNotice(driverId, Constants.DriverOrderNotify.ARRIVED, orderId,
+ "orderNo", order.getCode(),
+ "destination", destination);
}
private List<String> getFileUrls(Integer orderId, int objType, String prefix) {
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index cbd6691..3ac3d57 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -447,9 +447,13 @@
}
@Override
- public void logOut(String token,Integer memberId){
- memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" openid = null ").eq(Member::getId,memberId));
- jwtTokenUtil.logoutForH5(token);
+ public void logOut(String token,Integer userId,Integer userType){
+ if(Constants.equalsInteger(userType,Constants.ZERO)){
+ memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" openid = null ").eq(Member::getId,userId));
+ }else if(Constants.equalsInteger(userType,Constants.TWO)){
+ shopInfoMapper.update(new UpdateWrapper<ShopInfo>().lambda().setSql(" openid = null ").eq(ShopInfo::getId,userId));
+ }
+ jwtTokenUtil.logout(token);
}
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 e4f0227..01df4f5 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
@@ -294,7 +294,7 @@
return BigDecimal.ZERO;
}
String rateStr = systemDictDataBiz.queryByCode(Constants.OPERATION_CONFIG, Constants.OP_INSURANCE_RATE).getCode();
- BigDecimal rate = new BigDecimal(rateStr);
+ BigDecimal rate = new BigDecimal(rateStr).divide(new BigDecimal("100"), 4, BigDecimal.ROUND_HALF_UP);
return declaredValue.multiply(rate).setScale(2, BigDecimal.ROUND_HALF_UP);
}
@@ -342,9 +342,11 @@
List<Category> categories = categoryMapper.selectBatchIds(categoryIds);
Map<Integer, String> categoryNameMap = new HashMap<>();
Map<Integer, String> categoryDetailMap = new HashMap<>();
+ Map<Integer, String> categoryOtherFieldMap = new HashMap<>();
for (Category c : categories) {
categoryNameMap.put(c.getId(), c.getName());
categoryDetailMap.put(c.getId(), c.getDetail());
+ categoryOtherFieldMap.put(c.getId(),c.getOtherField());
}
// 璁$畻姣忛」鐗╁搧璐圭敤锛氬皬璁� = 鍗曚环 脳 鏁伴噺 脳 澶╂暟
@@ -364,7 +366,7 @@
ItemPriceVO vo = new ItemPriceVO();
vo.setCategoryId(item.getCategoryId());
vo.setCategoryName(categoryNameMap.getOrDefault(item.getCategoryId(), ""));
- vo.setDetail(categoryDetailMap.get(item.getCategoryId()));
+ vo.setDetail(categoryOtherFieldMap.get(item.getCategoryId()));
vo.setQuantity(item.getQuantity());
vo.setUnitPrice(unitPrice);
vo.setLocallyPrice(unitPrice);
@@ -462,9 +464,11 @@
List<Category> categories = categoryMapper.selectBatchIds(categoryIds);
Map<Integer, String> categoryNameMap = new HashMap<>();
Map<Integer, String> categoryDetailMap = new HashMap<>();
+ Map<Integer, String> categoryOtherFieldMap = new HashMap<>();
for (Category c : categories) {
categoryNameMap.put(c.getId(), c.getName());
categoryDetailMap.put(c.getId(), c.getDetail());
+ categoryOtherFieldMap.put(c.getId(),c.getOtherField());
}
// 3. 閫愰」璁$畻杩愯垂锛氳捣姝ヤ环 + 瓒呭嚭閮ㄥ垎闃舵浠�
@@ -503,7 +507,7 @@
ItemPriceVO vo = new ItemPriceVO();
vo.setCategoryId(item.getCategoryId());
vo.setCategoryName(categoryNameMap.getOrDefault(item.getCategoryId(), ""));
- vo.setDetail(categoryDetailMap.get(item.getCategoryId()));
+ vo.setDetail(categoryOtherFieldMap.get(item.getCategoryId()));
vo.setQuantity(item.getQuantity());
vo.setUnitPrice(unitPrice);
vo.setLocallyPrice(locallyPrice);
@@ -1189,9 +1193,9 @@
item.setLuggageName(d.getLuggageName());
item.setLuggageDetail(d.getLuggageDetail());
item.setNum(d.getNum());
- double unitPriceYuan = d.getUnitPrice() != null ? Constants.getFormatMoney(d.getUnitPrice()) : 0;
- item.setUnitPriceYuan(unitPriceYuan);
- item.setSubtotal(unitPriceYuan * (d.getNum() != null ? d.getNum() : 0));
+ long unitPriceFen = d.getUnitPrice() != null ? d.getUnitPrice() : 0L;
+ item.setUnitPrice(unitPriceFen);
+ item.setSubtotal(unitPriceFen * (d.getNum() != null ? d.getNum() : 0));
items.add(item);
}
}
@@ -1375,16 +1379,22 @@
vo.setCode(o.getCode());
vo.setType(o.getType());
vo.setStatus(o.getStatus());
+ vo.setStatusName(Constants.OrderStatus.getDescByKey(o.getStatus(),
+ Constants.equalsInteger(o.getType(), Constants.ZERO)?o.getType():Objects.nonNull(o.getTakeShopId())?Constants.ONE:Constants.TWO)
+ );
vo.setCreateTime(o.getCreateTime());
vo.setExpectedTakeTime(o.getExpectedTakeTime());
+ vo.setMemberVerifyCode(o.getMemberVerifyCode());
// 瀛樹欢闂ㄥ簵锛堝叧鑱旀煡璇㈢洿鎺ュ彇鍊硷級
+ vo.setDepositShopId(o.getDepositShopId());
vo.setDepositShopName(o.getDepositShopName());
vo.setDepositShopLinkName(o.getDepositShopLinkName());
vo.setDepositShopPhone(o.getDepositShopLinkPhone());
// 鍙栦欢淇℃伅锛氭湁鍙栦欢闂ㄥ簵鍙栭棬搴楋紝鏃犲垯鍙栫敤鎴疯嚜閫夊彇浠剁偣
if (o.getTakeShopId() != null) {
+ vo.setTakeShopId(o.getTakeShopId());
vo.setTakeShopName(o.getTakeShopName());
vo.setTakeShopAddress(o.getTakeShopAddress());
} else {
@@ -1399,6 +1409,9 @@
// 璐圭敤锛堝垎锛�
vo.setDeclaredFee(o.getDeclaredFee());
vo.setEstimatedAmount(o.getEstimatedAmount());
+
+ // 璇勪环鐘舵��
+ vo.setCommentStatus(o.getCommentStatus());
// 鏌ヨ鐗╁搧鏄庣粏锛堜竴娆℃煡璇紝鍚屾椂鐢ㄤ簬鐗╁搧鍒楄〃鍜岄�炬湡璁$畻锛�
List<OrdersDetail> details = ordersDetailMapper.selectList(
@@ -1472,6 +1485,9 @@
vo.setCode(o.getCode());
vo.setType(o.getType());
vo.setStatus(o.getStatus());
+ vo.setStatusName(Constants.OrderStatus.getDescByKey(o.getStatus(),
+ Constants.equalsInteger(o.getType(), Constants.ZERO)?o.getType():Objects.nonNull(o.getTakeShopId())?Constants.ONE:Constants.TWO)
+ );
vo.setCreateTime(o.getCreateTime());
vo.setExpectedTakeTime(o.getExpectedTakeTime());
@@ -1687,11 +1703,6 @@
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
- // 浠呭紓鍦板瘎瀛樺彲鍙栨秷
- if (!Constants.equalsInteger(order.getType(), Constants.ONE)) {
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浠呭紓鍦板瘎瀛樿鍗曞彲鍙栨秷");
- }
-
Integer status = order.getStatus();
if (status == null) {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "璁㈠崟鐘舵�佸紓甯�");
@@ -1699,7 +1710,7 @@
Date now = new Date();
- // 寰呮敮浠橈細鐩存帴鍙栨秷
+ // 寰呮敮浠橈細鐩存帴鍙栨秷锛堜笉闄愯鍗曠被鍨嬶級
if (Constants.equalsInteger(status, Constants.OrderStatus.waitPay.getStatus())) {
order.setStatus(Constants.OrderStatus.cancelled.getStatus());
order.setCancelTime(now);
@@ -1708,7 +1719,7 @@
return;
}
- // 寰呭瘎瀛橈細鐩存帴鍙栨秷锛屽叏棰濋��娆�
+ // 寰呭瘎瀛橈細鐩存帴鍙栨秷锛屽叏棰濋��娆撅紙涓嶉檺璁㈠崟绫诲瀷锛�
if (Constants.equalsInteger(status, Constants.OrderStatus.waitDeposit.getStatus())) {
// 璁板綍閫�娆句俊鎭�
OrdersRefund refund = new OrdersRefund();
@@ -1737,6 +1748,11 @@
return;
}
+ // 宸插瘎瀛�/宸叉帴鍗曪細浠呭紓鍦板瘎瀛樺彲鍙栨秷
+ if (!Constants.equalsInteger(order.getType(), Constants.ONE)) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "浠呭紓鍦板瘎瀛樿鍗曞彲鍙栨秷");
+ }
+
// 宸插瘎瀛�/宸叉帴鍗曪細杩涘叆鍙栨秷涓姸鎬�
if (Constants.equalsInteger(status, Constants.OrderStatus.deposited.getStatus())
|| Constants.equalsInteger(status, Constants.OrderStatus.accepted.getStatus())) {
@@ -1747,6 +1763,11 @@
// 閫氱煡瀛樹欢闂ㄥ簵锛氶��娆剧敵璇�
if (order.getDepositShopId() != null) {
sendShopNotice(order.getDepositShopId(), Constants.ShopOrderNotify.REFUNDING, orderId,
+ "orderNo", order.getCode());
+ }
+ // 閫氱煡鍙告満锛氳鍗曢��娆句腑锛堝凡鎺ュ崟鎯呭喌涓嬪徃鏈洪渶鍋滄鏈嶅姟锛�
+ if (order.getAcceptDriver() != null && Constants.equalsInteger(order.getStatus(), Constants.OrderStatus.accepted.getStatus())) {
+ sendDriverNotice(order.getAcceptDriver(), Constants.DriverOrderNotify.REFUNDING, orderId,
"orderNo", order.getCode());
}
return;
@@ -1833,6 +1854,27 @@
if (order.getTakeShopId() != null) {
sendShopNotice(order.getTakeShopId(), notify, order.getId(), params);
}
+ }
+
+ /**
+ * 鍙戦�佸徃鏈虹珯鍐呬俊閫氱煡
+ */
+ private void sendDriverNotice(Integer driverId, Constants.DriverOrderNotify notify, Integer orderId, String... params) {
+ DriverInfo driver = driverInfoMapper.selectById(driverId);
+ if (driver == null || driver.getMemberId() == null) {
+ return;
+ }
+ Notice notice = new Notice();
+ notice.setUserType(1); // 1=鍙告満
+ notice.setUserId(driver.getMemberId());
+ 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);
}
@Override
@@ -2178,6 +2220,14 @@
"orderNo", order.getCode(),
"amount", String.valueOf(Constants.getFormatMoney(
order.getTotalAmount() != null ? order.getTotalAmount() : 0L)));
+
+ // 閫氱煡鍙告満锛氳鍗曞凡缁撶畻
+ if (order.getAcceptDriver() != null) {
+ sendDriverNotice(order.getAcceptDriver(), Constants.DriverOrderNotify.SETTLED, order.getId(),
+ "orderNo", order.getCode(),
+ "amount", String.valueOf(Constants.getFormatMoney(
+ order.getDriverFee() != null ? order.getDriverFee() : 0L)));
+ }
}
}
@@ -2282,6 +2332,12 @@
// 閫氱煡瀛樹欢闂ㄥ簵鍜屽彇浠堕棬搴楋細璁㈠崟宸茶瘎浠�
notifyBothShops(order, Constants.ShopOrderNotify.EVALUATED,
"orderNo", order.getCode());
+
+ // 閫氱煡鍙告満锛氳鍗曞凡璇勪环
+ if (order.getAcceptDriver() != null) {
+ sendDriverNotice(order.getAcceptDriver(), Constants.DriverOrderNotify.EVALUATED, order.getId(),
+ "orderNo", order.getCode());
+ }
}
/**
@@ -2424,6 +2480,12 @@
notifyBothShops(order, Constants.ShopOrderNotify.FINISHED,
"orderNo", order.getCode(),
"settleDays", settleDays != null ? settleDays : "7");
+ // 閫氱煡鍙告満锛氳鍗曞凡瀹屾垚
+ if (order.getAcceptDriver() != null) {
+ sendDriverNotice(order.getAcceptDriver(), Constants.DriverOrderNotify.FINISHED, order.getId(),
+ "orderNo", order.getCode(),
+ "settleDays", settleDays != null ? settleDays : "7");
+ }
} else {
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠璁㈠崟鐘舵�佷笉鍏佽鏍搁攢");
}
@@ -2529,6 +2591,12 @@
notifyBothShops(order, Constants.ShopOrderNotify.FINISHED,
"orderNo", order.getCode(),
"settleDays", settleDays != null ? settleDays : "7");
+ // 閫氱煡鍙告満锛氳鍗曞凡瀹屾垚
+ if (order.getAcceptDriver() != null) {
+ sendDriverNotice(order.getAcceptDriver(), Constants.DriverOrderNotify.FINISHED, order.getId(),
+ "orderNo", order.getCode(),
+ "settleDays", settleDays != null ? settleDays : "7");
+ }
}
@Override
@@ -2575,6 +2643,12 @@
notifyBothShops(order, Constants.ShopOrderNotify.FINISHED,
"orderNo", order.getCode(),
"settleDays", settleDays != null ? settleDays : "7");
+ // 閫氱煡鍙告満锛氳鍗曞凡瀹屾垚
+ if (order.getAcceptDriver() != null) {
+ sendDriverNotice(order.getAcceptDriver(), Constants.DriverOrderNotify.FINISHED, order.getId(),
+ "orderNo", order.getCode(),
+ "settleDays", settleDays != null ? settleDays : "7");
+ }
}
@Override
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java
index cd636c8..cfc176a 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/ShopInfoServiceImpl.java
@@ -1059,12 +1059,13 @@
}
@Override
- public ShopLoginVO shopSilentLogin(String openid) {
- if (StringUtils.isBlank(openid)) {
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "openid涓嶈兘涓虹┖");
+ public ShopLoginVO shopSilentLogin(Integer memberId) {
+ Member member = memberMapper.selectById(memberId);
+ if(Objects.isNull(member)||StringUtils.isBlank(member.getOpenid())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "褰撳墠鐧诲綍浼氬憳韬唤寮傚父,璇疯仈绯荤鐞嗗憳!");
}
ShopInfo shop = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
- .eq(ShopInfo::getOpenid, openid)
+ .eq(ShopInfo::getOpenid, member.getOpenid())
.eq(ShopInfo::getDeleted, Constants.ZERO)
.last("limit 1"));
if (shop == null) {
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
index 0d0b4c4..3fec8ed 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
@@ -258,7 +258,7 @@
String doneInfo = null;
if (Constants.ONE.equals(dto.getStatus())) {
String aliAccount = order.getAliAccount();
- String aliName = null;
+ String aliName = order.getAliName();
// 浠庡徃鏈烘垨闂ㄥ簵鑾峰彇鏀粯瀹濊处鎴峰拰瀹炲悕濮撳悕
if (StringUtils.isBlank(aliAccount)) {
@@ -478,6 +478,7 @@
order.setType(Constants.ZERO);
order.setOutBillNo(billNo);
order.setAliAccount(dto.getAliAccount());
+ order.setAliName(driver.getAliName());
order.setDeleted(Constants.ZERO);
order.setCreateTime(now);
order.setUpdateTime(now);
@@ -529,6 +530,7 @@
order.setType(Constants.ZERO);
order.setOutBillNo(billNo);
order.setAliAccount(dto.getAliAccount());
+ order.setAliName(shop.getAliName());
order.setDeleted(Constants.ZERO);
order.setCreateTime(now);
order.setUpdateTime(now);
diff --git a/server/services/src/main/resources/application-dev.yml b/server/services/src/main/resources/application-dev.yml
index 6292a33..04d8331 100644
--- a/server/services/src/main/resources/application-dev.yml
+++ b/server/services/src/main/resources/application-dev.yml
@@ -83,34 +83,15 @@
########################寰俊鏀粯鐩稿叧閰嶇疆########################
wx:
pay:
-# appId: wxcd2b89fd2ff065f8
-# appSecret: 3462fa186da7cb06c544df8d8664b63a
-# mchId: 1229817002
-# mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
-# notifyUrl: http://xiaopiqiu2.natapp1.cc/web/api/wxPayNotify
-# keyPath: D:\DouMee\dmkjWxcert\apiclient_cert.p12
appId: wxb1b59320e803dc6c
appSecret: eb93785c7bca3f0ff0364b0e26bfeb59
- mchId: 1229817002 #鍟嗘埛鍙�
- mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM #鍟嗘埛绉橀挜
- apiV3Key: 7tG4Vk9Zp2L8dXw5Jq0N3hR6yE1sF3cB #apiV3Key
- serialNumer: 3FE90C2F3D40A56E1C51926F31B8A8D22426CCE0 #鍟嗘埛璇佷功搴忓垪鍙�
- publicKeyId: PUB_KEY_ID_0112298170022025071700291836000600
- pubKeyPath: D:\DouMee\1229817002_20220310_cert\pub_key.pem #鍟嗘埛鏀粯鍏挜
- keyPath: D:\DouMee\1229817002_20220310_cert\apiclient_cert.p12
- privateCertPath: D:\DouMee\1229817002_20220310_cert\apiclient_cert.pem
- privateKeyPath: D:\DouMee\1229817002_20220310_cert\apiclient_key.pem
- notifyUrl: http://xiaopiqiu2.natapp1.cc/web/wxPayNotify
- refundNotifyUrl: http://xiaopiqiu2.natapp1.cc/web/wxRefundNotify
+ mchId: 1629568742 #鍟嗘埛鍙�
+ apiV3Key: NJTLJSTZYXZRGScaiwubuzichanbu666 #apiV3Key
+ serialNumer: 25D19D18217F4588841E5CD1AA0D1533DE8AF84A #鍟嗘埛璇佷功搴忓垪鍙�
+ privateKeyPath: pay/pro/wx/apiclient_key.pem
v3NotifyUrl: http://xiaopiqiu2.natapp1.cc/web/api/wxPayV3Notify
v3RefundNotifyUrl: http://xiaopiqiu2.natapp1.cc/web/api/wxRefundV3Notify
-# appId: wx6264b4f3a697cbe8
-# appSecret: 23734577e8978138c946b727f0394027
-# mchId: 1629568742
-# mchKey: NJTLJSTZYXZRGScaiwubuzichanbu666
-# notifyUrl: https://test.doumee.cn/dmmall_web_api/web/api/wxPayNotify
-# keyPath: D:\DouMee\gtxljcWxcert\apiclient_cert.p12
alipay:
pay:
diff --git a/server/web/src/main/java/com/doumee/api/web/AccountApi.java b/server/web/src/main/java/com/doumee/api/web/AccountApi.java
index fcaf0aa..4860a59 100644
--- a/server/web/src/main/java/com/doumee/api/web/AccountApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/AccountApi.java
@@ -3,6 +3,7 @@
import com.doumee.config.jwt.JwtTokenUtil;
import com.doumee.core.annotation.LoginRequired;
import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.constants.Constants;
import com.doumee.core.model.ApiResponse;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.dto.ShopLoginDTO;
@@ -68,27 +69,42 @@
return ApiResponse.success("鎿嶄綔鎴愬姛", shopInfoService.shopPasswordLogin(dto));
}
+ @LoginRequired
@ApiOperation(value = "闂ㄥ簵闈欓粯鐧诲綍", notes = "鏍规嵁openid鑷姩鐧诲綍闂ㄥ簵锛屾湭缁戝畾鍒欒繑鍥炵┖")
@GetMapping("/shopSilentLogin")
@ApiImplicitParams({
- @ApiImplicitParam(paramType = "query", dataType = "String", name = "openid", value = "寰俊openid", required = true)
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
})
- public ApiResponse<ShopLoginVO> shopSilentLogin(@RequestParam String openid) {
- return ApiResponse.success("鎿嶄綔鎴愬姛", shopInfoService.shopSilentLogin(openid));
+ public ApiResponse<ShopLoginVO> shopSilentLogin() {
+ return ApiResponse.success("鎿嶄綔鎴愬姛", shopInfoService.shopSilentLogin(getMemberId()));
}
@LoginRequired
- @ApiOperation(value = "閫�鍑虹櫥褰�", notes = "灏忕▼搴忕")
+ @ApiOperation(value = "浼氬憳閫�鍑虹櫥褰�", notes = "灏忕▼搴忕")
@GetMapping("/logOut")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
})
public ApiResponse logOut() {
String token = this.getRequest().getHeader(JwtTokenUtil.HEADER_KEY);
- memberService.logOut(token,getMemberId());
+ memberService.logOut(token,getMemberId(), Constants.ZERO);
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
+
+ @LoginRequired
+ @ApiOperation(value = "闂ㄥ簵閫�鍑虹櫥褰�", notes = "灏忕▼搴忕")
+ @GetMapping("/logOutShop")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ })
+ public ApiResponse logOutShop() {
+ String token = this.getRequest().getHeader(JwtTokenUtil.HEADER_KEY);
+ memberService.logOut(token,getShopId(), Constants.TWO);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+
@LoginRequired
@ApiOperation(value = "鐢ㄦ埛娉ㄩ攢", notes = "灏忕▼搴忕")
@GetMapping("/logOff")
diff --git a/server/web/src/main/java/com/doumee/api/web/DriverInfoApi.java b/server/web/src/main/java/com/doumee/api/web/DriverInfoApi.java
index 45b6b08..966cb84 100644
--- a/server/web/src/main/java/com/doumee/api/web/DriverInfoApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/DriverInfoApi.java
@@ -10,6 +10,7 @@
import com.doumee.dao.dto.DriverActiveOrderDTO;
import com.doumee.dao.dto.DriverGrabOrderDTO;
import com.doumee.dao.dto.DriverLoginRequest;
+import com.doumee.dao.dto.DriverDeliverDTO;
import com.doumee.dao.dto.DriverPickupDTO;
import com.doumee.dao.dto.DriverRegisterRequest;
import com.doumee.dao.dto.DriverVerifyRequest;
@@ -202,4 +203,16 @@
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
+ @LoginDriverRequired
+ @Trace
+ @ApiOperation(value = "鍙告満纭閫佽揪", notes = "寮傚湴瀵勫瓨鏃犲彇浠堕棬搴楄鍗曪紝娲鹃�佷腑(status=4)鏃剁‘璁ら�佽揪锛岃鍗曡繘鍏ュ凡閫佽揪(status=5)")
+ @PostMapping("/confirmDeliver")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+ })
+ public ApiResponse confirmDeliver(@RequestBody @Valid DriverDeliverDTO dto) {
+ driverInfoService.confirmDeliver(this.getDriverId(), dto);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
}
diff --git a/server/web/src/main/java/com/doumee/api/web/OrdersApi.java b/server/web/src/main/java/com/doumee/api/web/OrdersApi.java
index d966ade..991f892 100644
--- a/server/web/src/main/java/com/doumee/api/web/OrdersApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/OrdersApi.java
@@ -216,11 +216,11 @@
@LoginRequired
@ApiOperation(value = "浼氬憳纭鏀惰揣", notes = "寮傚湴瀵勫瓨涓旀棤鍙栦欢闂ㄥ簵鐨勮鍗曪紝閫佽揪鍚庣‘璁ゆ敹璐ф爣璁拌鍗曞畬鎴�")
- @PostMapping("/confirmReceipt")
+ @PostMapping("/confirmReceipt/{orderId}")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
})
- public ApiResponse confirmReceipt(@RequestParam Integer orderId) {
+ public ApiResponse confirmReceipt(@PathVariable Integer orderId) {
ordersService.memberConfirmReceipt(orderId, getMemberId());
return ApiResponse.success("纭鏀惰揣鎴愬姛");
}
diff --git a/server/web/src/main/resources/application.yml b/server/web/src/main/resources/application.yml
index 17dde0d..c4b6cec 100644
--- a/server/web/src/main/resources/application.yml
+++ b/server/web/src/main/resources/application.yml
@@ -3,7 +3,7 @@
port: 10011
# 椤圭洰淇℃伅閰嶇疆
project:
- name: 杩戝揩
+ name: 楂橀搧琛屾潕瀵勫瓨
version: 1.0.0
# 鐜锛岀敓浜х幆澧僷roduction锛屽紑鍙戠幆澧僤evelopment
env: development
--
Gitblit v1.9.3