diff --git a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java index 992e73874..833cf6022 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java +++ b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java @@ -30,6 +30,8 @@ public class CacheConstants { */ public static final String GET_ORDER_INFO_BY_ORDER_CODE = "get_order_info_by_order_code:"; + public static final String GET_ORDER_INFO_BY_TRANSACTION_CODE = "get_order_info_by_transaction_code:"; + /** * 充电枪口实时监控数据 */ diff --git a/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/TransactionRecordsData.java b/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/TransactionRecordsData.java index 4557b4090..91b73660c 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/TransactionRecordsData.java +++ b/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/TransactionRecordsData.java @@ -18,9 +18,10 @@ import org.apache.commons.lang3.builder.ToStringStyle; @AllArgsConstructor @Builder public class TransactionRecordsData { + // private String orderCode; // 交易流水号 - private String orderCode; + private String transactionCode; // 桩编码 private String pileSn; @@ -121,7 +122,7 @@ public class TransactionRecordsData { @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.JSON_STYLE) - .append("orderCode", orderCode) + .append("transactionCode", transactionCode) .append("pileSn", pileSn) .append("connectorCode", connectorCode) .append("startTime", startTime) diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/TransactionRecordsRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/TransactionRecordsRequestHandler.java index 2eae73cd0..428ca1f4d 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/TransactionRecordsRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/TransactionRecordsRequestHandler.java @@ -260,7 +260,7 @@ public class TransactionRecordsRequestHandler extends AbstractHandler { // 交易流水号 byte[] orderCodeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); - String orderCode = BytesUtil.bcd2Str(orderCodeByteArr); + String transactionCode = BytesUtil.bcd2Str(orderCodeByteArr); // 桩编码 startIndex += length; @@ -442,14 +442,15 @@ public class TransactionRecordsRequestHandler extends AbstractHandler { "峰单价:{}, 峰电量:{}, 计损峰电量:{}, 峰金额:{}, 平单价:{}, 平电量:{}, 计损平电量:{}, 平金额:{}, " + "谷单价:{}, 谷电量:{}, 计损谷电量:{}, 谷金额:{}, 电表总起值:{}, 电表总止值:{}, 总电量:{}, 计损总电量:{}, 消费金额:{}, " + "电动汽车唯一标识:{}, 交易标识:{}, 交易日期、时间:{}, 停止原因码:{}, 停止原因描述:{}, 物理卡号:{}", - orderCode, pileSn, connectorCode, startTime, endTime, sharpPrice, sharpUsedElectricity, sharpPlanLossElectricity, sharpAmount, + transactionCode, pileSn, connectorCode, startTime, endTime, sharpPrice, sharpUsedElectricity, sharpPlanLossElectricity, sharpAmount, peakPrice, peakUsedElectricity, peakPlanLossElectricity, peakAmount, flatPrice, flatUsedElectricity, flatPlanLossElectricity, flatAmount, valleyPrice, valleyUsedElectricity, valleyPlanLossElectricity, valleyAmount, ammeterTotalStart, ammeterTotalEnd, totalElectricity, planLossTotalElectricity, consumptionAmount, vinCode, transactionIdentifier, transactionTime, stopReason, stopReasonMsg, logicCard); // 交易记录封装到对象里 TransactionRecordsData data = TransactionRecordsData.builder() - .orderCode(orderCode) + // .orderCode(transactionCode) + .transactionCode(transactionCode) .pileSn(pileSn) .connectorCode(connectorCode) .startTime(startTime) @@ -487,7 +488,7 @@ public class TransactionRecordsRequestHandler extends AbstractHandler { pileMsgRecordService.save(pileSn, pileSn + connectorCode, type, jsonMsg, ykcDataProtocol.getHEXString()); // 处理订单加锁 - String lockKey = "settle_order_" + orderCode; + String lockKey = "settle_order_" + transactionCode; String uuid = IdUtils.fastUUID(); try { // redis锁 @@ -517,9 +518,12 @@ public class TransactionRecordsRequestHandler extends AbstractHandler { } private void processOrder(TransactionRecordsData data) { - String orderCode = data.getOrderCode(); + // String orderCode = data.getOrderCode(); + String transactionCode = data.getTransactionCode(); // 根据订单号查询订单信息 - OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); + // OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByOrderCode(orderCode); + // 根据交易流水号查询订单信息 + OrderBasicInfo orderBasicInfo = orderBasicInfoService.getOrderInfoByTransactionCode(transactionCode); if (orderBasicInfo != null) { // 平台存在订单 orderBasicInfo.setReason(data.getStopReasonMsg()); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java index 4c8008bd6..2a2ed9779 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/OrderBasicInfoMapper.java @@ -109,6 +109,8 @@ public interface OrderBasicInfoMapper { */ OrderBasicInfo getOrderInfoByOrderCode(String orderCode); + OrderBasicInfo getOrderInfoByTransactionCode(String transactionCode); + /** * 根据桩编号和枪口号查询某状态订单 * @@ -182,4 +184,5 @@ public interface OrderBasicInfoMapper { * @return */ List getAccumulativeInfo(QueryPersonPileDTO dto); + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java index a3b875daf..307e9a261 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java @@ -78,6 +78,8 @@ public interface IOrderBasicInfoService { */ OrderBasicInfo getOrderInfoByOrderCode(String orderCode); + OrderBasicInfo getOrderInfoByTransactionCode(String transactionCode); + /** * 通过桩号和枪口号查询充电中的状态 * @param pileSn 桩编号 @@ -198,4 +200,6 @@ public interface IOrderBasicInfoService { * @param pileSn */ void updateOrderStatusAsAbnormal(String pileSn); + + } 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 551878c38..4bfa561bc 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 @@ -389,6 +389,25 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { return orderBasicInfo; } + @Override + public OrderBasicInfo getOrderInfoByTransactionCode(String transactionCode) { + if (StringUtils.equals("00000000000000000000000000000000", transactionCode)) { + return null; + } + String redisKey = CacheConstants.GET_ORDER_INFO_BY_TRANSACTION_CODE + transactionCode; + OrderBasicInfo orderBasicInfo = redisCache.getCacheObject(redisKey); + if (orderBasicInfo == null) { + // 查数据库 + orderBasicInfo = orderBasicInfoMapper.getOrderInfoByTransactionCode(transactionCode); + // 放缓存 + if (orderBasicInfo != null) { + redisCache.setCacheObject(redisKey, orderBasicInfo, 5, TimeUnit.MINUTES); + } + } + logger.info("通过交易流水号:{}, 查询订单信息:{}", transactionCode, JSON.toJSONString(orderBasicInfo)); + return orderBasicInfo; + } + /** * 根据充电桩编号和枪口号查询正在充电中的订单 * diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 1d980e0ba..38c8e6eb4 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -655,6 +655,14 @@ and del_flag = '0' + + + \ No newline at end of file