diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/Message.java b/jsowell-common/src/main/java/com/jsowell/common/protocol/Message.java similarity index 72% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/Message.java rename to jsowell-common/src/main/java/com/jsowell/common/protocol/Message.java index 0b733044e..bb6f22ac2 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/Message.java +++ b/jsowell-common/src/main/java/com/jsowell/common/protocol/Message.java @@ -1,4 +1,4 @@ -package com.jsowell.netty.rpc; +package com.jsowell.common.protocol; import lombok.Data; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/MessageConstant.java b/jsowell-common/src/main/java/com/jsowell/common/protocol/MessageConstant.java similarity index 76% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/MessageConstant.java rename to jsowell-common/src/main/java/com/jsowell/common/protocol/MessageConstant.java index 930cab4b8..ae137685b 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/MessageConstant.java +++ b/jsowell-common/src/main/java/com/jsowell/common/protocol/MessageConstant.java @@ -1,4 +1,8 @@ -package com.jsowell.netty.rpc; +package com.jsowell.common.protocol; + +import com.jsowell.common.protocol.Message; +import com.jsowell.common.protocol.RpcRequest; +import com.jsowell.common.protocol.RpcResponse; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcRequest.java b/jsowell-common/src/main/java/com/jsowell/common/protocol/RpcRequest.java similarity index 69% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcRequest.java rename to jsowell-common/src/main/java/com/jsowell/common/protocol/RpcRequest.java index 8ffc0fcfb..888e85d5e 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcRequest.java +++ b/jsowell-common/src/main/java/com/jsowell/common/protocol/RpcRequest.java @@ -1,5 +1,6 @@ -package com.jsowell.netty.rpc; +package com.jsowell.common.protocol; +import com.jsowell.common.protocol.Message; import lombok.Data; import lombok.ToString; @@ -7,7 +8,7 @@ import java.util.UUID; @Data @ToString -public class RpcRequest extends Message{ +public class RpcRequest extends Message { private String id; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcResponse.java b/jsowell-common/src/main/java/com/jsowell/common/protocol/RpcResponse.java similarity index 62% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcResponse.java rename to jsowell-common/src/main/java/com/jsowell/common/protocol/RpcResponse.java index 075ae9186..e8d43d434 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcResponse.java +++ b/jsowell-common/src/main/java/com/jsowell/common/protocol/RpcResponse.java @@ -1,11 +1,12 @@ -package com.jsowell.netty.rpc; +package com.jsowell.common.protocol; +import com.jsowell.common.protocol.Message; import lombok.Data; import lombok.ToString; @Data @ToString -public class RpcResponse extends Message{ +public class RpcResponse extends Message { private String id; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/rpc/SyncPromise.java b/jsowell-common/src/main/java/com/jsowell/common/protocol/SyncPromise.java similarity index 98% rename from jsowell-pile/src/main/java/com/jsowell/pile/rpc/SyncPromise.java rename to jsowell-common/src/main/java/com/jsowell/common/protocol/SyncPromise.java index 36f41af7f..7ce5e820a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/rpc/SyncPromise.java +++ b/jsowell-common/src/main/java/com/jsowell/common/protocol/SyncPromise.java @@ -1,4 +1,4 @@ -package com.jsowell.pile.rpc; +package com.jsowell.common.protocol; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/RpcUtil.java b/jsowell-common/src/main/java/com/jsowell/common/util/RpcUtil.java new file mode 100644 index 000000000..81cfd89a2 --- /dev/null +++ b/jsowell-common/src/main/java/com/jsowell/common/util/RpcUtil.java @@ -0,0 +1,17 @@ +package com.jsowell.common.util; + +import com.jsowell.common.protocol.SyncPromise; +import lombok.extern.slf4j.Slf4j; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +@Slf4j +public class RpcUtil { + + private final static Map syncPromiseMap = new ConcurrentHashMap<>(); + + public static Map getSyncPromiseMap() { + return syncPromiseMap; + } + +} \ No newline at end of file diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/NettyServerHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/NettyServerHandler.java index 85bd695de..12bcae3ac 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/NettyServerHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/server/yunkuaichong/NettyServerHandler.java @@ -1,14 +1,13 @@ package com.jsowell.netty.server.yunkuaichong; -import com.alibaba.fastjson2.JSON; import com.google.common.collect.Lists; import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode; import com.jsowell.common.enums.ykc.PileChannelEntity; import com.jsowell.common.util.BytesUtil; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.YKCUtils; -import com.jsowell.pile.rpc.RpcUtil; -import com.jsowell.pile.rpc.SyncPromise; +import com.jsowell.common.util.RpcUtil; +import com.jsowell.common.protocol.SyncPromise; import com.jsowell.netty.service.yunkuaichong.YKCBusinessService; import io.netty.buffer.ByteBuf; import io.netty.channel.*; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/ClientChannelInitializer.java b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/ClientChannelInitializer.java similarity index 94% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/ClientChannelInitializer.java rename to jsowell-pile/src/main/java/com/jsowell/pile/rpc/ClientChannelInitializer.java index 4c1f813f3..b3e3c73e1 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/ClientChannelInitializer.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/ClientChannelInitializer.java @@ -1,4 +1,4 @@ -package com.jsowell.netty.rpc; +package com.jsowell.pile.rpc; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/MessageDecode.java b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/MessageDecode.java similarity index 91% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/MessageDecode.java rename to jsowell-pile/src/main/java/com/jsowell/pile/rpc/MessageDecode.java index d391a2943..c88a68428 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/MessageDecode.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/MessageDecode.java @@ -1,5 +1,7 @@ -package com.jsowell.netty.rpc; +package com.jsowell.pile.rpc; +import com.jsowell.common.protocol.Message; +import com.jsowell.common.protocol.MessageConstant; import com.jsowell.common.util.bean.SerializationUtil; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/MessageEncode.java b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/MessageEncode.java similarity index 91% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/MessageEncode.java rename to jsowell-pile/src/main/java/com/jsowell/pile/rpc/MessageEncode.java index b96edcb01..e3d0f236e 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/MessageEncode.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/MessageEncode.java @@ -1,5 +1,6 @@ -package com.jsowell.netty.rpc; +package com.jsowell.pile.rpc; +import com.jsowell.common.protocol.Message; import com.jsowell.common.util.bean.SerializationUtil; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcClient.java b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcClient.java similarity index 97% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcClient.java rename to jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcClient.java index 2caefc9ae..ec0b82a35 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcClient.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcClient.java @@ -1,4 +1,4 @@ -package com.jsowell.netty.rpc; +package com.jsowell.pile.rpc; import io.netty.bootstrap.Bootstrap; import io.netty.channel.*; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcRequestHandler.java b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcRequestHandler.java similarity index 90% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcRequestHandler.java rename to jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcRequestHandler.java index 59c034caf..164802056 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcRequestHandler.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcRequestHandler.java @@ -1,5 +1,7 @@ -package com.jsowell.netty.rpc; +package com.jsowell.pile.rpc; +import com.jsowell.common.protocol.RpcRequest; +import com.jsowell.common.protocol.RpcResponse; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.DefaultEventLoopGroup; import io.netty.channel.EventLoopGroup; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcResponseHandler.java b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcResponseHandler.java similarity index 80% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcResponseHandler.java rename to jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcResponseHandler.java index 18906bd03..b91c14927 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcResponseHandler.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcResponseHandler.java @@ -1,7 +1,8 @@ -package com.jsowell.netty.rpc; +package com.jsowell.pile.rpc; -import com.jsowell.pile.rpc.RpcUtil; -import com.jsowell.pile.rpc.SyncPromise; +import com.jsowell.common.protocol.RpcResponse; +import com.jsowell.common.protocol.SyncPromise; +import com.jsowell.common.util.RpcUtil; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcServer.java b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcServer.java similarity index 98% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcServer.java rename to jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcServer.java index ab72fbabe..9758ba7ef 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/RpcServer.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcServer.java @@ -1,4 +1,4 @@ -package com.jsowell.netty.rpc; +package com.jsowell.pile.rpc; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.*; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcUtil.java b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcUtil.java deleted file mode 100644 index 3e536cfe1..000000000 --- a/jsowell-pile/src/main/java/com/jsowell/pile/rpc/RpcUtil.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.jsowell.pile.rpc; - -import com.google.common.collect.Lists; -import com.google.common.primitives.Bytes; -import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode; -import com.jsowell.common.enums.ykc.PileChannelEntity; -import com.jsowell.common.util.BytesUtil; -import com.jsowell.common.util.CRC16Util; -import com.jsowell.common.util.YKCUtils; -import com.jsowell.pile.rpc.SyncPromise; -import com.jsowell.pile.service.PileMsgRecordService; -import io.netty.buffer.ByteBuf; -import io.netty.channel.Channel; -import io.netty.channel.ChannelFuture; -import io.netty.channel.ChannelFutureListener; -import io.netty.channel.ChannelHandlerContext; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; - -@Slf4j -public class RpcUtil { - - private final static Map syncPromiseMap = new ConcurrentHashMap<>(); - - public static Map getSyncPromiseMap() { - return syncPromiseMap; - } - -} \ No newline at end of file diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/ServerChannelInitializer.java b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/ServerChannelInitializer.java similarity index 94% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/ServerChannelInitializer.java rename to jsowell-pile/src/main/java/com/jsowell/pile/rpc/ServerChannelInitializer.java index 36858b982..ec9f4a64f 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/ServerChannelInitializer.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/ServerChannelInitializer.java @@ -1,4 +1,4 @@ -package com.jsowell.netty.rpc; +package com.jsowell.pile.rpc; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/TestRpcClient.java b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/TestRpcClient.java similarity index 93% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/TestRpcClient.java rename to jsowell-pile/src/main/java/com/jsowell/pile/rpc/TestRpcClient.java index e0b408d90..cefc2a90e 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/TestRpcClient.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/TestRpcClient.java @@ -1,8 +1,6 @@ -package com.jsowell.netty.rpc; +package com.jsowell.pile.rpc; -import com.jsowell.pile.rpc.RpcUtil; - -import java.util.concurrent.TimeUnit; +import com.jsowell.common.protocol.RpcRequest; public class TestRpcClient { public static void main(String[] args) throws Exception{ diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/TestRpcServer.java b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/TestRpcServer.java similarity index 79% rename from jsowell-netty/src/main/java/com/jsowell/netty/rpc/TestRpcServer.java rename to jsowell-pile/src/main/java/com/jsowell/pile/rpc/TestRpcServer.java index b346613c0..54d9d932b 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/rpc/TestRpcServer.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/rpc/TestRpcServer.java @@ -1,4 +1,4 @@ -package com.jsowell.netty.rpc; +package com.jsowell.pile.rpc; public class TestRpcServer { public static void main(String[] args) { diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileRemoteService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileRemoteService.java index 1bc592877..5ab29f8c2 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileRemoteService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileRemoteService.java @@ -2,9 +2,12 @@ package com.jsowell.pile.service; import com.google.common.collect.Lists; import com.jsowell.common.constant.CacheConstants; +import com.jsowell.common.core.domain.ykc.YKCDataProtocol; import com.jsowell.common.core.redis.RedisCache; +import com.jsowell.common.enums.ykc.ChargingFailedReasonEnum; import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; +import com.jsowell.common.util.BytesUtil; import com.jsowell.common.util.StringUtils; import com.jsowell.pile.domain.PileBillingTemplate; import com.jsowell.pile.domain.PileFirmwareInfo; @@ -296,6 +299,49 @@ public class PileRemoteService { // 解析结果 if (Objects.isNull(bytes)) { result = "0"; + } else { + YKCDataProtocol ykcDataProtocol = new YKCDataProtocol(bytes); + byte[] msgBody = ykcDataProtocol.getMsgBody(); + int startIndex = 0; + int length = 16; + + // 交易流水号 + byte[] transactionCodeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String transactionCode = BytesUtil.bcd2Str(transactionCodeByteArr); + + // 桩编码 + startIndex += length; + length = 7; + byte[] pileSnByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String pileSn = BytesUtil.bcd2Str(pileSnByteArr); + + // 枪口号 + startIndex += length; + length = 1; + byte[] connectorCodeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String connectorCode = BytesUtil.bcd2Str(connectorCodeByteArr); + + // 启动结果 0x00失败 0x01成功 + startIndex += length; + length = 1; + byte[] resultCodeByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String resultCode = BytesUtil.bcd2Str(resultCodeByteArr); + + if (StringUtils.equals(resultCode, "00")) { + result = "0"; + } else { + result = "1"; + } + + // 失败原因 + startIndex += length; + length = 1; + byte[] failedReasonByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String failedReason = BytesUtil.bcd2Str(failedReasonByteArr); + String failedReasonMsg = ChargingFailedReasonEnum.getMsgByCode(Integer.parseInt(failedReason, 16)); + + log.info("0x59预约充电响应sync, 交易流水号:{}, 桩SN:{}, 枪口号:{}, 结果:{}, 失败原因:{}", + transactionCode, pileSn, connectorCode, resultCode, failedReasonMsg); } return result; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/YKCPushCommandServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/YKCPushCommandServiceImpl.java index 1f338cea2..ede6a9745 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/YKCPushCommandServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/YKCPushCommandServiceImpl.java @@ -10,8 +10,8 @@ import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.*; import com.jsowell.common.util.Cp56Time2a.Cp56Time2aUtil; import com.jsowell.pile.domain.ykcCommond.*; -import com.jsowell.pile.rpc.RpcUtil; -import com.jsowell.pile.rpc.SyncPromise; +import com.jsowell.common.util.RpcUtil; +import com.jsowell.common.protocol.SyncPromise; import com.jsowell.pile.service.*; import com.jsowell.pile.vo.web.BillingTemplateVO; import com.jsowell.pile.vo.web.PileModelInfoVO;