From d453612fc507f733cf01cf3cc8f56961c3bc4478 Mon Sep 17 00:00:00 2001
From: Guoqs <123@jsowell.com>
Date: Fri, 22 Aug 2025 10:06:16 +0800
Subject: [PATCH 01/10] =?UTF-8?q?update=20=E5=8F=91=E9=80=81=E7=9F=AD?=
=?UTF-8?q?=E4=BF=A1=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../api/uniapp/customer/MemberController.java | 3 +-
.../api/uniapp/customer/TempController.java | 16 +++++++
.../src/main/resources/application.yml | 44 +++++++++++++++++++
jsowell-common/pom.xml | 13 ++++++
.../java/com/jsowell/common/util/SMSUtil.java | 35 ++++++++++++++-
5 files changed, 109 insertions(+), 2 deletions(-)
diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/MemberController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/MemberController.java
index 515ec746e..7c32e8271 100644
--- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/MemberController.java
+++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/MemberController.java
@@ -74,7 +74,8 @@ public class MemberController extends BaseController {
if (StringUtils.isBlank(dto.getMobileNumber())) {
throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR);
}
- String sendSMSResult = SMSUtil.sendSMS(request, dto.getMobileNumber());
+ // String sendSMSResult = SMSUtil.sendSMS(request, dto.getMobileNumber());
+ String sendSMSResult = SMSUtil.sendSMSV2(request, dto.getMobileNumber());
response = new RestApiResponse<>(sendSMSResult);
} catch (Exception e) {
logger.error("下发短信接口 发生异常 error", e);
diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java
index 90b29e341..9ca4a7d5a 100644
--- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java
+++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java
@@ -28,6 +28,9 @@ import com.jsowell.service.OrderService;
import com.jsowell.service.TempService;
import com.jsowell.thirdparty.platform.dto.PushOrderDTO;
import org.apache.commons.collections4.CollectionUtils;
+import org.dromara.sms4j.api.SmsBlend;
+import org.dromara.sms4j.api.entity.SmsResponse;
+import org.dromara.sms4j.core.factory.SmsFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -963,4 +966,17 @@ public class TempController extends BaseController {
logger.info("关闭支付未启动的订单, param:{}, result:{}", JSON.toJSONString(dto), response);
return response;
}
+
+ /**
+ * 测试发送短信
+ * http://localhost:8080/temp/testSendSMS
+ */
+ @GetMapping("/testSendSMS")
+ public void testSend(){
+ // 在创建完SmsBlend实例后,再未手动调用注销的情况下框架会持有该实例,可以直接通过指定configId来获取想要的配置,如果你想使用
+ // 负载均衡形式获取实例,只要使用getSmsBlend的无参重载方法即可,如果你仅有一个配置,也可以使用该方法
+ SmsBlend smsBlend = SmsFactory.getSmsBlend("tx1");
+ SmsResponse smsResponse = smsBlend.sendMessage("18521561107","123123");
+ logger.info("发送短信结果:{}", smsResponse);
+ }
}
diff --git a/jsowell-admin/src/main/resources/application.yml b/jsowell-admin/src/main/resources/application.yml
index 33ed80692..5c99b7a42 100644
--- a/jsowell-admin/src/main/resources/application.yml
+++ b/jsowell-admin/src/main/resources/application.yml
@@ -148,3 +148,47 @@ chargeAlgorithm:
url: http://150.158.199.92:58910/gateway/api/user/battery/algorithm/json
clientId: e488bac5f70b496fa2d82065089e5f81
+# sms4j
+sms:
+ # 标注从yml读取配置
+ config-type: yaml
+ blends:
+ # 自定义的标识,也就是configId这里可以是任意值(最好不要是中文)
+ tx1:
+ #厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分
+ supplier: tencent
+ #您的accessKey
+ access-key-id: AKIDfDakkZBbqvnSt8Azb3JMKD3jCVcZJxPh
+ #您的accessKeySecret
+ access-key-secret: 95oKgpJeoncGoASXQ6qRp35wa2HKQVPA
+ #您的短信签名
+ signature: 举视新能源
+ #模板ID 非必须配置,如果使用sendMessage的快速发送需此配置
+ template-id: 1002460
+ #您的sdkAppId
+ sdk-app-id: 1400536771
+ # 代理
+ proxy:
+ # 是否启用代理 默认关闭 需手动开启
+ enable: false
+ host: 127.0.0.1
+ port: 8080
+ ali1:
+ #厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分
+ supplier: alibaba
+ #您的accessKey
+ access-key-id: AKIDfDakkZBbqvnSt8Azb3JMKD3jCVcZJxPh
+ #您的accessKeySecret
+ access-key-secret: 95oKgpJeoncGoASXQ6qRp35wa2HKQVPA
+ #您的短信签名
+ signature: 举视上海新能源
+ #模板ID 非必须配置,如果使用sendMessage的快速发送需此配置
+ template-id: 1002460
+ #您的sdkAppId
+ sdk-app-id: 1400536771
+ # 代理
+ proxy:
+ # 是否启用代理 默认关闭 需手动开启
+ enable: false
+ host: 127.0.0.1
+ port: 8080
\ No newline at end of file
diff --git a/jsowell-common/pom.xml b/jsowell-common/pom.xml
index 785b492ad..5aa9af263 100644
--- a/jsowell-common/pom.xml
+++ b/jsowell-common/pom.xml
@@ -228,6 +228,19 @@
spring-boot-starter-amqp
+
+ org.dromara.sms4j
+ sms4j-spring-boot-starter
+ 3.3.4
+
+
+
+ com.alibaba
+ fastjson
+
+
+
+
diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/SMSUtil.java b/jsowell-common/src/main/java/com/jsowell/common/util/SMSUtil.java
index 39b625b43..4936646cd 100644
--- a/jsowell-common/src/main/java/com/jsowell/common/util/SMSUtil.java
+++ b/jsowell-common/src/main/java/com/jsowell/common/util/SMSUtil.java
@@ -8,6 +8,9 @@ import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.redis.RedisCache;
import lombok.extern.slf4j.Slf4j;
+import org.dromara.sms4j.api.SmsBlend;
+import org.dromara.sms4j.api.entity.SmsResponse;
+import org.dromara.sms4j.core.factory.SmsFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -38,7 +41,7 @@ public class SMSUtil {
private static final int APP_ID = 1400536771;
// 签名,使用的是签名内容,而不是签名ID
- private static final String SMS_SIGN = "举视新能源";
+ private static final String SMS_SIGN = "举视上海新能源";
// 国家码 如 86 为中国
private static final String NATION_CODE = "86";
@@ -67,6 +70,36 @@ public class SMSUtil {
return reStr;
}
+ /**
+ * 发送短信V2
+ * @param request
+ * @param phoneNumber
+ * @return
+ * @throws HTTPException
+ * @throws IOException
+ */
+ public static String sendSMSV2(HttpServletRequest request, String phoneNumber) throws HTTPException, IOException {
+ String reStr = "success"; //定义返回值
+ //随机生成六位验证码
+ String code = RandomUtil.getSMSVerificationCode();
+ SmsBlend smsBlend = SmsFactory.getSmsBlend("tx1");
+ SmsResponse smsResponse = smsBlend.sendMessage(phoneNumber, code);
+ boolean success = smsResponse.isSuccess();
+ if (!success) {
+ reStr = "error";
+ log.error("发送验证码失败:{}", JSON.toJSONString(smsResponse));
+ } else {
+ // 改为保存redis
+ String redisKey = CacheConstants.SMS_VERIFICATION_CODE_KEY + phoneNumber;
+ redisCache.setCacheObject(redisKey, code, CacheConstants.cache_expire_time_30m);
+ }
+
+ // 新增一个通用验证码 2025年4月14日14点23分个别手机号无法收到验证码, 新增通用验证码
+ String redisKey2 = CacheConstants.SMS_COMMON_VERIFICATION_CODE_KEY + phoneNumber;
+ redisCache.setCacheObject(redisKey2, Constants.COMMON_VERIFICATION_CODE, CacheConstants.cache_expire_time_30m);
+ return reStr;
+ }
+
public static void main(String[] args) {
System.out.println();
From 43f16b73e05382efe0a21f4c9d244a40455bb296 Mon Sep 17 00:00:00 2001
From: "YAS\\29473" <2947326429@qq.com>
Date: Fri, 22 Aug 2025 11:56:58 +0800
Subject: [PATCH 02/10] update
---
.../common/enums/thirdparty/ThirdPlatformTypeEnum.java | 2 +-
.../service/impl/ChangZhouPlatformServiceImpl.java | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/ThirdPlatformTypeEnum.java b/jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/ThirdPlatformTypeEnum.java
index 417933293..d308031c5 100644
--- a/jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/ThirdPlatformTypeEnum.java
+++ b/jsowell-common/src/main/java/com/jsowell/common/enums/thirdparty/ThirdPlatformTypeEnum.java
@@ -35,7 +35,7 @@ public enum ThirdPlatformTypeEnum {
HE_NAN_PLATFORM("22", "河南省平台", "050880341"),
WEI_WANG_XIN_DIAN("23", "微网新电", "MA005DBW1"),
HU_ZHOU_PLATFORM("24", "湖州市监管平台", "MA27U00HZ"),
- CHANG_ZHOU_PLATFORM("25", "新运常畅充", "0585PCW57"),
+ CHANG_ZHOU_PLATFORM("25", "新运常畅充", "MACP1EDK1"),
SI_CHUAN_PLATFORM("26", "四川省平台", "MA01H3BQ2"),
JI_LIN_PLATFORM("27", "吉林省平台", "723195753"),
YUN_WEI_PLATFORM("28", "运维平台", "MA27QY0F4"),
diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChangZhouPlatformServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChangZhouPlatformServiceImpl.java
index 6db725c00..f6ee505ba 100644
--- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChangZhouPlatformServiceImpl.java
+++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChangZhouPlatformServiceImpl.java
@@ -472,7 +472,7 @@ public class ChangZhouPlatformServiceImpl implements ThirdPartyPlatformService {
@Override
public String notificationStartChargeResult(String orderCode) {
//判断是否是常畅充平台的订单
- Boolean flag = isNeedPushToThirdPartyPlatform(orderCode , ThirdPlatformTypeEnum.CHANG_ZHOU_PLATFORM.getOperatorId());
+ boolean flag = isNeedPushToThirdPartyPlatform(orderCode , ThirdPlatformTypeEnum.CHANG_ZHOU_PLATFORM.getOperatorId());
if (!flag){
//表示不是常畅充平台的订单
return null;
@@ -592,7 +592,7 @@ public class ChangZhouPlatformServiceImpl implements ThirdPartyPlatformService {
@Override
public String notificationEquipChargeStatus(String orderCode) {
//判断是否是常畅充平台的订单
- Boolean flag = isNeedPushToThirdPartyPlatform(orderCode , ThirdPlatformTypeEnum.CHANG_ZHOU_PLATFORM.getOperatorId());
+ boolean flag = isNeedPushToThirdPartyPlatform(orderCode , ThirdPlatformTypeEnum.CHANG_ZHOU_PLATFORM.getOperatorId());
if (!flag){
//表示不是常畅充平台的订单
return null;
@@ -701,7 +701,7 @@ public class ChangZhouPlatformServiceImpl implements ThirdPartyPlatformService {
@Override
public String notificationStopChargeResult(String orderCode) {
//判断是否是常畅充平台的订单
- Boolean flag = isNeedPushToThirdPartyPlatform(orderCode , ThirdPlatformTypeEnum.CHANG_ZHOU_PLATFORM.getOperatorId());
+ boolean flag = isNeedPushToThirdPartyPlatform(orderCode , ThirdPlatformTypeEnum.CHANG_ZHOU_PLATFORM.getOperatorId());
if (!flag){
//表示不是常畅充平台的订单
return null;
@@ -776,7 +776,7 @@ public class ChangZhouPlatformServiceImpl implements ThirdPartyPlatformService {
@Override
public String notificationChargeOrderInfo(String orderCode, ThirdPartySecretInfoVO thirdPartySecretInfoVO) {
//判断是否是常畅充平台的订单
- Boolean flag = isNeedPushToThirdPartyPlatform(orderCode , ThirdPlatformTypeEnum.CHANG_ZHOU_PLATFORM.getOperatorId());
+ boolean flag = isNeedPushToThirdPartyPlatform(orderCode , ThirdPlatformTypeEnum.CHANG_ZHOU_PLATFORM.getOperatorId());
if (!flag){
//表示不是常畅充平台的订单
return null;
@@ -839,7 +839,7 @@ public class ChangZhouPlatformServiceImpl implements ThirdPartyPlatformService {
@Override
public String notificationPayOrderInfo(String orderCode){
//判断是否是常畅充平台的订单
- Boolean flag = isNeedPushToThirdPartyPlatform(orderCode , ThirdPlatformTypeEnum.CHANG_ZHOU_PLATFORM.getOperatorId());
+ boolean flag = isNeedPushToThirdPartyPlatform(orderCode , ThirdPlatformTypeEnum.CHANG_ZHOU_PLATFORM.getOperatorId());
if (!flag){
//表示不是常畅充平台的订单
return null;
From e05f23cfedbb2512d0d9828e952fdb3141f72a82 Mon Sep 17 00:00:00 2001
From: Guoqs <123@jsowell.com>
Date: Fri, 22 Aug 2025 16:39:15 +0800
Subject: [PATCH 03/10] =?UTF-8?q?update=20=E6=89=93=E5=8D=B0=E6=97=A5?=
=?UTF-8?q?=E5=BF=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/jsowell/api/uniapp/customer/TempController.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java
index 9ca4a7d5a..1f9495308 100644
--- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java
+++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/TempController.java
@@ -976,7 +976,7 @@ public class TempController extends BaseController {
// 在创建完SmsBlend实例后,再未手动调用注销的情况下框架会持有该实例,可以直接通过指定configId来获取想要的配置,如果你想使用
// 负载均衡形式获取实例,只要使用getSmsBlend的无参重载方法即可,如果你仅有一个配置,也可以使用该方法
SmsBlend smsBlend = SmsFactory.getSmsBlend("tx1");
- SmsResponse smsResponse = smsBlend.sendMessage("18521561107","123123");
- logger.info("发送短信结果:{}", smsResponse);
+ SmsResponse smsResponse = smsBlend.sendMessage("18521561107","888888");
+ logger.info("发送短信结果:{}, 详情:{}", smsResponse.isSuccess(), JSON.toJSONString(smsResponse));
}
}
From 3a824613abf8d22d5304d754d1c91d10644aad3b Mon Sep 17 00:00:00 2001
From: Guoqs <123@jsowell.com>
Date: Mon, 25 Aug 2025 16:08:02 +0800
Subject: [PATCH 04/10] =?UTF-8?q?update=20=E6=9A=82=E6=97=B6=E5=BC=80?=
=?UTF-8?q?=E6=94=BEpre=E7=8E=AF=E5=A2=83=E6=89=A7=E8=A1=8C=E5=AE=9A?=
=?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../impl/OrderBasicInfoServiceImpl.java | 20 +------------------
.../com/jsowell/quartz/task/JsowellTask.java | 5 +----
2 files changed, 2 insertions(+), 23 deletions(-)
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java
index b8cce2a14..fa89b47e6 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java
@@ -687,26 +687,8 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
if (CollectionUtils.isEmpty(orderList)) {
return;
}
- // long currentTimeMillis = System.currentTimeMillis();
- for (OrderBasicInfo orderBasicInfo : orderList) {
- // 判断支付成功时间距当前时间是否大于15分钟
- // long time;
- // String startType = orderBasicInfo.getStartType();
- // // 立即启动的订单使用支付时间判断,预约充电的订单使用预约时间判断
- // if (StringUtils.equals(StartTypeEnum.NOW.getValue(), startType)) {
- // Date payTime = orderBasicInfo.getPayTime();
- // time = payTime == null ? 0L : payTime.getTime();
- // } else {
- // Date reservedStartTime = orderBasicInfo.getReservedStartTime();
- // time = reservedStartTime == null ? 0L : reservedStartTime.getTime();
- // }
- //
- // if (currentTimeMillis - time < 1000 * 60 * 15) {
- // logger.info("orderCode:{}, currentTimeMillis:{} - time:{} = {}, 支付成功时间距当前时间小于15分钟, 暂不执行退款",
- // orderBasicInfo.getOrderCode(), currentTimeMillis, time, currentTimeMillis - time);
- // continue;
- // }
+ for (OrderBasicInfo orderBasicInfo : orderList) {
// 判断支付成功时间距当前时间是否大于15分钟
String startType = orderBasicInfo.getStartType();
// 立即启动的订单使用支付时间判断,预约充电的订单使用预约时间判断
diff --git a/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java b/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java
index 5d7a48221..20b8753eb 100644
--- a/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java
+++ b/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java
@@ -29,9 +29,6 @@ import com.jsowell.pile.vo.web.BillingTemplateVO;
import com.jsowell.thirdparty.amap.service.AMapService;
import com.jsowell.thirdparty.common.NotificationDTO;
import com.jsowell.thirdparty.common.NotificationService;
-import com.jsowell.thirdparty.platform.service.impl.GuiZhouPlatformServiceImpl;
-import com.jsowell.thirdparty.platform.service.impl.JiLinPlatformServiceImpl;
-import com.jsowell.thirdparty.platform.service.impl.SiChuanPlatformServiceImpl;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -94,7 +91,7 @@ public class JsowellTask {
String env = SpringUtils.getActiveProfile();
if (StringUtils.equalsIgnoreCase(env, "pre")) {
log.debug("PRE环境不执行");
- return;
+ // return;
}
}
From 545a7fe65f9a974efb2f0d7f7947affe4ad3e2b5 Mon Sep 17 00:00:00 2001
From: Guoqs <123@jsowell.com>
Date: Mon, 25 Aug 2025 16:18:46 +0800
Subject: [PATCH 05/10] =?UTF-8?q?update=20=E6=9A=82=E6=97=B6=E5=BC=80?=
=?UTF-8?q?=E6=94=BEpre=E7=8E=AF=E5=A2=83=E6=89=A7=E8=A1=8C=E5=AE=9A?=
=?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/java/com/jsowell/quartz/task/JsowellTask.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java b/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java
index 20b8753eb..ca1e7cf52 100644
--- a/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java
+++ b/jsowell-quartz/src/main/java/com/jsowell/quartz/task/JsowellTask.java
@@ -117,7 +117,7 @@ public class JsowellTask {
String env = SpringUtils.getActiveProfile();
if (StringUtils.equalsIgnoreCase(env, "pre")) {
log.debug("PRE环境不执行");
- return;
+ // return;
}
// 查询出最近2天支付成功,并且订单状态为未启动的订单
String startTime = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.addDays(new Date(), -2));
From 9180778947d93e0b6cf1e268af15c1f18eaf4935 Mon Sep 17 00:00:00 2001
From: Guoqs <123@jsowell.com>
Date: Mon, 25 Aug 2025 16:32:50 +0800
Subject: [PATCH 06/10] =?UTF-8?q?=E7=94=B5=E5=8D=95=E8=BD=A6=E5=8F=91?=
=?UTF-8?q?=E9=80=81=E5=81=9C=E6=AD=A2=E5=85=85=E7=94=B5=E6=8C=87=E4=BB=A4?=
=?UTF-8?q?=20=E5=A4=84=E7=90=86=E5=BC=82=E5=B8=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../service/impl/EBikeSendCommandServiceImpl.java | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/EBikeSendCommandServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/EBikeSendCommandServiceImpl.java
index be8996b98..2e19d0b12 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/EBikeSendCommandServiceImpl.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/EBikeSendCommandServiceImpl.java
@@ -125,9 +125,15 @@ public class EBikeSendCommandServiceImpl implements EBikeSendCommandService {
message.setForceAutoStopWhenFull(1);
message.setFullChargePower(0);
message.setMaxFullChargePowerCheckTime(0);
- byte[] response = this.send(message);
- log.info("电单车发送停止充电指令response:{}", BytesUtil.binary(response, 16));
- return new ChargingOperationResponse(response);
+ // send方法有可能抛异常,所以这里用try-catch, 避免异常
+ try {
+ byte[] response = this.send(message);
+ log.info("电单车发送停止充电指令response:{}", BytesUtil.binary(response, 16));
+ return new ChargingOperationResponse(response);
+ } catch (Exception e) {
+ log.error("电单车发送停止充电指令异常:{}", e.getMessage());
+ return null;
+ }
}
/**
From a9e481abb512d8d53000d1347ffd23e6f93490f9 Mon Sep 17 00:00:00 2001
From: Guoqs <123@jsowell.com>
Date: Tue, 26 Aug 2025 14:47:28 +0800
Subject: [PATCH 07/10] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=93=E5=AD=98?=
=?UTF-8?q?=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../pile/service/impl/OrderMonitorDataServiceImpl.java | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderMonitorDataServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderMonitorDataServiceImpl.java
index 15c56eb6a..b5844137a 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderMonitorDataServiceImpl.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderMonitorDataServiceImpl.java
@@ -69,9 +69,6 @@ public class OrderMonitorDataServiceImpl implements OrderMonitorDataService {
if (orderMonitorData != null) {
// 放缓存
setRedisCache(orderMonitorData);
- // redisCache.setCacheObject(redisKey, orderMonitorData, CacheConstants.cache_expire_time_12h);
- // String redisKey2 = CacheConstants.ORDER_MONITOR_DATA_BY_TRANSACTION_CODE + orderMonitorData.getTransactionCode();
- // redisCache.setCacheObject(redisKey2, orderMonitorData, CacheConstants.cache_expire_time_12h);
}
}
return orderMonitorData;
@@ -86,9 +83,6 @@ public class OrderMonitorDataServiceImpl implements OrderMonitorDataService {
if (orderMonitorData != null) {
// 放缓存
setRedisCache(orderMonitorData);
- // redisCache.setCacheObject(redisKey, orderMonitorData, CacheConstants.cache_expire_time_12h);
- // String redisKey2 = CacheConstants.ORDER_MONITOR_DATA_BY_ORDER_CODE + orderMonitorData.getOrderCode();
- // redisCache.setCacheObject(redisKey2, orderMonitorData, CacheConstants.cache_expire_time_12h);
}
}
return orderMonitorData;
@@ -100,9 +94,9 @@ public class OrderMonitorDataServiceImpl implements OrderMonitorDataService {
return;
}
String redisKey = CacheConstants.ORDER_MONITOR_DATA_BY_ORDER_CODE + orderMonitorData.getOrderCode();
- redisCache.setCacheObject(redisKey, orderMonitorData, CacheConstants.cache_expire_time_12h);
+ redisCache.setCacheObject(redisKey, orderMonitorData, CacheConstants.cache_expire_time_30m);
String redisKey2 = CacheConstants.ORDER_MONITOR_DATA_BY_TRANSACTION_CODE + orderMonitorData.getTransactionCode();
- redisCache.setCacheObject(redisKey2, orderMonitorData, CacheConstants.cache_expire_time_12h);
+ redisCache.setCacheObject(redisKey2, orderMonitorData, CacheConstants.cache_expire_time_30m);
}
}
From 4e7bf5652259b1bc8d2ff1edd876df2331716ef1 Mon Sep 17 00:00:00 2001
From: Guoqs <123@jsowell.com>
Date: Tue, 26 Aug 2025 16:00:58 +0800
Subject: [PATCH 08/10] update
---
.../ykc/TransactionRecordsStrategy.java | 64 +++++++++----------
.../ykc/UploadRealTimeMonitorStrategy.java | 26 ++++----
2 files changed, 44 insertions(+), 46 deletions(-)
diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/TransactionRecordsStrategy.java b/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/TransactionRecordsStrategy.java
index 2fcddf1af..efdfade3b 100644
--- a/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/TransactionRecordsStrategy.java
+++ b/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/TransactionRecordsStrategy.java
@@ -2,7 +2,6 @@ package com.jsowell.netty.strategy.ykc;
import com.alibaba.fastjson2.JSON;
import com.google.common.primitives.Bytes;
-import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.common.core.domain.ykc.YKCDataProtocol;
@@ -33,7 +32,6 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.Date;
import java.util.Objects;
-import java.util.concurrent.CompletableFuture;
/**
* 交易记录确认
@@ -647,41 +645,41 @@ public class TransactionRecordsStrategy implements AbstractYkcStrategy {
}
// 异步绑定第三方平台优惠券
- OrderBasicInfo finalOrderBasicInfo = orderBasicInfo;
- String redisKey = CacheConstants.CAR_BIND_COUPON_BY_ORDER_CODE + orderBasicInfo.getOrderCode();
- Object cacheObject = redisCache.getCacheObject(redisKey);
- if (cacheObject == null) {
- CompletableFuture.runAsync(() -> {
- try {
- String bindResult = commonService.bindCoupon(finalOrderBasicInfo);
- log.info("绑定优惠券 订单信息:{}, result:{}", finalOrderBasicInfo, bindResult);
- // 删除绑定优惠券缓存
- redisCache.deleteObject(redisKey);
- } catch (Exception e) {
- log.error("绑定优惠券 error,", e);
- }
- }, executor);
- }
+ // OrderBasicInfo finalOrderBasicInfo = orderBasicInfo;
+ // String redisKey = CacheConstants.CAR_BIND_COUPON_BY_ORDER_CODE + orderBasicInfo.getOrderCode();
+ // Object cacheObject = redisCache.getCacheObject(redisKey);
+ // if (cacheObject == null) {
+ // CompletableFuture.runAsync(() -> {
+ // try {
+ // String bindResult = commonService.bindCoupon(finalOrderBasicInfo);
+ // log.info("绑定优惠券 订单信息:{}, result:{}", finalOrderBasicInfo, bindResult);
+ // // 删除绑定优惠券缓存
+ // redisCache.deleteObject(redisKey);
+ // } catch (Exception e) {
+ // log.error("绑定优惠券 error,", e);
+ // }
+ // }, executor);
+ // }
// 异步推送第三方平台订单信息
- CompletableFuture.runAsync(() -> {
- try {
- commonService.commonPushOrderInfo(finalOrderBasicInfo);
- } catch (Exception e) {
- log.error("推送第三方平台订单信息error, ", e);
- e.printStackTrace();
- }
- }, executor);
+ // CompletableFuture.runAsync(() -> {
+ // try {
+ // commonService.commonPushOrderInfo(finalOrderBasicInfo);
+ // } catch (Exception e) {
+ // log.error("推送第三方平台订单信息error, ", e);
+ // e.printStackTrace();
+ // }
+ // }, executor);
// 异步推送第三方平台订单信息V2
- CompletableFuture.runAsync(() -> {
- try {
- commonService.commonPushOrderInfoV2(finalOrderBasicInfo);
- } catch (Exception e) {
- log.error("推送第三方平台订单信息error, ", e);
- e.printStackTrace();
- }
- }, executor);
+ // CompletableFuture.runAsync(() -> {
+ // try {
+ // commonService.commonPushOrderInfoV2(finalOrderBasicInfo);
+ // } catch (Exception e) {
+ // log.error("推送第三方平台订单信息error, ", e);
+ // e.printStackTrace();
+ // }
+ // }, executor);
} else {
// 平台没有查到订单
orderBasicInfoService.saveAbnormalOrder(data);
diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/UploadRealTimeMonitorStrategy.java b/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/UploadRealTimeMonitorStrategy.java
index 85dd0c0f1..35fb69b56 100644
--- a/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/UploadRealTimeMonitorStrategy.java
+++ b/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/UploadRealTimeMonitorStrategy.java
@@ -325,19 +325,19 @@ public class UploadRealTimeMonitorStrategy implements AbstractYkcStrategy {
pileBasicInfoService.saveRealTimeMonitorData2Redis(realTimeMonitorData);
}
// 判断该订单是否需要下发优惠券
- String redisKey = CacheConstants.CAR_BIND_COUPON_BY_ORDER_CODE + orderInfo.getOrderCode();
- Object cacheObject = redisCache.getCacheObject(redisKey);
- if (cacheObject == null && sumChargingTime >= 10) {
- // 异步绑定优惠券并设置缓存
- CompletableFuture.runAsync(() -> {
- try {
- commonService.bindCoupon(orderInfo);
- redisCache.setCacheObject(redisKey, Boolean.TRUE, 24, TimeUnit.HOURS);
- } catch (Exception e) {
- log.error("异步绑定车辆优惠券 error,", e);
- }
- }, executor);
- }
+ // String redisKey = CacheConstants.CAR_BIND_COUPON_BY_ORDER_CODE + orderInfo.getOrderCode();
+ // Object cacheObject = redisCache.getCacheObject(redisKey);
+ // if (cacheObject == null && sumChargingTime >= 10) {
+ // // 异步绑定优惠券并设置缓存
+ // CompletableFuture.runAsync(() -> {
+ // try {
+ // commonService.bindCoupon(orderInfo);
+ // redisCache.setCacheObject(redisKey, Boolean.TRUE, 24, TimeUnit.HOURS);
+ // } catch (Exception e) {
+ // log.error("异步绑定车辆优惠券 error,", e);
+ // }
+ // }, executor);
+ // }
}
From b598939be9b13e62395c43aea4418b9d361c7702 Mon Sep 17 00:00:00 2001
From: Guoqs <123@jsowell.com>
Date: Tue, 26 Aug 2025 16:21:20 +0800
Subject: [PATCH 09/10] =?UTF-8?q?update=20=E5=8A=A0=E6=B3=A8=E9=87=8A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java | 4 ++--
.../jsowell/pile/service/impl/PileBasicInfoServiceImpl.java | 4 +---
.../pile/service/programlogic/AbstractProgramLogic.java | 2 +-
.../platform/service/impl/JiangSuPlatformServiceImpl.java | 2 +-
4 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java
index fa89b47e6..0604c1369 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java
@@ -2925,14 +2925,14 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
return resultList;
}
String pileConnectorCode = transactionCode.substring(0, 16); // 汽车桩
- String redisKey = CacheConstants.PILE_REAL_TIME_MONITOR_DATA + pileConnectorCode + "_" + transactionCode;
+ String redisKey = CacheConstants.PILE_REAL_TIME_MONITOR_DATA + pileConnectorCode + "_" + transactionCode; // 查缓存
// 拿到所有数据
Map