diff --git a/common/pom.xml b/common/pom.xml index ac15d188..8da007f5 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.jhl common - 3.1.13 + 3.1.10 UTF-8 diff --git a/pom.xml b/pom.xml index 235b4300..2483d885 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.jhl vpn-manager - 3.1.13 + 3.1.14-SNAPSHOT pom 4.0.0 @@ -15,7 +15,7 @@ scm:git:ssh://git@github.com/master-coder-ll/v2ray-web-manager.git - v3.1.13 + v3.1.11 diff --git a/proxy/pom.xml b/proxy/pom.xml index b3357523..867bfd06 100644 --- a/proxy/pom.xml +++ b/proxy/pom.xml @@ -4,7 +4,7 @@ com.jhl v2ray-proxy - 3.1.13 + 3.1.10 jar UTF-8 @@ -31,7 +31,7 @@ com.alibaba fastjson - 1.2.67 + 1.2.83 @@ -51,7 +51,7 @@ com.ljh v2ray-jdk - 3.1.13 + 3.1.10 guava @@ -62,7 +62,7 @@ com.jhl common - 3.1.13 + 3.1.10 @@ -99,6 +99,6 @@ - v3.1.13 + v3.1.10 \ No newline at end of file diff --git a/v2ray-jdk/pom.xml b/v2ray-jdk/pom.xml index b8bab539..073a1e0c 100644 --- a/v2ray-jdk/pom.xml +++ b/v2ray-jdk/pom.xml @@ -4,7 +4,7 @@ com.ljh v2ray-jdk - 3.1.13 + 3.1.10 jar v2ray-sdk @@ -14,7 +14,7 @@ com.jhl common - 3.1.13 + 3.1.10 diff --git a/vpn-admin/pom.xml b/vpn-admin/pom.xml index 2f97fe0d..0c5540d4 100644 --- a/vpn-admin/pom.xml +++ b/vpn-admin/pom.xml @@ -9,7 +9,7 @@ com.jhl admin - 3.1.13 + 3.1.10 vpn-admin vpn-admin @@ -30,7 +30,7 @@ com.jhl common - 3.1.13 + 3.1.10 @@ -146,6 +146,6 @@ - v3.1.13 + v3.1.10 diff --git a/vpn-admin/src/main/java/com/jhl/admin/constant/KVConstant.java b/vpn-admin/src/main/java/com/jhl/admin/constant/KVConstant.java index 2eabd0b8..657ac0c1 100644 --- a/vpn-admin/src/main/java/com/jhl/admin/constant/KVConstant.java +++ b/vpn-admin/src/main/java/com/jhl/admin/constant/KVConstant.java @@ -10,7 +10,7 @@ public class KVConstant { public static final String YYYYMMddHH="yyyy-MM-dd HH"; public static final String YYYYMMddHHmmss="yyyy-MM-dd HH:mm:ss"; - + public static final String YYYYMMddHHmm="yyyy-MM-dd HH:mm"; public static final Integer MS_OF_DAY= 1000 * 60 * 60 * 24; public static final String ROLE_ADMIN = "admin"; diff --git a/vpn-admin/src/main/java/com/jhl/admin/entity/V2rayAccount.java b/vpn-admin/src/main/java/com/jhl/admin/entity/V2rayAccount.java index bd5ca755..c8cb22a4 100644 --- a/vpn-admin/src/main/java/com/jhl/admin/entity/V2rayAccount.java +++ b/vpn-admin/src/main/java/com/jhl/admin/entity/V2rayAccount.java @@ -28,14 +28,14 @@ public class V2rayAccount { private String v = "2"; private String ps = ""; //地址 - private String add; - private String port; - private String id; + private String add="127.0.0.1"; + private String port="80"; + private String id="kxsw"; private String aid = "0"; private String net = "ws"; private String type = "none"; private String host =""; - private String path; + private String path="/"; private String tls = "tls"; diff --git a/vpn-admin/src/main/java/com/jhl/admin/service/SubscriptionService.java b/vpn-admin/src/main/java/com/jhl/admin/service/SubscriptionService.java index 2712bc8e..4dab21e9 100644 --- a/vpn-admin/src/main/java/com/jhl/admin/service/SubscriptionService.java +++ b/vpn-admin/src/main/java/com/jhl/admin/service/SubscriptionService.java @@ -13,6 +13,7 @@ import java.nio.charset.StandardCharsets; import java.util.Base64; +import java.util.Date; import java.util.List; import java.util.Optional; diff --git a/vpn-admin/src/main/java/com/jhl/admin/service/v2ray/V2rayAccountService.java b/vpn-admin/src/main/java/com/jhl/admin/service/v2ray/V2rayAccountService.java index 03a2dbe6..f76a2e06 100644 --- a/vpn-admin/src/main/java/com/jhl/admin/service/v2ray/V2rayAccountService.java +++ b/vpn-admin/src/main/java/com/jhl/admin/service/v2ray/V2rayAccountService.java @@ -5,16 +5,17 @@ import com.jhl.admin.entity.V2rayAccount; import com.jhl.admin.model.Account; import com.jhl.admin.model.Server; +import com.jhl.admin.model.Stat; import com.jhl.admin.repository.AccountRepository; +import com.jhl.admin.service.StatService; +import com.jhl.admin.util.Utils; import com.ljh.common.utils.V2RayPathEncoder; +import org.apache.commons.lang3.time.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Base64; -import java.util.List; -import java.util.UUID; +import java.util.*; @Service public class V2rayAccountService { @@ -22,14 +23,37 @@ public class V2rayAccountService { ProxyConstant proxyConstant; @Autowired AccountRepository accountRepository; + @Autowired + StatService statService; public String buildB64V2rayAccount(List servers, Account account) { StringBuilder sb = new StringBuilder(); + Base64.Encoder encoder = Base64.getEncoder(); + // tip + if (new Date().getTime()>account.getToDate().getTime()){ + V2rayAccount alertMessage = new V2rayAccount(); + alertMessage.setPs("通知-账号已经过期,请联系管理员:"+Utils.toDateStr(account.getToDate(),null)); + sb.append("vmess://").append(encoder.encodeToString(JSON.toJSONString(alertMessage).getBytes(StandardCharsets.UTF_8))).append("\n"); + return sb.toString(); + } + + for (V2rayAccount v2rayAccount : buildV2rayAccount(servers, account)) { - String encode = Base64.getEncoder().encodeToString(JSON.toJSONString(v2rayAccount).getBytes(StandardCharsets.UTF_8)); + String encode = encoder.encodeToString(JSON.toJSONString(v2rayAccount).getBytes(StandardCharsets.UTF_8)); sb.append("vmess://").append(encode).append("\n"); } + // tip 流量 和 有效期 + V2rayAccount tip = new V2rayAccount(); + tip.setAdd("127.0.0.2"); + Stat stat = statService.createOrGetStat(account); + tip.setPs("通知-流量:"+stat.getFlow()/1024/1024/1024+"/"+account.getBandwidth()+"G;流量重置时间:"+Utils.toDateStr(stat.getToDate(),"yyyy-MM-dd HH时")); + V2rayAccount tip2 = new V2rayAccount(); + tip2.setPs("通知-账号有效期至:"+ Utils.toDateStr(account.getToDate(),null)); + tip2.setAdd("127.0.0.3"); + sb.append("vmess://").append(encoder.encodeToString(JSON.toJSONString(tip).getBytes(StandardCharsets.UTF_8))).append("\n"); + sb.append("vmess://").append(encoder.encodeToString(JSON.toJSONString(tip2).getBytes(StandardCharsets.UTF_8))).append("\n"); + return sb.toString(); } diff --git a/vpn-admin/src/main/java/com/jhl/admin/util/Utils.java b/vpn-admin/src/main/java/com/jhl/admin/util/Utils.java index 0c998886..8e08e8e5 100644 --- a/vpn-admin/src/main/java/com/jhl/admin/util/Utils.java +++ b/vpn-admin/src/main/java/com/jhl/admin/util/Utils.java @@ -3,6 +3,8 @@ import com.google.common.collect.Interner; import com.google.common.collect.Interners; import com.jhl.admin.constant.KVConstant; +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; @@ -79,6 +81,19 @@ public static Date formatDate(Date date, SimpleDateFormat simpleDateFormat) { } + public static String toDateStr(Date date ,String pattern){ + if (StringUtils.isEmpty(pattern)){ + pattern=KVConstant.YYYYMMddHHmm; + } + Assert.notNull(date,"The date must not be null"); + try { + SimpleDateFormat thisSDF = new SimpleDateFormat(pattern); + return thisSDF.format(date); + }catch (Exception e){ + throw new RuntimeException("转换错误", e); + } + } + public static void main(String[] args) { System.out.println(formatDate(new Date(), null)); } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy