소스 검색

授权码信息

lyhzzz 2 년 전
부모
커밋
6b44c82faa

+ 90 - 0
src/main/java/com/fdkankan/ucenter/common/utils/AuthLicenseUtil.java

@@ -0,0 +1,90 @@
+package com.fdkankan.ucenter.common.utils;
+
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.XmlUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import cn.hutool.json.XML;
+import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.ucenter.util.DateUserUtil;
+import com.fdkankan.ucenter.vo.response.AuthLicenseEntityVo;
+import com.fdkankan.ucenter.vo.response.LicenseInfo;
+import lombok.extern.slf4j.Slf4j;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+
+import javax.validation.constraints.Size;
+import java.io.File;
+import java.io.IOException;
+import java.util.Date;
+
+@Slf4j
+public class AuthLicenseUtil {
+
+    //    Launcher.bat @inPath";
+     static String  cmd ="/home/ubuntu/bin/Launcher.sh %s";
+     static String licensePath = "/home/backend/tomcat/ucenter/license";
+
+     public static JSONObject readLicense(){
+         try {
+             if (FileUtil.exist(licensePath + File.separator + "results" + File.separator + "encryption_info.xml")) {
+                 String xml = FileUtils.readFile((licensePath + File.separator + "results" + File.separator + "encryption_info.xml"));
+                 return XML.toJSONObject(xml);
+             }
+         }catch (Exception e){
+            log.error("readLicense-error:",e);
+         }
+
+         return createLicense();
+     }
+
+    public static JSONObject createLicense()  {
+        File file = new File(licensePath);
+        if(!file.exists()){
+            file.mkdirs();
+        }
+        File caches = new File(licensePath + "caches");
+        FileUtil.del(caches);
+        File results = new File(licensePath + "results");
+        FileUtil.del(results);
+
+        JSONObject licenseDataJson = new JSONObject();
+        licenseDataJson.put("split_type", "SPLIT_V23");
+        licenseDataJson.put("skybox_type", "SKYBOX_V5");
+        FileUtils.writeFile(licensePath + File.separator + "data.json", licenseDataJson.toString());
+        ShellUtil.execCmd(String.format(cmd,licensePath));
+        int count = 10;
+        try {
+            for (int i = count; i > 0; i--) {
+                if (FileUtil.exist(licensePath + File.separator + "results" + File.separator + "encryption_info.xml")) {
+                    String xml = FileUtils.readFile((licensePath + File.separator + "results" + File.separator + "encryption_info.xml"));
+                    return XML.toJSONObject(xml);
+                }
+                Thread.sleep(1000);
+            }
+        } catch (Exception e) {
+            log.error("createLicense-error:",e);
+            return null;
+        }
+        return null;
+
+    }
+
+    public static  void checkAuthLicense() {
+        try {
+            JSONObject jsonObject = AuthLicenseUtil.readLicense();
+            JSONObject licenseInfo = jsonObject.getJSONObject("licenseInfo");
+            JSONObject snInfo = licenseInfo.getJSONObject("snInfo");
+            String endDate = snInfo.getStr("endDate");
+            Date date = DateUserUtil.getDate(endDate);
+            if(new Date().getTime() > date.getTime()){
+                AuthLicenseUtil.createLicense();
+            }
+        }catch (Exception e){
+            log.error("checkAuthLicense-error:",e);
+        }
+
+    }
+
+
+}

+ 35 - 0
src/main/java/com/fdkankan/ucenter/controller/AuthLicenseController.java

@@ -0,0 +1,35 @@
+package com.fdkankan.ucenter.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.ucenter.common.ResultData;
+import com.fdkankan.ucenter.common.utils.AuthLicenseUtil;
+import org.joda.time.DateTime;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-11-22
+ */
+@RestController
+@RequestMapping("/ucenter/authLicense")
+public class AuthLicenseController {
+
+
+    @GetMapping("/getAuthInfo")
+    public ResultData getAuthInfo(){
+        return ResultData.ok(AuthLicenseUtil.readLicense());
+    }
+
+}
+

