1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package io.hmit.modules.message.controller;
import com.google.gson.Gson;
import io.hmit.common.annotation.LogOperation;
import io.hmit.common.constant.Constant;
import io.hmit.common.page.PageData;
import io.hmit.common.utils.Result;
import io.hmit.common.validator.ValidatorUtils;
import io.hmit.common.validator.group.AddGroup;
import io.hmit.common.validator.group.DefaultGroup;
import io.hmit.common.validator.group.UpdateGroup;
import io.hmit.modules.message.dto.SysMailTemplateDTO;
import io.hmit.modules.message.email.EmailConfig;
import io.hmit.modules.message.service.SysMailTemplateService;
import io.hmit.modules.sys.service.SysParamsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Arrays;
import java.util.Map;
/**
* 邮件模板
*
* @author zsh 408538940@qq.com
*/
@RestController
@RequestMapping("sys/mailtemplate")
@Api(tags = "邮件模板")
public class MailTemplateController {
@Autowired
private SysMailTemplateService sysMailTemplateService;
@Autowired
private SysParamsService sysParamsService;
private final static String KEY = Constant.MAIL_CONFIG_KEY;
@GetMapping("page")
@ApiOperation("分页")
@ApiImplicitParams({
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"),
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"),
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "name", value = "name", paramType = "query", dataType = "String")
})
@RequiresPermissions("sys:mail:all")
public Result<PageData<SysMailTemplateDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params) {
PageData<SysMailTemplateDTO> page = sysMailTemplateService.page(params);
return new Result<PageData<SysMailTemplateDTO>>().ok(page);
}
@GetMapping("/config")
@ApiOperation("获取配置信息")
@RequiresPermissions("sys:mail:all")
public Result<EmailConfig> config() {
EmailConfig config = sysParamsService.getValueObject(KEY, EmailConfig.class);
return new Result<EmailConfig>().ok(config);
}
@PostMapping("/saveConfig")
@ApiOperation("保存配置信息")
@LogOperation("保存配置信息")
@RequiresPermissions("sys:mail:all")
public Result saveConfig(@RequestBody EmailConfig config) {
//校验数据
ValidatorUtils.validateEntity(config);
sysParamsService.updateValueByCode(KEY, new Gson().toJson(config));
return new Result();
}
@GetMapping("{id}")
@ApiOperation("信息")
@RequiresPermissions("sys:mail:all")
public Result<SysMailTemplateDTO> info(@PathVariable("id") Long id) {
SysMailTemplateDTO sysMailTemplate = sysMailTemplateService.get(id);
return new Result<SysMailTemplateDTO>().ok(sysMailTemplate);
}
@PostMapping
@ApiOperation("保存")
@LogOperation("保存")
@RequiresPermissions("sys:mail:all")
public Result save(SysMailTemplateDTO dto) {
//校验类型
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
sysMailTemplateService.save(dto);
return new Result();
}
@PutMapping
@ApiOperation("修改")
@LogOperation("修改")
@RequiresPermissions("sys:mail:all")
public Result update(SysMailTemplateDTO dto) {
//校验类型
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
sysMailTemplateService.update(dto);
return new Result();
}
@DeleteMapping
@ApiOperation("删除")
@LogOperation("删除")
@RequiresPermissions("sys:mail:all")
public Result delete(@RequestBody Long[] ids) {
sysMailTemplateService.deleteBatchIds(Arrays.asList(ids));
return new Result();
}
@PostMapping("/send")
@ApiOperation("发送邮件")
@LogOperation("发送邮件")
@RequiresPermissions("sys:mail:all")
public Result send(Long id, String mailTo, String mailCc, String params) throws Exception {
boolean flag = sysMailTemplateService.sendMail(id, mailTo, mailCc, params);
if (flag) {
return new Result();
}
return new Result().error("邮件发送失败");
}
}