From 4e3e18cdb0d75c098b68353ef8c86cdd7c0f79b2 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期四, 21 八月 2025 15:27:34 +0800
Subject: [PATCH] 111
---
server/services/src/main/java/com/doumee/config/wx/WxMiniConfig.java | 42 +-
server/services/src/main/resources/application-dev.yml | 99 +++++--
server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java | 197 ++++++++++++++
server/services/src/main/java/com/doumee/config/jwt/JwtTokenUtil.java | 4
server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java | 4
server/services/src/main/java/com/doumee/service/business/AliSmsService.java | 180 +++++++++++++
server/services/src/main/resources/application-test.yml | 45 +-
server/web/src/main/java/com/doumee/api/web/OrdersApi.java | 10
server/pom.xml | 11
server/services/src/main/java/com/doumee/config/wx/WxPayProperties.java | 2
server/services/src/main/java/com/doumee/core/constants/Constants.java | 112 ++++++++
server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java | 1
server/services/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 5
server/services/src/main/java/com/doumee/service/business/OrdersService.java | 8
server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java | 30 ++
15 files changed, 664 insertions(+), 86 deletions(-)
diff --git a/server/pom.xml b/server/pom.xml
index 51da524..4e1b4ed 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -263,6 +263,17 @@
<version>0.2.15</version>
</dependency>
+ <dependency>
+ <groupId>com.aliyun</groupId>
+ <artifactId>aliyun-java-sdk-core</artifactId>
+ <version>3.5.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.aliyun</groupId>
+ <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
+ <version>1.1.0</version>
+ </dependency>
<!-- <dependency>
<groupId>com.azure.spring</groupId>
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 06ec043..47d22e5 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
@@ -76,7 +76,9 @@
public void refreshToken(String token,Member member) {
try {
if(Objects.nonNull(member)){
- redisTemplate.opsForValue().set(Constants.REDIS_TOKEN_KEY+token,JSONObject.toJSONString(member),jwtProperties.getExpiration(), TimeUnit.MILLISECONDS);
+ redisTemplate.expire(Constants.REDIS_TOKEN_KEY+token,jwtProperties.getExpiration(), TimeUnit.MILLISECONDS);
+// redisTemplate.delete(Constants.REDIS_TOKEN_KEY+token);
+// redisTemplate.opsForValue().set(Constants.REDIS_TOKEN_KEY+token,JSONObject.toJSONString(member),jwtProperties.getExpiration(), TimeUnit.MILLISECONDS);
}
} catch (Exception e) {
diff --git a/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java b/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java
index 0d47a1b..440b45d 100644
--- a/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java
+++ b/server/services/src/main/java/com/doumee/config/wx/SendWxMessage.java
@@ -5,15 +5,21 @@
import com.doumee.core.constants.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.model.IdentityInfo;
+import com.doumee.dao.business.model.Orders;
+import com.doumee.dao.business.model.WithdrawalOrders;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -29,9 +35,16 @@
private static String goodsOrderUrl = "pages/settlementDetails/settlementDetails?goodsOrderId=";
private static String identityInfoUrl = "pages/mine/mine";
+
@Autowired
private SystemDictDataBiz systemDictDataBiz;
+ /**
+ * 淇℃伅璁よ瘉
+ * @param openid
+ * @param identityInfo
+ * @throws WxErrorException
+ */
public void identityInfoMessage(String openid, IdentityInfo identityInfo) throws WxErrorException {
RestTemplate restTemplate = new RestTemplate();
String accessToken = WxMiniConfig.wxMaService.getAccessToken();
@@ -43,12 +56,12 @@
//鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
wxMsgVO.setTouser(openid);
//璁㈤槄娑堟伅妯℃澘id
- wxMsgVO.setTemplate_id("4H9ztG4E9BxJLwMuYSZ6oiM7yb4KX7u7bYhkhYJP0-Y");
+ wxMsgVO.setTemplate_id("VJho7-lf-4_WZFfOzenDndgwNDIA0EvCiE6vqBnExpQ");
Map<String, TemplateData> m = new HashMap<>(4);
- m.put("thing11", new TemplateData(Constants.equalsInteger(identityInfo.getType(),Constants.ZERO)?"鐢ㄥ伐璁よ瘉":Constants.equalsInteger(identityInfo.getType(),Constants.ONE)?"杩愯揣璁よ瘉":"渚涢璁よ瘉"));
- m.put("phrase4", new TemplateData(Constants.equalsInteger(identityInfo.getAuditStatus(),Constants.TWO)?"璁よ瘉閫氳繃":"璁よ瘉鏈�氳繃"));
- m.put("date3", new TemplateData(DateUtil.getFomartDate(identityInfo.getAuditTime(),"yyyy-MM-dd HH:mm:ss")));
- m.put("thing5", new TemplateData(identityInfo.getAuditRemark()));
+ m.put("thing2", new TemplateData(Constants.equalsInteger(identityInfo.getType(),Constants.ZERO)?"鐢ㄥ伐璁よ瘉":Constants.equalsInteger(identityInfo.getType(),Constants.ONE)?"杩愯揣璁よ瘉":"渚涢璁よ瘉"));
+ m.put("phrase6", new TemplateData(Constants.equalsInteger(identityInfo.getAuditStatus(),Constants.TWO)?"璁よ瘉閫氳繃":"璁よ瘉鏈�氳繃"));
+ m.put("time12", new TemplateData(DateUtil.getFomartDate(identityInfo.getAuditTime(),"yyyy-MM-dd HH:mm")));
+ m.put("thing14", new TemplateData(identityInfo.getAuditRemark()));
wxMsgVO.setPage(identityInfoUrl);
wxMsgVO.setData(m);
ResponseEntity<String> responseEntity =
@@ -57,4 +70,178 @@
}
+ /**
+ *
+ * @param openidList
+ * @param orders
+ * @param cancelType 鍙栨秷绫诲瀷锛�0=骞冲彴鍙栨秷锛�1=鍙戝崟鏂瑰彇娑堬紱1=鎺ュ崟鏂瑰彇娑�
+ * @throws WxErrorException
+ */
+ public void cancelMessage(List<String> openidList, Orders orders,Integer cancelType ) throws WxErrorException {
+ RestTemplate restTemplate = new RestTemplate();
+ String accessToken = WxMiniConfig.wxMaService.getAccessToken();
+ log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 璁㈠崟鍙栨秷涓氬姟 -> accessToken锛歿}",accessToken);
+ //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
+ String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
+ //鎷兼帴鎺ㄩ�佺殑妯$増
+ WxMsgVO wxMsgVO = new WxMsgVO();
+ //璁㈤槄娑堟伅妯℃澘id
+ wxMsgVO.setTemplate_id("AA97cHjvlPiNO4viMkVe4JifCf9TD5b5Eb7s6El3VS8");
+ Map<String, TemplateData> m = new HashMap<>(5);
+ m.put("character_string3", new TemplateData(orders.getCode()));
+ m.put("thing2", new TemplateData(Constants.orderType.getName(orders.getType())));
+ m.put("thing1", new TemplateData(orders.getLocation() + (StringUtils.isNotBlank(orders.getLocationRemark())?orders.getLocationRemark():"")));
+ m.put("date8", new TemplateData(DateUtil.getFomartDate(orders.getCancelTime(),"yyyy-MM-dd HH:mm:ss")));
+ m.put("thing6", new TemplateData(Constants.equalsInteger(cancelType,Constants.ZERO)?"骞冲彴鍙栨秷":Constants.equalsInteger(cancelType,Constants.ONE)?"鍙戝崟鏂瑰彇娑�":"鎺ュ崟鏂瑰彇娑�"));
+ //TODO 璺宠浆鍦板潃
+ wxMsgVO.setPage("");
+ wxMsgVO.setData(m);
+ if(CollectionUtils.isNotEmpty(openidList)){
+ for (String openid:openidList) {
+ //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+ wxMsgVO.setTouser(openid);
+ ResponseEntity<String> responseEntity =
+ restTemplate.postForEntity(url, wxMsgVO, String.class);
+ log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", JSONObject.toJSONString(responseEntity));
+ }
+ }else{
+ log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", "鏃犱汉鍛樹俊鎭�");
+ }
+ }
+
+
+ public void acceptMessage(String openid, Orders orders,String memberName,String memberPhone) throws WxErrorException {
+ RestTemplate restTemplate = new RestTemplate();
+ String accessToken = WxMiniConfig.wxMaService.getAccessToken();
+ log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 鎺ュ崟涓氬姟 -> accessToken锛歿}",accessToken);
+ //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
+ String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
+ //鎷兼帴鎺ㄩ�佺殑妯$増
+ WxMsgVO wxMsgVO = new WxMsgVO();
+ wxMsgVO.setTouser(openid);
+ //璁㈤槄娑堟伅妯℃澘id
+ wxMsgVO.setTemplate_id("oVjOBLcHxIlGzOMJsdInmgI5CHGXh-UTvMzQqfFOnIg");
+ Map<String, TemplateData> m = new HashMap<>(4);
+ m.put("character_string3", new TemplateData(orders.getCode()));
+ m.put("thing1", new TemplateData(Constants.orderType.getName(orders.getType())));
+ m.put("thing15", new TemplateData(memberName));
+ m.put("phone_number8", new TemplateData(memberPhone));
+ //TODO 璺宠浆鍦板潃
+ wxMsgVO.setPage("");
+ wxMsgVO.setData(m);
+ //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+ ResponseEntity<String> responseEntity =
+ restTemplate.postForEntity(url, wxMsgVO, String.class);
+ log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙栨秷涓氬姟锛歿}", JSONObject.toJSONString(responseEntity));
+ }
+
+
+ public void orderUpdMessage(String openid, Orders orders) throws WxErrorException {
+ RestTemplate restTemplate = new RestTemplate();
+ String accessToken = WxMiniConfig.wxMaService.getAccessToken();
+ log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 璁㈠崟鍙樻洿閫氱煡 -> accessToken锛歿}",accessToken);
+ //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
+ String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
+ //鎷兼帴鎺ㄩ�佺殑妯$増
+ WxMsgVO wxMsgVO = new WxMsgVO();
+ wxMsgVO.setTouser(openid);
+ //璁㈤槄娑堟伅妯℃澘id
+ wxMsgVO.setTemplate_id("3YSC7gouRlSjHXz4CrWOGFzPmGwEBtFj4snwdfMvKHk");
+ Map<String, TemplateData> m = new HashMap<>(3);
+ m.put("character_string1", new TemplateData(orders.getCode()));
+ m.put("thing3", new TemplateData("鍙樻洿璁㈠崟鏃ユ湡"));
+ //鍙樻洿鍚庢棩鏈燂細07-23鑷�07-25
+ m.put("thing5", new TemplateData("鍙樻洿鍚庢棩鏈�:" +DateUtil.getFomartDate(orders.getStartDate(),"MM-dd") + "鑷�" +DateUtil.getFomartDate(orders.getEndDate(),"MM-dd")));
+ //TODO 璺宠浆鍦板潃
+ wxMsgVO.setPage("");
+ wxMsgVO.setData(m);
+ //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+ ResponseEntity<String> responseEntity =
+ restTemplate.postForEntity(url, wxMsgVO, String.class);
+ log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鍙樻洿閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
+ }
+
+
+
+
+ public void withdrawalMessage(String openid, WithdrawalOrders withdrawalOrders) throws WxErrorException {
+ RestTemplate restTemplate = new RestTemplate();
+ String accessToken = WxMiniConfig.wxMaService.getAccessToken();
+ log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 鎻愮幇鎴愬姛閫氱煡 -> accessToken锛歿}",accessToken);
+ //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
+ String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
+ //鎷兼帴鎺ㄩ�佺殑妯$増
+ WxMsgVO wxMsgVO = new WxMsgVO();
+ wxMsgVO.setTouser(openid);
+ //璁㈤槄娑堟伅妯℃澘id
+ wxMsgVO.setTemplate_id("fNJy4545hcrH83bP3a1vszs7XEKWjXMsrfr2XCNsql0");
+ Map<String, TemplateData> m = new HashMap<>(4);
+ m.put("phrase2", new TemplateData("宸叉墦娆�"));
+ m.put("amount1", new TemplateData((new BigDecimal(withdrawalOrders.getAmount().toString()).divide(new BigDecimal("100"))).toString()));
+ m.put("time3", new TemplateData(DateUtil.getFomartDate(withdrawalOrders.getUpdateTime(),"yyyy.MM.dd HH.mm.ss")));
+ m.put("thing4", new TemplateData("鎵撴鎴愬姛锛岃娉ㄦ剰鏌ユ敹"));
+ //TODO 璺宠浆鍦板潃
+ wxMsgVO.setPage("");
+ wxMsgVO.setData(m);
+ //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+ ResponseEntity<String> responseEntity =
+ restTemplate.postForEntity(url, wxMsgVO, String.class);
+ log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鎻愮幇鎴愬姛閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
+ }
+
+
+ public void revenueMessage(String openid, Orders orders) throws WxErrorException {
+ RestTemplate restTemplate = new RestTemplate();
+ String accessToken = WxMiniConfig.wxMaService.getAccessToken();
+ log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 璁㈠崟鏀剁泭閫氱煡 -> accessToken锛歿}",accessToken);
+ //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
+ String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
+ //鎷兼帴鎺ㄩ�佺殑妯$増
+ WxMsgVO wxMsgVO = new WxMsgVO();
+ wxMsgVO.setTouser(openid);
+ //璁㈤槄娑堟伅妯℃澘id
+ wxMsgVO.setTemplate_id("tDpYImlrdv-0d3euTrHbYZ1cEZvjVHTNlqHvV0tpLHg");
+ Map<String, TemplateData> m = new HashMap<>(5);
+ m.put("character_string8", new TemplateData(orders.getCode()));
+ m.put("phrase3", new TemplateData("宸叉敮浠�"));
+ m.put("phrase4", new TemplateData("寰俊鏀粯"));
+ m.put("amount6", new TemplateData((new BigDecimal(orders.getReceiveAccount().toString()).divide(new BigDecimal("100")))+"鍏�"));
+ m.put("date7", new TemplateData(DateUtil.getFomartDate(new Date(),"yyyy-MM-dd HH:mm:ss")));
+ //TODO 璺宠浆鍦板潃
+ wxMsgVO.setPage("");
+ wxMsgVO.setData(m);
+ //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+ ResponseEntity<String> responseEntity =
+ restTemplate.postForEntity(url, wxMsgVO, String.class);
+ log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 璁㈠崟鏀剁泭閫氱煡锛歿}", JSONObject.toJSONString(responseEntity));
+ }
+
+
+ public void autoDispatchMessage(String openid, Orders orders,BigDecimal distance) throws WxErrorException {
+ RestTemplate restTemplate = new RestTemplate();
+ String accessToken = WxMiniConfig.wxMaService.getAccessToken();
+ log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 - 鏈嶅姟娲惧崟 -> accessToken锛歿}",accessToken);
+ //杩欓噷绠�鍗曡捣瑙佹垜浠瘡娆¢兘鑾峰彇鏈�鏂扮殑access_token锛堟椂闂村紑鍙戜腑锛屽簲璇ュ湪access_token蹇繃鏈熸椂鍐嶉噸鏂拌幏鍙栵級
+ String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+accessToken;
+ //鎷兼帴鎺ㄩ�佺殑妯$増
+ WxMsgVO wxMsgVO = new WxMsgVO();
+ wxMsgVO.setTouser(openid);
+ //璁㈤槄娑堟伅妯℃澘id
+ wxMsgVO.setTemplate_id("1h6JYpQf-mDKV4tYQ6gGDONfx1awqtm3-y9W8vUraT4");
+ Map<String, TemplateData> m = new HashMap<>(5);
+ m.put("thing2", new TemplateData(Constants.orderType.getName(orders.getType())));
+ m.put("thing3", new TemplateData(orders.getOrderContent()));
+ m.put("phrase4", new TemplateData("姝ゅ湴璺濈鎮�"+distance+"鍏噷"));
+ m.put("amount28", new TemplateData(orders.getEstimatedAccount().toString()));
+ m.put("thing12", new TemplateData("宸ュ崟灏嗕簬"+DateUtil.getFomartDate(orders.getStartDate(),"MM-dd")+"寮�濮�"));
+ //TODO 璺宠浆鍦板潃
+ wxMsgVO.setPage("");
+ wxMsgVO.setData(m);
+ //鐢ㄦ埛鐨刼penid锛堣鍙戦�佺粰閭d釜鐢ㄦ埛锛�
+ ResponseEntity<String> responseEntity =
+ restTemplate.postForEntity(url, wxMsgVO, String.class);
+ log.info("寰俊灏忕▼搴�->寰俊娑堟伅閫氱煡 鏈嶅姟娲惧崟锛歿}", JSONObject.toJSONString(responseEntity));
+ }
+
+
}
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 08bf046..322a247 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
@@ -31,7 +31,7 @@
public static WxMaService wxMaService;
/********寰俊灏忕▼搴忔敮浠�**********/
public static JsapiService wxPayService;
- public static WxPayService wxPayV2Service;
+// public static WxPayService wxPayV2Service;
public static RefundService refundService;
public static JsapiServiceExtension jsapiExtService;
public static BillDownloadService billDownloadService;
@@ -48,8 +48,7 @@
void init() {
this.load_WxMaService();
this.load_wxPayService();
- this.load_wxPayV2Service();
- this.load_transferToUser();
+// this.load_wxPayV2Service();
this.load_transferToUser();
this.wxProperties = wxPayProperties;
}
@@ -63,8 +62,8 @@
config.setAppid(StringUtils.trimToNull(wxPayProperties.getSubAppId()));
config.setSecret(StringUtils.trimToNull(wxPayProperties.getSubAppSecret()));
}else {
- config.setAppid(StringUtils.trimToNull(wxPayProperties.getAppId()));
- config.setSecret(StringUtils.trimToNull(wxPayProperties.getAppSecret()));
+// config.setAppid(StringUtils.trimToNull(wxPayProperties.getAppId()));
+// config.setSecret(StringUtils.trimToNull(wxPayProperties.getAppSecret()));
}
config.setMsgDataFormat("JSON");
//config.setToken("");
@@ -100,22 +99,22 @@
/**
* 鍒濆鍖栧井淇″皬绋嬪簭鏀粯
*/
- public void load_wxPayV2Service()
- {
- WxPayConfig payConfig = new WxPayConfig();
- payConfig.setTradeType(WxPayConstants.TradeType.JSAPI);
- payConfig.setSignType(WxPayConstants.SignType.MD5);
- payConfig.setAppId(StringUtils.trimToNull(wxPayProperties.getAppId()));
- payConfig.setSubAppId(StringUtils.trimToNull(wxPayProperties.getSubAppId()));
- payConfig.setMchId(StringUtils.trimToNull(wxPayProperties.getMchId()));
- payConfig.setSubMchId(StringUtils.trimToNull(wxPayProperties.getSubMchId()));
- 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.wxPayV2Service = wxPayService;
- }
+// public void load_wxPayV2Service()
+// {
+// WxPayConfig payConfig = new WxPayConfig();
+// payConfig.setTradeType(WxPayConstants.TradeType.JSAPI);
+// payConfig.setSignType(WxPayConstants.SignType.MD5);
+// payConfig.setAppId(StringUtils.trimToNull(wxPayProperties.getAppId()));
+// payConfig.setSubAppId(StringUtils.trimToNull(wxPayProperties.getSubAppId()));
+// payConfig.setMchId(StringUtils.trimToNull(wxPayProperties.getMchId()));
+// payConfig.setSubMchId(StringUtils.trimToNull(wxPayProperties.getSubMchId()));
+// 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.wxPayV2Service = wxPayService;
+// }
/**
@@ -136,6 +135,7 @@
// }
+ //杞处涓氬姟
public void load_transferToUser()
{
TransferToUser transferToUser = new TransferToUser(
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 08ba1cb..2a05a1f 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
@@ -38,7 +38,7 @@
/**
* 鏀粯API瀵嗛挜
*/
- private String subMchKey;
+// private String subMchKey;
/**
* 鏀粯鍥炶皟鍦板潃
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 c2f64ee..14afe17 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
@@ -592,4 +592,116 @@
}
+
+
+ public enum orderType {
+ ygd(0, "鐢ㄥ伐鍗�"),
+ hyd(1, "璐ц繍鍗�"),
+ scd(2, "閫侀鍗�"),
+
+ ;
+ // 鎴愬憳鍙橀噺
+ private int key;
+ private String name;
+
+ // 鏋勯�犳柟娉�
+ orderType(int key, String name) {
+ this.name = name;
+ this.key = key;
+ }
+
+ // 鏅�氭柟娉�
+ public static String getName(int index) {
+ for (orderType c : orderType.values()) {
+ if (c.getKey() == index) {
+ return c.name;
+ }
+ }
+ return null;
+ }
+ // get set 鏂规硶
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getKey() {
+ return key;
+ }
+
+ public void setKey(int key) {
+ this.key = key;
+ }
+
+ }
+
+
+
+ public enum smsContent {
+ accept(0, "SMS_491325122","鎮ㄧ殑{order}璁㈠崟宸茶鎺ュ崟锛佹椂闂达細{time1}-{time2}锛屾帴鍗曟柟锛歿name}銆�"),
+ receiveCancel(1, "SMS_491055243","鎮ㄧ殑{order}璁㈠崟锛屾椂闂达細{time1}-{time2}锛屽凡琚帴鍗曟柟鍙栨秷锛岃鍗曞凡閲嶆柊杩涘叆鎺ュ崟澶у巺銆�"),
+ platformCancel(2, "SMS_491375152","鎮ㄧ殑{order}璁㈠崟锛屾椂闂达細{time1}-{time2},宸茬敱骞冲彴鍙栨秷銆傚鏈夌枒闂鑱旂郴瀹㈡湇銆�"),
+ agreeUpd(3, "SMS_491190259","鎺ュ崟鏂瑰凡鍚屾剰鎮ㄥ皢{order}鐨勮鍗曟椂闂翠慨鏀逛负{time1}鑷硔time2}銆�"),
+ disAgreeUpd(4, "SMS_491085252","鎺ュ崟鏂瑰凡鎷掔粷鎮ㄥ皢{order}鐨勮鍗曟椂闂翠慨鏀逛负{time1}-{time2}銆傜郴缁熷凡閲嶆柊灏嗚鍗曟斁鍏ユ帴鍗曞ぇ鍘呫��"),
+ orderUpd(5, "SMS_491010267","璇锋敞鎰忥紒鎮ㄦ壙鎺ョ殑{order}璁㈠崟锛屽鎴峰皢璁㈠崟鏃堕棿淇敼涓簕time1}-{time2}銆傝鍓嶅線纭鏄惁鎺ュ彈锛岃秴鏃朵笉澶勭悊灏嗚涓哄悓鎰忋��"),
+ releaseCancel(6, "SMS_491150253","鎮ㄦ壙鎺ョ殑{order}璁㈠崟锛屾椂闂达細{time1}-{time2}锛屽凡琚彂鍗曟柟鍙栨秷銆傛偍鍙墠寰�鎺ュ崟澶у巺閲嶆柊鎺ュ崟銆�"),
+ platformCancel2(7, "SMS_491420143","鎮ㄦ壙鎺ョ殑{order}璁㈠崟锛屾椂闂达細{time1}-{time2}锛屽凡鐢卞钩鍙板彇娑堛�傚鏈夌枒闂鑱旂郴瀹㈡湇銆�"),
+ dispatch(8, "SMS_491180276","宸蹭负鎮ㄦ櫤鑳藉尮閰嶈鍗曘�傝鍗曠被鍨嬶細{order}锛屾椂闂达細{time1}-{time2}锛岃窛绂伙細{distance}锛岄璁¤垂鐢▄money}銆傝鍓嶅線纭銆�"),
+ pay(9, "SMS_491180278","鎮ㄦ壙鎺ョ殑{order}璁㈠崟娆鹃」宸插埌璐︼紒鍒拌处閲戦锛歿money}銆傚彲鍦ㄥ皬绋嬪簭璐︽埛浣欓杩涜鏌ョ湅銆�"),
+ authentication(10, "SMS_491055290","鎮ㄧ敵璇风殑{authentication}鐨剓order}璁よ瘉{status}銆傝鍦ㄥ皬绋嬪簭鏌ョ湅璇︽儏銆�"),
+ ;
+ // 鎴愬憳鍙橀噺
+ private int key;
+ private String code;
+ private String name;
+
+ // 鏋勯�犳柟娉�
+ smsContent(int key,String code, String name) {
+ this.name = name;
+ this.code = code;
+ this.key = key;
+ }
+
+ // 鏅�氭柟娉�
+ public static Constants.smsContent getSmsContent(int index) {
+ for (smsContent c : smsContent.values()) {
+ if (c.getKey() == index) {
+ return c;
+ }
+ }
+ return null;
+ }
+ // get set 鏂规硶
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public int getKey() {
+ return key;
+ }
+
+ public void setKey(int key) {
+ this.key = key;
+ }
+
+ }
+
+
+
+
}
diff --git a/server/services/src/main/java/com/doumee/service/business/AliSmsService.java b/server/services/src/main/java/com/doumee/service/business/AliSmsService.java
new file mode 100644
index 0000000..71625fb
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/service/business/AliSmsService.java
@@ -0,0 +1,180 @@
+package com.doumee.service.business;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.aliyuncs.DefaultAcsClient;
+import com.aliyuncs.IAcsClient;
+import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
+import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
+import com.aliyuncs.http.MethodType;
+import com.aliyuncs.profile.DefaultProfile;
+import com.aliyuncs.profile.IClientProfile;
+import com.doumee.core.constants.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.CategoryMapper;
+import com.doumee.dao.business.model.Category;
+import com.doumee.dao.business.model.IdentityInfo;
+import com.doumee.dao.business.model.Orders;
+import com.doumee.dao.dto.CateringDTO;
+import com.github.pagehelper.Constant;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/7/23 11:37
+ */
+@Service
+@Slf4j
+public class AliSmsService {
+
+ protected Logger logger = LogManager.getLogger("sms");
+
+ private final static String ACCESS_KEY_ID = "LTAI5tMkg7wwV74a8H6Bm3Ej";
+ private final static String ACCESS_KEY_SECRET = "FcHKST36sfwfo706L6bvrweGFIbp3n";
+ private final static String SING_NAME = "姗欐澶╀笅绉戞妧";
+
+
+ public void sendSms(int type, String phone, Orders orders, String receiveName, String businessPhone, BigDecimal distance, IdentityInfo identityInfo,CategoryMapper categoryMapper){
+ Constants.smsContent smsContent = Constants.smsContent.getSmsContent(type);
+ Map<String,Object> tempParam = new HashMap<>();
+ if(smsContent.getName().indexOf("time1")>=Constants.ZERO){
+ tempParam.put("time1", DateUtil.formatDate(orders.getStartDate(),"MM-dd"));
+ }
+ if(smsContent.getName().indexOf("time2")>=Constants.ZERO){
+ tempParam.put("time2", DateUtil.formatDate(orders.getEndDate(),"MM-dd"));
+ }
+ if(smsContent.getName().indexOf("name")>=Constants.ZERO){
+ tempParam.put("name", receiveName);
+ }
+ if(smsContent.getName().indexOf("money")>=Constants.ZERO){
+ tempParam.put("money", new BigDecimal(orders.getReceiveAccount().toString()).divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP)+"鍏�");
+ }
+ if(smsContent.getName().indexOf("distance")>=Constants.ZERO){
+ tempParam.put("distance", distance +"km");
+ }
+ //璁よ瘉鐭俊 鐗规畩澶勭悊
+ if(Constants.equalsInteger(smsContent.getKey(),Constants.smsContent.authentication.getKey())){
+ //璁よ瘉绫诲瀷
+ if(smsContent.getName().indexOf("authentication")>=Constants.ZERO){
+ tempParam.put("authentication", Constants.equalsInteger(identityInfo.getAuthType(),Constants.ZERO)?"涓汉":identityInfo.getCompanyName());
+ }
+ if(smsContent.getName().indexOf("order")>=Constants.ZERO){
+ tempParam.put("order", Constants.orderType.getName(identityInfo.getType()).replace("鍗�",""));
+ }
+ if(smsContent.getName().indexOf("status")>=Constants.ZERO){
+ tempParam.put("status", Constants.equalsInteger(identityInfo.getAuditStatus(),Constants.TWO)?"宸查�氳繃":"鏈�氳繃");
+ }
+ }else{
+ if(smsContent.getName().indexOf("order")>=Constants.ZERO){
+ String order = "";
+ //鏌ヨ璁㈠崟鐨勭被鍨嬩俊鎭�
+ if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
+ order = Constants.workType.getName(orders.getWorkType());
+ Category category = categoryMapper.selectById(orders.getCategoryId());
+ if(Objects.nonNull(category)){
+ order = category.getName() + order;
+ }
+ }else if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
+ order = "杩愯緭";
+ Category category = categoryMapper.selectById(orders.getTransportTypeId());
+ if(Objects.nonNull(category)){
+ order = category.getName() + order;
+ }
+ }else{
+ List<CateringDTO> cateringDTOList = JSONArray.parseArray(orders.getWayInfo(),CateringDTO.class);
+ if(CollectionUtils.isNotEmpty(cateringDTOList)){
+ for (CateringDTO cateringDTO:cateringDTOList) {
+ if(StringUtils.isBlank(order)){
+ order = cateringDTO.getName();
+ }else{
+ order = order + "/" +cateringDTO.getName();
+ }
+ }
+ }
+ }
+ tempParam.put("order",order);
+ }
+ }
+
+ if(smsContent.getName().indexOf("authentication")>=Constants.ZERO){
+ tempParam.put("distance", distance +"km");
+ }
+ AliSmsService.sendSms(phone,smsContent.getCode(), JSONObject.toJSONString(tempParam));
+ }
+
+
+ public static void main(String[] args) {
+ Map<String,Object> tempParam = new HashMap<>();
+ tempParam.put("order","钁¤悇閲囨憳宸�");
+ tempParam.put("time1","07-23");
+ tempParam.put("time2","07-24");
+ AliSmsService.sendSms("18055151023","SMS_491055243", JSONObject.toJSONString(tempParam));
+ }
+
+
+ /**
+ * 鍙戠煭淇℃ā鏉�(鍙兢鍙�)
+ *
+ * @param phone 璁㈠崟璇︽儏
+ * @param templateCode 妯℃澘code
+ * @param templateParam 妯℃澘鍙橀噺json瀛楃涓�
+ * @return 澶勭悊缁撴灉
+ */
+ public static Boolean sendSms(String phone, String templateCode, String templateParam) {
+ try {
+ //璁剧疆瓒呮椂鏃堕棿-鍙嚜琛岃皟鏁�
+ System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
+ System.setProperty("sun.net.client.defaultReadTimeout", "10000");
+ //鍒濆鍖朼scClient闇�瑕佺殑鍑犱釜鍙傛暟
+ //鐭俊API浜у搧鍚嶇О锛堢煭淇′骇鍝佸悕鍥哄畾锛屾棤闇�淇敼锛�
+ final String product = "Dysmsapi";
+ //鐭俊API浜у搧鍩熷悕锛堟帴鍙e湴鍧�鍥哄畾锛屾棤闇�淇敼锛�
+ final String domain = "dysmsapi.aliyuncs.com";
+ //鍒濆鍖朼scClient,鏆傛椂涓嶆敮鎸佸region锛堣鍕夸慨鏀癸級
+ IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", ACCESS_KEY_ID, ACCESS_KEY_SECRET);
+ DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
+ IAcsClient acsClient = new DefaultAcsClient(profile);
+ //缁勮璇锋眰瀵硅薄
+ SendSmsRequest request = new SendSmsRequest();
+ //浣跨敤post鎻愪氦
+ request.setMethod(MethodType.POST);
+ //蹇呭~:寰呭彂閫佹墜鏈哄彿銆傛敮鎸佷互閫楀彿鍒嗛殧鐨勫舰寮忚繘琛屾壒閲忚皟鐢紝鎵归噺涓婇檺涓�1000涓墜鏈哄彿鐮�,鎵归噺璋冪敤鐩稿浜庡崟鏉¤皟鐢ㄥ強鏃舵�х◢鏈夊欢杩�,楠岃瘉鐮佺被鍨嬬殑鐭俊鎺ㄨ崘浣跨敤鍗曟潯璋冪敤鐨勬柟寮�
+ request.setPhoneNumbers(phone);
+ //蹇呭~:鐭俊绛惧悕-鍙湪鐭俊鎺у埗鍙颁腑鎵惧埌
+ request.setSignName(SING_NAME);
+ //蹇呭~:鐭俊妯℃澘-鍙湪鐭俊鎺у埗鍙颁腑鎵惧埌
+ request.setTemplateCode(templateCode);
+ //鍙��:妯℃澘涓殑鍙橀噺鏇挎崲JSON涓�,濡傛ā鏉垮唴瀹逛负"浜茬埍鐨�${name},鎮ㄧ殑楠岃瘉鐮佷负${code}"鏃�,姝ゅ鐨勫�间负
+ //鍙嬫儏鎻愮ず:濡傛灉JSON涓渶瑕佸甫鎹㈣绗�,璇峰弬鐓ф爣鍑嗙殑JSON鍗忚瀵规崲琛岀鐨勮姹�,姣斿鐭俊鍐呭涓寘鍚玕r\n鐨勬儏鍐靛湪JSON涓渶瑕佽〃绀烘垚\\r\\n,鍚﹀垯浼氬鑷碕SON鍦ㄦ湇鍔$瑙f瀽澶辫触
+ request.setTemplateParam(templateParam);
+ //鍙��-涓婅鐭俊鎵╁睍鐮�(鎵╁睍鐮佸瓧娈垫帶鍒跺湪7浣嶆垨浠ヤ笅锛屾棤鐗规畩闇�姹傜敤鎴疯蹇界暐姝ゅ瓧娈�)
+ //dto.setSmsUpExtendCode("90997");
+ //鍙��:outId涓烘彁渚涚粰涓氬姟鏂规墿灞曞瓧娈�,鏈�缁堝湪鐭俊鍥炴墽娑堟伅涓皢姝ゅ�煎甫鍥炵粰璋冪敤鑰�
+ //dto.setOutId("yourOutId");
+ //璇锋眰澶辫触杩欓噷浼氭姏ClientException寮傚父
+ SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
+ if (sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
+// logger.info(phone + "-" + templateCode + "-" + templateParam + " >>> " + JSON.toJSONString(sendSmsResponse));
+ return true;
+ } else {
+// logger.error(phone + "-" + templateCode + "-" + templateParam + " >>> " + JSON.toJSONString(sendSmsResponse));
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+// logger.error(e);
+ }
+ return false;
+ }
+}
diff --git a/server/services/src/main/java/com/doumee/service/business/OrdersService.java b/server/services/src/main/java/com/doumee/service/business/OrdersService.java
index 0b0e568..b8db34d 100644
--- a/server/services/src/main/java/com/doumee/service/business/OrdersService.java
+++ b/server/services/src/main/java/com/doumee/service/business/OrdersService.java
@@ -110,6 +110,14 @@
//
void confirmUpd(ConfirmUpdOrderDTO confirmUpdOrderDTO);
+ /**
+ * 璁㈠崟鍙栨秷鍓嶇疆鎻愮ず
+ * @param orderId
+ * @param member
+ * @return
+ */
+ String cancelTips(Integer orderId,Member member);
+
void cancelOrder(Integer orderId,Member member);
OrderReleaseVO doneOrder(DoneOrderDTO doneOrderDTO);
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
index fdab8b9..56d9001 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
@@ -252,7 +252,9 @@
@Override
public List<Category> getCategoryList(Integer type){
List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda().eq(Category::getDeleted,Constants.ZERO).eq(Category::getStatus,Constants.ZERO)
- .eq(Objects.nonNull(type),Category::getType,type));
+ .eq(Objects.nonNull(type),Category::getType,type)
+ .orderByAsc(Category::getSortnum)
+ );
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(categoryList)){
String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode()
+systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.CATEGORY_FILES).getCode();
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java
index dfa044c..5345ef6 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/IdentityInfoServiceImpl.java
@@ -467,6 +467,7 @@
memberMapper.update(new UpdateWrapper<Member>().lambda()
.set(Member::getUpdateUser,user.getId())
.set(Member::getUpdateTime,date)
+ .set(Constants.equalsInteger(auditDTO.getAuditStatus(),Constants.ZERO),Member::getAutoReceiveStatus,Constants.ONE)
.set(Constants.equalsInteger(identityInfo.getType(),Constants.ZERO),Member::getWorkerIdentity, auditDTO.getAuditStatus() )
.set(Constants.equalsInteger(identityInfo.getType(),Constants.ONE),Member::getDriverIdentity , auditDTO.getAuditStatus() )
.set(Constants.equalsInteger(identityInfo.getType(),Constants.TWO),Member::getChefIdentity , auditDTO.getAuditStatus() )
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 25d4e53..b6f728c 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
@@ -232,7 +232,7 @@
.or().eq(Member::getDriverIdentity,Constants.TWO );
});
queryWrapper.lambda().ge(pageWrap.getModel().getStartTime()!=null, Member::getCreateTime,pageWrap.getModel().getStartTime());
- queryWrapper.lambda().ne(pageWrap.getModel().getEndTime()!=null,Member::getCreateTime,pageWrap.getModel().getEndTime());
+ queryWrapper.lambda().le(pageWrap.getModel().getEndTime()!=null,Member::getCreateTime,pageWrap.getModel().getEndTime());
for(PageWrap.SortData sortData: pageWrap.getSorts()) {
if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
@@ -252,8 +252,6 @@
/***************灏忕▼搴忔帴鍙�*************/
-
-
/**
* 寰俊灏忕▼搴忕櫥褰�
@@ -328,7 +326,6 @@
member.setPublishNum(Constants.ZERO.longValue());
member.setAutoReceiveStatus(Constants.ONE);
member.setUseIdentity(Constants.ZERO);
- member.setOpenid(wxPhoneRequest.getOpenid());
memberMapper.insert(member);
}
AccountResponse accountResponse = new AccountResponse();
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 86b0e61..1b5f608 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
@@ -536,7 +536,7 @@
queryWrapper.eq(Objects.nonNull(model.getReleaseMemberId()),Orders::getReleaseMemberId, model.getReleaseMemberId());
queryWrapper.eq(Objects.nonNull(model.getAcceptMemberId()),Orders::getAcceptMemberId, model.getAcceptMemberId());
queryWrapper.eq(Objects.nonNull(model.getAcceptType()),Orders::getAcceptType, model.getAcceptType());
- queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getReleaseName()),"m1.name", model.getReleaseName());
+ queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getReleaseName()),"m1.name like '%"+model.getReleaseName()+"%' or m1.TELEPHONE like '%"+model.getReleaseName()+"%' ");
queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getAcceptName()),"( i.LINK_NAME like '%"+model.getAcceptName()+"%' or i.company_name like '%"+model.getAcceptName()+"%' or i.TELEPHONE like '%"+model.getAcceptName()+"%' ) ");
IPage<Orders> iPage = ordersMapper.selectJoinPage(page,Orders.class,queryWrapper);
for (Orders orders:iPage.getRecords()) {
@@ -848,6 +848,31 @@
}
+ @Override
+ public String cancelTips(Integer orderId,Member member){
+ Orders orders = ordersMapper.selectById(orderId);
+ if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+
+ Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIMES).getCode());
+ Long cancelTimes = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
+ .apply(" DATE(cancel_time) = DATE(NOW()) ")
+ .eq(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
+ .eq(Orders::getReleaseMemberId,member.getId()));
+ //鏌ヨ鍙栨秷娆℃暟
+ if(totalCancelTimes<=cancelTimes){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠婃棩璁㈠崟涓诲姩鍙栨秷娆℃暟宸茶秴鍑�"+totalCancelTimes+"娆�,鏃犳硶鍙栨秷璁㈠崟,濡傞渶澶勭悊璇疯仈绯诲鏈�");
+ }
+
+ Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIME).getCode());
+ Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate());
+ if(hours < cancelTimeHour){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璺濈璁㈠崟寮�濮嬫椂闂翠笉瓒�"+cancelTimeHour+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟锛屽闇�澶勭悊璇疯仈绯诲鏈�");
+ }
+ return "浠婃棩杩樺彲涓诲姩鍙栨秷"+(totalCancelTimes-cancelTimes)+"娆★紝鏄惁纭鍙栨秷";
+
+ }
/**
* 鍙戝崟鏂瑰彇娑堣鍗�
@@ -935,6 +960,9 @@
Constants.OrdersLog ordersLog = Constants.OrdersLog.RELEASE_CANCEL;
this.saveOrderLog(orders,ordersLog,
ordersLog.getInfo(),member.getId(),null);
+
+
+
}
diff --git a/server/services/src/main/resources/application-dev.yml b/server/services/src/main/resources/application-dev.yml
index c2f5827..2befcf6 100644
--- a/server/services/src/main/resources/application-dev.yml
+++ b/server/services/src/main/resources/application-dev.yml
@@ -83,46 +83,81 @@
########################寰俊鏀粯鐩稿叧閰嶇疆########################
wx:
pay:
- #鏈嶅姟鍟�---------start-------
- appId: wx48fd8faa35cc8277
- mchId: 1661770902
- apiV3Key: iF3kC8pL8dZ9iU3hN5fX9zI6eF4xQ6fT
- serialNumer: 368B835A194384FD583B83B77977B84127D2F655
- mchKey: W97N53Q71326D6JZ2E9HY5M4VT4BAC8S
- notifyUrl: http://xiaopiqiu2.natapp1.cc/web/wxPayNotify
- refundNotifyUrl: http://xiaopiqiu2.natapp1.cc/web/wxRefundNotify
-# notifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxPayNotify
-# refundNotifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxRefundNotify
- #keyPath: /usr/local/aliConfig/bike/apiclient_cert.p12
- #privateCertPath: /usr/local/aliConfig/bike/apiclient_cert.pem
- #privateKeyPath: /usr/local/aliConfig/bike/apiclient_key.pem
- keyPath: d://apiclient_cert.p12
- privateCertPath: d://apiclient_cert.pem
- privateKeyPath: d://apiclient_key.pem
-
-
- #鍟嗘埛淇℃伅
- wechatSerialNumer: 3C9A32FB6CD453FAAAF97F9737ECAEA9D6625727
- wechatPayPublicKeyId: 47E172124E73E8098A565E971064C20ACDE7C911 # PUB_KEY_ID_0116617720032025071800291849000801 #鍟嗘埛/骞冲彴鏀粯鍏挜id
- wechatPubKeyPath: d://pub_key.pem #鍟嗘埛鏀粯鍏挜
- #wechatPlatformPubKeyPath: d:/wechatpay_47E172124E73E8098A565E971064C20ACDE7C911.pem #骞冲彴鏀粯鍏挜
- wechatPrivateKeyPath: d://wechatApiclient_key.pem #鍟嗘埛绉侀挜
- wechatNotifyUrl: http://xiaopiqiu2.natapp1.cc/web/wechat/transferNotify #鍟嗘埛杞处鍥炶皟鍦板潃
- #wechatApiV3Key: V4PRKUBTK2BKNKJAD9NSI9YFG2Q0EOT1 #鍟嗘埛APIV3Key
-
+ #鏈嶅姟鍟�---------start------- 鍙傛暟璇﹁В鍦板潃 https://pay.weixin.qq.com/doc/v3/partner/4013080340
+ mchId: 1700071922 #鏈嶅姟鍟嗗湪寰俊鏀粯渚х殑鍞竴韬唤鏍囪瘑
+ appId: wx332441ae5b12be7d #鏈嶅姟鍟嗗湪寰俊寮�鏀惧钩鍙帮紙绉诲姩搴旂敤锛夋垨鍏紬骞冲彴锛堝叕浼楀彿/灏忕▼搴忥級涓婄敵璇风殑涓�涓敮涓�鏍囪瘑
+ apiV3Key: 0a056faa107c2b2944b9d6a9aa6d4142 #7tG4Vk9Zp2L8dXw5Jq0N3hR6yE1sF3cB
+ serialNumer: 7DCD480EB6DF3791721867A6EB57105DECEF38BE #38495CE0137D90E4DC4F64F7ECDE035A35470BE3 #鏈嶅姟鍟嗚瘉涔﹀簭鍒楀彿
+ #mchKey: W97N53Q71326D6JZ2E9HY5M4VT4BAC8S
+ notifyUrl: https://test.doumee.cn/jinkuai_admin/web/wxPayNotify
+ refundNotifyUrl: https://test.doumee.cn/jinkuai_admin/web/wxRefundNotify
+ keyPath: d://jinkuai/apiclient_cert.p12
+ privateCertPath: d://jinkuai/apiclient_cert.pem
+ privateKeyPath: d://jinkuai/apiclient_key.pem
#鏈嶅姟鍟�-------------end---
+
+ #鍟嗘埛淇℃伅
+ wechatSerialNumer: 38495CE0137D90E4DC4F64F7ECDE035A35470BE3
+ wechatPayPublicKeyId: PUB_KEY_ID_0117233260692025072500181939000603 #鍟嗘埛/骞冲彴鏀粯鍏挜id
+ wechatPubKeyPath: d://jinkuai/shanghu/pub_key.pem #鍟嗘埛鏀粯鍏挜
+ wechatPrivateKeyPath: d://jinkuai/shanghu/apiclient_key.pem #鍟嗘埛绉侀挜
+ wechatNotifyUrl: https://test.doumee.cn/jinkuai_admin/web/wechat/transferNotify #鍟嗘埛杞处鍥炶皟鍦板潃
+
+
existsSub: 1
- appSecret: 1ceb7c9dff3c4330d653adc3ca55ea24
+ appSecret:
#瀛愬晢鎴�------------start----
- subAppId: wxcd2b89fd2ff065f8 #wxcd2b89fd2ff065f8
- subAppSecret: 3462fa186da7cb06c544df8d8664b63a #3336812504c830b1c3c5243f9ece407a
- subMchId: 1661772003
- subMchKey: EVM8E15TKXE0OEMJFC0V6UFVIOZ5CSQS
+ subMchId: 1723326069 #瀛愬晢鎴峰彿
+ subAppId: wx332441ae5b12be7d #灏忕▼搴廼d
+ subAppSecret: add86d6406f5c14501ac5bbb1a60e004 #灏忕▼搴忕閽�
#瀛愬晢鎴�------------end----
# mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
typeId: gybike
+
+#wx:
+# pay:
+# #鏈嶅姟鍟�---------start-------
+# appId: wx48fd8faa35cc8277
+# mchId: 1661770902
+# apiV3Key: iF3kC8pL8dZ9iU3hN5fX9zI6eF4xQ6fT
+# serialNumer: 368B835A194384FD583B83B77977B84127D2F655
+# mchKey: W97N53Q71326D6JZ2E9HY5M4VT4BAC8S
+# notifyUrl: https://test.doumee.cn/jinkuai_admin/web/wxPayNotify
+# refundNotifyUrl: https://test.doumee.cn/jinkuai_admin/web/wxRefundNotify
+## notifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxPayNotify
+## refundNotifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxRefundNotify
+# #keyPath: /usr/local/aliConfig/bike/apiclient_cert.p12
+# #privateCertPath: /usr/local/aliConfig/bike/apiclient_cert.pem
+# #privateKeyPath: /usr/local/aliConfig/bike/apiclient_key.pem
+# keyPath: /usr/local/zhengshu/apiclient_cert.p12 #d://apiclient_cert.p12
+# privateCertPath: /usr/local/zhengshu/apiclient_cert.pem #d://apiclient_cert.pem
+# privateKeyPath: /usr/local/zhengshu/apiclient_key.pem #d://apiclient_key.pem
+#
+#
+# #鍟嗘埛淇℃伅
+# wechatSerialNumer: 3C9A32FB6CD453FAAAF97F9737ECAEA9D6625727
+# wechatPayPublicKeyId: 47E172124E73E8098A565E971064C20ACDE7C911 # PUB_KEY_ID_0116617720032025071800291849000801 #鍟嗘埛/骞冲彴鏀粯鍏挜id
+# wechatPubKeyPath: /usr/local/zhengshu/pub_key.pem #d://pub_key.pem #鍟嗘埛鏀粯鍏挜
+# #wechatPlatformPubKeyPath: d:/wechatpay_47E172124E73E8098A565E971064C20ACDE7C911.pem #骞冲彴鏀粯鍏挜
+# wechatPrivateKeyPath: /usr/local/zhengshu/wechatApiclient_key.pem #d://wechatApiclient_key.pem #鍟嗘埛绉侀挜
+# wechatNotifyUrl: https://test.doumee.cn/jinkuai_admin/web/wechat/transferNotify #鍟嗘埛杞处鍥炶皟鍦板潃
+# #wechatApiV3Key: V4PRKUBTK2BKNKJAD9NSI9YFG2Q0EOT1 #鍟嗘埛APIV3Key
+#
+#
+# #鏈嶅姟鍟�-------------end---
+# existsSub: 1
+# appSecret: 1ceb7c9dff3c4330d653adc3ca55ea24
+# #瀛愬晢鎴�------------start----
+# subAppId: wxcd2b89fd2ff065f8 #wxcd2b89fd2ff065f8
+# subAppSecret: 3462fa186da7cb06c544df8d8664b63a #3336812504c830b1c3c5243f9ece407a
+# subMchId: 1661772003
+# subMchKey: EVM8E15TKXE0OEMJFC0V6UFVIOZ5CSQS
+# #瀛愬晢鎴�------------end----
+# # mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
+# typeId: gybike
+
upload:
type: ftp
diff --git a/server/services/src/main/resources/application-test.yml b/server/services/src/main/resources/application-test.yml
index bf7bdcf..85d8738 100644
--- a/server/services/src/main/resources/application-test.yml
+++ b/server/services/src/main/resources/application-test.yml
@@ -70,32 +70,37 @@
password: 111111
########################寰俊鏀粯鐩稿叧閰嶇疆########################
+
+########################寰俊鏀粯鐩稿叧閰嶇疆########################
wx:
pay:
#鏈嶅姟鍟�---------start-------
- appId: wx48fd8faa35cc8277
- mchId: 1661770902
- apiV3Key: iF3kC8pL8dZ9iU3hN5fX9zI6eF4xQ6fT
- serialNumer: 368B835A194384FD583B83B77977B84127D2F655
- mchKey: W97N53Q71326D6JZ2E9HY5M4VT4BAC8S
- # notifyUrl: http://xiaopiqiu3.natapp1.cc/api/wxPayNotify
- # refundNotifyUrl: http://xiaopiqiu3.natapp1.cc/api/wxRefundNotify
- notifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxPayNotify
- refundNotifyUrl: https://dmtest.ahapp.net/bike_h5_api/api/wxRefundNotify
- keyPath: /usr/local/aliConfig/bike/apiclient_cert.p12
- privateCertPath: /usr/local/aliConfig/bike/apiclient_cert.pem
- privateKeyPath: /usr/local/aliConfig/bike/apiclient_key.pem
- # keyPath: d://apiclient_cert.p12
- # privateCertPath: d://apiclient_cert.pem
- # privateKeyPath: d://apiclient_key.pem
+ mchId: 1700071922 #鏈嶅姟鍟嗗晢鎴峰彿
+ appId: wx6cc1087ca79db7f6 #鏈嶅姟鍟咥PPID
+ apiV3Key: 0a056faa107c2b2944b9d6a9aa6d4142
+ serialNumer: 38495CE0137D90E4DC4F64F7ECDE035A35470BE3 #鏈嶅姟鍟嗚瘉涔﹀簭鍒楀彿
+ #mchKey: W97N53Q71326D6JZ2E9HY5M4VT4BAC8S
+ notifyUrl: https://test.doumee.cn/jinkuai_admin/web/wxPayNotify
+ refundNotifyUrl: https://test.doumee.cn/jinkuai_admin/web/wxRefundNotify
+ keyPath: /usr/local/zhengshu/apiclient_cert.p12
+ privateCertPath: /usr/local/zhengshu/apiclient_cert.pem
+ privateKeyPath: /usr/local/zhengshu/apiclient_key.pem
+
+ #鍟嗘埛淇℃伅
+ wechatSerialNumer: 12C0F0DD0F3D2B565B45586D3FEA225EBF723BEC
+ wechatPayPublicKeyId: PUB_KEY_ID_0117233260692025072500181939000603 #鍟嗘埛/骞冲彴鏀粯鍏挜id
+ wechatPubKeyPath: /usr/local/zhengshu/pub_key.pem #鍟嗘埛鏀粯鍏挜
+ wechatPrivateKeyPath: /usr/local/zhengshu/shanghu/apiclient_key.pem #鍟嗘埛绉侀挜
+ wechatNotifyUrl: https://test.doumee.cn/jinkuai_admin/web/wechat/transferNotify #鍟嗘埛杞处鍥炶皟鍦板潃
+
+
#鏈嶅姟鍟�-------------end---
existsSub: 1
- appSecret: 1ceb7c9dff3c4330d653adc3ca55ea24
+ appSecret:
#瀛愬晢鎴�------------start----
- subAppId: wxcd2b89fd2ff065f8 #wxcd2b89fd2ff065f8
- subAppSecret: 3462fa186da7cb06c544df8d8664b63a #3336812504c830b1c3c5243f9ece407a
- subMchId: 1661772003
- subMchKey: EVM8E15TKXE0OEMJFC0V6UFVIOZ5CSQS
+ subAppId: wx332441ae5b12be7d #灏忕▼搴廼d
+ subAppSecret: add86d6406f5c14501ac5bbb1a60e004 #灏忕▼搴忕閽�
+ subMchId: 1723326069 #瀛愬晢鎴峰彿
#瀛愬晢鎴�------------end----
# mchKey: u4TSNtv0wFP7WRfnxBgijYOtRhS9FvlM
typeId: gybike
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 3bfc6c4..8fc10ce 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
@@ -112,6 +112,16 @@
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
+ @LoginRequired
+ @ApiOperation(value = "鍙栨秷鍓嶆彁绀鸿 - 鍙戝崟鏂�", notes = "灏忕▼搴忕")
+ @GetMapping("/cancelTips")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ })
+ public ApiResponse cancelTips(@RequestParam Integer orderId) {
+ ordersService.cancelTips(orderId,this.getMemberResponse());
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
--
Gitblit v1.9.3