Ver código fonte

删除系统检查获取接口,修改接口返回信息

欧阳劲驰 4 meses atrás
pai
commit
b0d5c04680

+ 7 - 41
src/main/java/com/shkpr/service/alambizplugin/bizservice/GisSurveyBizService.java

@@ -21,7 +21,6 @@ import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutionException;
 import java.util.stream.Collectors;
 
 /**
@@ -111,47 +110,12 @@ public class GisSurveyBizService {
     }
 
     /**
-     * 获取结果
+     * 取消检查
      *
      * @param params 系统检查参数
      * @return 检查结果(可能进行中)
      */
-    public GisSurveySystemCheckResult getResult(GisSurveyCheckParams params) {
-        //任务标识
-        GisSurveySystemCheckId systemCheckId = GisSurveySystemCheckId.generateId(params);
-        if (systemCheckId == null) return GisSurveySystemCheckResult.notExists(params);
-        //获取任务
-        ListenableFuture<GisSurveySystemCheckResult> checkFuture = TASK_CACHE.get(systemCheckId);
-        if (checkFuture == null) return GisSurveySystemCheckResult.notExists(params);
-        //已结束,则直接返回失败(如完成cancelled为false,切无法clear)
-        if (checkFuture.isCancelled()) return GisSurveySystemCheckResult.fail(params);
-        //完成判断,如完成直接返回结果
-        if (checkFuture.isDone()) {
-            try {
-                return TASK_CACHE.get(systemCheckId).get();
-            } catch (ExecutionException | InterruptedException e) {
-                //打印报错信息(不太可能走到这里)
-                LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, mBizType, mStrClassName
-                        , String.format(
-                                "监测到中断或执行异常 param:%s msg:%s"
-                                , params
-                                , e.getMessage()
-                        )
-                );
-                return GisSurveySystemCheckResult.fail(params);
-            }
-        }
-        //返回进行中
-        return GisSurveySystemCheckResult.inProgress(params, SUBTASK_CACHE.get(systemCheckId), TIME_CACHE.get(systemCheckId));
-    }
-
-    /**
-     * 删除结果
-     *
-     * @param params 系统检查参数
-     * @return 检查结果(可能进行中)
-     */
-    public GisSurveySystemCheckResult delResult(GisSurveyCheckParams params) {
+    public GisSurveySystemCheckResult cancelCheck(GisSurveyCheckParams params) {
         //任务标识
         GisSurveySystemCheckId taskId = GisSurveySystemCheckId.generateId(params);
         if (taskId == null) return GisSurveySystemCheckResult.fail(params);
@@ -168,7 +132,9 @@ public class GisSurveyBizService {
     public void expireResult(Duration ttl) {
         //获取超时的id
         List<GisSurveySystemCheckId> taskIds = TIME_CACHE.entrySet().stream()
-                .filter(entry -> Duration.between(entry.getValue(), LocalDateTime.now()).compareTo(ttl) > 0)
+                .filter(entry ->
+                        Duration.between(entry.getValue(), LocalDateTime.now()).compareTo(ttl) > 0
+                )
                 .map(Map.Entry::getKey)
                 .collect(Collectors.toList());
         //停止超时的任务并删除任务缓存
@@ -196,7 +162,7 @@ public class GisSurveyBizService {
      * @param systemCheckId 系统检查id
      * @return 元素更新时间
      */
-    public LocalDateTime getRefreshTimeDuration(GisSurveySystemCheckId systemCheckId) {
+    private LocalDateTime getRefreshTimeDuration(GisSurveySystemCheckId systemCheckId) {
         //默认为当前时间
         LocalDateTime refreshTime = LocalDateTime.now();
         //根据检查维度获取数据库里的更新时间
@@ -234,7 +200,7 @@ public class GisSurveyBizService {
     }
 
     /**
-     * 关闭检查任务
+     * 停止任务
      *
      * @param taskId 任务id
      * @return 关闭状态

+ 1 - 2
src/main/java/com/shkpr/service/alambizplugin/constants/ApiURI.java

@@ -25,8 +25,7 @@ public class ApiURI {
     public static final String URI_XXX_CHG_PWD = "pwd-chg";
     public static final String URI_XXX_IMAGES = "images";
     public static final String URI_XXX_SYS_CHECK = "sys-check";
-    public static final String URI_XXX_SYS_CHECK_GET = "sys-check-get";
-    public static final String URI_XXX_SYS_CHECK_DEL = "sys-check-del";
+    public static final String URI_XXX_SYS_CHECK_CANCEL = "sys-check-cancel";
 
     public static final String URI_ACCESS_TOKEN_CHECK = "/kpr-plugin/apply/access-token-check";
     public static final String URI_FILE_BUSI_XXX = "/files/**";

+ 4 - 0
src/main/java/com/shkpr/service/alambizplugin/constants/ResponseCode.java

@@ -95,6 +95,10 @@ public enum ResponseCode {
 
     RESULT_FAST_DFS_UPLOAD_FAILED(30000, "Upload File To FastDfs Failed."),
 
+    RESULT_SYSTEM_CHECK_FAILED(40000, "System check failed."),
+    RESULT_SYSTEM_CHECK_NOT_FOUND(40001, "System check not found."),
+    RESULT_SYSTEM_CHECK_CANCEL_FAILED(40002, "System check cancel failed."),
+
     BUSINESS_SYNC_FUN_FAILED(65529,"The Synch operation failed."),
     BUSINESS_DB_REQ_FAILED(65530,"The DB operation failed."),
     BUSINESS_API_ABOLISH(65531,"The Api has been abolished."),

+ 20 - 80
src/main/java/com/shkpr/service/alambizplugin/controller/ApiGisSurveyController.java

@@ -29,16 +29,11 @@ import java.util.concurrent.atomic.AtomicInteger;
 @RequestMapping(ApiURI.URI_GIS_SURVEY_H)
 @RestController
 public class ApiGisSurveyController {
-    //message
-    final String MSG_SUCCESS = "success.";
-    final String MSG_FAILED = "failed.";
-    final String MSG_NOT_EXISTS = "notExists.";
     //log
     private final String mStrClassName;
     private final String mBizType;
     //计数器
     private final AtomicInteger mSeqSysCheckReq;
-    private final AtomicInteger mSeqSysCheckGetReq;
     private final AtomicInteger mSeqSysCheckDelReq;
 
     private final GisSurveyBizService gisSurveyBizService;
@@ -47,7 +42,6 @@ public class ApiGisSurveyController {
         mStrClassName = "ApiGisSurveyController";
         mBizType = LogFlagBusiType.BUSI_GIS_SURVEY.toStrValue();
         mSeqSysCheckReq = new AtomicInteger(0);
-        mSeqSysCheckGetReq = new AtomicInteger(0);
         mSeqSysCheckDelReq = new AtomicInteger(0);
         this.gisSurveyBizService = gisSurveyBizService;
     }
@@ -91,71 +85,16 @@ public class ApiGisSurveyController {
                         , oJsonParam));
         //构建result
         ResponseRes<GisSurveySystemCheckResult> resResult = new ResponseRes<>();
-        resResult.setResmsg(MSG_FAILED);
-        resResult.setResdata(null);
+        resResult.setRescode(ResponseCode.RESULT_SYSTEM_CHECK_FAILED.toStrCode());
+        resResult.setResmsg(ResponseCode.RESULT_SYSTEM_CHECK_FAILED.toStrMsg());
         //执行系统检查
         GisSurveySystemCheckResult result = gisSurveyBizService.sysCheckFun(oJsonParam);
-        resResult.setRescode(ResponseCode.STATUS_SUCCESS.toStrCode());
-        resResult.setResdata(result);
-        resResult.setResmsg(MSG_SUCCESS);
-        //end
-        resResult.setTimestamp(System.currentTimeMillis());
-        LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
-                , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
-                        , strPlatform
-                        , URI_PATH
-                        , strRunSeq
-                        , resResult.getRescode()
-                        , resResult.getResmsg()
-                        , resResult.getTimestamp() - llReqBefore));
-        return resResult;
-    }
-
-    /**
-     * 获取系统检查
-     *
-     * @param request       request
-     * @param strClientType 客户端类型
-     * @param strUserAgent  用户信息
-     * @param oJsonParam    参数
-     * @param bindRes       bindingResult
-     * @return 系统检查回执
-     * @throws SelfException selfException
-     */
-    @PostMapping(value = ApiURI.URI_XXX_SYS_CHECK_GET)
-    public ResponseRes<GisSurveySystemCheckResult> getCheck(HttpServletRequest request
-            , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
-            , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
-            , @RequestBody(required = false) @Validated(value = {CommonParamValidSK.class}) GisSurveyCheckParams oJsonParam
-            , BindingResult bindRes) throws Exception {
-        //入参校验
-        final String URI_PATH = request.getRequestURI();
-        final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
-        final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID);
-        if (oJsonParam == null || bindRes.hasErrors() || !oJsonParam.checkValid()) {
-            throw new SelfException(ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrCode()
-                    , String.format(ApiURI.EXCEPTION_FORMAT
-                    , strPlatform
-                    , URI_PATH
-                    , ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrMsg()));
+        //执行成功
+        if (!Objects.equals(result.getCheckStatus(), GisSurveyCheckStatusEnum.FAIL.getCode())) {
+            resResult.setRescode(ResponseCode.STATUS_SUCCESS.toStrCode());
+            resResult.setResmsg(ResponseCode.STATUS_SUCCESS.toStrMsg());
+            resResult.setResdata(result);
         }
-        //begin
-        long llReqBefore = System.currentTimeMillis();
-        String strRunSeq = String.format("%d-%d", llReqBefore, mSeqSysCheckGetReq.incrementAndGet());
-        LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
-                , String.format("%s:%s seq:{%s} param:%s begin====>"
-                        , strPlatform
-                        , URI_PATH
-                        , strRunSeq
-                        , oJsonParam));
-        //构建result
-        ResponseRes<GisSurveySystemCheckResult> resResult = new ResponseRes<>();
-        resResult.setResmsg(MSG_FAILED);
-        //尝试获取系统检查result
-        GisSurveySystemCheckResult result = gisSurveyBizService.getResult(oJsonParam);
-        resResult.setRescode(ResponseCode.STATUS_SUCCESS.toStrCode());
-        resResult.setResdata(result);
-        resResult.setResmsg(MSG_SUCCESS);
         //end
         resResult.setTimestamp(System.currentTimeMillis());
         LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
@@ -170,18 +109,18 @@ public class ApiGisSurveyController {
     }
 
     /**
-     * 除系统检查
+     * 除系统检查
      *
      * @param request       request
      * @param strClientType 客户端类型
      * @param strUserAgent  用户信息
      * @param oJsonParam    参数
      * @param bindRes       bindingResult
-     * @return 除状态
+     * @return 除状态
      * @throws SelfException selfException
      */
-    @PostMapping(value = ApiURI.URI_XXX_SYS_CHECK_DEL)
-    public ResponseRes<?> delCheck(HttpServletRequest request
+    @PostMapping(value = ApiURI.URI_XXX_SYS_CHECK_CANCEL)
+    public ResponseRes<?> cancelCheck(HttpServletRequest request
             , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
             , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
             , @RequestBody(required = false) @Validated(value = {CommonParamValidSK.class}) GisSurveyCheckParams oJsonParam
@@ -208,18 +147,19 @@ public class ApiGisSurveyController {
                         , oJsonParam));
         //构建result
         ResponseRes<Boolean> resResult = new ResponseRes<>();
-        resResult.setResmsg(MSG_FAILED);
-        //执行删除返回
-        GisSurveySystemCheckResult delResult = gisSurveyBizService.delResult(oJsonParam);
+        resResult.setRescode(ResponseCode.RESULT_SYSTEM_CHECK_CANCEL_FAILED.toStrCode());
+        resResult.setResmsg(ResponseCode.RESULT_SYSTEM_CHECK_CANCEL_FAILED.toStrMsg());
+        //清除检查
+        GisSurveySystemCheckResult cancelCheck = gisSurveyBizService.cancelCheck(oJsonParam);
         //成功
-        if (Objects.equals(delResult.getCheckStatus(), GisSurveyCheckStatusEnum.SUCCESS.getCode())) {
+        if (Objects.equals(cancelCheck.getCheckStatus(), GisSurveyCheckStatusEnum.SUCCESS.getCode())) {
             resResult.setRescode(ResponseCode.STATUS_SUCCESS.toStrCode());
-            resResult.setResmsg(MSG_SUCCESS);
+            resResult.setResmsg(ResponseCode.STATUS_SUCCESS.toStrMsg());
         }
         //不存在
-        else if (Objects.equals(delResult.getCheckStatus(), GisSurveyCheckStatusEnum.NOT_EXISTS.getCode())) {
-            resResult.setRescode(ResponseCode.STATUS_SUCCESS.toStrCode());
-            resResult.setResmsg(MSG_NOT_EXISTS);
+        else if (Objects.equals(cancelCheck.getCheckStatus(), GisSurveyCheckStatusEnum.NOT_EXISTS.getCode())) {
+            resResult.setRescode(ResponseCode.RESULT_SYSTEM_CHECK_NOT_FOUND.toStrCode());
+            resResult.setResmsg(ResponseCode.RESULT_SYSTEM_CHECK_NOT_FOUND.toStrMsg());
         }
         //end
         resResult.setTimestamp(System.currentTimeMillis());