diff --git a/jcpp-app/src/main/java/sanbing/jcpp/app/adapter/TestController.java b/jcpp-app/src/main/java/sanbing/jcpp/app/adapter/TestController.java index c50e81d..2eff7ab 100644 --- a/jcpp-app/src/main/java/sanbing/jcpp/app/adapter/TestController.java +++ b/jcpp-app/src/main/java/sanbing/jcpp/app/adapter/TestController.java @@ -6,28 +6,18 @@ */ package sanbing.jcpp.app.adapter; -import java.math.BigDecimal; -import java.util.HashMap; -import java.util.List; - +import com.google.common.collect.Lists; +import jakarta.annotation.Resource; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; - -import com.google.common.collect.Lists; - -import jakarta.annotation.Resource; import sanbing.jcpp.app.service.PileProtocolService; import sanbing.jcpp.proto.gen.ProtocolProto; -import sanbing.jcpp.proto.gen.ProtocolProto.CardInfo; -import sanbing.jcpp.proto.gen.ProtocolProto.FlagPriceProto; -import sanbing.jcpp.proto.gen.ProtocolProto.OfflineCardSyncRequest; -import sanbing.jcpp.proto.gen.ProtocolProto.PeriodProto; -import sanbing.jcpp.proto.gen.ProtocolProto.PricingModelFlag; -import sanbing.jcpp.proto.gen.ProtocolProto.PricingModelProto; -import sanbing.jcpp.proto.gen.ProtocolProto.PricingModelRule; -import sanbing.jcpp.proto.gen.ProtocolProto.PricingModelType; -import sanbing.jcpp.proto.gen.ProtocolProto.SetPricingRequest; +import sanbing.jcpp.proto.gen.ProtocolProto.*; + +import java.math.BigDecimal; +import java.util.HashMap; +import java.util.List; /** * @author baigod @@ -186,10 +176,10 @@ public class TestController { return ResponseEntity.ok("success"); } - @GetMapping("/api/limitUpdateRequest") - public ResponseEntity limitUpdateRequest() { + @GetMapping("/api/offlineCardBalanceUpdateRequest") + public ResponseEntity offlineCardBalanceUpdateRequest() { - pileProtocolService.limitUpdateRequest(ProtocolProto.LimitUpdateRequest.newBuilder() + pileProtocolService.offlineCardBalanceUpdateRequest(OfflineCardBalanceUpdateRequest.newBuilder() .setCardNo("1000000000123456") .setPileCode("20231212000010") .setGunCode("01") diff --git a/jcpp-app/src/main/java/sanbing/jcpp/app/service/PileProtocolService.java b/jcpp-app/src/main/java/sanbing/jcpp/app/service/PileProtocolService.java index 63fd7e6..0f660b0 100644 --- a/jcpp-app/src/main/java/sanbing/jcpp/app/service/PileProtocolService.java +++ b/jcpp-app/src/main/java/sanbing/jcpp/app/service/PileProtocolService.java @@ -8,6 +8,8 @@ package sanbing.jcpp.app.service; import sanbing.jcpp.infrastructure.queue.Callback; import sanbing.jcpp.proto.gen.ProtocolProto; +import sanbing.jcpp.proto.gen.ProtocolProto.OfflineCardBalanceUpdateRequest; +import sanbing.jcpp.proto.gen.ProtocolProto.OfflineCardSyncRequest; import sanbing.jcpp.proto.gen.ProtocolProto.SetPricingRequest; import sanbing.jcpp.proto.gen.ProtocolProto.UplinkQueueMessage; @@ -139,17 +141,17 @@ public interface PileProtocolService { /** * 远程账户余额更新 */ - void limitUpdateRequest(ProtocolProto.LimitUpdateRequest request); + void offlineCardBalanceUpdateRequest(OfflineCardBalanceUpdateRequest request); /** * 远程账户余额更新应答 */ - void onLimitUpdateResponse(UplinkQueueMessage uplinkQueueMessage, Callback callback); + void onOfflineCardBalanceUpdateResponse(UplinkQueueMessage uplinkQueueMessage, Callback callback); /** * 离线卡数据同步 */ - void offlineCardSyncRequest(ProtocolProto.OfflineCardSyncRequest request); + void offlineCardSyncRequest(OfflineCardSyncRequest request); /** * 离线卡数据同步应答 diff --git a/jcpp-app/src/main/java/sanbing/jcpp/app/service/impl/DefaultPileProtocolService.java b/jcpp-app/src/main/java/sanbing/jcpp/app/service/impl/DefaultPileProtocolService.java index 2dddf2d..3261352 100644 --- a/jcpp-app/src/main/java/sanbing/jcpp/app/service/impl/DefaultPileProtocolService.java +++ b/jcpp-app/src/main/java/sanbing/jcpp/app/service/impl/DefaultPileProtocolService.java @@ -455,7 +455,7 @@ public class DefaultPileProtocolService implements PileProtocolService { @Override - public void onLimitUpdateResponse(UplinkQueueMessage uplinkQueueMessage, Callback callback) { + public void onOfflineCardBalanceUpdateResponse(UplinkQueueMessage uplinkQueueMessage, Callback callback) { log.info("接收到充电桩远程账户余额更新应答 {}", uplinkQueueMessage); // TODO 处理相关业务逻辑 @@ -464,7 +464,7 @@ public class DefaultPileProtocolService implements PileProtocolService { } @Override - public void limitUpdateRequest(LimitUpdateRequest request) { + public void offlineCardBalanceUpdateRequest(OfflineCardBalanceUpdateRequest request) { UUID messageId = UUID.randomUUID(); UUID requestId = UUID.randomUUID(); @@ -474,8 +474,8 @@ public class DefaultPileProtocolService implements PileProtocolService { .setPileCode(request.getPileCode()) .setRequestIdMSB(requestId.getMostSignificantBits()) .setRequestIdLSB(requestId.getLeastSignificantBits()) - .setDownlinkCmd(DownlinkCmdEnum.LIMIT_UPDATE_REQUEST.name()) - .setLimitUpdateRequest(request); + .setDownlinkCmd(DownlinkCmdEnum.OFFLINE_CARD_BALANCE_UPDATE_REQUEST.name()) + .setOfflineCardBalanceUpdateRequest(request); downlinkCallService.sendDownlinkMessage(downlinkRequestMessageBuilder,request.getPileCode()); } diff --git a/jcpp-app/src/main/java/sanbing/jcpp/app/service/queue/consumer/ProtocolUplinkConsumerService.java b/jcpp-app/src/main/java/sanbing/jcpp/app/service/queue/consumer/ProtocolUplinkConsumerService.java index 577774e..9421749 100644 --- a/jcpp-app/src/main/java/sanbing/jcpp/app/service/queue/consumer/ProtocolUplinkConsumerService.java +++ b/jcpp-app/src/main/java/sanbing/jcpp/app/service/queue/consumer/ProtocolUplinkConsumerService.java @@ -224,9 +224,9 @@ public class ProtocolUplinkConsumerService extends AbstractConsumerService imple pileProtocolService.postLockStatus(uplinkQueueMsg, callback); - } else if (uplinkQueueMsg.hasLimitUpdateResponse()) { + } else if (uplinkQueueMsg.hasOfflineCardBalanceUpdateResponse()) { - pileProtocolService.onLimitUpdateResponse(uplinkQueueMsg, callback); + pileProtocolService.onOfflineCardBalanceUpdateResponse(uplinkQueueMsg, callback); } else if (uplinkQueueMsg.hasOfflineCardSyncResponse()) { diff --git a/jcpp-infrastructure-proto/src/main/proto/protocol.proto b/jcpp-infrastructure-proto/src/main/proto/protocol.proto index 69f8d4f..2437b05 100644 --- a/jcpp-infrastructure-proto/src/main/proto/protocol.proto +++ b/jcpp-infrastructure-proto/src/main/proto/protocol.proto @@ -74,7 +74,7 @@ message UplinkQueueMessage { BmsHandshakeProto bmsHandshakeProto = 37; OtaResponse otaResponse = 38; GroundLockStatusProto groundLockStatusProto = 39; - LimitUpdateResponse limitUpdateResponse = 40; + OfflineCardBalanceUpdateResponse offlineCardBalanceUpdateResponse = 40; OfflineCardSyncResponse offlineCardSyncResponse = 41; } @@ -99,7 +99,7 @@ message DownlinkRequestMessage { TransactionRecordResponse transactionRecordResponse = 27; RestartPileRequest restartPileRequest = 28; OtaRequest otaRequest = 29; - LimitUpdateRequest limitUpdateRequest = 30; + OfflineCardBalanceUpdateRequest offlineCardBalanceUpdateRequest = 30; OfflineCardSyncRequest offlineCardSyncRequest = 31; } @@ -439,14 +439,14 @@ message GroundLockStatusProto { optional string additionalInfo = 20; // 附加信息 } -message LimitUpdateRequest { +message OfflineCardBalanceUpdateRequest { string pileCode = 1; // 充电桩编码 string gunCode = 2; // 枪编号 string cardNo = 3; // 物理卡号 string limitYuan = 4; // 余额 } -message LimitUpdateResponse { +message OfflineCardBalanceUpdateResponse { string pileCode = 1; // 充电桩编码 string cardNo = 2; // 物理卡号 bool success = 3; diff --git a/jcpp-protocol-api/src/main/java/sanbing/jcpp/protocol/domain/DownlinkCmdEnum.java b/jcpp-protocol-api/src/main/java/sanbing/jcpp/protocol/domain/DownlinkCmdEnum.java index 8fb72db..cfe502d 100644 --- a/jcpp-protocol-api/src/main/java/sanbing/jcpp/protocol/domain/DownlinkCmdEnum.java +++ b/jcpp-protocol-api/src/main/java/sanbing/jcpp/protocol/domain/DownlinkCmdEnum.java @@ -31,7 +31,7 @@ public enum DownlinkCmdEnum { OTA_REQUEST, - LIMIT_UPDATE_REQUEST, + OFFLINE_CARD_BALANCE_UPDATE_REQUEST, OFFLINE_CARD_SYNC_REQUEST } \ No newline at end of file diff --git a/jcpp-protocol-yunkuaichong/READMD.md b/jcpp-protocol-yunkuaichong/READMD.md index 21991bb..43ae401 100644 --- a/jcpp-protocol-yunkuaichong/READMD.md +++ b/jcpp-protocol-yunkuaichong/READMD.md @@ -101,13 +101,15 @@ #### 0x61 地锁数据上送 `68 14 00 01 00 61 20 23 12 12 00 00 10 01 00 00 00 00 00 00 00 00 3D 6D` + +--- + #### 0x42 远程账户余额更新 `68 18 04 00 00 42 20 23 12 12 00 00 10 01 30 31 00 00 00 00 00 00 a0 86 01 00 4e ac` #### 0x41 远程账户余额更新应答 `68 14 19 00 00 41 20 23 12 12 00 00 10 10 00 00 00 00 12 34 56 00 bc 16` - #### 0x44 离线卡数据同步 `68 3f 02 00 00 44 20 23 12 12 00 00 10 03 00 00 00 10 00 00 00 00 12 34 56 10 00 00 00 00 12 34 56 10 00 00 00 00 12 34 57 10 00 00 00 00 12 34 57 10 00 00 00 00 12 34 58 10 00 00 00 00 12 34 58 ba 94` diff --git a/jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/enums/YunKuaiChongDownlinkCmdEnum.java b/jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/enums/YunKuaiChongDownlinkCmdEnum.java index 5456171..8e721f0 100644 --- a/jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/enums/YunKuaiChongDownlinkCmdEnum.java +++ b/jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/enums/YunKuaiChongDownlinkCmdEnum.java @@ -40,7 +40,7 @@ public enum YunKuaiChongDownlinkCmdEnum { OTA_REQUEST(0x94), - LIMIT_UPDATE_REQUEST(0x42), + OFFLINE_CARD_BALANCE_UPDATE_REQUEST(0x42), OFFLINE_CARD_SYNC_REQUEST(0x44), diff --git a/jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/v150/cmd/YunKuaiChongV150LimitUpdateRequestDLCmd.java b/jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/v150/cmd/YunKuaiChongV150OfflineCardBalanceUpdateRequestDLCmd.java similarity index 76% rename from jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/v150/cmd/YunKuaiChongV150LimitUpdateRequestDLCmd.java rename to jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/v150/cmd/YunKuaiChongV150OfflineCardBalanceUpdateRequestDLCmd.java index a07d9e8..9250965 100644 --- a/jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/v150/cmd/YunKuaiChongV150LimitUpdateRequestDLCmd.java +++ b/jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/v150/cmd/YunKuaiChongV150OfflineCardBalanceUpdateRequestDLCmd.java @@ -6,21 +6,21 @@ */ package sanbing.jcpp.protocol.yunkuaichong.v150.cmd; -import static sanbing.jcpp.protocol.yunkuaichong.enums.YunKuaiChongDownlinkCmdEnum.LIMIT_UPDATE_REQUEST; - -import java.math.BigDecimal; - import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import lombok.extern.slf4j.Slf4j; import sanbing.jcpp.infrastructure.util.codec.BCDUtil; -import sanbing.jcpp.proto.gen.ProtocolProto; +import sanbing.jcpp.proto.gen.ProtocolProto.OfflineCardBalanceUpdateRequest; import sanbing.jcpp.protocol.ProtocolContext; import sanbing.jcpp.protocol.listener.tcp.TcpSession; import sanbing.jcpp.protocol.yunkuaichong.YunKuaiChongDownlinkCmdExe; import sanbing.jcpp.protocol.yunkuaichong.YunKuaiChongDwonlinkMessage; import sanbing.jcpp.protocol.yunkuaichong.annotation.YunKuaiChongCmd; +import java.math.BigDecimal; + +import static sanbing.jcpp.protocol.yunkuaichong.enums.YunKuaiChongDownlinkCmdEnum.OFFLINE_CARD_BALANCE_UPDATE_REQUEST; + /** * 云快充1.5.0 远程账户余额更新 @@ -29,26 +29,26 @@ import sanbing.jcpp.protocol.yunkuaichong.annotation.YunKuaiChongCmd; */ @Slf4j @YunKuaiChongCmd(0x42) -public class YunKuaiChongV150LimitUpdateRequestDLCmd extends YunKuaiChongDownlinkCmdExe { +public class YunKuaiChongV150OfflineCardBalanceUpdateRequestDLCmd extends YunKuaiChongDownlinkCmdExe { @Override public void execute(TcpSession tcpSession, YunKuaiChongDwonlinkMessage message, ProtocolContext ctx) { log.info("{} 云快充1.5.0 远程账户余额更新", tcpSession); - if (!message.getMsg().hasLimitUpdateRequest()) { + if (!message.getMsg().hasOfflineCardBalanceUpdateRequest()) { log.error("云快充1.5.0 远程账户余额更新消息体为空"); return; } // 初始化 buf ByteBuf msgBody = Unpooled.buffer(20); - ProtocolProto.LimitUpdateRequest request = message.getMsg().getLimitUpdateRequest(); + OfflineCardBalanceUpdateRequest request = message.getMsg().getOfflineCardBalanceUpdateRequest(); msgBody.writeBytes(encodePileCode(request.getPileCode())); msgBody.writeBytes(encodeGunCode(request.getGunCode())); msgBody.writeBytes(BCDUtil.toBytes(request.getCardNo())); msgBody.writeIntLE(new BigDecimal(request.getLimitYuan()).movePointRight(2).intValue()); - super.encodeAndWriteFlush(LIMIT_UPDATE_REQUEST, msgBody, tcpSession); + super.encodeAndWriteFlush(OFFLINE_CARD_BALANCE_UPDATE_REQUEST, msgBody, tcpSession); } } diff --git a/jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/v150/cmd/YunKuaiChongV150LimitUpdateResponseULCmd.java b/jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/v150/cmd/YunKuaiChongV150OfflineCardBalanceUpdateResponseULCmd.java similarity index 84% rename from jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/v150/cmd/YunKuaiChongV150LimitUpdateResponseULCmd.java rename to jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/v150/cmd/YunKuaiChongV150OfflineCardBalanceUpdateResponseULCmd.java index 42ad93d..53d9c39 100644 --- a/jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/v150/cmd/YunKuaiChongV150LimitUpdateResponseULCmd.java +++ b/jcpp-protocol-yunkuaichong/src/main/java/sanbing/jcpp/protocol/yunkuaichong/v150/cmd/YunKuaiChongV150OfflineCardBalanceUpdateResponseULCmd.java @@ -6,20 +6,21 @@ */ package sanbing.jcpp.protocol.yunkuaichong.v150.cmd; -import java.util.Map; - import cn.hutool.core.text.CharSequenceUtil; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import lombok.extern.slf4j.Slf4j; import sanbing.jcpp.infrastructure.util.codec.BCDUtil; -import sanbing.jcpp.proto.gen.ProtocolProto; +import sanbing.jcpp.proto.gen.ProtocolProto.OfflineCardBalanceUpdateResponse; +import sanbing.jcpp.proto.gen.ProtocolProto.UplinkQueueMessage; import sanbing.jcpp.protocol.ProtocolContext; import sanbing.jcpp.protocol.listener.tcp.TcpSession; import sanbing.jcpp.protocol.yunkuaichong.YunKuaiChongUplinkCmdExe; import sanbing.jcpp.protocol.yunkuaichong.YunKuaiChongUplinkMessage; import sanbing.jcpp.protocol.yunkuaichong.annotation.YunKuaiChongCmd; +import java.util.Map; + /** * 云快充1.5.0 余额更新应答 @@ -28,7 +29,7 @@ import sanbing.jcpp.protocol.yunkuaichong.annotation.YunKuaiChongCmd; */ @Slf4j @YunKuaiChongCmd(0x41) -public class YunKuaiChongV150LimitUpdateResponseULCmd extends YunKuaiChongUplinkCmdExe { +public class YunKuaiChongV150OfflineCardBalanceUpdateResponseULCmd extends YunKuaiChongUplinkCmdExe { private static final Map UPDATE_RESULT; @@ -63,8 +64,8 @@ public class YunKuaiChongV150LimitUpdateResponseULCmd extends YunKuaiChongUplink // 修改结果 0x00-修改成功 0x01-设备编号错误 0x02-卡号错误 byte updateResult = byteBuf.readByte(); - ProtocolProto.UplinkQueueMessage queueMessage = uplinkMessageBuilder(pileCode, tcpSession, message) - .setLimitUpdateResponse(ProtocolProto.LimitUpdateResponse.newBuilder() + UplinkQueueMessage queueMessage = uplinkMessageBuilder(pileCode, tcpSession, message) + .setOfflineCardBalanceUpdateResponse(OfflineCardBalanceUpdateResponse.newBuilder() .setPileCode(pileCode) .setCardNo(cardNo) .setSuccess(updateResult == 0x00)