java110 3 gadi atpakaļ
vecāks
revīzija
8f736b2145

+ 4 - 4
service-common/src/main/java/com/java110/common/charge/factory/kehang/KeHangChargeMachineFactoryAdapt.java

@@ -30,7 +30,7 @@ public class KeHangChargeMachineFactoryAdapt implements IChargeFactoryAdapt {
         body.put("chargeId", orderId);
         String paramOut = null;
         try {
-            paramOut = DingdingChargeUtils.execute("net.equip.charge.slow.run", body.toJSONString(), HttpMethod.GET);
+            paramOut = KeHangChargeUtils.execute("net.equip.charge.slow.run", body.toJSONString(), HttpMethod.GET);
         } catch (Exception e) {
             throw new IllegalArgumentException(e.getMessage());
         }
@@ -50,7 +50,7 @@ public class KeHangChargeMachineFactoryAdapt implements IChargeFactoryAdapt {
         body.put("port", chargeMachinePortDto.getPortCode());
         String paramOut = null;
         try {
-            paramOut = DingdingChargeUtils.execute("net.equip.charge.slow.run.stop", body.toJSONString(), HttpMethod.GET);
+            paramOut = KeHangChargeUtils.execute("net.equip.charge.slow.run.stop", body.toJSONString(), HttpMethod.GET);
         } catch (Exception e) {
             throw new IllegalArgumentException(e.getMessage());
         }
@@ -69,7 +69,7 @@ public class KeHangChargeMachineFactoryAdapt implements IChargeFactoryAdapt {
         body.put("equipCd", chargeMachineDto.getMachineCode());
         String paramOut = null;
         try {
-            paramOut = DingdingChargeUtils.execute("net.equip.charge.slow.port.query", body.toJSONString(), HttpMethod.GET);
+            paramOut = KeHangChargeUtils.execute("net.equip.charge.slow.port.query", body.toJSONString(), HttpMethod.GET);
         } catch (Exception e) {
             throw new IllegalArgumentException(e.getMessage());
         }
@@ -105,7 +105,7 @@ public class KeHangChargeMachineFactoryAdapt implements IChargeFactoryAdapt {
         body.put("equipCd", chargeMachineDto.getMachineCode());
         String paramOut = null;
         try {
-            paramOut = DingdingChargeUtils.execute("net.equip.online.query", body.toJSONString(), HttpMethod.GET);
+            paramOut = KeHangChargeUtils.execute("net.equip.online.query", body.toJSONString(), HttpMethod.GET);
         } catch (Exception e) {
             throw new IllegalArgumentException(e.getMessage());
         }

+ 101 - 0
service-common/src/main/java/com/java110/common/smartMeter/factory/zhongkong/WyRequestUtils.java

@@ -0,0 +1,101 @@
+package com.java110.common.smartMeter.factory.zhongkong;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.charge.factory.dingding.DingdingChargeUtils;
+import com.java110.core.factory.AuthenticationFactory;
+import com.java110.core.log.LoggerFactory;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.factory.ApplicationContextFactory;
+import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.PayUtil;
+import org.slf4j.Logger;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.client.HttpStatusCodeException;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.TreeMap;
+
+public class WyRequestUtils {
+    private static Logger logger = LoggerFactory.getLogger(WyRequestUtils.class);
+
+    private static String secretKey = "Wr7nGOUMMjC0F8SzsGKAoRo8BpQ10nNk";
+
+	/*public static void main(String[] args) {
+		String bh="WY_001";
+		String amount="100.00";
+		Map<String,String> paramMap=new HashMap<>();
+		paramMap.put("bh",bh);
+		paramMap.put("amount",amount);
+		System.out.println(getSign(paramMap));
+		//d7ebdef32e1021b4c05320c4d634c1d7
+	}*/
+
+    /**
+     * 使用 Map按key进行排序
+     *
+     * @param map
+     * @return
+     */
+    private static Map<String, String> sortMapByKey(Map<String, String> map) {
+        if (map == null || map.isEmpty()) {
+            return null;
+        }
+        //升序排序
+        Map<String, String> sortMap = new TreeMap<>(String::compareTo);
+        sortMap.putAll(map);
+        return sortMap;
+    }
+
+    public static String getSign(Map<String, String> map) {
+        //按Key进行排序
+        Map<String, String> sortMap = sortMapByKey(map);
+        StringBuilder signStr = new StringBuilder();
+        if (sortMap != null) {
+            for (Map.Entry<String, String> entry : sortMap.entrySet()) {
+                signStr.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
+            }
+        }
+        String sign = signStr.append(secretKey).toString();
+        return AuthenticationFactory.md5(sign);
+    }
+
+    /**
+     * 请求充电桩 接口
+     * <p>
+     * MappingCache.getValue(DING_DING_DOMAIN, DING_DING_APP_ID),
+     * MappingCache.getValue(DING_DING_DOMAIN, DING_DING_APP_SECURE
+     *
+     * @param url
+     * @param reqMap
+     * @param httpMethod
+     * @return
+     * @throws Exception
+     */
+    public static String execute(String url, Map<String, String> reqMap, HttpMethod httpMethod)  {
+        RestTemplate outRestTemplate = ApplicationContextFactory.getBean("outRestTemplate", RestTemplate.class);
+        HttpHeaders httpHeaders = new HttpHeaders();
+        HttpEntity httpEntity = null;
+        if(reqMap != null) {
+            reqMap.put("sign", getSign(reqMap));
+            httpEntity = new HttpEntity(JSONObject.toJSONString(reqMap), httpHeaders);
+        }else{
+            httpEntity = new HttpEntity("", httpHeaders);
+        }
+        ResponseEntity<String> response = null;
+        try {
+            response = outRestTemplate.exchange(url, httpMethod, httpEntity, String.class);
+        } catch (HttpStatusCodeException e) {
+            logger.error("请求异常", e.getResponseBodyAsString());
+            return e.getResponseBodyAsString();
+        }
+
+        return response.getBody();
+    }
+
+
+}

+ 60 - 0
service-common/src/main/java/com/java110/common/smartMeter/factory/zhongkong/ZhongkongDianBiaoFactoryAdaptImpl.java

@@ -0,0 +1,60 @@
+package com.java110.common.smartMeter.factory.zhongkong;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.smartMeter.ISmartMeterFactoryAdapt;
+import com.java110.dto.meterMachine.MeterMachineDto;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 中控 充值电表
+ */
+@Service("zhongkongDianBiaoFactoryAdaptImpl")
+public class ZhongkongDianBiaoFactoryAdaptImpl implements ISmartMeterFactoryAdapt {
+
+    private static final String RECHARGE_URL = "http://watergateway.dev.mj.ink:9900/mjkj-water/mjkj/open/wy/recharge";
+
+    private static final String READ_URL = "http://watergateway.dev.mj.ink:9900/mjkj-water/mjkj/open/wy/get/amount";
+
+
+
+    @Override
+    public ResultVo requestRecharge(MeterMachineDto meterMachineDto, double degree, double money) {
+        Map<String, String> reqMap = new HashMap<>();
+        reqMap.put("bh", meterMachineDto.getAddress());
+        reqMap.put("amount", money + "");
+        String response = WyRequestUtils.execute(RECHARGE_URL,reqMap, HttpMethod.POST);
+        JSONObject resJson = JSONObject.parseObject(response);
+        if(resJson.getIntValue("code") != 200){
+            return new ResultVo(ResultVo.CODE_ERROR,resJson.getString("msg"));
+        }
+        return new ResultVo(ResultVo.CODE_OK,resJson.getString("msg"));
+    }
+
+    @Override
+    public ResultVo requestRead(MeterMachineDto meterMachineDto) {
+
+        String response = WyRequestUtils.execute(READ_URL+"?bh="+meterMachineDto.getAddress(),null, HttpMethod.GET);
+        JSONObject resJson = JSONObject.parseObject(response);
+        if(resJson.getIntValue("code") != 200){
+            return new ResultVo(ResultVo.CODE_ERROR,resJson.getString("msg"));
+        }
+        return new ResultVo(ResultVo.CODE_OK,resJson.getString("msg"),resJson.getString("data"));
+    }
+
+    @Override
+    public ResultVo requestReads(List<MeterMachineDto> meterMachineDtos) {
+        return null;
+    }
+
+    @Override
+    public ResultVo notifyReadData(String readData) {
+        return null;
+    }
+}