boot-security/src/main/java/com/boot/security/server/controller/MailController.java

96 lines
3.0 KiB
Java
Raw Normal View History

2017-10-15 10:12:35 +00:00
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.springframework.beans.factory.annotation.Autowired;
2017-10-15 10:54:13 +00:00
import org.springframework.security.access.prepost.PreAuthorize;
2017-10-15 10:12:35 +00:00
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;
2017-10-15 10:54:13 +00:00
import com.boot.security.server.annotation.LogAnnotation;
import com.boot.security.server.dao.MailDao;
import com.boot.security.server.model.Mail;
import com.boot.security.server.model.MailTo;
import com.boot.security.server.page.table.PageTableHandler;
import com.boot.security.server.page.table.PageTableHandler.CountHandler;
import com.boot.security.server.page.table.PageTableHandler.ListHandler;
import com.boot.security.server.page.table.PageTableRequest;
import com.boot.security.server.page.table.PageTableResponse;
import com.boot.security.server.service.MailService;
2017-10-15 10:12:35 +00:00
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 = "保存邮件")
2017-10-15 10:54:13 +00:00
@PreAuthorize("hasAuthority('mail:send')")
2017-10-15 10:12:35 +00:00
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获取邮件")
2017-10-15 10:54:13 +00:00
@PreAuthorize("hasAuthority('mail:all:query')")
2017-10-15 10:12:35 +00:00
public Mail get(@PathVariable Long id) {
return mailDao.getById(id);
}
@GetMapping("/{id}/to")
@ApiOperation(value = "根据id获取邮件发送详情")
2017-10-15 10:54:13 +00:00
@PreAuthorize("hasAuthority('mail:all:query')")
2017-10-15 10:12:35 +00:00
public List<MailTo> getMailTo(@PathVariable Long id) {
return mailDao.getToUsers(id);
}
@GetMapping
@ApiOperation(value = "邮件列表")
2017-10-15 10:54:13 +00:00
@PreAuthorize("hasAuthority('mail:all:query')")
2017-10-17 13:25:10 +00:00
public PageTableResponse list(PageTableRequest request) {
return new PageTableHandler(new CountHandler() {
2017-10-15 10:12:35 +00:00
@Override
public int count(PageTableRequest request) {
return mailDao.count(request.getParams());
}
2017-10-17 13:25:10 +00:00
}, new ListHandler() {
2017-10-15 10:12:35 +00:00
@Override
public List<Mail> list(PageTableRequest request) {
return mailDao.list(request.getParams(), request.getOffset(), request.getLimit());
}
2017-10-17 13:25:10 +00:00
}).handle(request);
2017-10-15 10:12:35 +00:00
}
}