Commit 558de846 by chentianzhong

7777777

parent 4716e1c0
...@@ -4,12 +4,14 @@ import org.mybatis.spring.annotation.MapperScan; ...@@ -4,12 +4,14 @@ import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.transaction.annotation.EnableTransactionManagement; import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableFeignClients @EnableFeignClients
@SpringBootApplication(scanBasePackages = {"com.zq.email", "com.zq.common.config"}) @SpringBootApplication(scanBasePackages = {"com.zq.email", "com.zq.common.config"})
@MapperScan("com.zq.email.mapper") @MapperScan("com.zq.email.mapper")
@EnableTransactionManagement @EnableTransactionManagement
@EnableAsync
public class EmailApplication { public class EmailApplication {
public static void main(String[] args) { public static void main(String[] args) {
......
package com.zq.email.config;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
/**
* 解决异步丢失请求信息
*
* @author wilmiam
* @since 2022/12/10 16:23
*/
public class MyThreadPoolTaskExecutor extends ThreadPoolTaskExecutor {
public MyThreadPoolTaskExecutor() {
super();
}
@Override
public void execute(Runnable task) {
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
super.execute(() -> {
RequestContextHolder.setRequestAttributes(requestAttributes);
task.run();
});
}
@Override
public <T> Future<T> submit(Callable<T> task) {
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
return super.submit(() -> {
RequestContextHolder.setRequestAttributes(requestAttributes);
return task.call();
});
}
@Override
public Future<?> submit(Runnable task) {
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
return super.submit(() -> {
RequestContextHolder.setRequestAttributes(requestAttributes);
task.run();
});
}
}
...@@ -101,12 +101,12 @@ public class EmailController { ...@@ -101,12 +101,12 @@ public class EmailController {
public ResultVo detail(@RequestBody EmailDetailVo vo) { public ResultVo detail(@RequestBody EmailDetailVo vo) {
OnlineUserDto adminContext = TokenUtils.getAdminContext(); OnlineUserDto adminContext = TokenUtils.getAdminContext();
AssertUtils.notNull(adminContext, "登录已失效,请重新登录后再次尝试!"); AssertUtils.notNull(adminContext, "登录已失效,请重新登录后再次尝试!");
AssertUtils.notNull(vo.getPersonId(), "缺少参数:personId"); AssertUtils.notNull(vo.getContentId(), "缺少参数:contentId");
EmailPerson emailPerson = emailPersonService.getById(vo.getPersonId()); EmailContent content = emailContentService.getById(vo.getContentId());
AssertUtils.notNull(content, "获取邮件内容失败");
EmailPerson emailPerson = emailPersonService.getByIdAndSendTime(vo.getPersonId(), content.getSendTime());
AssertUtils.notNull(emailPerson, "获取邮件对应人员信息失败"); AssertUtils.notNull(emailPerson, "获取邮件对应人员信息失败");
AssertUtils.isTrue(emailPerson.getUserId().equals(adminContext.getUserId()) , "非本人邮件,不允许阅读"); AssertUtils.isTrue(emailPerson.getUserId().equals(adminContext.getUserId()) , "非本人邮件,不允许阅读");
EmailContent content = emailContentService.getById(emailPerson.getEmailContentId());
AssertUtils.notNull(content, "获取邮件内容失败");
emailPerson.setEmailContent(content); emailPerson.setEmailContent(content);
return ResultVo.success(emailPerson); return ResultVo.success(emailPerson);
} }
...@@ -208,6 +208,17 @@ public class EmailController { ...@@ -208,6 +208,17 @@ public class EmailController {
@ApiOperation("移动邮件到自定义文件夹或回收站")
@PostMapping("detail/move")
public ResultVo edit(@RequestBody EmailDetailVo vo) {
AssertUtils.notNull(vo.getContentId(), "缺少参数:contentId");
AssertUtils.notNull(vo.getPersonId(), "缺少参数:personId");
emailPersonService.moveDetailEmailFolder(vo);
return ResultVo.success();
}
......
...@@ -40,6 +40,9 @@ public class EmailPersonController { ...@@ -40,6 +40,9 @@ public class EmailPersonController {
@ApiOperation("移动邮件到自定义文件夹或回收站") @ApiOperation("移动邮件到自定义文件夹或回收站")
@PostMapping("move") @PostMapping("move")
public ResultVo edit(@RequestBody EmailFolderMoveVo vo) { public ResultVo edit(@RequestBody EmailFolderMoveVo vo) {
AssertUtils.notEmpty(vo.getPersonIdList(), "缺少参数:personIdList");
AssertUtils.notNull(vo.getSearchRange(), "缺少参数:searchRange");
AssertUtils.notNull(vo.getFolderId(), "缺少参数:folderId");
emailPersonService.moveEmailFolder(vo); emailPersonService.moveEmailFolder(vo);
return ResultVo.success(); return ResultVo.success();
} }
...@@ -63,6 +66,7 @@ public class EmailPersonController { ...@@ -63,6 +66,7 @@ public class EmailPersonController {
public ResultVo readEmail(@RequestBody EmailReadVo vo) { public ResultVo readEmail(@RequestBody EmailReadVo vo) {
AssertUtils.notEmpty(vo.getPersonIdList(), "缺少参数:personIdList"); AssertUtils.notEmpty(vo.getPersonIdList(), "缺少参数:personIdList");
AssertUtils.notNull(vo.getIsRead(), "缺少参数:isSend"); AssertUtils.notNull(vo.getIsRead(), "缺少参数:isSend");
AssertUtils.notNull(vo.getSearchRange(), "缺少参数:searchRange");
log.info("执行前: {}"+ DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); log.info("执行前: {}"+ DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
this.emailPersonService.readEmail(vo); this.emailPersonService.readEmail(vo);
log.info("执行后: {}"+ DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss")); log.info("执行后: {}"+ DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
...@@ -101,7 +105,7 @@ public class EmailPersonController { ...@@ -101,7 +105,7 @@ public class EmailPersonController {
} }
@ApiOperation("回收站恢复") @ApiOperation("回收站恢复(列表)")
@PostMapping("resumeEmail") @PostMapping("resumeEmail")
public ResultVo resumeEmail(@RequestBody List<Long> personIdList) { public ResultVo resumeEmail(@RequestBody List<Long> personIdList) {
this.emailPersonService.resumeEmail(personIdList); this.emailPersonService.resumeEmail(personIdList);
......
...@@ -13,6 +13,7 @@ import org.springframework.core.io.InputStreamResource; ...@@ -13,6 +13,7 @@ import org.springframework.core.io.InputStreamResource;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
...@@ -66,4 +67,8 @@ public interface IEmailPersonService extends IService<EmailPerson> { ...@@ -66,4 +67,8 @@ public interface IEmailPersonService extends IService<EmailPerson> {
ResultVo getUserPolice(); ResultVo getUserPolice();
List<CustomerUserVo> recentlyContacts(List<Long> recentlySendEmail); List<CustomerUserVo> recentlyContacts(List<Long> recentlySendEmail);
EmailPerson getByIdAndSendTime(Long personId, LocalDateTime sendTime);
void moveDetailEmailFolder(EmailDetailVo vo);
} }
package com.zq.email.vo; package com.zq.email.vo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
...@@ -18,5 +19,8 @@ public class EmailFolderMoveVo { ...@@ -18,5 +19,8 @@ public class EmailFolderMoveVo {
private List<Long> personIdList; private List<Long> personIdList;
@ApiModelProperty("查询范围,默认最近三个月")
private Integer searchRange;
} }
...@@ -13,6 +13,9 @@ public class EmailReadVo { ...@@ -13,6 +13,9 @@ public class EmailReadVo {
@ApiModelProperty("personId集合") @ApiModelProperty("personId集合")
private List<Long> personIdList; private List<Long> personIdList;
@ApiModelProperty("查询范围,默认最近三个月")
private Integer searchRange;
@ApiModelProperty("0:未读 1:已读") @ApiModelProperty("0:未读 1:已读")
private Integer isRead; private Integer isRead;
......
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