mirror of
https://gitee.com/san-bing/JChargePointProtocol
synced 2026-05-04 18:09:54 +08:00
!27 Merge branch 'master' into Feat_远程账户余额更新
* 离线卡数据同步(0x44) 离线卡数据同步应答(0x43) * Merge branch 'master' into Feat_远程账户余额更新 * 离线卡数据同步(0x44) 离线卡数据同步应答(0x43) * 下发卡个数 参数校验 * Merge branch 'master' into Feat_远程账户余额更新 * 离线卡数据同步(0x44) 离线卡数据同步应答(0x43) * 远程账户余额更新(0x42) 余额更新应答(0x41)
This commit is contained in:
@@ -6,16 +6,28 @@
|
||||
*/
|
||||
package sanbing.jcpp.app.adapter;
|
||||
|
||||
import jakarta.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
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.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.HashMap;
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author baigod
|
||||
@@ -174,4 +186,33 @@ public class TestController {
|
||||
return ResponseEntity.ok("success");
|
||||
}
|
||||
|
||||
@GetMapping("/api/limitUpdateRequest")
|
||||
public ResponseEntity<String> limitUpdateRequest() {
|
||||
|
||||
pileProtocolService.limitUpdateRequest(ProtocolProto.LimitUpdateRequest.newBuilder()
|
||||
.setCardNo("1000000000123456")
|
||||
.setPileCode("20231212000010")
|
||||
.setGunCode("01")
|
||||
.setLimitYuan("1000")
|
||||
.build());
|
||||
|
||||
return ResponseEntity.ok("success");
|
||||
}
|
||||
|
||||
@GetMapping("/api/offlineCardSyncRequest")
|
||||
public ResponseEntity<String> offlineCardSyncRequest() {
|
||||
|
||||
List<CardInfo> cardInfos = Lists.newArrayList(CardInfo.newBuilder().setCardNo("1000000000123456").setLogicCardNo("1000000000123456").build(),
|
||||
CardInfo.newBuilder().setCardNo("1000000000123457").setLogicCardNo("1000000000123457").build(),
|
||||
CardInfo.newBuilder().setCardNo("1000000000123458").setLogicCardNo("1000000000123458").build());
|
||||
|
||||
pileProtocolService.offlineCardSyncRequest(OfflineCardSyncRequest.newBuilder()
|
||||
.setPileCode("20231212000010")
|
||||
.setTotal(cardInfos.size())
|
||||
.addAllCardInfo(cardInfos)
|
||||
.build());
|
||||
|
||||
return ResponseEntity.ok("success");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -136,4 +136,23 @@ public interface PileProtocolService {
|
||||
*/
|
||||
void postLockStatus(UplinkQueueMessage uplinkQueueMessage, Callback callback);
|
||||
|
||||
/**
|
||||
* 远程账户余额更新
|
||||
*/
|
||||
void limitUpdateRequest(ProtocolProto.LimitUpdateRequest request);
|
||||
|
||||
/**
|
||||
* 远程账户余额更新应答
|
||||
*/
|
||||
void onLimitUpdateResponse(UplinkQueueMessage uplinkQueueMessage, Callback callback);
|
||||
|
||||
/**
|
||||
* 离线卡数据同步
|
||||
*/
|
||||
void offlineCardSyncRequest(ProtocolProto.OfflineCardSyncRequest request);
|
||||
|
||||
/**
|
||||
* 离线卡数据同步应答
|
||||
*/
|
||||
void onOfflineCardSyncResponse(UplinkQueueMessage uplinkQueueMessage, Callback callback);
|
||||
}
|
||||
@@ -444,12 +444,63 @@ public class DefaultPileProtocolService implements PileProtocolService {
|
||||
int parkStatus = groundLockStatusProto.getParkStatus();
|
||||
int lockBattery = groundLockStatusProto.getLockBattery();
|
||||
int alarmStatus = groundLockStatusProto.getAlarmStatus();
|
||||
|
||||
log.info("地锁状态信息: 桩编码: {}, 枪号: {}, 车位锁状态: {}, 车位状态: {}, 地锁电量: {}%, 报警状态: {}",
|
||||
|
||||
log.info("地锁状态信息: 桩编码: {}, 枪号: {}, 车位锁状态: {}, 车位状态: {}, 地锁电量: {}%, 报警状态: {}",
|
||||
pileCode, gunCode, lockStatus, parkStatus, lockBattery, alarmStatus);
|
||||
|
||||
|
||||
// TODO 处理相关业务逻辑,比如保存地锁状态信息到数据库
|
||||
|
||||
|
||||
callback.onSuccess();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onLimitUpdateResponse(UplinkQueueMessage uplinkQueueMessage, Callback callback) {
|
||||
log.info("接收到充电桩远程账户余额更新应答 {}", uplinkQueueMessage);
|
||||
|
||||
// TODO 处理相关业务逻辑
|
||||
|
||||
callback.onSuccess();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void limitUpdateRequest(LimitUpdateRequest request) {
|
||||
UUID messageId = UUID.randomUUID();
|
||||
UUID requestId = UUID.randomUUID();
|
||||
|
||||
DownlinkRequestMessage.Builder downlinkRequestMessageBuilder = DownlinkRequestMessage.newBuilder()
|
||||
.setMessageIdMSB(messageId.getMostSignificantBits())
|
||||
.setMessageIdLSB(messageId.getLeastSignificantBits())
|
||||
.setPileCode(request.getPileCode())
|
||||
.setRequestIdMSB(requestId.getMostSignificantBits())
|
||||
.setRequestIdLSB(requestId.getLeastSignificantBits())
|
||||
.setDownlinkCmd(DownlinkCmdEnum.LIMIT_UPDATE_REQUEST.name())
|
||||
.setLimitUpdateRequest(request);
|
||||
downlinkCallService.sendDownlinkMessage(downlinkRequestMessageBuilder,request.getPileCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void offlineCardSyncRequest(OfflineCardSyncRequest request) {
|
||||
UUID messageId = UUID.randomUUID();
|
||||
UUID requestId = UUID.randomUUID();
|
||||
|
||||
DownlinkRequestMessage.Builder downlinkRequestMessageBuilder = DownlinkRequestMessage.newBuilder()
|
||||
.setMessageIdMSB(messageId.getMostSignificantBits())
|
||||
.setMessageIdLSB(messageId.getLeastSignificantBits())
|
||||
.setPileCode(request.getPileCode())
|
||||
.setRequestIdMSB(requestId.getMostSignificantBits())
|
||||
.setRequestIdLSB(requestId.getLeastSignificantBits())
|
||||
.setDownlinkCmd(DownlinkCmdEnum.OFFLINE_CARD_SYNC_REQUEST.name())
|
||||
.setOfflineCardSyncRequest(request);
|
||||
downlinkCallService.sendDownlinkMessage(downlinkRequestMessageBuilder,request.getPileCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOfflineCardSyncResponse(UplinkQueueMessage uplinkQueueMessage, Callback callback) {
|
||||
log.info("接收到充电桩离线卡数据同步应答 {}", uplinkQueueMessage);
|
||||
|
||||
// TODO 处理相关业务逻辑
|
||||
|
||||
callback.onSuccess();
|
||||
}
|
||||
|
||||
|
||||
@@ -223,7 +223,15 @@ public class ProtocolUplinkConsumerService extends AbstractConsumerService imple
|
||||
} else if (uplinkQueueMsg.hasGroundLockStatusProto()) {
|
||||
|
||||
pileProtocolService.postLockStatus(uplinkQueueMsg, callback);
|
||||
|
||||
|
||||
} else if (uplinkQueueMsg.hasLimitUpdateResponse()) {
|
||||
|
||||
pileProtocolService.onLimitUpdateResponse(uplinkQueueMsg, callback);
|
||||
|
||||
} else if (uplinkQueueMsg.hasOfflineCardSyncResponse()) {
|
||||
|
||||
pileProtocolService.onOfflineCardSyncResponse(uplinkQueueMsg, callback);
|
||||
|
||||
} else {
|
||||
|
||||
callback.onSuccess();
|
||||
|
||||
Reference in New Issue
Block a user