Parcourir la source

场景计算统计

dsx il y a 1 an
Parent
commit
07c055bf3b

+ 1 - 0
src/main/java/com/fdkankan/job/job/SceneCallCountHandler.java

@@ -57,6 +57,7 @@ public class SceneCallCountHandler {
     public static final String DINGTALK_MSG_PATTERN =
             "**日期**: %s\n\n" +
             "**环境**: %s\n\n" +
+            "**负责人**: @邓思行\n\n" +
             "%s" +
             "%s" +
             "**错误日志**: \n\n%s";

+ 2 - 0
src/main/java/com/fdkankan/job/service/ISceneProService.java

@@ -20,4 +20,6 @@ public interface ISceneProService extends IService<ScenePro> {
 
     List<SceneBean> listCleanOss4DeletedScene(int month);
 
+    ScenePro getByNum(String num);
+
 }

+ 39 - 16
src/main/java/com/fdkankan/job/service/impl/InnerApiServiceImpl.java

@@ -7,16 +7,16 @@ import com.alibaba.fastjson.JSONObject;
 import com.aliyun.dysmsapi20170525.Client;
 import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
 import com.aliyun.teautil.models.RuntimeOptions;
-import com.fdkankan.common.constant.CommonStatus;
-import com.fdkankan.common.constant.ErrorCode;
-import com.fdkankan.common.constant.SceneSource;
-import com.fdkankan.common.constant.SceneStatus;
+import com.fdkankan.common.constant.*;
 import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.job.dto.SceneBean;
 import com.fdkankan.job.entity.ScenePlus;
 import com.fdkankan.job.entity.ScenePlusExt;
+import com.fdkankan.job.entity.ScenePro;
 import com.fdkankan.job.service.IInnerApiService;
 import com.fdkankan.job.service.IScenePlusExtService;
 import com.fdkankan.job.service.IScenePlusService;
+import com.fdkankan.job.service.ISceneProService;
 import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import com.fdkankan.sms.SmsService;
 import com.fdkankan.web.response.ResultData;
@@ -50,6 +50,8 @@ public class InnerApiServiceImpl implements IInnerApiService {
     private SmsService smsService;
     @Autowired
     private IScenePlusExtService scenePlusExtService;
+    @Autowired
+    private ISceneProService sceneProService;
 
     @Override
     public ResultData sceneBuildNotice(String num, String phone) {
@@ -59,22 +61,32 @@ public class InnerApiServiceImpl implements IInnerApiService {
             throw new BusinessException(ErrorCode.PHONE_VIOLATION);
         }
 
-        ScenePlus scenePlus = scenePlusService.getByNum(num);
-        if(Objects.isNull(scenePlus)){
-            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
-        }
-
         JSONObject result = new JSONObject();
         result.put("num", num);
         result.put("phone", phone);
 
-        if(scenePlus.getSceneStatus() == SceneStatus.SUCCESS.code() || scenePlus.getSceneStatus() == SceneStatus.NO_DISPLAY.code()){
+        Integer status = null;
+        ScenePlus scenePlus = scenePlusService.getByNum(num);
+        ScenePro scenePro = null;
+        if(Objects.isNull(scenePlus)){
+            scenePro = sceneProService.getByNum(num);
+            if(Objects.isNull(scenePro)){
+                throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+            }
+            status = scenePro.getStatus();
+            result.put("version", SceneVersionType.V3.code());
+        }else{
+            status = scenePlus.getSceneStatus();
+            result.put("version", SceneVersionType.V4.code());
+        }
+
+        if(status == SceneStatus.SUCCESS.code() || status == SceneStatus.NO_DISPLAY.code()){
             result.put("status", scenePlus.getSceneStatus());
             result.put("msg", "计算成功");
             return ResultData.ok(result);
         }
 
-        if(scenePlus.getSceneStatus() == SceneStatus.FAILD.code()){
+        if(status == SceneStatus.FAILD.code()){
             result.put("status", scenePlus.getSceneStatus());
             result.put("msg", "计算失败,失败原因请看场景计算报警群消息");
             return ResultData.ok(result);
@@ -89,9 +101,20 @@ public class InnerApiServiceImpl implements IInnerApiService {
     public void sceneBuildNoticeListenerHandler(JSONObject param) throws Exception {
         String num = param.getString("num");
         String phone = param.getString("phone");
-
-        ScenePlus scenePlus = scenePlusService.getByNum(num);
-        if(scenePlus.getSceneStatus() == SceneStatus.wait.code()){
+        String version = param.getString("version");
+
+        String title = "";
+        Integer status = null;
+        if(version.equals(SceneVersionType.V4.code())){
+            ScenePlus scenePlus = scenePlusService.getByNum(num);
+            status = scenePlus.getSceneStatus();
+            title = scenePlus.getTitle();
+        }else{
+            ScenePro scenePro = sceneProService.getByNum(num);
+            status = scenePro.getStatus();
+            title = scenePro.getSceneName();
+        }
+        if(status == SceneStatus.wait.code()){
             try {
                 Thread.sleep(6*1000L);
             } catch (InterruptedException e) {
@@ -102,9 +125,9 @@ public class InnerApiServiceImpl implements IInnerApiService {
         }
         Map<String, String> params = new HashMap<>();
         params.put("num", num);
-        params.put("title", scenePlus.getTitle());
+        params.put("title", title);
         String msg;
-        if(scenePlus.getSceneStatus() == SceneStatus.FAILD.code()){
+        if(status == SceneStatus.FAILD.code()){
             msg = "计算失败,失败原因请看钉钉群【四维看看-计算失败】。";
         }else {
             msg = "计算成功";

+ 5 - 0
src/main/java/com/fdkankan/job/service/impl/SceneProServiceImpl.java

@@ -2,6 +2,7 @@ package com.fdkankan.job.service.impl;
 
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.job.dto.SceneBean;
 import com.fdkankan.job.entity.ScenePro;
 import com.fdkankan.job.mapper.ISceneProMapper;
@@ -38,4 +39,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         return this.baseMapper.listCleanOss4DeletedScene(time);
     }
 
+    @Override
+    public ScenePro getByNum(String num) {
+        return this.getOne(new LambdaQueryWrapper<ScenePro>().eq(ScenePro::getNum, num));
+    }
 }