rk
5 天以前 84ae873e1c19ca7d2ffc5c98248285706dae818b
server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -1,6 +1,7 @@
package com.doumee.core.constants;
import ch.qos.logback.core.util.COWArrayList;
import com.doumee.dao.business.web.request.LocaltionDTO;
import org.apache.commons.codec.binary.Hex;
import org.apache.commons.lang3.StringUtils;
@@ -32,23 +33,165 @@
    public static final String DINGDING_TOKEN ="DINGDING_TOKEN" ;
    public static final String MINI_PROGRAMME ="MINI_PROGRAMME" ;
    // ==================== 抖音核销配置(存于字典 DOUYIN_CONFIG,后台可改、免重启)====================
    /** 字典编码:抖音核销配置(system_dict.code) */
    public static final String DOUYIN_CONFIG ="DOUYIN_CONFIG" ;
    /** 字典项标签:抖音应用 client_key */
    public static final String DOUYIN_CLIENT_KEY ="CLIENT_KEY" ;
    /** 字典项标签:抖音应用 client_secret */
    public static final String DOUYIN_CLIENT_SECRET ="CLIENT_SECRET" ;
    /** 字典项标签:来客商户根账户ID */
    public static final String DOUYIN_ACCOUNT_ID ="ACCOUNT_ID" ;
    /** 字典项标签:核销门店ID(单门店) */
    public static final String DOUYIN_POI_ID ="POI_ID" ;
    // ==================== 抖音核销枚举(对应 douyin_verify_log / douyin_verify_record 表字段取值)====================
    /**
     * 抖音核销操作日志类型 —— 对应 douyin_verify_log.operate_type:0验券准备 1核销 2撤销核销
     */
    public enum DOUYIN_VERIFY_OPERATE_TYPE {
        PREPARE(0, "验券准备", "扫码/输码准备核销"),
        VERIFY(1, "核销", "验券核销"),
        CANCEL(2, "撤销核销", "撤销已核销记录"),
        ;
        String name;
        Integer key;
        String info;
        DOUYIN_VERIFY_OPERATE_TYPE(Integer key, String name, String info) {
            this.name = name;
            this.key = key;
            this.info = info;
        }
        public String getName() {
            return name;
        }
        public Integer getKey() {
            return key;
        }
        public String getInfo() {
            return info;
        }
    }
    /**
     * 抖音核销操作日志结果 —— 对应 douyin_verify_log.result:0成功 1失败
     */
    public enum DOUYIN_VERIFY_LOG_RESULT {
        SUCCESS(0, "成功", "操作成功"),
        FAIL(1, "失败", "操作失败"),
        ;
        String name;
        Integer key;
        String info;
        DOUYIN_VERIFY_LOG_RESULT(Integer key, String name, String info) {
            this.name = name;
            this.key = key;
            this.info = info;
        }
        public String getName() {
            return name;
        }
        public Integer getKey() {
            return key;
        }
        public String getInfo() {
            return info;
        }
    }
    /**
     * 抖音核销记录核销状态 —— 对应 douyin_verify_record.verify_status:0成功 1失败
     */
    public enum DOUYIN_VERIFY_STATUS {
        SUCCESS(0, "核销成功", "核销成功"),
        FAIL(1, "核销失败", "核销失败"),
        ;
        String name;
        Integer key;
        String info;
        DOUYIN_VERIFY_STATUS(Integer key, String name, String info) {
            this.name = name;
            this.key = key;
            this.info = info;
        }
        public String getName() {
            return name;
        }
        public Integer getKey() {
            return key;
        }
        public String getInfo() {
            return info;
        }
    }
    /**
     * 抖音核销记录撤销状态 —— 对应 douyin_verify_record.cancel_status:0未撤销 1已撤销
     */
    public enum DOUYIN_VERIFY_CANCEL_STATUS {
        NOT_CANCEL(0, "未撤销", "未撤销"),
        DONE(1, "已撤销", "已撤销"),
        ;
        String name;
        Integer key;
        String info;
        DOUYIN_VERIFY_CANCEL_STATUS(Integer key, String name, String info) {
            this.name = name;
            this.key = key;
            this.info = info;
        }
        public String getName() {
            return name;
        }
        public Integer getKey() {
            return key;
        }
        public String getInfo() {
            return info;
        }
    }
    public static final String FREE_RENT_TIME ="FREE_RENT_TIME" ;
    public static final String LOW_VOLTAGE ="LOW_VOLTAGE" ;
    public static final String ACCESS_TOKEN ="ACCESS_TOKEN" ;
    public static final String IMG_DIR = "IMG_DIR";
    public static final String FILE_DIR ="FILE_DIR" ;
    public static final String PRIVATE_KEY = "PRIVATE_KEY";
    public static final String PROJECT_FILE = "PROJECT_FILE";
    public static final String PROJECTS = "PROJECTS";
    public static final String DISCOUNT = "DISCOUNT";
    public static final String ELEC_BIKE_CONTRIL_API_URL = "ELEC_BIKE_CONTRIL_API_URL";
    public static final String FORCE_BACK_LOCK = "FORCE_BACK_LOCK";
    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 String TIME_OUT_TEMPID ="TIME_OUT_TEMPID" ;
    public static final int FOUR =4 ;
    public static final String PAUSE_BIKE_TYPE ="PAUSE_BIKE_TYPE" ;
    public static final String HEART_TIME_EXPIRE_TIME ="HEART_TIME_EXPIRE_TIME" ;
    public static final String PARK_LAT_LNG_LIST = "PARK_LAT_LNG_LIST";
    public static final String LOW_BIKE_VOLTAGE ="LOW_BIKE_VOLTAGE" ;
    public static final String OBLINE_HEART_TIME_LIMIT ="OBLINE_HEART_TIME_LIMIT" ;
    public static final String EBIKE_PREFIX ="ebike-" ;
    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 static boolean equalsInteger(Integer a, Integer b) {
        if (formatIntegerNum(a) == formatIntegerNum(b)) {
            return true;
        }
        return false;
    }
    public  interface MqttTopic{
@@ -106,7 +249,9 @@
        REFUND(2,"结算退押金", "结算退押金"),
        PLATFORMREFUND(3,"平台退押金", "平台退押金")
        PLATFORM_REFUND(3,"平台退款", "平台退款"),
        DISCOUNT(4,"套餐购买", "套餐购买")
        ;
        String name;
@@ -161,6 +306,7 @@
}
        public interface RedisKeys {
            public static final String submission_period_key = "sp_";
            public static final String import_bikes = "import_bikes";
        }
        public static final String ACCESS_ID = "ACCESS_ID";
