From 8e4be5300e019b74e019538657dc2f6beaecd68d Mon Sep 17 00:00:00 2001 From: wujingtao Date: Fri, 4 Mar 2022 14:21:28 +0800 Subject: [PATCH] =?UTF-8?q?Dmp=E5=8F=91=E9=80=81=E9=82=AE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dmpMonitor/domian/DmpMonitorNumDto.java | 18 ++++++- .../dmpMonitor/request/FtpRequest.java | 4 +- .../dmpMonitor/request/HttpRequestRds.java | 24 +++++---- .../rest/StatisticsDmpController.java | 15 +++--- .../impl/StatisticsDmpServiceImpl.java | 52 ++++++++++--------- 5 files changed, 68 insertions(+), 45 deletions(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/domian/DmpMonitorNumDto.java b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/domian/DmpMonitorNumDto.java index c04108e..758dd54 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/domian/DmpMonitorNumDto.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/domian/DmpMonitorNumDto.java @@ -1,5 +1,6 @@ package me.zhengjie.modules.dmpMonitor.domian; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import javax.validation.constraints.NotNull; @@ -12,12 +13,27 @@ import java.util.List; */ @Data public class DmpMonitorNumDto { + /** + * 开始时间 + */ @NotNull + + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date startTime; + /** + * 结束时间 + */ @NotNull + + @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; + /** + * tags + */ @NotNull private List tags; - + /** + * 邮箱 + */ private String mail; } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/request/FtpRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/request/FtpRequest.java index 6bd7cb8..c2f33ef 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/request/FtpRequest.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/request/FtpRequest.java @@ -4,7 +4,6 @@ import cn.hutool.extra.ssh.JschUtil; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.Session; import com.jcraft.jsch.SftpException; -import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import me.zhengjie.exception.BadRequestException; import org.springframework.beans.factory.annotation.Value; @@ -27,10 +26,11 @@ public class FtpRequest { @Value("${remote.link.file-base-path-linux}") private String fileBasePathLinux; - public String ftpUpload(String path) { + public String ftpUpload(String path) { String linePath = ""; try { Session session = JschUtil.getSession("116.62.197.152", 22, "root", "yuyou@ECS2020"); +// Session session = JschUtil.getSession("172.18.0.176", 22, "wujingtao", "123456"); ChannelSftp sftp = (ChannelSftp) session.openChannel("sftp"); sftp.connect(); log.info("连接成功"); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/request/HttpRequestRds.java b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/request/HttpRequestRds.java index b1ab498..3a8085d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/request/HttpRequestRds.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/request/HttpRequestRds.java @@ -22,26 +22,26 @@ import java.util.Map; public class HttpRequestRds { @Value("${callback.url}") - private String URL; + private String url; public Map generateDmp(String tag, Integer type) { - String reqUrl = URL + "/generate/dmp?" + "tag=" + tag + "&type=" + type; + String reqUrl = url + "/generate/dmp?" + "tag=" + tag + "&type=" + type; String getResult = HttpUtil .createGet(reqUrl) .execute() .charset("utf-8") .body(); JSONObject jsonObject = JSONUtil.parseObj(getResult); - String status= jsonObject.get("status").toString(); + String status = jsonObject.get("status").toString(); Map map = new HashMap<>(); - map.put("status",status); - if (status.equals("1")){ + map.put("status", status); + if ("1".equals(status)) { String msg = jsonObject.get("msg").toString(); - map.put("data",msg); - }else{ + map.put("data", msg); + } else { String data = jsonObject.get("data").toString(); - map.put("data",data); + map.put("data", data); } return map; } @@ -54,7 +54,9 @@ public class HttpRequestRds { */ public String rdsRequest(String filePath) { String link = ""; - HttpResponse response = getRequest("http://162.62.197.152:8000/api/temp/file/link/nofile", filePath); +// 116.62.197.152 + String url = "http://116.62.197.152:8000/api/temp/file/link/nofile?filePath=" + filePath; + HttpResponse response = getRequest(url, ""); if (response.isOk()) { JSONObject jsonObject = JSONUtil.parseObj(response.body()); link = jsonObject.getStr("data"); @@ -64,7 +66,7 @@ public class HttpRequestRds { public Map callBackNumByTags(DmpMonitorNumDto dmp) { JSONObject jsonObject = new JSONObject(); - HttpResponse response = getRequest("http://47.110.11.213:9191/api/dmp/imeiNumber", JSONUtil.toJsonStr(dmp)); + HttpResponse response = getRequest(url + "/api/dmp/imeiNumber", JSONUtil.toJsonStr(dmp)); if (response.isOk()) { jsonObject = JSONUtil.parseObj(response.body()); } @@ -74,7 +76,7 @@ public class HttpRequestRds { public Map callBackImeiLink(DmpMonitorNumDto dmp) { JSONObject jsonObject = new JSONObject(); // http://47.110.11.213:9191/api/dmp/imeiLink - HttpResponse response = getRequest("http://47.110.11.213:9191/api/dmp/imeiLink", JSONUtil.toJsonStr(dmp)); + HttpResponse response = getRequest(url + "/api/dmp/imeiLink", JSONUtil.toJsonStr(dmp)); if (response.isOk()) { jsonObject = JSONUtil.parseObj(response.body()); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/rest/StatisticsDmpController.java b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/rest/StatisticsDmpController.java index 5e3fc0c..e9b3026 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/rest/StatisticsDmpController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/rest/StatisticsDmpController.java @@ -8,14 +8,15 @@ import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.dmpMonitor.domian.DmpMonitorNumDto; import me.zhengjie.modules.dmpMonitor.request.HttpRequestRds; import me.zhengjie.modules.dmpMonitor.service.StatisticsDmpService; -import org.apache.commons.lang3.StringUtils; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.Map; -import java.util.prefs.BackingStoreException; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; /** @@ -34,15 +35,15 @@ public class StatisticsDmpController { @Log("获取数目") @ApiOperation("导出数据") @PostMapping(value = "/number") - @PreAuthorize("@el.check('Dmp:list')") - public ResponseEntity getDmpNumByTags(DmpMonitorNumDto conditionDto) { +// @PreAuthorize("@el.check('Dmp:list')") + public ResponseEntity getDmpNumByTags(@RequestBody DmpMonitorNumDto conditionDto) { return new ResponseEntity<>(statisticsDmpService.queryNumByTags(conditionDto), HttpStatus.OK); } @Log("发送邮件") @ApiOperation("发送邮件") @PostMapping(value = "/sendMail") - public ResponseEntity sendEmail(DmpMonitorNumDto conditionDto) { + public ResponseEntity sendEmail(@RequestBody DmpMonitorNumDto conditionDto) { statisticsDmpService.sendEmail(conditionDto); return new ResponseEntity<>(HttpStatus.OK); } @@ -57,7 +58,7 @@ public class StatisticsDmpController { Map map = httpRequestRds.generateDmp(tag, type); String status = map.get("status"); String data = map.get("data"); - if (status.equals("1")){ + if ("1".equals(status)){ throw new BadRequestException(data); } return new ResponseEntity<>(data,HttpStatus.OK); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/service/impl/StatisticsDmpServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/service/impl/StatisticsDmpServiceImpl.java index 43ded33..eab7bea 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/service/impl/StatisticsDmpServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/dmpMonitor/service/impl/StatisticsDmpServiceImpl.java @@ -17,7 +17,6 @@ import me.zhengjie.service.EmailService; import me.zhengjie.utils.FileUtil; import org.springframework.stereotype.Service; -import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -46,22 +45,25 @@ public class StatisticsDmpServiceImpl implements StatisticsDmpService { throw new BadRequestException("邮箱地址不能为空"); } Map map = httpRequestRds.callBackImeiLink(conditionDto); - map.forEach((k, v) -> { - //生成文件 - String path = buildPathUtils.buildFileDmpPath(k, conditionDto.getStartTime(), conditionDto.getEndTime()); - ExcelWriter writer = ExcelUtil.getWriter(path + ".xlsx"); - writer.write(getData(v), true); - writer.close(); - }); - String contentPath = buildPathUtils.buildFileDmpZipPath(); - String zipPath = buildPathUtils.buildFilePath() + ".zip"; - File zip = ZipUtil.zip(contentPath, zipPath); + List> lists = getData(map); + //生成文件 + String path = buildPathUtils.buildFilePath(); + ExcelWriter writer = ExcelUtil.getWriter(path + ".xlsx"); + writer.write(lists, true); + writer.close(); + //压缩 + ZipUtil.zip(path + ".xlsx"); //上传文件到大数据平台 - String s = ftpRequest.ftpUpload(zipPath); + String s = ftpRequest.ftpUpload(path + ".zip"); //远程调用生成短链 String link = httpRequestRds.rdsRequest(s); + //删除临时文件 + FileUtil.del(path); + FileUtil.del(path + ".xlsx"); + FileUtil.del(path + ".zip"); + //发送邮件 EmailVo emailVo = new EmailVo(); List list = new ArrayList<>(); @@ -70,21 +72,23 @@ public class StatisticsDmpServiceImpl implements StatisticsDmpService { emailVo.setSubject("一次性短链"); emailVo.setContent(link); emailService.send(emailVo, emailService.find()); - System.out.println(link); - - //删除临时文件 - FileUtil.del(contentPath); - FileUtil.del(zip); } - private List> getData(Object v) { + private List> getData(Map map) { List> data = new ArrayList<>(); - List list = (List) v; - for (String info : list) { - List rows = new ArrayList<>(); - rows.add(info); - data.add(rows); - } + List row0 = new ArrayList<>(); + row0.add("imei"); + row0.add("tag"); + data.add(row0); + map.forEach((k, v) -> { + List list = (List) v; + for (String info : list) { + List rows = new ArrayList<>(); + rows.add(info); + rows.add(k); + data.add(rows); + } + }); return data; } }