From 4ed693f48d1435de7a6333df17c2b34154731429 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期三, 05 七月 2023 22:26:27 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-api/src/main/java/com/java110/api/controller/app/charge/NotifyDingDingChargeController.java |   41 +++++++++++++++++++++++------------------
 1 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/controller/app/charge/NotifyDingDingChargeController.java b/service-api/src/main/java/com/java110/api/controller/app/charge/NotifyDingDingChargeController.java
index 85445ec..b602306 100644
--- a/service-api/src/main/java/com/java110/api/controller/app/charge/NotifyDingDingChargeController.java
+++ b/service-api/src/main/java/com/java110/api/controller/app/charge/NotifyDingDingChargeController.java
@@ -3,8 +3,7 @@
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.base.controller.BaseController;
 import com.java110.core.log.LoggerFactory;
-import com.java110.dto.chargeMachineOrder.NotifyChargeOrderDto;
-import com.java110.dto.meterWater.NotifyMeterWaterOrderDto;
+import com.java110.dto.charge.NotifyChargeOrderDto;
 import com.java110.intf.common.INotifyChargeV1InnerServiceSMO;
 import com.java110.utils.cache.MappingCache;
 import com.java110.vo.ResultVo;
@@ -18,11 +17,10 @@
 import javax.crypto.SecretKey;
 import javax.crypto.spec.SecretKeySpec;
 import javax.servlet.http.HttpServletRequest;
-import java.security.NoSuchAlgorithmException;
 import java.util.Base64;
 
 @RestController
-@RequestMapping(path = "/equipments")
+@RequestMapping(path = "/app/equipments")
 public class NotifyDingDingChargeController extends BaseController {
 
     private final static Logger logger = LoggerFactory.getLogger(NotifyDingDingChargeController.class);
@@ -36,7 +34,7 @@
     private INotifyChargeV1InnerServiceSMO notifyChargeV1InnerServiceSMOImpl;
 
     /**
-     * <p>鏀粯鍥炶皟Api</p>
+     * <p>鍏呯數缁撴潫閫氱煡</p>
      *
      * @param request
      * @throws Exception
@@ -47,7 +45,7 @@
             @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 +58,11 @@
         notifyChargeOrderDto.setMachineCode(id);
         notifyChargeOrderDto.setPortCode(port);
         notifyChargeOrderDto.setBodyParam(postInfo);
+        notifyChargeOrderDto.setReason(param.getString("typeName"));
+        notifyChargeOrderDto.setEnergy(param.getString("energy"));
 
-        ResultVo resultVo = notifyChargeV1InnerServiceSMOImpl.finishCharge(notifyChargeOrderDto);
+        ResultVo resultVo = null;
+        resultVo = notifyChargeV1InnerServiceSMOImpl.finishCharge(notifyChargeOrderDto);
 
         if (resultVo.getCode() == ResultVo.CODE_OK) {
             resultVo.setCode(200);
@@ -77,33 +78,37 @@
      * @param request
      * @throws Exception
      */
-    @RequestMapping(path = "/{id}/event", method = RequestMethod.POST)
-    public ResponseEntity<String> heartbeat(
+    @RequestMapping(path = "/{id}/power", method = RequestMethod.POST)
+    public ResponseEntity<String> workHeartbeat(
             @PathVariable String id,
             @RequestBody String postInfo,
             HttpServletRequest request) {
-        if (!validateSign(request)) {
+        if (!validateSign(request, "/equipments/" + id + "/power", postInfo)) {
             return new ResponseEntity<>("{\n" +
                     "\"code\" : -1,\n" +
                     "\"msg\" : \"閴存潈澶辫触\"\n" +
                     "}", HttpStatus.OK);
         }
 
-        JSONObject param = JSONObject.parseObject(postInfo);
         NotifyChargeOrderDto notifyChargeOrderDto = new NotifyChargeOrderDto();
         notifyChargeOrderDto.setMachineCode(id);
         notifyChargeOrderDto.setBodyParam(postInfo);
+        ResultVo resultVo = null;
+        resultVo = notifyChargeV1InnerServiceSMOImpl.workHeartbeat(notifyChargeOrderDto);
+        if (resultVo.getCode() == ResultVo.CODE_OK) {
+            resultVo.setCode(200);
+            resultVo.setMsg("success");
+        }
 
-        return notifyChargeV1InnerServiceSMOImpl.heartbeat(notifyChargeOrderDto);
-
+        return ResultVo.createResponseEntity(resultVo);
     }
 
-    private boolean validateSign(HttpServletRequest request) {
-        String appId = request.getParameter("appid");
-        String timestamp = request.getParameter("timestamp");
-        String sign = request.getParameter("sign");
+    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 {

--
Gitblit v1.8.0