96 lines
3.0 KiB
Java
96 lines
3.0 KiB
Java
|
|
package com.boot.security.server.controller;
|
|||
|
|
|
|||
|
|
import java.util.Arrays;
|
|||
|
|
import java.util.List;
|
|||
|
|
import java.util.stream.Collectors;
|
|||
|
|
|
|||
|
|
import org.apache.commons.lang3.StringUtils;
|
|||
|
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
|||
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|||
|
|
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;
|
|||
|
|
import org.springframework.web.bind.annotation.RestController;
|
|||
|
|
|
|||
|
|
import com.zw.admin.server.annotation.LogAnnotation;
|
|||
|
|
import com.zw.admin.server.dao.MailDao;
|
|||
|
|
import com.zw.admin.server.model.Mail;
|
|||
|
|
import com.zw.admin.server.model.MailTo;
|
|||
|
|
import com.zw.admin.server.page.table.PageTableRequest;
|
|||
|
|
import com.zw.admin.server.page.table.PageTableHandler;
|
|||
|
|
import com.zw.admin.server.page.table.PageTableResponse;
|
|||
|
|
import com.zw.admin.server.page.table.PageTableHandler.CountHandler;
|
|||
|
|
import com.zw.admin.server.page.table.PageTableHandler.ListHandler;
|
|||
|
|
import com.zw.admin.server.service.MailService;
|
|||
|
|
|
|||
|
|
import io.swagger.annotations.Api;
|
|||
|
|
import io.swagger.annotations.ApiOperation;
|
|||
|
|
|
|||
|
|
@Api(tags = "邮件")
|
|||
|
|
@RestController
|
|||
|
|
@RequestMapping("/mails")
|
|||
|
|
public class MailController {
|
|||
|
|
|
|||
|
|
@Autowired
|
|||
|
|
private MailDao mailDao;
|
|||
|
|
@Autowired
|
|||
|
|
private MailService mailService;
|
|||
|
|
|
|||
|
|
@LogAnnotation
|
|||
|
|
@PostMapping
|
|||
|
|
@ApiOperation(value = "保存邮件")
|
|||
|
|
@RequiresPermissions("mail:send")
|
|||
|
|
public Mail save(@RequestBody Mail mail) {
|
|||
|
|
String toUsers = mail.getToUsers().trim();
|
|||
|
|
if (StringUtils.isBlank(toUsers)) {
|
|||
|
|
throw new IllegalArgumentException("收件人不能为空");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
toUsers = toUsers.replace(" ", "");
|
|||
|
|
toUsers = toUsers.replace(";", ";");
|
|||
|
|
String[] strings = toUsers.split(";");
|
|||
|
|
|
|||
|
|
List<String> toUser = Arrays.asList(strings);
|
|||
|
|
toUser = toUser.stream().filter(u -> !StringUtils.isBlank(u)).map(u -> u.trim()).collect(Collectors.toList());
|
|||
|
|
mailService.save(mail, toUser);
|
|||
|
|
|
|||
|
|
return mail;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@GetMapping("/{id}")
|
|||
|
|
@ApiOperation(value = "根据id获取邮件")
|
|||
|
|
@RequiresPermissions("mail:all:query")
|
|||
|
|
public Mail get(@PathVariable Long id) {
|
|||
|
|
return mailDao.getById(id);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@GetMapping("/{id}/to")
|
|||
|
|
@ApiOperation(value = "根据id获取邮件发送详情")
|
|||
|
|
@RequiresPermissions("mail:all:query")
|
|||
|
|
public List<MailTo> getMailTo(@PathVariable Long id) {
|
|||
|
|
return mailDao.getToUsers(id);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@GetMapping
|
|||
|
|
@ApiOperation(value = "邮件列表")
|
|||
|
|
@RequiresPermissions("mail:all:query")
|
|||
|
|
public PageTableResponse<Mail> list(PageTableRequest request) {
|
|||
|
|
return PageTableHandler.<Mail> builder().countHandler(new CountHandler() {
|
|||
|
|
|
|||
|
|
@Override
|
|||
|
|
public int count(PageTableRequest request) {
|
|||
|
|
return mailDao.count(request.getParams());
|
|||
|
|
}
|
|||
|
|
}).listHandler(new ListHandler<Mail>() {
|
|||
|
|
|
|||
|
|
@Override
|
|||
|
|
public List<Mail> list(PageTableRequest request) {
|
|||
|
|
return mailDao.list(request.getParams(), request.getOffset(), request.getLimit());
|
|||
|
|
}
|
|||
|
|
}).build().handle(request);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|