Merge branch 'glj' of http://47.92.168.204:3000/VoRDM/vordm-backend into glj
This commit is contained in:
commit
a2cef7a947
|
@ -0,0 +1,36 @@
|
||||||
|
package com.kening.vordm.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 国家国旗图标存储
|
||||||
|
* @TableName country_icon
|
||||||
|
*/
|
||||||
|
@TableName(value ="country_icon")
|
||||||
|
@Data
|
||||||
|
public class CountryIcon implements Serializable {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private String flagname;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private String img;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
package com.kening.vordm.entity;
|
||||||
|
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.ToString;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author wanghongqing
|
||||||
|
* @date 2023/3/15 14:41
|
||||||
|
**/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ToString
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
|
public class Email {
|
||||||
|
/**
|
||||||
|
* 邮件主题
|
||||||
|
*/
|
||||||
|
private String subject;
|
||||||
|
/**
|
||||||
|
* 文本内容
|
||||||
|
*/
|
||||||
|
private String text;
|
||||||
|
/**
|
||||||
|
* 是否开启html方式
|
||||||
|
*/
|
||||||
|
private boolean htmlText;
|
||||||
|
/**
|
||||||
|
* 发件人
|
||||||
|
*/
|
||||||
|
private String form;
|
||||||
|
/**
|
||||||
|
* 收件人
|
||||||
|
*/
|
||||||
|
private String[] tos;
|
||||||
|
/**
|
||||||
|
* 抄送人
|
||||||
|
*/
|
||||||
|
private String[] ccs;
|
||||||
|
/**
|
||||||
|
* 密送人
|
||||||
|
*/
|
||||||
|
private String[] bcc;
|
||||||
|
/**
|
||||||
|
* 附件
|
||||||
|
*/
|
||||||
|
private Map<String, File> attachments;
|
||||||
|
|
||||||
|
}
|
|
@ -37,5 +37,4 @@ public class CaptchaController extends BladeController {
|
||||||
}
|
}
|
||||||
return R.success("OK");
|
return R.success("OK");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
package com.kening.vordm.controller;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.kening.vordm.entity.CountryIcon;
|
||||||
|
import com.kening.vordm.service.CountryIconService;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springblade.core.tool.api.R;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@AllArgsConstructor
|
||||||
|
@RequestMapping("/ui/countryIcon")
|
||||||
|
public class CountryIconController {
|
||||||
|
|
||||||
|
private CountryIconService countryIconService;
|
||||||
|
|
||||||
|
@GetMapping("/getList")
|
||||||
|
public R<List<CountryIcon>> list(CountryIcon countryIcon) {
|
||||||
|
LambdaQueryWrapper<CountryIcon> qw = new LambdaQueryWrapper<>();
|
||||||
|
if (countryIcon.getFlagname()!=null){
|
||||||
|
qw.eq(CountryIcon::getFlagname,countryIcon.getFlagname());
|
||||||
|
}
|
||||||
|
List<CountryIcon> list = countryIconService.list(qw);
|
||||||
|
return R.data(list);
|
||||||
|
}
|
||||||
|
}
|
|
@ -198,15 +198,14 @@ public class DisasterInfoController {
|
||||||
.eq(StringUtils.isNotBlank(String.valueOf(params.get("disasterType"))) && !"null".equals(String.valueOf(params.get("disasterType"))),DisasterInfoVo::getDisasterType, String.valueOf(params.get("disasterType")))
|
.eq(StringUtils.isNotBlank(String.valueOf(params.get("disasterType"))) && !"null".equals(String.valueOf(params.get("disasterType"))),DisasterInfoVo::getDisasterType, String.valueOf(params.get("disasterType")))
|
||||||
.and(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea")))
|
.and(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea")))
|
||||||
,Wrappers->Wrappers.like(DisasterInfoVo::getDisasterCountry,String.valueOf(params.get("affectedArea"))).or().like(DisasterInfoVo::getSponsorOrganization,String.valueOf(params.get("affectedArea"))))
|
,Wrappers->Wrappers.like(DisasterInfoVo::getDisasterCountry,String.valueOf(params.get("affectedArea"))).or().like(DisasterInfoVo::getSponsorOrganization,String.valueOf(params.get("affectedArea"))))
|
||||||
.eq("type".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getDisasterType, String.valueOf(params.get("leftVal")))
|
// .eq("type".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getDisasterType,String.valueOf(params.get("leftVal")))
|
||||||
.eq("country".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getDisasterCountry, String.valueOf(params.get("leftVal")))
|
// .eq("country".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getDisasterCountry,String.valueOf(params.get("leftVal")))
|
||||||
.eq("sponsorOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getSponsorOrganization, String.valueOf(params.get("leftVal")))
|
// .eq("sponsorOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getSponsorOrganization,String.valueOf(params.get("leftVal")))
|
||||||
.inSql("responseOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getId, "select t.disaster_id from guest_manage_disaster_ref t " +
|
// .inSql("responseOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getId,"select t.disaster_id from guest_manage_disaster_ref t " +
|
||||||
" where t.response_organization = " + params.get("leftVal"))
|
// " where t.response_organization = " + params.get("leftVal"))
|
||||||
.orderByDesc("Visits".equals(String.valueOf(params.get("order"))),DisasterInfoVo::getVisitCount)
|
.orderByDesc("Visits".equals(String.valueOf(params.get("order"))),DisasterInfoVo::getVisitCount)
|
||||||
.orderByDesc("Downloads".equals(String.valueOf(params.get("order"))),DisasterInfoVo::getDownloadCount)
|
.orderByDesc("Downloads".equals(String.valueOf(params.get("order"))),DisasterInfoVo::getDownloadCount)
|
||||||
.orderByDesc("updateTime".equals(String.valueOf(params.get("order"))), DisasterInfoVo::getUploadTime)
|
.orderByDesc(DisasterInfoVo::getVordmId)
|
||||||
.orderByDesc(DisasterInfoVo::getDisasterTime)
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
if("4".equals(dateType)){
|
if("4".equals(dateType)){
|
||||||
|
@ -218,15 +217,14 @@ public class DisasterInfoController {
|
||||||
.eq(StringUtils.isNotBlank(String.valueOf(params.get("disasterType"))) && !"null".equals(String.valueOf(params.get("disasterType"))),DisasterInfoVo::getDisasterType, String.valueOf(params.get("disasterType")))
|
.eq(StringUtils.isNotBlank(String.valueOf(params.get("disasterType"))) && !"null".equals(String.valueOf(params.get("disasterType"))),DisasterInfoVo::getDisasterType, String.valueOf(params.get("disasterType")))
|
||||||
.and(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea")))
|
.and(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea")))
|
||||||
,Wrappers->Wrappers.like(DisasterInfoVo::getDisasterCountry,String.valueOf(params.get("affectedArea"))).or().like(DisasterInfoVo::getSponsorOrganization,String.valueOf(params.get("affectedArea"))))
|
,Wrappers->Wrappers.like(DisasterInfoVo::getDisasterCountry,String.valueOf(params.get("affectedArea"))).or().like(DisasterInfoVo::getSponsorOrganization,String.valueOf(params.get("affectedArea"))))
|
||||||
.eq("type".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getDisasterType, String.valueOf(params.get("leftVal")))
|
// .eq("type".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getDisasterType,String.valueOf(params.get("leftVal")))
|
||||||
.eq("country".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getDisasterCountry, String.valueOf(params.get("leftVal")))
|
// .eq("country".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getDisasterCountry,String.valueOf(params.get("leftVal")))
|
||||||
.eq("sponsorOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getSponsorOrganization, String.valueOf(params.get("leftVal")))
|
// .eq("sponsorOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getSponsorOrganization,String.valueOf(params.get("leftVal")))
|
||||||
.inSql("responseOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getId, "select t.disaster_id from guest_manage_disaster_ref t " +
|
// .inSql("responseOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getId,"select t.disaster_id from guest_manage_disaster_ref t " +
|
||||||
" where t.response_organization = " + params.get("leftVal"))
|
// " where t.response_organization = " + params.get("leftVal"))
|
||||||
.orderByDesc("Visits".equals(String.valueOf(params.get("order"))),DisasterInfoVo::getVisitCount)
|
.orderByDesc("Visits".equals(String.valueOf(params.get("order"))),DisasterInfoVo::getVisitCount)
|
||||||
.orderByDesc("Downloads".equals(String.valueOf(params.get("order"))),DisasterInfoVo::getDownloadCount)
|
.orderByDesc("Downloads".equals(String.valueOf(params.get("order"))),DisasterInfoVo::getDownloadCount)
|
||||||
.orderByDesc("updateTime".equals(String.valueOf(params.get("order"))), DisasterInfoVo::getUploadTime)
|
.orderByDesc(DisasterInfoVo::getVordmId)
|
||||||
.orderByDesc(DisasterInfoVo::getDisasterTime)
|
|
||||||
));
|
));
|
||||||
} else{
|
} else{
|
||||||
//没有时间相关的
|
//没有时间相关的
|
||||||
|
@ -235,15 +233,14 @@ public class DisasterInfoController {
|
||||||
.eq(StringUtils.isNotBlank(String.valueOf(params.get("disasterType"))) && !"null".equals(String.valueOf(params.get("disasterType"))),DisasterInfoVo::getDisasterType, String.valueOf(params.get("disasterType")))
|
.eq(StringUtils.isNotBlank(String.valueOf(params.get("disasterType"))) && !"null".equals(String.valueOf(params.get("disasterType"))),DisasterInfoVo::getDisasterType, String.valueOf(params.get("disasterType")))
|
||||||
.and(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea")))
|
.and(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea")))
|
||||||
,Wrappers->Wrappers.like(DisasterInfoVo::getDisasterCountry,String.valueOf(params.get("affectedArea"))).or().like(DisasterInfoVo::getSponsorOrganization,String.valueOf(params.get("affectedArea"))))
|
,Wrappers->Wrappers.like(DisasterInfoVo::getDisasterCountry,String.valueOf(params.get("affectedArea"))).or().like(DisasterInfoVo::getSponsorOrganization,String.valueOf(params.get("affectedArea"))))
|
||||||
.eq("type".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getDisasterType, String.valueOf(params.get("leftVal")))
|
// .eq("type".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getDisasterType,String.valueOf(params.get("leftVal")))
|
||||||
.eq("country".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getDisasterCountry, String.valueOf(params.get("leftVal")))
|
// .eq("country".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getDisasterCountry,String.valueOf(params.get("leftVal")))
|
||||||
.eq("sponsorOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getSponsorOrganization, String.valueOf(params.get("leftVal")))
|
// .eq("sponsorOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getSponsorOrganization,String.valueOf(params.get("leftVal")))
|
||||||
.inSql("responseOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getId, "select t.disaster_id from guest_manage_disaster_ref t " +
|
// .inSql("responseOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getId,"select t.disaster_id from guest_manage_disaster_ref t " +
|
||||||
" where t.response_organization = " + params.get("leftVal"))
|
// " where t.response_organization = " + params.get("leftVal"))
|
||||||
.orderByDesc("Visits".equals(String.valueOf(params.get("order"))),DisasterInfoVo::getVisitCount)
|
.orderByDesc("Visits".equals(String.valueOf(params.get("order"))),DisasterInfoVo::getVisitCount)
|
||||||
.orderByDesc("Downloads".equals(String.valueOf(params.get("order"))),DisasterInfoVo::getDownloadCount)
|
.orderByDesc("Downloads".equals(String.valueOf(params.get("order"))),DisasterInfoVo::getDownloadCount)
|
||||||
.orderByDesc("updateTime".equals(String.valueOf(params.get("order"))), DisasterInfoVo::getUploadTime)
|
.orderByDesc(DisasterInfoVo::getVordmId)
|
||||||
.orderByDesc(DisasterInfoVo::getDisasterTime)
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package com.kening.vordm.controller;
|
||||||
|
|
||||||
|
import com.kening.vordm.entity.Email;
|
||||||
|
import com.kening.vordm.service.EmailService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springblade.core.tool.api.R;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.mail.MessagingException;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/ui/email")
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Api(value = "邮箱发送", tags = "邮箱发送")
|
||||||
|
public class EmailController {
|
||||||
|
|
||||||
|
private final EmailService emailService;
|
||||||
|
|
||||||
|
@PostMapping("/emailSend")
|
||||||
|
public R emailSend(Email email) {
|
||||||
|
try {
|
||||||
|
emailService.sendMimeMessage(email);
|
||||||
|
return R.success("OK");
|
||||||
|
} catch (MessagingException e) {
|
||||||
|
return R.fail(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.kening.vordm.mapper;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.kening.vordm.entity.CountryIcon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author G1393
|
||||||
|
* @description 针对表【country_icon(国家国旗图标存储)】的数据库操作Mapper
|
||||||
|
* @createDate 2023-04-13 15:40:37
|
||||||
|
* @Entity new.domain.CountryIcon
|
||||||
|
*/
|
||||||
|
public interface CountryIconMapper extends BaseMapper<CountryIcon> {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.kening.vordm.mapper.CountryIconMapper">
|
||||||
|
|
||||||
|
<resultMap id="BaseResultMap" type="com.kening.vordm.entity.CountryIcon">
|
||||||
|
<id property="id" column="id" jdbcType="BIGINT"/>
|
||||||
|
<result property="flagname" column="flagname" jdbcType="VARCHAR"/>
|
||||||
|
<result property="img" column="img" jdbcType="VARCHAR"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
id,flagname,img
|
||||||
|
</sql>
|
||||||
|
</mapper>
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.kening.vordm.service;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.kening.vordm.entity.CountryIcon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author G1393
|
||||||
|
* @description 针对表【country_icon(国家国旗图标存储)】的数据库操作Service
|
||||||
|
* @createDate 2023-04-13 15:40:37
|
||||||
|
*/
|
||||||
|
public interface CountryIconService extends IService<CountryIcon> {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
package com.kening.vordm.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.kening.vordm.entity.Email;
|
||||||
|
|
||||||
|
import javax.mail.MessagingException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author wanghongqing
|
||||||
|
* @date 2023/3/15 14:45
|
||||||
|
**/
|
||||||
|
public interface EmailService {
|
||||||
|
|
||||||
|
void sendMimeMessage(Email email) throws MessagingException;
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.kening.vordm.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.kening.vordm.entity.CountryIcon;
|
||||||
|
import com.kening.vordm.mapper.CountryIconMapper;
|
||||||
|
import com.kening.vordm.service.CountryIconService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author G1393
|
||||||
|
* @description 针对表【country_icon(国家国旗图标存储)】的数据库操作Service实现
|
||||||
|
* @createDate 2023-04-13 15:40:37
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class CountryIconServiceImpl extends ServiceImpl<CountryIconMapper, CountryIcon>
|
||||||
|
implements CountryIconService {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,70 @@
|
||||||
|
package com.kening.vordm.service.impl;
|
||||||
|
|
||||||
|
import com.kening.vordm.entity.Email;
|
||||||
|
import com.kening.vordm.service.EmailService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springblade.core.tool.utils.StringUtil;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.mail.javamail.JavaMailSender;
|
||||||
|
import org.springframework.mail.javamail.MimeMessageHelper;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.mail.MessagingException;
|
||||||
|
import javax.mail.internet.MimeMessage;
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author wanghongqing
|
||||||
|
* @date 2023/3/15 14:45
|
||||||
|
**/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class EmailServiceImpl implements EmailService {
|
||||||
|
|
||||||
|
private final JavaMailSender javaMailSender;
|
||||||
|
|
||||||
|
@Value("${spring.mail.username}")
|
||||||
|
private String from;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sendMimeMessage(Email email) throws MessagingException {
|
||||||
|
javaMailSender.send(buildMimeMessage(email));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建邮件发送内容
|
||||||
|
* @param email 待发送的邮件
|
||||||
|
* @return 邮件消息
|
||||||
|
* @throws MessagingException 消息异常信息
|
||||||
|
*/
|
||||||
|
private MimeMessage buildMimeMessage(Email email) throws MessagingException {
|
||||||
|
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(javaMailSender.createMimeMessage(), true, "GBK");
|
||||||
|
//邮件主题
|
||||||
|
mimeMessageHelper.setSubject(email.getSubject());
|
||||||
|
//邮件发送人
|
||||||
|
if(StringUtil.isBlank(email.getForm())) {
|
||||||
|
mimeMessageHelper.setFrom(from);
|
||||||
|
} else {
|
||||||
|
mimeMessageHelper.setFrom(email.getForm());
|
||||||
|
}
|
||||||
|
//邮件收信人
|
||||||
|
mimeMessageHelper.setTo(email.getTos());
|
||||||
|
//抄送人
|
||||||
|
if(email.getCcs() != null && email.getCcs().length > 0) {
|
||||||
|
mimeMessageHelper.setCc(email.getCcs());
|
||||||
|
}
|
||||||
|
//密送人
|
||||||
|
if(email.getBcc() != null && email.getBcc().length > 0) {
|
||||||
|
mimeMessageHelper.setBcc(email.getBcc());
|
||||||
|
}
|
||||||
|
//邮件内容
|
||||||
|
mimeMessageHelper.setText(email.getText(), email.isHtmlText());
|
||||||
|
if(email.getAttachments() != null && email.getAttachments().size() > 0) {
|
||||||
|
for (Map.Entry<String, File> attachment : email.getAttachments().entrySet()) {
|
||||||
|
mimeMessageHelper.addAttachment(attachment.getKey(), attachment.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mimeMessageHelper.getMimeMessage();
|
||||||
|
}
|
||||||
|
}
|
|
@ -96,6 +96,11 @@
|
||||||
<groupId>org.springblade</groupId>
|
<groupId>org.springblade</groupId>
|
||||||
<artifactId>blade-starter-tenant</artifactId>
|
<artifactId>blade-starter-tenant</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!--邮件发送依赖-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-mail</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -18,7 +18,7 @@ import org.springframework.context.annotation.ComponentScan;
|
||||||
public class SystemManagerApplication {
|
public class SystemManagerApplication {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
BladeApplication.run(CommonConstant.KN_SYSTEM_MANAGER_MODULE_NAME, SystemManagerApplication.class, args);
|
BladeApplication.run("glj-"+CommonConstant.KN_SYSTEM_MANAGER_MODULE_NAME, SystemManagerApplication.class, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue