diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppTestController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppTestController.java index 11dbaf4..66302de 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppTestController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppTestController.java @@ -1,33 +1,29 @@ package com.heyu.api.controller.vv; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; import com.heyu.api.alibaba.request.vv.AppOrderRequest; import com.heyu.api.common.annotation.Describe; import com.heyu.api.data.dao.vv.VvAllDataDao; import com.heyu.api.data.dao.vv.VvChartConfigDao; import com.heyu.api.data.dao.vv.VvCreateDataConfigDao; -import com.heyu.api.data.entity.vv.VvAllDataEntity; +import com.heyu.api.data.dto.VvCreateDataConfigDTO; import com.heyu.api.data.entity.vv.VvChartConfigEntity; import com.heyu.api.data.entity.vv.VvCreateDataConfigEntity; -import com.heyu.api.data.utils.*; +import com.heyu.api.data.utils.ChartUtil; +import com.heyu.api.data.utils.R; import com.heyu.api.oss.OssFileUploadService; -import com.heyu.api.oss.OssUploadResult; +import com.heyu.api.schedule.CronTriggerUtils; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.text.StrSubstitutor; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.CollectionUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; +import java.util.Date; import java.util.List; -import java.util.Map; @Slf4j @@ -53,33 +49,33 @@ public class AppTestController { @Autowired private VvChartConfigDao vvChartConfigDao; + + + + @Value("${eb.config.rabbitQueue.createDataQueue}") + private String createDataQueue; + + + @Value("${eb.config.rabbitQueue.sendDingDingQueue}") + private String sendDingDingQueue; + + @Autowired + private RabbitTemplate rabbitTemplate; + + // /app/test/insert @Describe("测试数据插入") @RequestMapping("/insert") public R list(@RequestBody AppOrderRequest vvOrderRequest) { - VvCreateDataConfigEntity vvCreateDataConfigDTO = vvCreateDataConfigDao.selectVvCreateDataConfigById(16L); - - - String configSql = vvCreateDataConfigDTO.getSqlConfig(); - String paramsConfig = vvCreateDataConfigDTO.getParamsConfig(); - - Map valuesMap = new HashMap(); - Map paramMap = JSONObject.parseObject(paramsConfig, Map.class); - for (Map.Entry entry : paramMap.entrySet()) { - valuesMap.put(entry.getKey(), ExpressionParse.getValue(entry.getValue() + "")); + List vvCreateDataConfigEntityList = vvCreateDataConfigDao.selectVvCreateDataConfigByAll(); + Date now = new Date(); + for (VvCreateDataConfigEntity vvCreateDataConfigEntity : vvCreateDataConfigEntityList) { + VvCreateDataConfigDTO dto = new VvCreateDataConfigDTO(); + BeanUtils.copyProperties(vvCreateDataConfigEntity, dto); + dto.setRunDate(CronTriggerUtils.cronCurrentDate(now, vvCreateDataConfigEntity.getCronExp())); + rabbitTemplate.convertAndSend(createDataQueue, JSON.toJSONString(dto)); } - StrSubstitutor sub = new StrSubstitutor(valuesMap); - String resolvedString = sub.replace(configSql); - List> mapList = vvAllDataDao.selectSQL(resolvedString); - if (!CollectionUtils.isEmpty(mapList)) { - for (Map objectMap : mapList) { - - VvAllDataEntity vvAllDataEntity = JSONObject.parseObject(JSON.toJSONString(objectMap), VvAllDataEntity.class); - vvAllDataEntity.setCreateTimestamp(System.currentTimeMillis()); - vvAllDataDao.insert(vvAllDataEntity); - } - } return R.ok(); @@ -90,63 +86,11 @@ public class AppTestController { @RequestMapping("/chart") public R chart(@RequestBody AppOrderRequest vvOrderRequest) throws Exception { - VvChartConfigEntity vvChartConfigEntity = vvChartConfigDao.selectVvChartConfigById(1L); - - String configSql = vvChartConfigEntity.getSqlConfig(); - String paramsConfig = vvChartConfigEntity.getParamsConfig(); - - Map valuesMap = new HashMap(); - Map paramMap = JSONObject.parseObject(paramsConfig, Map.class); - for (Map.Entry entry : paramMap.entrySet()) { - valuesMap.put(entry.getKey(), ExpressionParse.getValue(entry.getValue() + "")); + List vvChartConfigEntities = vvChartConfigDao.selectVvChartConfigByAll(); + for (VvChartConfigEntity vvChartConfigEntity : vvChartConfigEntities) { + rabbitTemplate.convertAndSend(sendDingDingQueue, JSON.toJSONString(vvChartConfigEntity)); } - StrSubstitutor sub = new StrSubstitutor(valuesMap); - String resolvedString = sub.replace(configSql); - - - String headerName = ""; - String xName = ""; - String yName = ""; - - List list = new ArrayList<>(); - - List> mapList = vvAllDataDao.selectSQL(resolvedString); - if (!CollectionUtils.isEmpty(mapList)) { - for (Map objectMap : mapList) { - VvAllDataEntity vvAllDataEntity = JSONObject.parseObject(JSON.toJSONString(objectMap), VvAllDataEntity.class); - - LineChartDTO lineChartDTO = new LineChartDTO(); - lineChartDTO.setName(vvAllDataEntity.getName()); - lineChartDTO.setX(vvAllDataEntity.getX()); - lineChartDTO.setY(vvAllDataEntity.getY()); - - headerName = vvAllDataEntity.getHeaderTitle(); - xName = vvAllDataEntity.getXTitle(); - yName = vvAllDataEntity.getYTitle(); - - list.add(lineChartDTO); - } - } - String chartPic = chartUtil.makeLineAndShapeChart2(headerName, xName, yName, list); - - File file1 = new File(chartPic); - - - - String picUrl = "repayPic/repayChart" +System.currentTimeMillis()+ ".jpg"; - - InputStream inputStream = new FileInputStream(file1); - - OssUploadResult ossUploadResult = ossFileUploadService.uploadImageToOss(inputStream, picUrl, Integer.parseInt(String.valueOf(file1.length()))); - - // file1.delete(); - - String url = ossUploadResult.getUrl(); - log.info("chartPic :{} url:{}",chartPic,url); - - GouDeZhaoDDUtils.sendMarkDownOrder(headerName,url); - return R.ok(); } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/schedule/CronTriggerUtils.java b/api-web/api-interface/src/main/java/com/heyu/api/schedule/CronTriggerUtils.java index 44308c9..ffc28db 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/schedule/CronTriggerUtils.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/schedule/CronTriggerUtils.java @@ -110,11 +110,9 @@ public class CronTriggerUtils { - public static boolean isRun(Date time, String cronExpression) { + public static boolean isRun(Date date, String cronExpression) { try { - Date dateStr = DateUtils.formateDate(time, "yyyy-MM-dd HH:mm:00"); - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date date = DateUtils.parseDate(dateFormat.format(dateStr)); + CronExpression cronMonth = new CronExpression(cronExpression); if (cronMonth.isSatisfiedBy(date)) { return true; @@ -210,7 +208,7 @@ public class CronTriggerUtils { // // 0 15 10 ? * 6#3:每月的第三个星期五上午 10:15 触发 public static void main(String[] args) throws Exception { - String cronExpression = "0 */1 * * * ?"; + String cronExpression = "0 0 6 * * ?"; CronExpression cronMonth = new CronExpression(cronExpression); Date date = DateUtils.formateDate(new Date(), "yyyy-MM-dd HH:mm:00"); diff --git a/api-web/api-interface/src/main/java/com/heyu/api/schedule/impl/TestJob.java b/api-web/api-interface/src/main/java/com/heyu/api/schedule/impl/TestJob.java index b1f10e1..6f8e718 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/schedule/impl/TestJob.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/schedule/impl/TestJob.java @@ -7,6 +7,7 @@ import com.heyu.api.data.dao.vv.VvCreateDataConfigDao; import com.heyu.api.data.dto.VvCreateDataConfigDTO; import com.heyu.api.data.entity.vv.VvChartConfigEntity; import com.heyu.api.data.entity.vv.VvCreateDataConfigEntity; +import com.heyu.api.data.utils.DateUtils; import com.heyu.api.schedule.CronTriggerUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.core.RabbitTemplate; @@ -15,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; @@ -43,18 +45,25 @@ public class TestJob { public void test() { List vvCreateDataConfigEntityList = createDataConfigDao.selectVvCreateDataConfigByAll(); Date now = new Date(); + Date dateStr = DateUtils.formateDate(now, "yyyy-MM-dd HH:mm:00"); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date = DateUtils.parseDate(dateFormat.format(dateStr)); for (VvCreateDataConfigEntity vvCreateDataConfigEntity : vvCreateDataConfigEntityList) { - if (CronTriggerUtils.isRun(now, vvCreateDataConfigEntity.getCronExp())) { + boolean isRun = CronTriggerUtils.isRun(date, vvCreateDataConfigEntity.getCronExp()); + log.info("VvCreateDataConfigEntity current date :{} , cronExp:{},isRun:{}", dateFormat.format(dateStr), vvCreateDataConfigEntity.getCronExp(), isRun); + if (isRun) { VvCreateDataConfigDTO dto = new VvCreateDataConfigDTO(); BeanUtils.copyProperties(vvCreateDataConfigEntity, dto); - dto.setRunDate(CronTriggerUtils.cronCurrentDate(now, vvCreateDataConfigEntity.getCronExp())); + dto.setRunDate(dateFormat.format(dateStr)); rabbitTemplate.convertAndSend(createDataQueue, JSON.toJSONString(dto)); } } List vvChartConfigEntities = vvChartConfigDao.selectVvChartConfigByAll(); for (VvChartConfigEntity vvChartConfigEntity : vvChartConfigEntities) { - if (CronTriggerUtils.isRun(now, vvChartConfigEntity.getCronExp())) { + boolean isRun = CronTriggerUtils.isRun(now, vvChartConfigEntity.getCronExp()); + log.info("VvChartConfigEntity current date :{} , cronExp:{},isRun:{}", dateFormat.format(dateStr), vvChartConfigEntity.getCronExp(), isRun); + if (isRun) { rabbitTemplate.convertAndSend(sendDingDingQueue, JSON.toJSONString(vvChartConfigEntity)); } } diff --git a/api-web/api-interface/src/main/resources/bootstrap.yml b/api-web/api-interface/src/main/resources/bootstrap.yml index 8cef8a7..4650faa 100644 --- a/api-web/api-interface/src/main/resources/bootstrap.yml +++ b/api-web/api-interface/src/main/resources/bootstrap.yml @@ -58,8 +58,8 @@ eb: accountLogName: ACCOUNT_LOG_NAME postCodeData: post_code_data urlStatisticQueue: URL_STATISTIC_QUEUE - createDataQueue: CREATE_DATA_QUEUE - sendDingDingQueue: SEND_DING_DING_QUEUE + createDataQueue: CREATE_DATA_QUEUE_TEST + sendDingDingQueue: SEND_DING_DING_QUEUE_TEST tencent: