523096025 3 роки тому
батько
коміт
b03d5dca71

+ 5 - 0
beeboxs/src/main/java/com/huimv/beeboxs/controller/HiveBaseBeehiveController.java

@@ -59,6 +59,11 @@ public class HiveBaseBeehiveController {
         return baseBeehiveService.listAll(map);
     }
 
+    @PostMapping("/listCount")
+    public Result listCount(@RequestBody Map map){
+
+        return baseBeehiveService.listCount(map);
+    }
 
 
 }

+ 11 - 0
beeboxs/src/main/java/com/huimv/beeboxs/dahuaVideo/business/UserManager.java

@@ -0,0 +1,11 @@
+package com.huimv.beeboxs.dahuaVideo.business;
+
+import java.util.HashMap;
+
+import com.alibaba.fastjson.JSONObject;
+
+public interface UserManager {
+
+    JSONObject accessToken(HashMap<String, Object> paramMap);
+
+}

+ 18 - 0
beeboxs/src/main/java/com/huimv/beeboxs/dahuaVideo/business/impl/UserManagerImpl.java

@@ -0,0 +1,18 @@
+package com.huimv.beeboxs.dahuaVideo.business.impl;
+
+import java.util.HashMap;
+
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.beeboxs.dahuaVideo.business.UserManager;
+import com.huimv.beeboxs.dahuaVideo.util.HttpSend;
+
+
+public class UserManagerImpl implements UserManager {
+
+    @Override
+    public JSONObject accessToken(HashMap<String, Object> paramMap) {
+        String method = "accessToken";
+        return HttpSend.execute(paramMap, method);
+    }
+
+}

+ 11 - 13
beeboxs/src/main/java/com/huimv/beeboxs/dahuaVideo/util/Token.java

@@ -1,20 +1,16 @@
-package com.huimv.beeboxs.dahuaVideo.util;
+package com.huimv.beeboxs.dahuaVideo.main;
 
+import java.util.HashMap;
 import com.alibaba.fastjson.JSONObject;
 import com.huimv.beeboxs.dahuaVideo.business.impl.UserManagerImpl;
-import org.springframework.data.redis.core.StringRedisTemplate;
 
-import java.util.HashMap;
 