+ 0 - 12
src/main/java/com/fdkankan/ucenter/controller/LicenseController.java

@@ -1,12 +0,0 @@
-package com.fdkankan.ucenter.controller;
-
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-@RequestMapping("/ucenter/license")
-public class LicenseController {
-
-
-
-}

+ 3 - 3
src/main/java/com/fdkankan/ucenter/generate/AutoGenerate.java

@@ -18,7 +18,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir") ;
 
         generate(path,"ucenter", getTables(new String[]{
-                "t_scene_pro_re",
+                "t_auth_license",
         }));
 
 //        generate(path,"goods", getTables(new String[]{
@@ -46,8 +46,8 @@ public class AutoGenerate {
 
 
     public static void  generate(String path,String moduleName,  List<String> tables){
-        FastAutoGenerator.create("jdbc:mysql://rm-wz90w10465iiwwv098o.mysql.rds.aliyuncs.com/4dkankan_v4",
-                "root","D2719bd0cae1a005")
+        FastAutoGenerator.create("jdbc:mysql://120.24.144.164:3306/4dkankan_v4?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true",
+                "root","4Dage@4Dage#@168")
                 .globalConfig(builder -> {
                     builder.author("")               //作者
                             .outputDir(path+"\\src\\main\\java")    //输出路径(写到java目录)

+ 10 - 0
src/main/java/com/fdkankan/ucenter/task/TaskService.java

@@ -1,12 +1,17 @@
 package com.fdkankan.ucenter.task;
 
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import com.fdkankan.common.util.DateUtil;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.ucenter.common.RedisKeyUtil;
 import com.fdkankan.ucenter.common.StatisticsUtil;
+import com.fdkankan.ucenter.common.utils.AuthLicenseUtil;
 import com.fdkankan.ucenter.constant.QrCodeFilePath;
 import com.fdkankan.ucenter.service.*;
+import com.fdkankan.ucenter.util.DateUserUtil;
+import com.fdkankan.ucenter.vo.response.AuthLicenseEntityVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +36,7 @@ public class TaskService {
     @Autowired
     private ISceneCleanService sceneCleanService;
 
+
     @Scheduled(cron = "0 */10 * * * ?")
     public void delLoginQrCode(){
         try {
@@ -49,12 +55,16 @@ public class TaskService {
             delFile(files2);
             log.info("delLoginQrCode:结束定时清理本地登录二维码:耗时{}秒",(new Date().getTime() - startTime)/1000 );
             this.updateSceneViewCount();
+            AuthLicenseUtil.checkAuthLicense();
         }catch (Exception e){
             log.error("delLoginQrCode错误",e);
         }
 
     }
 
+
+
+
     private void updateSceneViewCount() {
         String redisKey = RedisKeyUtil.V4_SCENE_VISIT_CNT;
         Map<String,String> hmget = redisUtil.hmget(redisKey);

+ 17 - 0
src/main/java/com/fdkankan/ucenter/vo/response/AuthLicenseEntityVo.java

@@ -0,0 +1,17 @@
+package com.fdkankan.ucenter.vo.response;
+
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class AuthLicenseEntityVo {
+    private String sn;                  //SN码
+    private String controlType;         //控制类型
+    private String volumeNumber;        //控制类型
+    private Date endDate;               //结束时间
+    private Integer expirationDays;         //剩余激活时间(天)
+    private Date activateDate;          //激活时间
+    private Date lastUpdateDate;        //最后同步时间
+}

+ 11 - 0
src/main/java/com/fdkankan/ucenter/vo/response/LicenseInfo.java

@@ -0,0 +1,11 @@
+package com.fdkankan.ucenter.vo.response;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class LicenseInfo {
+    private List<AuthLicenseEntityVo> licenseInfo;
+
+}