Commit a3e5e76b by 邓实川 Committed by chenzg

新添加了绑定邮箱业务

parent 4cffefae
......@@ -94,6 +94,10 @@
    <artifactId>spring-boot-starter-security</artifactId>
</dependency> -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- 添加MySQL依赖 -->
<dependency>
......
......@@ -51,6 +51,9 @@ public class QyzxEmpLogin extends Model<QyzxEmpLogin> {
@ApiModelProperty(value="邮箱地址 ",example="邮箱地址")
private String email;
@ApiModelProperty(value="邮箱状态 ",example="0-未激活 1-已绑定")
private Integer emailStatus;
@ApiModelProperty(value="微信openid ",example="微信openid")
private String openid;
......
package cn.timer.api.config.interceptor;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.annotation.Resource;
......@@ -11,13 +9,11 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.ValueFilter;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
......@@ -47,7 +43,7 @@ public class WebSecurityConfig implements WebMvcConfigurer {
.excludePathPatterns("/8timer/**")
.excludePathPatterns("/kqdk/punchclock/**")
.excludePathPatterns("/kqz/sauserregdata/**")
.excludePathPatterns("/login/*")
.excludePathPatterns("/login/**")
.excludePathPatterns("/swagger*/**")
.excludePathPatterns("/v2/api-docs")
.excludePathPatterns("/druid/login*")
......
......@@ -12,6 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -63,13 +65,13 @@ public class LoginController {
@Value(value = "${config-8timer.init-password}")
public String pwd; // 系统赠送时间
@Value("${config-8timer.register-free-time}")
public Integer offset; // 系统赠送时间
@Value("${config-8timer.register-company-max-num}")
public Integer max;
@Value("${config-8timer.register-childAccount-max-num}")
public Integer maxChildAccount;
......@@ -137,7 +139,7 @@ public class LoginController {
@Autowired
private QyzxEmpEntAssoMapper qyzxEmpEntAssoMapper;
@Autowired
private ZzglBmgwMMapper zzglBmgwMMapper;
......@@ -438,7 +440,7 @@ public class LoginController {
@ApiOperation(value = "6.注册企业", httpMethod = "POST", notes = "接口发布说明")
@ApiOperationSupport(order = 6)
@Log(title = "企业注册", businessType = BusinessType.INSERT)
public Result<String> register(@RequestBody EntRegisterDto entRegisterDto) throws Exception{
public Result<String> register(@RequestBody EntRegisterDto entRegisterDto) throws Exception {
try {
String phone = entRegisterDto.getPhone();
......@@ -486,8 +488,9 @@ public class LoginController {
}
boolean b4 = YgglMainEmp.builder().orgCode(qyzxEntInfoM.getId()).empNum(login.getId()).rzTime(new Date())
.isManager(CommonEnum.U_TYPE_ADMIN.getType()).name(username).phone(phone).jobType(YgJobType.QUANZHI.getType()).jobStatus(YgEnumInterface.jobStatus.ZHENSHI.getType())
.build().insert();
.isManager(CommonEnum.U_TYPE_ADMIN.getType()).name(username).phone(phone)
.jobType(YgJobType.QUANZHI.getType()).jobStatus(YgEnumInterface.jobStatus.ZHENSHI.getType()).build()
.insert();
if (!b4) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return ResultUtil.error("注册企业失败3");
......@@ -504,10 +507,9 @@ public class LoginController {
SpmkService.createCustomApproval(qyzxEntInfoM.getId());
QyzxAuthAccount.builder().createdTime(new Date()).maxChildAccount(maxChildAccount).name(username).accountPhone(phone).empNum(login.getId())
.orgCode(qyzxEntInfoM.getId()).build().insert(); // TODO 主账号权限表
QyzxAuthAccount.builder().createdTime(new Date()).maxChildAccount(maxChildAccount).name(username)
.accountPhone(phone).empNum(login.getId()).orgCode(qyzxEntInfoM.getId()).build().insert(); // TODO
// 主账号权限表
return ResultUtil.success("注册企业成功");
} catch (Exception e) {
......@@ -640,4 +642,13 @@ public class LoginController {
}
@GetMapping(value = "/band/{empNum}")
public Result<Object> bandEmail(@PathVariable Integer empNum) {
boolean result = QyzxEmpLogin.builder().id(empNum).emailStatus(1).build().updateById();
if (result) {
return ResultUtil.success("绑定成功");
}
return ResultUtil.error("绑定失败");
}
}
/**
* <p>Title: EmailController.java</p>
* <p>Description: </p>
* @author dsc
* @date 2020年5月25日
* @version 1.0
*/
package cn.timer.api.controller.email;
import java.io.File;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import cn.timer.api.bean.qyzx.QyzxEmpLogin;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* <p>
* Title: EmailController.java
* </p>
* <p>
* Description:
* </p>
*
* @author dsc
* @date 2020年5月25日
* @version 1.0
*/
@RestController
@Api(tags = "1.1 邮件发送")
@Transactional
@RequestMapping(value = "/email", produces = { "application/json" })
public class EmailController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Value("${spring.mail.username}")
private String from;
@Autowired
JavaMailSender mailSender;
@PostMapping("/sendSimpleMail")
@ApiOperation(value = "发送简单邮件", httpMethod = "POST", notes = "接口发布说明")
public Result<Void> sendSimpleMail(String to, String subject, String content) {
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(to);
message.setSubject(subject);
message.setText(content);
message.setFrom(from);
mailSender.send(message);
return ResultUtil.success();
}
@PostMapping("/sendHtmlMail")
@ApiOperation(value = "发送html邮件", httpMethod = "POST", notes = "接口发布说明")
public Result<Void> sendHtmlMail(String to, String subject, String content) {
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
mailSender.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
return ResultUtil.success();
}
@PostMapping("/sendAttchmentMail")
@ApiOperation(value = "发送附件邮件", httpMethod = "POST", notes = "接口发布说明")
public Result<Void> sendAttchmentMail(String to, String subject, String content, String filePath) {
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
FileSystemResource file = new FileSystemResource(new File(filePath));
String fileName = file.getFilename();
helper.addAttachment(fileName, file); // 可将参数换成数组遍历传送多个附件
mailSender.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
return ResultUtil.success();
}
@PostMapping("/sendInlinResourceMail")
@ApiOperation(value = "发送静态图片邮件", httpMethod = "POST", notes = "接口发布说明")
public Result<Void> sendInlinResourceMail(String to, String subject, String content, String rscPath, String rscId) {
logger.info("发送静态邮件开始:{},{},{},{},{}", to, subject, content, rscPath, rscId);
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
FileSystemResource res = new FileSystemResource(new File(rscPath));
helper.addInline(rscId, res);
mailSender.send(message);
logger.info("发送成功");
} catch (MessagingException e) {
logger.error("发送失败", e);
}
return ResultUtil.success();
}
@PostMapping("/bindEmailAddress")
@ApiOperation(value = "绑定邮箱", httpMethod = "POST", notes = "接口发布说明")
public Result<Void> bindEmailAddress(@CurrentUser UserBean userBean, String to) {
QyzxEmpLogin.builder().id(userBean.getEmpNum()).email(to).emailStatus(0).build().updateById();
return sendHtmlMail(to, "8小时账号邮箱验证", "<html>\r\n" +
"<head>\r\n" +
"<meta charset=\"UTF-8\">\r\n" +
"</head>\r\n" +
"<body>\r\n" +
" <h1>您好,感谢绑定<a href=\"http://8timer.cn\">8小时人事管家</a>,点击下面链接完成验证,感谢支持!<h1>\r\n" +
" <br />\r\n" +
" <a href=\"http://test-8timer-api.youlingrc.com/login/band/"+userBean.getEmpNum()+"\">激活账户</a>\r\n" +
"</body>\r\n" +
"</html>");
}
@PostMapping("/sendVerifyMail")
@ApiOperation(value = "发送注册验证邮件", httpMethod = "POST", notes = "接口发布说明")
public Result<Void> sendVerifyMail(@CurrentUser UserBean userBean, String to) {
return sendHtmlMail(to, "8小时账号邮箱验证", "<html>\r\n" +
"<head>\r\n" +
"<meta charset=\"UTF-8\">\r\n" +
"</head>\r\n" +
"<body>\r\n" +
" <h1>您好,感谢注册<a href=\"http://8timer.cn\">8小时人事管家</a>,点击下面链接完成验证,感谢支持!<h1>\r\n" +
" <br />\r\n" +
" <a href=\"https://www.4399.com\">激活账户</a>\r\n" +
"</body>\r\n" +
"</html>");
}
}
......@@ -86,6 +86,14 @@ spring:
margin: 2 # Left hand image margin in chars.
invert: false # Whether images should be inverted for dark terminal themes.
mail:
host: smtp.qq.com
username: 544939826@qq.com #dsc
password: cxvkrjyjzfpbbbce
default-encoding: utf-8
######### Spring boot应用健康监控
management:
server:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment