|  |  | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.core.common.R; | 
 |  |  | import com.zy.system.entity.license.*; | 
 |  |  | import de.schlichtherle.license.LicenseContent; | 
 |  |  | import com.zy.system.timer.LicenseTimer; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.beans.factory.annotation.Value; | 
 |  |  | import org.springframework.http.MediaType; | 
 |  |  | 
 |  |  |  | 
 |  |  | import java.io.File; | 
 |  |  | import java.io.IOException; | 
 |  |  | import java.util.Date; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * | 
 |  |  | 
 |  |  | @RequestMapping("/license") | 
 |  |  | public class LicenseCreatorController { | 
 |  |  |  | 
 |  |  |     @Value("${license.licensePath}") | 
 |  |  |     private String licensePath; | 
 |  |  |  | 
 |  |  | //    @Value("${license.licensePath}") | 
 |  |  | //    private String licensePath; | 
 |  |  |     @Autowired | 
 |  |  |     private LicenseCheckListener licenseCheckListener; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private LicenseTimer licenseTimer; | 
 |  |  |     /** | 
 |  |  |      * 获取服务器硬件信息 | 
 |  |  |      * @param osName 操作系统类型,如果为空则自动判断 | 
 |  |  | 
 |  |  |         if (osName.startsWith("windows")) { | 
 |  |  |             abstractServerInfos = new WindowsServerInfos(); | 
 |  |  |         } else if (osName.startsWith("linux")) { | 
 |  |  | //            abstractServerInfos = new LinuxServerInfos(); | 
 |  |  |             abstractServerInfos = new LinuxServerInfos(); | 
 |  |  |         }else{//其他服务器类型 | 
 |  |  |             abstractServerInfos = new WindowsServerInfos(); | 
 |  |  |         } | 
 |  |  | 
 |  |  |      */ | 
 |  |  |     @RequestMapping(value = "/getLicenseDays") | 
 |  |  |     public R getLicenseDays() { | 
 |  |  |         LicenseVerify licenseVerify = new LicenseVerify(); | 
 |  |  |         LicenseContent verifyInfo = licenseVerify.getVerifyInfo(); | 
 |  |  |         if (verifyInfo == null) { | 
 |  |  |             return R.error(); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Date start = new Date(); | 
 |  |  |         Date end = verifyInfo.getNotAfter(); | 
 |  |  |         Long starTime = start.getTime(); | 
 |  |  |         Long endTime = end.getTime(); | 
 |  |  |         Long num = endTime - starTime;//时间戳相差的毫秒数 | 
 |  |  |         int day = (int) (num / 24 / 60 / 60 / 1000); | 
 |  |  |         return R.ok().add(day); | 
 |  |  |         return R.ok(licenseTimer.getLicenseDays()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/updateLicense") | 
 |  |  |     public R updateLicense(@RequestParam("file") MultipartFile[] files){ | 
 |  |  |         MultipartFile file = files[0]; | 
 |  |  | //    @RequestMapping(value = "/updateLicense") | 
 |  |  | //    public R updateLicense(@RequestParam("file") MultipartFile[] files){ | 
 |  |  | //        MultipartFile file = files[0]; | 
 |  |  | // | 
 |  |  | //        String licensePathFileName = this.getClass().getClassLoader().getResource(licensePath).getPath(); | 
 |  |  | //        File licensePathFile = new File(licensePathFileName); | 
 |  |  | //        //服务器端保存的文件对象 | 
 |  |  | //        File serverFile = new File(licensePathFile.getPath()); | 
 |  |  | //        if (serverFile.exists()) { | 
 |  |  | //            try { | 
 |  |  | //                serverFile.delete();//存在文件,删除 | 
 |  |  | //            } catch (Exception e) { | 
 |  |  | //                e.printStackTrace(); | 
 |  |  | //            } | 
 |  |  | //        } | 
 |  |  | // | 
 |  |  | //        try { | 
 |  |  | //            //创建文件 | 
 |  |  | //            serverFile.createNewFile(); | 
 |  |  | //            //将上传的文件写入到服务器端文件内 | 
 |  |  | //            file.transferTo(serverFile); | 
 |  |  | //        } catch (IOException e) { | 
 |  |  | //            e.printStackTrace(); | 
 |  |  | //        } | 
 |  |  | // | 
 |  |  | //        //重新加载许可证 | 
 |  |  | //        boolean loadedLicense = licenseCheckListener.loadLicense(); | 
 |  |  | //        if (loadedLicense) { | 
 |  |  | //            return R.ok(); | 
 |  |  | //        } | 
 |  |  | //        return R.error("许可证更新失败"); | 
 |  |  | //    } | 
 |  |  |  | 
 |  |  |         String licensePathFileName = this.getClass().getClassLoader().getResource(licensePath).getPath(); | 
 |  |  |         File licensePathFile = new File(licensePathFileName); | 
 |  |  |         //服务器端保存的文件对象 | 
 |  |  |         File serverFile = new File(licensePathFile.getPath()); | 
 |  |  |         if (serverFile.exists()) { | 
 |  |  |             try { | 
 |  |  |                 serverFile.delete();//存在文件,删除 | 
 |  |  |             } catch (Exception e) { | 
 |  |  |                 e.printStackTrace(); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     @RequestMapping(value = "/activate") | 
 |  |  |     public R activate() { | 
 |  |  |         licenseTimer.timer(); | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |         try { | 
 |  |  |             //创建文件 | 
 |  |  |             serverFile.createNewFile(); | 
 |  |  |             //将上传的文件写入到服务器端文件内 | 
 |  |  |             file.transferTo(serverFile); | 
 |  |  |         } catch (IOException e) { | 
 |  |  |             e.printStackTrace(); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         //重新加载许可证 | 
 |  |  |         boolean loadedLicense = licenseCheckListener.loadLicense(); | 
 |  |  |         if (loadedLicense) { | 
 |  |  |             return R.ok(); | 
 |  |  |         } | 
 |  |  |         return R.error("许可证更新失败"); | 
 |  |  |     @RequestMapping(value = "/activate") | 
 |  |  |     public R activate() { | 
 |  |  |         licenseTimer.timer(); | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |