|
@@ -2,17 +2,26 @@ package com.fdkankan.job.job;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.img.ImgUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.db.Db;
|
|
|
import cn.hutool.db.Entity;
|
|
|
import cn.hutool.db.ds.DSFactory;
|
|
|
import com.alibaba.druid.pool.DruidDataSource;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.fdkankan.common.constant.CommonOperStatus;
|
|
|
import com.fdkankan.common.util.DateExtUtil;
|
|
|
+import com.fdkankan.job.entity.SceneBuildProcessLog;
|
|
|
import com.fdkankan.job.entity.ScenePlus;
|
|
|
import com.fdkankan.job.entity.ScenePro;
|
|
|
import com.fdkankan.job.service.IRepairUpXmlUrlService;
|
|
|
+import com.fdkankan.job.service.ISceneBuildProcessLogService;
|
|
|
+import com.fdkankan.job.service.IScenePlusService;
|
|
|
+import com.fdkankan.job.service.ISceneProService;
|
|
|
+import com.fdkankan.model.constants.SceneBuildProcessType;
|
|
|
import com.xxl.job.core.context.XxlJobHelper;
|
|
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.sql.DataSource;
|
|
@@ -33,21 +42,23 @@ import java.util.List;
|
|
|
@Component
|
|
|
public class SceneCallCountHandler {
|
|
|
|
|
|
+ @Value("${env}")
|
|
|
+ private String env;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IScenePlusService scenePlusService;
|
|
|
+ @Autowired
|
|
|
+ private ISceneProService sceneProService;
|
|
|
+ @Autowired
|
|
|
+ private ISceneBuildProcessLogService sceneBuildProcessLogService;
|
|
|
+
|
|
|
public static final String DINGTALK_MSG_PATTERN =
|
|
|
"**日期**: %s\n\n" +
|
|
|
//国内
|
|
|
"**环境**: 国内\n\n" +
|
|
|
- "pro场景总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n" +
|
|
|
- "plus场景总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n" +
|
|
|
- "**错误日志**: 无\n\n"+
|
|
|
- //国际
|
|
|
- "**环境**: 国际\n\n" +
|
|
|
- "场景总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n" +
|
|
|
- "**错误日志**: 无\n\n" +
|
|
|
- //日本
|
|
|
- "**环境**: 日本\n\n" +
|
|
|
- "场景总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n" +
|
|
|
- "**错误日志**: 无\n\n";
|
|
|
+ "v4场景总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n" +
|
|
|
+ "%s" +
|
|
|
+ "**错误日志**: %s";
|
|
|
|
|
|
@XxlJob("sceneCallCountHandler")
|
|
|
private void repairSceneUpXmlUrlOfVideos() throws SQLException {
|
|
@@ -59,59 +70,49 @@ public class SceneCallCountHandler {
|
|
|
Date dateEnd = DateExtUtil.endOfDay(time);
|
|
|
|
|
|
String sql = "select * from t_scene_plus t where t.create_time > ? and t.create_time < ?";
|
|
|
- String proSql = "select * from t_scene_pro t where t.create_time > ? and t.create_time < ?";
|
|
|
|
|
|
- //国内正式环境
|
|
|
- DataSource db1 = DSFactory.get("group_gn");
|
|
|
//v4场景
|
|
|
int v4Count = 0; int v4success = 0; int v4Fail = 0; int v4Waiting = 0;
|
|
|
- List<ScenePlus> scenePluses = Db.use(db1).query(sql, ScenePlus.class, dateStart, dateEnd);
|
|
|
+ List<ScenePlus> scenePluses = scenePlusService.list(new LambdaQueryWrapper<ScenePlus>().ge(ScenePlus::getCreateTime, dateStart).le(ScenePlus::getCreateTime, dateEnd));
|
|
|
+
|
|
|
if(CollUtil.isNotEmpty(scenePluses)){
|
|
|
v4Count = scenePluses.size();
|
|
|
v4success = (int) scenePluses.stream().filter(plus -> plus.getSceneStatus() == 1 || plus.getSceneStatus() == -2).count();
|
|
|
v4Fail = (int)scenePluses.stream().filter(plus -> plus.getSceneStatus() == -1).count();
|
|
|
v4Waiting = (int)scenePluses.stream().filter(plus -> plus.getSceneStatus() == 0).count();
|
|
|
}
|
|
|
+
|
|
|
//v3场景
|
|
|
- int v3Count = 0; int v3success = 0; int v3Fail = 0; int v3Waiting = 0;
|
|
|
- List<ScenePro> scenePros = Db.use(db1).query(sql, ScenePro.class, dateStart, dateEnd);
|
|
|
- if(CollUtil.isNotEmpty(scenePros)){
|
|
|
- v3Count = scenePros.size();
|
|
|
- v3success = (int) scenePros.stream().filter(plus -> plus.getStatus() == 1 || plus.getStatus() == -2).count();
|
|
|
- v3Fail = (int)scenePros.stream().filter(plus -> plus.getStatus() == -1).count();
|
|
|
- v3Waiting = (int)scenePros.stream().filter(plus -> plus.getStatus() == 0).count();
|
|
|
+ String v3Msg = "";
|
|
|
+ if(env.equals("eur")){
|
|
|
+ int v3Count = 0; int v3success = 0; int v3Fail = 0; int v3Waiting = 0;
|
|
|
+ List<ScenePro> scenePros = sceneProService.list(new LambdaQueryWrapper<ScenePro>().ge(ScenePro::getCreateTime, dateStart).le(ScenePro::getCreateTime, dateEnd));
|
|
|
+ if(CollUtil.isNotEmpty(scenePros)){
|
|
|
+ v3Count = scenePros.size();
|
|
|
+ v3success = (int) scenePros.stream().filter(plus -> plus.getStatus() == 1 || plus.getStatus() == -2).count();
|
|
|
+ v3Fail = (int)scenePros.stream().filter(plus -> plus.getStatus() == -1).count();
|
|
|
+ v3Waiting = (int)scenePros.stream().filter(plus -> plus.getStatus() == 0).count();
|
|
|
+ }
|
|
|
+ v3Msg = String.format("v3场景总数: %d, 成功: %d, 失败: %d, 计算中: %d\n\n", v3Count, v3success, v3Fail, v3Waiting);
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询错误日志
|
|
|
+ StringBuilder errorMsg = new StringBuilder();
|
|
|
+ List<SceneBuildProcessLog> logList = sceneBuildProcessLogService.list(
|
|
|
+ new LambdaQueryWrapper<SceneBuildProcessLog>().eq(SceneBuildProcessLog::getState, CommonOperStatus.FAILD.code()));
|
|
|
+ if(CollUtil.isNotEmpty(logList)){
|
|
|
+ logList.stream().forEach(item->{
|
|
|
+ errorMsg.append("\n\n").append(item.getNum()).append(":").append(SceneBuildProcessType.get(item.getProcess()).message()).append("出错\n\n");
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ errorMsg.append("无");
|
|
|
}
|
|
|
|
|
|
-// //国际环境
|
|
|
-// DataSource dbEur = DSFactory.get("group_gj");
|
|
|
-// //v4场景
|
|
|
-// int v4CountEur = 0; int v4successEur; int v4FailEur = 0; int v4WaitingEur = 0;
|
|
|
-// List<ScenePlus> scenePluses4Eur = Db.use(dbEur).query(sql, ScenePlus.class, dateStart, dateEnd);
|
|
|
-// if(CollUtil.isNotEmpty(scenePluses4Eur)){
|
|
|
-// v4CountEur = scenePluses4Eur.size();
|
|
|
-// v4successEur = (int) scenePluses4Eur.stream().filter(plus -> plus.getSceneStatus() == 1 || plus.getSceneStatus() == -2).count();
|
|
|
-// v4FailEur = (int)scenePluses4Eur.stream().filter(plus -> plus.getSceneStatus() == -1).count();
|
|
|
-// v4WaitingEur = (int)scenePluses4Eur.stream().filter(plus -> plus.getSceneStatus() == 0).count();
|
|
|
-// }
|
|
|
-//
|
|
|
-// //日本环境
|
|
|
-// DataSource dbJp = DSFactory.get("group_jp");
|
|
|
-// //v4场景
|
|
|
-// int v4CountJp = 0; int v4successJp = 0; int v4FailJp = 0; int v4WaitingJp = 0;
|
|
|
-// List<ScenePro> sceneProsJp = Db.use(dbJp).query(proSql, ScenePro.class, dateStart, dateEnd);
|
|
|
-// if(CollUtil.isNotEmpty(sceneProsJp)){
|
|
|
-// v4CountJp = sceneProsJp.size();
|
|
|
-// v4successJp = (int) sceneProsJp.stream().filter(plus -> plus.getStatus() == 1 || plus.getStatus() == -2).count();
|
|
|
-// v4FailJp = (int)sceneProsJp.stream().filter(plus -> plus.getStatus() == -1).count();
|
|
|
-// v4WaitingJp = (int)sceneProsJp.stream().filter(plus -> plus.getStatus() == 0).count();
|
|
|
-// }
|
|
|
|
|
|
String ddMsg = String.format(DINGTALK_MSG_PATTERN, DateExtUtil.format(time, DateExtUtil.dateStyle4),
|
|
|
- v3Count, v3success, v3Fail, v3Waiting,
|
|
|
- v4Count, v4success, v4Fail, v4Waiting
|
|
|
-// ,
|
|
|
-// v4CountJp, v4successJp, v4FailJp, v4WaitingJp
|
|
|
- );
|
|
|
+ v4Count, v4success, v4Fail, v4Waiting,
|
|
|
+ v3Msg,
|
|
|
+ errorMsg);
|
|
|
|
|
|
XxlJobHelper.log(ddMsg);
|
|
|
XxlJobHelper.log("sceneCallCountHandler end.....");
|