@@ -186,12 +332,17 @@
        public static final String LEASE_NOTICE_URL = "LEASE_NOTICE_URL";
        //押金
        public static final String RENT_DEPOSIT = "RENT_DEPOSIT";
        //电车临停自动关锁时长(分钟)
        public static final String PAUSE_AUTO_CLOSE_TIME = "PAUSE_AUTO_CLOSE_TIME";
        //温馨提示
        public static final String TIPS = "TIPS";
        //温馨提示
        public static final String RENT_NOTICE = "RENT_NOTICE";
        //小程序停止服务提示
        public static final String STOP_SERVE_TIPS = "STOP_SERVE_TIPS";
        //抖音券兑换说明(小程序首页展示,提示用户抖音券兑换规则)
        public static final String DOUYIN_EXCHANGE_TIPS = "DOUYIN_EXCHANGE_TIPS";
        //小程序是否停止服务 0否 1是
        public static final String IS_STOP_SERVE = "IS_STOP_SERVE";
        //小程序停止开始时间
@@ -202,15 +353,13 @@
        public static final String BUSINESS_STARTTIME = "BUSINESS_STARTTIME";
        //小程序每日服务结束时间
        public static final String BUSINESS_ENDTIME = "BUSINESS_ENDTIME";
        //电车二维码前缀
        public static final String ELECTRICITY_PREFIX = "ELECTRICITY_PREFIX";
        //钉钉通知地址
        public static final String DINGDING_URL = "DINGDING_URL";
        //钉钉签名
        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";
        //小程序满载预警(%)最小值
@@ -415,7 +564,8 @@
            BACK_CYCLING("已还车", 2,"已还车"),
            LOCKING_DEFEAT("开锁失败", 3,"开锁失败")
            LOCKING_DEFEAT("开锁失败", 3,"开锁失败"),
            RIDES_PAUSING("临停中", 4,"临停中")
            ;
            String name;
@@ -598,19 +748,6 @@
            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;
    }
}