-/**
- * TODO
- *
- * @author CodeYang.
- * @date 2022/4/22 14:10
- */
-public class Token {
+public class TestMain {
+
+    public static void main(String[] args) {
 
-   /* public  String   getToken(){
+        // 注:执行main函数前请先将CONST.java文件中的APPID、SECRET以及PHONE填全,不然程序执行将会报错。
+        // 获取管理员token
         UserManagerImpl userManager = new UserManagerImpl();
         HashMap<String, Object> paramsMap = new HashMap<String, Object>();
         JSONObject json = userManager.accessToken(paramsMap);
@@ -23,10 +19,12 @@ public class Token {
         JSONObject jsonData = jsonResult.getJSONObject("data");
         String token = jsonData.getString("accessToken");
 
-       return token;
+        System.out.println(token);
+
+
 
-    }*/
 
 
+    }
 
 }

+ 18 - 0
beeboxs/src/main/java/com/huimv/beeboxs/dahuaVideo/util/CONST.java

@@ -0,0 +1,18 @@
+package com.huimv.beeboxs.dahuaVideo.util;
+
+
+
+//客户信息列表----参数在这里修改
+public class CONST {
+
+    public static String PORT = "443";
+
+    public static String HOST = "https://openapi.lechange.cn";
+
+    // 如果不知道appid,请登录open.lechange.com,开发者服务模块中创建应用
+    public static String APPID = "lc8d7fbafc45b74d6d";
+
+    // 如果不知道appsecret,请登录open.lechange.com,开发者服务模块中创建应用
+    public static String SECRET = "3b80b23d58e4461b8238827b560a69";
+
+}

+ 93 - 0
beeboxs/src/main/java/com/huimv/beeboxs/dahuaVideo/util/HttpSend.java

@@ -0,0 +1,93 @@
+package com.huimv.beeboxs.dahuaVideo.util;
+
+import java.io.InputStream;
+import java.util.*;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.httpclient.methods.RequestEntity;
+import org.apache.commons.httpclient.methods.StringRequestEntity;
+import org.apache.commons.httpclient.params.HttpMethodParams;
+import org.apache.commons.httpclient.protocol.Protocol;
+import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.httpclient.HttpClient;
+
+
+
+public class HttpSend {
+
+    public static JSONObject execute(Map<String, Object> paramsMap, String method) {
+        Map<String, Object> map = paramsInit(paramsMap);
+        // 返回json
+        JSONObject jsonObj = doPost(CONST.HOST + ":" + CONST.PORT + "/openapi/" + method, map);
+        System.out.println("=============================");
+        System.out.println("返回结果:" + jsonObj.toJSONString());
+        return jsonObj;
+
+    }
+
+    public static JSONObject doPost(String url, Map<String, Object> map) {
+        
+        String json = JSON.toJSONString(map);
+        ProtocolSocketFactory factory = new MySecureProtocolSocketFactory();
+        Protocol.registerProtocol("https", new Protocol("https", factory, 443));
+        HttpClient client = new HttpClient();
+        client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
+        PostMethod method = new PostMethod(url);
+        System.out.println(url);
+        JSONObject jsonObject = new JSONObject();
+        try {
+            RequestEntity entity = new StringRequestEntity(json, "application/json", "UTF-8");
+            method.setRequestEntity(entity);
+            client.executeMethod(method);
+
+            InputStream inputStream = method.getResponseBodyAsStream();
+            String result = IOUtils.toString(inputStream, "UTF-8");
+            jsonObject = JSONObject.parseObject(result);
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            method.releaseConnection();
+        }
+        return jsonObject;
+    }
+
+    protected static Map<String, Object> paramsInit(Map<String, Object> paramsMap) {
+        long time = System.currentTimeMillis() / 1000;
+        String nonce = UUID.randomUUID().toString();
+        String id = UUID.randomUUID().toString();
+
+        StringBuilder paramString = new StringBuilder();
+        paramString.append("time:").append(time).append(",");
+        paramString.append("nonce:").append(nonce).append(",");
+        paramString.append("appSecret:").append(CONST.SECRET);
+
+        String sign = "";
+        // 计算MD5得值
+        try {
+            System.out.println("传入参数:" + paramString.toString().trim());
+            sign = DigestUtils.md5Hex(paramString.toString().trim().getBytes("UTF-8"));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        Map<String, Object> systemMap = new HashMap<String, Object>();
+        systemMap.put("ver", "1.0");
+        systemMap.put("sign", sign);
+        systemMap.put("appId", CONST.APPID);
+        systemMap.put("nonce", nonce);
+        systemMap.put("time", time);
+
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("system", systemMap);
+        map.put("params", paramsMap);
+        map.put("id", id);
+        return map;
+    }
+    
+    
+
+}

+ 98 - 0
beeboxs/src/main/java/com/huimv/beeboxs/dahuaVideo/util/MySecureProtocolSocketFactory.java

@@ -0,0 +1,98 @@
+package com.huimv.beeboxs.dahuaVideo.util;
+
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.Socket;
+import java.net.UnknownHostException;
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+
+import org.apache.commons.httpclient.ConnectTimeoutException;
+import org.apache.commons.httpclient.HttpClientError;
+import org.apache.commons.httpclient.params.HttpConnectionParams;
+import org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory;
+import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory;
+
+public class MySecureProtocolSocketFactory implements SecureProtocolSocketFactory {
+
+    private SSLContext sslContext = null;
+
+    /**
+     * Constructor for MySecureProtocolSocketFactory.
+     */
+    public MySecureProtocolSocketFactory() {
+    }
+
+    /**
+     * @return
+     */
+    private static SSLContext createEasySSLContext() {
+        try {
+            SSLContext context = SSLContext.getInstance("SSL");
+            context.init(null, new TrustManager[] {new MyX509TrustManager()}, null);
+            return context;
+        } catch (Exception e) {
+            throw new HttpClientError(e.toString());
+        }
+    }
+
+    /**
+     * @return
+     */
+    private SSLContext getSSLContext() {
+        if (this.sslContext == null) {
+            this.sslContext = createEasySSLContext();
+        }
+        return this.sslContext;
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see
+     * org.apache.commons.httpclient.protocol.ProtocolSocketFactory#createSocket(java.lang.String,
+     * int, java.net.InetAddress, int)
+     */
+    public Socket createSocket(String host, int port, InetAddress clientHost, int clientPort) throws IOException,
+        UnknownHostException {
+
+        return getSSLContext().getSocketFactory().createSocket(host, port, clientHost, clientPort);
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see
+     * org.apache.commons.httpclient.protocol.ProtocolSocketFactory#createSocket(java.lang.String,
+     * int, java.net.InetAddress, int, org.apache.commons.httpclient.params.HttpConnectionParams)
+     */
+    public Socket createSocket(final String host, final int port, final InetAddress localAddress, final int localPort,
+            final HttpConnectionParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
+        if (params == null) {
+            throw new IllegalArgumentException("Parameters may not be null");
+        }
+        int timeout = params.getConnectionTimeout();
+        if (timeout == 0) {
+            return createSocket(host, port, localAddress, localPort);
+        } else {
+            return ControllerThreadSocketFactory.createSocket(this, host, port, localAddress, localPort, timeout);
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see SecureProtocolSocketFactory#createSocket(java.lang.String,int)
+     */
+    public Socket createSocket(String host, int port) throws IOException, UnknownHostException {
+        return getSSLContext().getSocketFactory().createSocket(host, port);
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see SecureProtocolSocketFactory#createSocket(java.net.Socket,java.lang.String,int,boolean)
+     */
+    public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException,
+        UnknownHostException {
+        return getSSLContext().getSocketFactory().createSocket(socket, host, port, autoClose);
+    }
+}

+ 37 - 0
beeboxs/src/main/java/com/huimv/beeboxs/dahuaVideo/util/MyX509TrustManager.java

@@ -0,0 +1,37 @@
+package com.huimv.beeboxs.dahuaVideo.util;
+
+
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+
+import javax.net.ssl.X509TrustManager;
+
+public class MyX509TrustManager implements X509TrustManager {
+
+    /*
+     * (non-Javadoc)
+     * @see javax.net.ssl.X509TrustManager#checkClientTrusted(java.security.cert.X509Certificate[],
+     * java.lang.String)
+     */
+    public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see javax.net.ssl.X509TrustManager#checkServerTrusted(java.security.cert.X509Certificate[],
+     * java.lang.String)
+     */
+    public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
+
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see javax.net.ssl.X509TrustManager#getAcceptedIssuers()
+     */
+    public X509Certificate[] getAcceptedIssuers() {
+        return null;
+    }
+
+}

+ 16 - 0
beeboxs/src/main/java/com/huimv/beeboxs/entity/HiveBaseBeehive.java

@@ -125,4 +125,20 @@ public class HiveBaseBeehive implements Serializable {
      *  基站名字
      */
     private String apName;
+
+    /**
+     * 电池状态:(1:电量正常,0:低电量)
+     */
+    private Integer beeStatus0;
+
+    /**
+     * 蜜蜂状态:(1:有蜂,0:无蜂)
+     */
+    private Integer beeStatus1;
+
+    private Integer beeStatus2;
+
+    private Integer beeStatus3;
+
+    private Integer beeStatus4;
 }

+ 11 - 0
beeboxs/src/main/java/com/huimv/beeboxs/entity/HiveBeehive.java

@@ -103,5 +103,16 @@ public class HiveBeehive implements Serializable {
      */
     private Integer farmId;
 
+    /**
+     * 室外温度
+     */
+    private String tempOut;
+
+
+    /**
+     * 室外湿度
+     */
+    private String humiOut;
+
 
 }

+ 2 - 0
beeboxs/src/main/java/com/huimv/beeboxs/service/IHiveBaseBeehiveService.java

@@ -19,4 +19,6 @@ public interface IHiveBaseBeehiveService extends IService<HiveBaseBeehive> {
     Result searchList(Map map);
 
     Result listAll(Map map);
+
+    Result listCount(Map map);
 }

+ 23 - 0
beeboxs/src/main/java/com/huimv/beeboxs/service/impl/HiveBaseBeehiveServiceImpl.java

@@ -12,6 +12,7 @@ import com.huimv.beeboxs.service.IHiveBaseBeehiveService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -65,4 +66,26 @@ public class HiveBaseBeehiveServiceImpl extends ServiceImpl<HiveBaseBeehiveMappe
 
         return new  Result(ResultCode.SUCCESS,page);
     }
+
+    @Override
+    public Result listCount(Map map) {
+        Integer farmId = (Integer)map.get("farmId");
+        String apUidHex = (String)map.get("apUidHex");
+        QueryWrapper<HiveBaseBeehive> wrapper = new QueryWrapper<>();
+        wrapper.eq("farm_id",farmId);
+        wrapper.eq(StringUtils.isNotBlank(apUidHex),"ap_uid_hex",apUidHex);
+
+        HashMap<String, Object> endMap = new HashMap<>();
+        int stationNum = this.count(wrapper);
+
+
+        wrapper.eq("tag_state",0);
+        int onStationNum = this.count(wrapper);
+
+        endMap.put("onStationNum",onStationNum);
+        endMap.put("offStationNum",stationNum -  onStationNum);
+        endMap.put("stationNum",stationNum);
+
+        return new Result(ResultCode.SUCCESS,endMap);
+    }
 }

+ 2 - 2
beeboxs/src/main/java/com/huimv/beeboxs/service/impl/HiveBeehiveOutServiceImpl.java

@@ -31,9 +31,9 @@ public class HiveBeehiveOutServiceImpl extends ServiceImpl<HiveBeehiveOutMapper,
 
         QueryWrapper<HiveBeehiveOut> wrapper = new QueryWrapper<>();
         if (StringUtils.isBlank(hiveId)){
-            return new Result(10001,"请选择箱",false);
+            return new Result(10001,"请选择基站箱",false);
         }
-        wrapper.eq("hive_id",hiveId);
+        wrapper.eq("station_id",hiveId);
 //        wrapper.orderByDesc("create_date");
 
         wrapper.ge(StringUtils.isNotBlank(startDate),"create_date",startDate);