jiangping
2025-02-17 66ca3c7a1abce80143a3bd5c1e197aa020c396b6
server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -5,15 +5,15 @@
import org.apache.commons.lang3.StringUtils;
import javax.servlet.http.HttpServletRequest;
import java.awt.*;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.*;
import java.util.List;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -25,6 +25,12 @@
  public static final String TOKEN ="TOKEN" ;
    public static final String SYSTEM ="SYSTEM" ;
    public static final String DINGDING ="DINGDING" ;
    public static final String DINGDING_APPKEY ="DINGDING_APPKEY" ;
    public static final String DINGDING_CHATTOKEN ="DINGDING_CHATTOKEN" ;
    public static final String DINGDING_ROBOTCODE ="DINGDING_ROBOTCODE" ;
    public static final String DINGDING_SECRET ="DINGDING_SECRET" ;
    public static final String DINGDING_TOKEN ="DINGDING_TOKEN" ;
    public static final String MINI_PROGRAMME ="MINI_PROGRAMME" ;
    public static final String FREE_RENT_TIME ="FREE_RENT_TIME" ;
    public static final String ACCESS_TOKEN ="ACCESS_TOKEN" ;
@@ -37,15 +43,22 @@
    public static final String FORCE_BACK_SITE = "FORCE_BACK_SITE";
    //车辆类型数据
    public static final String  BIKE_TYPE ="0,1,2,3,4,5,6,7,8" ;
    public static final String MINI_PROGRAMME_REALEASE ="MINI_PROGRAMME_REALEASE" ;
    public static final int FOUR =4 ;
    public static String REDIS_DEBUG_STR="test_";
    public static final String AD = "AD";
    public static String REPAIR = "REPAIR";
    public static final String NOTICE_SITE_LINK_LIMIT="NOTICE_SITE_LINK_LIMIT";
    public  interface MqttTopic{
        String topic_index = "device/lock/";
        //开锁(发布)
        String pub_openLock = "device/lock/{siteId}/{lockId}/unlock";
        //站点全量锁头数量信息
        String sub_siteInfo = "device/lock/+/siteInfo";
        //管理员刷卡记录上报
        String sub_adminCard = "device/lock/+/+/adminCard";
        //锁信息,在初始化、状态变更时会推送锁的完整状态(订阅)
        String sub_lockInfo = "device/lock/+/+/info";
        //还车锁头(订阅)
@@ -193,8 +206,11 @@
        //钉钉通知地址
        public static final String DINGDING_URL = "DINGDING_URL";
        //钉钉签名
        public static final String DINGDING_SECRET = "DINGDING_SECRET";
        public static void main(String[] args) {
            double[][] polygon = {{120, 30}, {121, 30}, {121, 31}, {120, 31}}; // 经纬度列表表示多边形顶点
            boolean isInside = isPointInPolygon(122.5, 30.5, polygon);
            System.out.println("Is inside: " + isInside);
        }
        //小程序满载预警(%)最大值
        public static final String WARN_MAX = "WARN_MAX";
        //小程序满载预警(%)最小值
@@ -582,4 +598,19 @@
            return  Constants.formatDecimalNum(money).divide(new BigDecimal(100), 2, BigDecimal.ROUND_UP);
        }
    public static boolean isPointInPolygon(double px, double py, double[]... polygon) {
        int i, j;
        boolean result = false;
        for (i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
            if ((polygon[i][1] > py) != (polygon[j][1] > py) &&
                    (px < (polygon[j][0] - polygon[i][0]) * (py - polygon[i][1]) / (polygon[j][1] - polygon[i][1]) + polygon[i][0])) {
                result = !result;
            }
        }
        return result;
    }
}