Sfoglia il codice sorgente

1.商品预警邮件发送改为发送html格式

2.预警结果新增字段平台和比对状态
wq_dev
wangqiang 1 mese fa
parent
commit
db20550fa3

+ 10
- 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/ZsOperationWarnresult.java Vedi File

@@ -69,4 +69,14 @@ public class ZsOperationWarnresult {
*/
private String snapshotUrl;

/**
* 平台
*/
private String platform;

/**
* 比对状态
*/
private Integer compareStatus;

}

+ 11
- 1
ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/ZsOperationWarnresultBo.java Vedi File

@@ -82,8 +82,18 @@ public class ZsOperationWarnresultBo extends BaseEntity {
/**
* 图片快照
*/
@NotBlank(message = "图片快照不能为空", groups = { AddGroup.class, EditGroup.class })
// @NotBlank(message = "图片快照不能为空", groups = { AddGroup.class, EditGroup.class })
private String snapshotUrl;
/**
* 平台
*/
private String platform;

/**
* 比对状态
*/
private Integer compareStatus;



}

+ 13
- 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/ZsOperationWarnresultVo.java Vedi File

@@ -98,5 +98,18 @@ public class ZsOperationWarnresultVo {
@ExcelProperty(value = "图片快照")
private String snapshotUrl;

/**
* 平台
*/
@ExcelProperty(value = "平台", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "zs_operation_platform")
private String platform;

/**
* 比对状态
*/
@ExcelProperty(value = "比对状态")
@ExcelDictFormat(dictType = "zs_operation_compare_status")
private Integer compareStatus;

}

+ 1
- 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ZsOperationWarnresultServiceImpl.java Vedi File

@@ -73,6 +73,7 @@ public class ZsOperationWarnresultServiceImpl implements IZsOperationWarnresultS
lqw.like(StringUtils.isNotBlank(bo.getGoodsSkuName()), ZsOperationWarnresult::getGoodsSkuName, bo.getGoodsSkuName());
lqw.eq(StringUtils.isNotBlank(bo.getGoodsSkuSn()), ZsOperationWarnresult::getGoodsSkuSn, bo.getGoodsSkuSn());
lqw.eq(bo.getStatus() != null, ZsOperationWarnresult::getStatus, bo.getStatus());
lqw.eq(bo.getCompareStatus() != null, ZsOperationWarnresult::getCompareStatus, bo.getCompareStatus());
return lqw;
}


+ 19
- 4
ruoyi-system/src/main/java/com/ruoyi/system/task/MonitorTaskScheduler.java Vedi File

@@ -21,6 +21,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalTime;
import java.util.Date;
import java.util.List;
@@ -149,11 +150,23 @@ public class MonitorTaskScheduler {
zsOperationWarnresult.setCurPrice(newPrice);
zsOperationWarnresult.setPriceChangeRatio(percentageChange.toString());
zsOperationWarnresult.setWarnTypes(warnTypes);
String warnContent = "商品编号:"+newSn+"价格发生变动!"+
"原价格=:"+initPrice+"新价格=:"+newPrice.doubleValue();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String warnDate = sdf.format(zsOperationWarnresult.getWarnTime());
String warnContent = "<html>" +
"<h2>商品价格发生变动!</h2>"+
"<p>商品名称=:"+zsOperationGoods.getGoodsSkuName()+"</p>"+
"<p>商品编号=:"+newSn+"</p>"+
"<p>商品url=:"+curUrl+"</p>"+
"<p>原价格=:"+initPrice+"</p>"+
"<p>新价格=:"+newPrice.doubleValue()+"</p>"+
"<p>预警时间=:"+warnDate+"</p>"+
"<p>图片=:"+"<img src=\""+dataMap.get("screenshotUrl")+"\" ></p>"+
"</html>";
zsOperationWarnresult.setWarnContent(warnContent);
zsOperationWarnresult.setSnapshotUrl((String)dataMap.get("screenshotUrl"));
zsOperationWarnresult.setStatus(0);
zsOperationWarnresult.setPlatform(zsOperationGoods.getPlatform());
zsOperationWarnresult.setCompareStatus(1);
zsOperationWarnresultMapper.insert(zsOperationWarnresult);

//8.发送邮件
@@ -170,10 +183,10 @@ public class MonitorTaskScheduler {
//发送数据 1立刻发送 0 9:00-18:00 发送
String warnTimeRange = zsOperationWarnconfig.getWarnTimeRange();
if ("1".equals(warnTimeRange)) {
emailUtils.sendMailByTransport(zsOperationSendconfig.getSendEmail(),receiveEmail,"商品价格变化预警",warnContent,zsOperationSendconfig.getSmtpId());
emailUtils.sendMailByTransportHtml(zsOperationSendconfig.getSendEmail(),receiveEmail,"商品价格变化预警 商品名=:"+zsOperationGoods.getGoodsSkuName(),warnContent,zsOperationSendconfig.getSmtpId());
} else {
if (isBetween9And18()) {
emailUtils.sendMailByTransport(zsOperationSendconfig.getSendEmail(),receiveEmail,"商品价格变化预警",warnContent,zsOperationSendconfig.getSmtpId());
emailUtils.sendMailByTransportHtml(zsOperationSendconfig.getSendEmail(),receiveEmail,"商品价格变化预警 商品名=:"+zsOperationGoods.getGoodsSkuName(),warnContent,zsOperationSendconfig.getSmtpId());
}
}
}
@@ -205,6 +218,8 @@ public class MonitorTaskScheduler {
String warnContent = "商品编号:"+zsOperationGoods.getGoodsSkuSn()+"抓取失败!";
zsOperationWarnresult.setWarnContent(warnContent);
zsOperationWarnresult.setStatus(0);
zsOperationWarnresult.setPlatform(zsOperationGoods.getPlatform());
zsOperationWarnresult.setCompareStatus(0);
zsOperationWarnresultMapper.insert(zsOperationWarnresult);
}
}

+ 37
- 0
ruoyi-system/src/main/java/com/ruoyi/system/utils/EmailUtils.java Vedi File

@@ -5,9 +5,12 @@ import com.ruoyi.system.mapper.ZsOperationSmtpMapper;
import com.sun.mail.util.MailSSLSocketFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
@@ -58,4 +61,38 @@ public class EmailUtils {
log.error("邮件发送失败",e);
}
}
// @Resource
// private JavaMailSender javaMailSender;
public void sendMailByTransportHtml(String sendEmail ,String receiveEmail,String title,String content,Long smtpId) {
try {
ZsOperationSmtp smtp = zsOperationSmtpMapper.selectById(smtpId);
Properties props = new Properties();
props.put("mail.smtp.host", smtp.getHost());
props.put("mail.smtp.socketFactory.port", String.valueOf(smtp.getPort()));
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", String.valueOf(smtp.getPort()));
final String username = smtp.getUsername().trim();
final String password = smtp.getPassword().trim();
Session session = Session.getInstance(props,
new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username,password);
}
});
MimeMessage message = new MimeMessage(session);
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(message,true,"utf-8");
mimeMessageHelper.setFrom(new InternetAddress(sendEmail));
mimeMessageHelper.setTo(InternetAddress.parse(receiveEmail));
mimeMessageHelper.setSubject(title);
mimeMessageHelper.setText(content,true);
Transport.send(message);
} catch (Exception e) {
log.error("邮件发送失败",e);
}
}
}

Loading…
Annulla
Salva