java110 před 3 roky
rodič
revize
5c23609bcc

+ 7 - 5
service-api/src/main/java/com/java110/api/controller/app/charge/NotifyDingDingChargeController.java

@@ -47,7 +47,7 @@ public class NotifyDingDingChargeController extends BaseController {
             @PathVariable String port,
             @RequestBody String postInfo,
             HttpServletRequest request) {
-        if (!validateSign(request)) {
+        if (!validateSign(request, "/equipments/" + id + "/" + port + "/finish", postInfo)) {
             return new ResponseEntity<>("{\n" +
                     "\"code\" : -1,\n" +
                     "\"msg\" : \"鉴权失败\"\n" +
@@ -60,8 +60,10 @@ public class NotifyDingDingChargeController extends BaseController {
         notifyChargeOrderDto.setMachineCode(id);
         notifyChargeOrderDto.setPortCode(port);
         notifyChargeOrderDto.setBodyParam(postInfo);
+        notifyChargeOrderDto.setReason(param.getString("typeName"));
 
-        ResultVo resultVo = notifyChargeV1InnerServiceSMOImpl.finishCharge(notifyChargeOrderDto);
+        ResultVo resultVo = null;
+        resultVo = notifyChargeV1InnerServiceSMOImpl.finishCharge(notifyChargeOrderDto);
 
         if (resultVo.getCode() == ResultVo.CODE_OK) {
             resultVo.setCode(200);
@@ -82,7 +84,7 @@ public class NotifyDingDingChargeController extends BaseController {
             @PathVariable String id,
             @RequestBody String postInfo,
             HttpServletRequest request) {
-        if (!validateSign(request)) {
+        if (!validateSign(request, "/equipments/" + id + "/event", postInfo)) {
             return new ResponseEntity<>("{\n" +
                     "\"code\" : -1,\n" +
                     "\"msg\" : \"鉴权失败\"\n" +
@@ -98,12 +100,12 @@ public class NotifyDingDingChargeController extends BaseController {
 
     }
 
-    private boolean validateSign(HttpServletRequest request) {
+    private boolean validateSign(HttpServletRequest request, String url, String postInfo) {
         String appId = request.getHeader("appid");
         String timestamp = request.getHeader("timestamp");
         String sign = request.getHeader("sign");
         String secret = MappingCache.getValue(DING_DING_DOMAIN, DING_DING_APP_SECURE);
-        String data = "appid=" + appId + "&timestamp=" + timestamp;
+        String data = "appid=" + appId + "&content=" + postInfo + "&timestamp=" + timestamp + "&uri=" + url;
         SecretKey secretKey = new SecretKeySpec(secret.getBytes(), "HmacMD5");
         Mac mac = null;
         try {

+ 9 - 2
service-common/src/main/java/com/java110/common/charge/ChargeCoreImpl.java

@@ -219,7 +219,11 @@ public class ChargeCoreImpl implements IChargeCore {
         chargeMachineDto.setMachineCode(notifyChargeOrderDto.getMachineCode());
         List<ChargeMachineDto> chargeMachineDtos = chargeMachineV1InnerServiceSMOImpl.queryChargeMachines(chargeMachineDto);
 
-        Assert.listOnlyOne(chargeMachineDtos, "充电桩 不存在");
+        //Assert.listOnlyOne(chargeMachineDtos, "充电桩 不存在");
+
+        if(chargeMachineDtos == null || chargeMachineDtos.size() < 1){
+            return new ResultVo(ResultVo.CODE_OK, "成功");
+        }
 
         // todo 插槽是否空闲
 
@@ -228,7 +232,10 @@ public class ChargeCoreImpl implements IChargeCore {
         chargeMachinePortDto.setPortCode(notifyChargeOrderDto.getPortCode());
         chargeMachinePortDto.setState(ChargeMachinePortDto.STATE_WORKING);
         List<ChargeMachinePortDto> chargeMachinePortDtos = chargeMachinePortV1InnerServiceSMOImpl.queryChargeMachinePorts(chargeMachinePortDto);
-        Assert.listOnlyOne(chargeMachinePortDtos, "插槽空闲");
+        //Assert.listOnlyOne(chargeMachinePortDtos, "插槽空闲");
+        if(chargeMachinePortDtos == null || chargeMachinePortDtos.size() < 1){
+            return new ResultVo(ResultVo.CODE_OK, "成功");
+        }
 
         ChargeMachinePortPo chargeMachinePortPo = new ChargeMachinePortPo();
         chargeMachinePortPo.setPortId(chargeMachinePortDtos.get(0).getPortId());

+ 2 - 2
springboot/src/main/java/com/java110/boot/controller/app/charge/NotifyDingDingChargeController.java

@@ -68,8 +68,8 @@ public class NotifyDingDingChargeController extends BaseController {
         notifyChargeOrderDto.setBodyParam(postInfo);
         notifyChargeOrderDto.setReason(param.getString("typeName"));
 
-
-        ResultVo resultVo = notifyChargeV1InnerServiceSMOImpl.finishCharge(notifyChargeOrderDto);
+        ResultVo resultVo = null;
+        resultVo = notifyChargeV1InnerServiceSMOImpl.finishCharge(notifyChargeOrderDto);
 
         if (resultVo.getCode() == ResultVo.CODE_OK) {
             resultVo.setCode(200);