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 |   76 +++++++++++++++-----------------------
 1 files changed, 30 insertions(+), 46 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 e995cf8..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,10 +3,10 @@
 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;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -17,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);
@@ -35,7 +34,7 @@
     private INotifyChargeV1InnerServiceSMO notifyChargeV1InnerServiceSMOImpl;
 
     /**
-     * <p>鏀粯鍥炶皟Api</p>
+     * <p>鍏呯數缁撴潫閫氱煡</p>
      *
      * @param request
      * @throws Exception
@@ -46,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" +
@@ -59,9 +58,18 @@
         notifyChargeOrderDto.setMachineCode(id);
         notifyChargeOrderDto.setPortCode(port);
         notifyChargeOrderDto.setBodyParam(postInfo);
+        notifyChargeOrderDto.setReason(param.getString("typeName"));
+        notifyChargeOrderDto.setEnergy(param.getString("energy"));
 
-        return notifyChargeV1InnerServiceSMOImpl.finishCharge(notifyChargeOrderDto);
+        ResultVo resultVo = null;
+        resultVo = notifyChargeV1InnerServiceSMOImpl.finishCharge(notifyChargeOrderDto);
 
+        if (resultVo.getCode() == ResultVo.CODE_OK) {
+            resultVo.setCode(200);
+            resultVo.setMsg("success");
+        }
+
+        return ResultVo.createResponseEntity(resultVo);
     }
 
     /**
@@ -70,40 +78,12 @@
      * @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)) {
-            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);
-
-        return notifyChargeV1InnerServiceSMOImpl.heartbeat(notifyChargeOrderDto);
-
-    }
-
-    /**
-     * <p>鏀粯鍥炶皟Api</p>
-     *
-     * @param request
-     * @throws Exception
-     */
-    @RequestMapping(path = "/{id}/{port}/event", method = RequestMethod.POST)
-    public ResponseEntity<String> chargeHeartbeat(
-            @PathVariable String id,
-            @PathVariable String port,
-            @RequestBody String postInfo,
-            HttpServletRequest request) {
-        if (!validateSign(request)) {
+        if (!validateSign(request, "/equipments/" + id + "/power", postInfo)) {
             return new ResponseEntity<>("{\n" +
                     "\"code\" : -1,\n" +
                     "\"msg\" : \"閴存潈澶辫触\"\n" +
@@ -112,19 +92,23 @@
 
         NotifyChargeOrderDto notifyChargeOrderDto = new NotifyChargeOrderDto();
         notifyChargeOrderDto.setMachineCode(id);
-        notifyChargeOrderDto.setPortCode(port);
         notifyChargeOrderDto.setBodyParam(postInfo);
+        ResultVo resultVo = null;
+        resultVo = notifyChargeV1InnerServiceSMOImpl.workHeartbeat(notifyChargeOrderDto);
+        if (resultVo.getCode() == ResultVo.CODE_OK) {
+            resultVo.setCode(200);
+            resultVo.setMsg("success");
+        }
 
-        return notifyChargeV1InnerServiceSMOImpl.chargeHeartBeat(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