Explorar o código

激活码快速生成配置

juxin_zhenghao hai 1 semana
pai
achega
42fa047ec9

+ 12 - 0
src/main/java/com/ruoyi/business/constant/CommonConstants.java

@@ -0,0 +1,12 @@
+package com.ruoyi.business.constant;
+
+public class CommonConstants {
+    public static final int DELAY_YEAR = 364;
+    public static final int DELAY_MONTH = 29;
+    public static final int DELAY_HALF_MONTH = 14;
+    public static final int DELAY_TEN_DAY = 9;
+    public static final int DELAY_WEEK = 6;
+
+    public static final String TYPE_SP="SP";
+    public static final String TYPE_DZ="DZ";
+}

+ 2 - 0
src/main/java/com/ruoyi/business/service/LicenseService.java

@@ -2,4 +2,6 @@ package com.ruoyi.business.service;
 
 public interface LicenseService {
     String createLicense(String type,String machineCode);
+
+    String createLicense(String type,String machineCode,int delayDay,String remark);
 }

+ 22 - 6
src/main/java/com/ruoyi/business/service/impl/licenseServiceImpl.java

@@ -3,6 +3,7 @@ package com.ruoyi.business.service.impl;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import com.ruoyi.business.constant.CommonConstants;
 import com.ruoyi.business.entity.MachineLicenseAcquireReqDto;
 import com.ruoyi.business.service.LicenseService;
 import com.ruoyi.business.util.DESUtils;
@@ -19,7 +20,6 @@ import java.io.InputStreamReader;
 @Service
 public class licenseServiceImpl implements LicenseService {
 
-    public static int DELAY_DAY = 14 ;
 
     @Value("${jsPath}")
     private String jsPath;
@@ -37,14 +37,27 @@ public class licenseServiceImpl implements LicenseService {
         return null;
     }
 
+    @Override
+    public String createLicense(String type,String licenseCode,int delayDay,String remark) {
+        if("DZ".equals(type)){
+            return createLicenseForDZ(licenseCode,delayDay,remark);
+        }else if("SP".equals(type)){
+            return createLicenseForSP(licenseCode,delayDay,remark);
+        }
+        return null;
+    }
+
+    private String createLicenseForDZ(String licenseCode){
+        return createLicenseForDZ(licenseCode, CommonConstants.DELAY_HALF_MONTH,"");
+    }
     /**
      * 调证
      * @param licenseCode
      * @return
      */
-        private String createLicenseForDZ(String licenseCode) {
+        private String createLicenseForDZ(String licenseCode,int delay,String remark) {
         String strRobotNum = "999";
-        DateTime endTime = DateUtil.offset(DateUtil.date(), DateField.DAY_OF_YEAR, DELAY_DAY);
+        DateTime endTime = DateUtil.offset(DateUtil.date(), DateField.DAY_OF_YEAR, delay);
         String endTimeStr = DateUtil.format(endTime, "yyyy-MM-dd") + " 23:59:59";
         System.out.println("到期时间:" + endTimeStr);
 
@@ -57,7 +70,7 @@ public class licenseServiceImpl implements LicenseService {
         reqDto.setMachineCode(licenseCode);
         reqDto.setLicenseType(licenseCode);
         reqDto.setMachineType("ALL");
-        System.out.println("执行入参:" + reqDto);
+        System.out.println("执行机器码:" + licenseCode);
         String license;
         try {
             license = SM2Utils.generateLicense(reqDto.getLicenseType(), reqDto.getMachineType()
@@ -71,14 +84,17 @@ public class licenseServiceImpl implements LicenseService {
         return resultLicense;
     }
 
+    private String createLicenseForSP(String licenseCode){
+            return createLicenseForSP(licenseCode,CommonConstants.DELAY_HALF_MONTH,"");
+    }
     /**
      * 审批
      * @param licenseCode
      * @return
      */
-    private String createLicenseForSP(String licenseCode) {
+    private String createLicenseForSP(String licenseCode,int delay,String remark) {
         try {
-            DateTime endTime = DateUtil.offset(DateUtil.date(), DateField.DAY_OF_YEAR, DELAY_DAY);
+            DateTime endTime = DateUtil.offset(DateUtil.date(), DateField.DAY_OF_YEAR, delay);
             String endTimeStr = DateUtil.format(endTime, "yyyy-MM-dd") + " 23:59:59";
             System.out.println("到期时间:" + endTimeStr);
             String command = "node".concat(" ").concat(jsPath)

+ 88 - 0
src/test/java/GenerateTest.java

@@ -0,0 +1,88 @@
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.RandomUtil;
+import com.ruoyi.business.Main;
+import com.ruoyi.business.constant.CommonConstants;
+import com.ruoyi.business.service.LicenseService;
+import jnr.ffi.annotations.In;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.DynamicPropertyRegistry;
+import org.springframework.test.context.DynamicPropertySource;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.Date;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(
+        classes = Main.class,
+        webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@Slf4j
+public class GenerateTest {
+    @Autowired
+    private LicenseService licenseService;
+
+
+    //激活记录文件名
+   private static final String recordFileName = "激活记录";
+    //激活码文件路径(自定义修改)
+    private static final String filePath = "E:\\workspace\\jx\\workSpace\\test\\rpa_license\\licenses\\";
+
+    //激活文件后缀
+    private static final String fileSuffix = ".txt";
+
+    @Test
+    public void generate() {
+        //当前时间
+        String now = DateUtil.now();
+        //机器码(必改)
+        String machineCode="e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
+        //延迟天数(根据情况修改)
+        int delay = CommonConstants.DELAY_MONTH;
+        //审批类型(根据情况修改)
+        String type = CommonConstants.TYPE_SP;
+        //备注(根据情况修改)
+        String addr = "京口";
+
+
+
+
+        String typeStr=type.equals(CommonConstants.TYPE_DZ)?"调证":"审批";
+        DateTime endTime = DateUtil.offset(DateUtil.date(), DateField.DAY_OF_YEAR, delay);
+        String endTimeStr = DateUtil.format(endTime, "yyyy-MM-dd");
+        //激活码文件名(根据情况修改)
+        String licenseName = addr+"_"+typeStr+"_"+endTimeStr;
+
+        String license = licenseService.createLicense(type, machineCode, delay, now);
+
+        //license写入文件
+        String licenseFile = filePath + licenseName ;
+        String fullLicense = licenseFile+fileSuffix;
+        if(FileUtil.exist(fullLicense)){
+            licenseFile= licenseFile+"_"+DateUtil.format(new Date(),"yyyyMMddHHmmss")+"_"+ RandomUtil.randomString(5);
+            fullLicense= licenseFile+fileSuffix;
+        }
+        FileUtil.writeUtf8String(license, fullLicense);
+
+
+        //追加写入激活记录
+        StringBuilder record = new StringBuilder();
+        record.append("激活时间:").append(now).append("\n")
+                .append("机器码:").append(machineCode).append("\n")
+                .append("延迟天数:").append(delay).append("\n")
+                .append("激活类型:").append(typeStr).append("\n")
+                .append("激活码:").append(license).append("\n")
+                .append("备注:").append(licenseName).append("\n\n");
+
+        String recordFile = filePath + recordFileName + fileSuffix;
+        FileUtil.appendUtf8String(record.toString(), recordFile);
+    }
+
+}