Procházet zdrojové kódy

心跳、状态接口

xiatian před 1 rokem
rodič
revize
64e21f33fc

+ 37 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.boot.api.exception.ApiException;
+import com.qmth.boot.core.enums.Platform;
 import com.qmth.distributed.print.business.bean.params.LoginParam;
 import com.qmth.distributed.print.business.bean.params.LoginParam;
 import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 import com.qmth.distributed.print.business.bean.result.DictionaryResult;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.bean.result.EditResult;
@@ -16,8 +17,10 @@ import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.service.TBSyncTaskService;
 import com.qmth.distributed.print.business.service.TBSyncTaskService;
 import com.qmth.distributed.print.business.service.TeachClazzService;
 import com.qmth.distributed.print.business.service.TeachClazzService;
 import com.qmth.distributed.print.business.util.PdfUtil;
 import com.qmth.distributed.print.business.util.PdfUtil;
+import com.qmth.distributed.print.config.SysProperty;
 import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.bean.auth.AuthBean;
 import com.qmth.teachcloud.common.bean.auth.AuthBean;
+import com.qmth.teachcloud.common.bean.auth.ExpireTimeBean;
 import com.qmth.teachcloud.common.bean.result.LoginResult;
 import com.qmth.teachcloud.common.bean.result.LoginResult;
 import com.qmth.teachcloud.common.bean.result.UserLoginCheckResult;
 import com.qmth.teachcloud.common.bean.result.UserLoginCheckResult;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
@@ -28,10 +31,15 @@ import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
 import com.qmth.teachcloud.common.enums.log.SystemEnum;
 import com.qmth.teachcloud.common.enums.log.SystemEnum;
 import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
 import com.qmth.teachcloud.common.enums.userPush.SpecialPrivilegeEnum;
 import com.qmth.teachcloud.common.service.*;
 import com.qmth.teachcloud.common.service.*;
+import com.qmth.teachcloud.common.util.AuthUtil;
 import com.qmth.teachcloud.common.util.FileUtil;
 import com.qmth.teachcloud.common.util.FileUtil;
+import com.qmth.teachcloud.common.util.RedisUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import com.qmth.teachcloud.mark.bean.sys.ActiveTimeVo;
+import com.qmth.teachcloud.mark.bean.sys.ApiStatusVo;
+
 import io.swagger.annotations.*;
 import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
@@ -43,6 +51,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import javax.validation.Valid;
 import java.io.File;
 import java.io.File;
@@ -50,6 +59,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStream;
 import java.security.NoSuchAlgorithmException;
 import java.security.NoSuchAlgorithmException;
 import java.util.*;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import java.util.stream.Stream;
 
 
@@ -61,7 +71,8 @@ import java.util.stream.Stream;
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_COMMON)
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_COMMON)
 public class SysController {
 public class SysController {
     private final static Logger log = LoggerFactory.getLogger(SysController.class);
     private final static Logger log = LoggerFactory.getLogger(SysController.class);
-
+    @Resource
+    SysProperty sysProperty;
     @Resource
     @Resource
     SysUserService sysUserService;
     SysUserService sysUserService;
 
 
@@ -115,7 +126,8 @@ public class SysController {
 
 
     @Resource
     @Resource
     ConditionService conditionService;
     ConditionService conditionService;
-
+    @Resource
+    RedisUtil redisUtil;
     /**
     /**
      * 登录
      * 登录
      *
      *
@@ -861,4 +873,27 @@ public class SysController {
         // 导出
         // 导出
         FileUtil.outputFile(response, inputStream, importTemplateEnum.getFileName());
         FileUtil.outputFile(response, inputStream, importTemplateEnum.getFileName());
     }
     }
+    
+    @Aac(auth = false)
+    @ApiOperation(value = "服务端状态")
+    @RequestMapping("status")
+    public ApiStatusVo status(HttpServletRequest request) {
+        ApiStatusVo vo = new ApiStatusVo();
+        vo.setFileUriPrefix(sysProperty.getFileUriPrefix());
+        vo.setVersion(sysProperty.getVersion());
+        vo.setTime(System.currentTimeMillis());
+        return vo;
+    }
+    
+    @ApiOperation(value = "心跳接口")
+    @PostMapping("heartbeat")
+    public ActiveTimeVo heartbeat() {
+        Platform platform = ServletUtil.getRequestPlatform();
+        ExpireTimeBean expireTime = AuthUtil.getExpireTime(platform);
+        TBSession ts=(TBSession)ServletUtil.getRequestSession();
+        redisUtil.expire(ts.getId(), expireTime.getExpireSeconds(),TimeUnit.SECONDS);
+        ActiveTimeVo vo = new ActiveTimeVo();
+        vo.setActiveTime(System.currentTimeMillis());
+        return vo;
+    }
 }
 }

+ 26 - 0
distributed-print/src/main/java/com/qmth/distributed/print/config/SysProperty.java

@@ -0,0 +1,26 @@
+package com.qmth.distributed.print.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+public class SysProperty {
+	@Value("${com.qmth.solar.app-version}")
+	private String version;
+    @Value("${teachcloud.file-uri-prefix}")
+    private String fileUriPrefix;
+	public String getVersion() {
+		return version;
+	}
+	public void setVersion(String version) {
+		this.version = version;
+	}
+	public String getFileUriPrefix() {
+		return fileUriPrefix;
+	}
+	public void setFileUriPrefix(String fileUriPrefix) {
+		this.fileUriPrefix = fileUriPrefix;
+	}
+	
+	
+}

+ 3 - 1
distributed-print/src/main/resources/application.properties

@@ -99,4 +99,6 @@ com.qmth.logging.file-path=/Users/xiaofei/qmth/temporary/zxzk/log/distributed-pr
 com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
 com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
 com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
 com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
 
 
-com.qmth.sms.server=https://solar.qmth.com.cn
+com.qmth.sms.server=https://solar.qmth.com.cn
+teachcloud.file-uri-prefix=file
+com.qmth.solar.app-version=@project.version@

+ 14 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/bean/sys/ActiveTimeVo.java

@@ -0,0 +1,14 @@
+package com.qmth.teachcloud.mark.bean.sys;
+
+public class ActiveTimeVo {
+	private Long activeTime;
+
+	public Long getActiveTime() {
+		return activeTime;
+	}
+
+	public void setActiveTime(Long activeTime) {
+		this.activeTime = activeTime;
+	}
+	
+}

+ 36 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/bean/sys/ApiStatusVo.java

@@ -0,0 +1,36 @@
+package com.qmth.teachcloud.mark.bean.sys;
+
+public class ApiStatusVo {
+
+    private String fileUriPrefix;
+
+    private String version;
+
+    private Long time;
+
+    public String getFileUriPrefix() {
+        return fileUriPrefix;
+    }
+
+    public void setFileUriPrefix(String fileUriPrefix) {
+        this.fileUriPrefix = fileUriPrefix;
+    }
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
+    public Long getTime() {
+        return time;
+    }
+
+    public void setTime(Long time) {
+        this.time = time;
+    }
+
+
+}