Dmp发送邮件

master
wujingtao 3 years ago
parent 28daa64ef5
commit 8e4be5300e

@ -1,5 +1,6 @@
package me.zhengjie.modules.dmpMonitor.domian; package me.zhengjie.modules.dmpMonitor.domian;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@ -12,12 +13,27 @@ import java.util.List;
*/ */
@Data @Data
public class DmpMonitorNumDto { public class DmpMonitorNumDto {
/**
*
*/
@NotNull @NotNull
@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date startTime; private Date startTime;
/**
*
*/
@NotNull @NotNull
@JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime; private Date endTime;
/**
* tags
*/
@NotNull @NotNull
private List<String> tags; private List<String> tags;
/**
*
*/
private String mail; private String mail;
} }

@ -4,7 +4,6 @@ import cn.hutool.extra.ssh.JschUtil;
import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.Session; import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException; import com.jcraft.jsch.SftpException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import me.zhengjie.exception.BadRequestException; import me.zhengjie.exception.BadRequestException;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@ -27,10 +26,11 @@ public class FtpRequest {
@Value("${remote.link.file-base-path-linux}") @Value("${remote.link.file-base-path-linux}")
private String fileBasePathLinux; private String fileBasePathLinux;
public String ftpUpload(String path) { public String ftpUpload(String path) {
String linePath = ""; String linePath = "";
try { try {
Session session = JschUtil.getSession("116.62.197.152", 22, "root", "yuyou@ECS2020"); 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"); ChannelSftp sftp = (ChannelSftp) session.openChannel("sftp");
sftp.connect(); sftp.connect();
log.info("连接成功"); log.info("连接成功");

@ -22,26 +22,26 @@ import java.util.Map;
public class HttpRequestRds { public class HttpRequestRds {
@Value("${callback.url}") @Value("${callback.url}")
private String URL; private String url;
public Map<String, String> generateDmp(String tag, Integer type) { public Map<String, String> 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 String getResult = HttpUtil
.createGet(reqUrl) .createGet(reqUrl)
.execute() .execute()
.charset("utf-8") .charset("utf-8")
.body(); .body();
JSONObject jsonObject = JSONUtil.parseObj(getResult); JSONObject jsonObject = JSONUtil.parseObj(getResult);
String status= jsonObject.get("status").toString(); String status = jsonObject.get("status").toString();
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();
map.put("status",status); map.put("status", status);
if (status.equals("1")){ if ("1".equals(status)) {
String msg = jsonObject.get("msg").toString(); String msg = jsonObject.get("msg").toString();
map.put("data",msg); map.put("data", msg);
}else{ } else {
String data = jsonObject.get("data").toString(); String data = jsonObject.get("data").toString();
map.put("data",data); map.put("data", data);
} }
return map; return map;
} }
@ -54,7 +54,9 @@ public class HttpRequestRds {
*/ */
public String rdsRequest(String filePath) { public String rdsRequest(String filePath) {
String link = ""; 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()) { if (response.isOk()) {
JSONObject jsonObject = JSONUtil.parseObj(response.body()); JSONObject jsonObject = JSONUtil.parseObj(response.body());
link = jsonObject.getStr("data"); link = jsonObject.getStr("data");
@ -64,7 +66,7 @@ public class HttpRequestRds {
public Map<String, Object> callBackNumByTags(DmpMonitorNumDto dmp) { public Map<String, Object> callBackNumByTags(DmpMonitorNumDto dmp) {
JSONObject jsonObject = new JSONObject(); 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()) { if (response.isOk()) {
jsonObject = JSONUtil.parseObj(response.body()); jsonObject = JSONUtil.parseObj(response.body());
} }
@ -74,7 +76,7 @@ public class HttpRequestRds {
public Map<String, Object> callBackImeiLink(DmpMonitorNumDto dmp) { public Map<String, Object> callBackImeiLink(DmpMonitorNumDto dmp) {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
// http://47.110.11.213:9191/api/dmp/imeiLink // 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()) { if (response.isOk()) {
jsonObject = JSONUtil.parseObj(response.body()); jsonObject = JSONUtil.parseObj(response.body());
} }

@ -8,14 +8,15 @@ import me.zhengjie.exception.BadRequestException;
import me.zhengjie.modules.dmpMonitor.domian.DmpMonitorNumDto; import me.zhengjie.modules.dmpMonitor.domian.DmpMonitorNumDto;
import me.zhengjie.modules.dmpMonitor.request.HttpRequestRds; import me.zhengjie.modules.dmpMonitor.request.HttpRequestRds;
import me.zhengjie.modules.dmpMonitor.service.StatisticsDmpService; import me.zhengjie.modules.dmpMonitor.service.StatisticsDmpService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.Map; 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("获取数目") @Log("获取数目")
@ApiOperation("导出数据") @ApiOperation("导出数据")
@PostMapping(value = "/number") @PostMapping(value = "/number")
@PreAuthorize("@el.check('Dmp:list')") // @PreAuthorize("@el.check('Dmp:list')")
public ResponseEntity<Object> getDmpNumByTags(DmpMonitorNumDto conditionDto) { public ResponseEntity<Object> getDmpNumByTags(@RequestBody DmpMonitorNumDto conditionDto) {
return new ResponseEntity<>(statisticsDmpService.queryNumByTags(conditionDto), HttpStatus.OK); return new ResponseEntity<>(statisticsDmpService.queryNumByTags(conditionDto), HttpStatus.OK);
} }
@Log("发送邮件") @Log("发送邮件")
@ApiOperation("发送邮件") @ApiOperation("发送邮件")
@PostMapping(value = "/sendMail") @PostMapping(value = "/sendMail")
public ResponseEntity<Object> sendEmail(DmpMonitorNumDto conditionDto) { public ResponseEntity<Object> sendEmail(@RequestBody DmpMonitorNumDto conditionDto) {
statisticsDmpService.sendEmail(conditionDto); statisticsDmpService.sendEmail(conditionDto);
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }
@ -57,7 +58,7 @@ public class StatisticsDmpController {
Map<String, String> map = httpRequestRds.generateDmp(tag, type); Map<String, String> map = httpRequestRds.generateDmp(tag, type);
String status = map.get("status"); String status = map.get("status");
String data = map.get("data"); String data = map.get("data");
if (status.equals("1")){ if ("1".equals(status)){
throw new BadRequestException(data); throw new BadRequestException(data);
} }
return new ResponseEntity<>(data,HttpStatus.OK); return new ResponseEntity<>(data,HttpStatus.OK);

@ -17,7 +17,6 @@ import me.zhengjie.service.EmailService;
import me.zhengjie.utils.FileUtil; import me.zhengjie.utils.FileUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -46,22 +45,25 @@ public class StatisticsDmpServiceImpl implements StatisticsDmpService {
throw new BadRequestException("邮箱地址不能为空"); throw new BadRequestException("邮箱地址不能为空");
} }
Map<String, Object> map = httpRequestRds.callBackImeiLink(conditionDto); Map<String, Object> map = httpRequestRds.callBackImeiLink(conditionDto);
map.forEach((k, v) -> { List<List<String>> lists = getData(map);
//生成文件 //生成文件
String path = buildPathUtils.buildFileDmpPath(k, conditionDto.getStartTime(), conditionDto.getEndTime()); String path = buildPathUtils.buildFilePath();
ExcelWriter writer = ExcelUtil.getWriter(path + ".xlsx"); ExcelWriter writer = ExcelUtil.getWriter(path + ".xlsx");
writer.write(getData(v), true); writer.write(lists, true);
writer.close(); writer.close();
}); //压缩
String contentPath = buildPathUtils.buildFileDmpZipPath(); ZipUtil.zip(path + ".xlsx");
String zipPath = buildPathUtils.buildFilePath() + ".zip";
File zip = ZipUtil.zip(contentPath, zipPath);
//上传文件到大数据平台 //上传文件到大数据平台
String s = ftpRequest.ftpUpload(zipPath); String s = ftpRequest.ftpUpload(path + ".zip");
//远程调用生成短链 //远程调用生成短链
String link = httpRequestRds.rdsRequest(s); String link = httpRequestRds.rdsRequest(s);
//删除临时文件
FileUtil.del(path);
FileUtil.del(path + ".xlsx");
FileUtil.del(path + ".zip");
//发送邮件 //发送邮件
EmailVo emailVo = new EmailVo(); EmailVo emailVo = new EmailVo();
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
@ -70,21 +72,23 @@ public class StatisticsDmpServiceImpl implements StatisticsDmpService {
emailVo.setSubject("一次性短链"); emailVo.setSubject("一次性短链");
emailVo.setContent(link); emailVo.setContent(link);
emailService.send(emailVo, emailService.find()); emailService.send(emailVo, emailService.find());
System.out.println(link);
//删除临时文件
FileUtil.del(contentPath);
FileUtil.del(zip);
} }
private List<List<String>> getData(Object v) { private List<List<String>> getData(Map<String, Object> map) {
List<List<String>> data = new ArrayList<>(); List<List<String>> data = new ArrayList<>();
List<String> list = (List<String>) v; List<String> row0 = new ArrayList<>();
for (String info : list) { row0.add("imei");
List<String> rows = new ArrayList<>(); row0.add("tag");
rows.add(info); data.add(row0);
data.add(rows); map.forEach((k, v) -> {
} List<String> list = (List<String>) v;
for (String info : list) {
List<String> rows = new ArrayList<>();
rows.add(info);
rows.add(k);
data.add(rows);
}
});
return data; return data;
} }
} }

Loading…
Cancel
Save