/** * Copyright (c) 2018 人人开源 All rights reserved. * * https://www.renren.io * * 版权所有,侵权必究! */ package com.zt.modules.message.controller; import java.util.List; 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 com.alibaba.fastjson.JSONObject; import com.zt.common.annotation.LogOperation; import com.zt.common.annotation.QueryParam; import com.zt.common.constant.Constant; import com.zt.common.db.query.QueryFilter; import com.zt.common.servlet.PageResult; import com.zt.common.servlet.Result; import com.zt.common.validator.ValidatorUtils; import com.zt.common.validator.group.AddGroup; import com.zt.common.validator.group.DefaultGroup; import com.zt.common.validator.group.UpdateGroup; import com.zt.core.sys.service.ISysParamsService; import com.zt.modules.message.channel.email.EmailConfig; import com.zt.modules.message.channel.email.EmailUtils; import com.zt.modules.message.model.SysMailTemplate; import com.zt.modules.message.service.SysMailTemplateService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; /** * 邮件模板 * * @author Mark sunlightcs@gmail.com */ @RestController @RequestMapping("sys/mailtemplate") @Api(tags = "邮件模板") public class MailTemplateController { @Autowired private SysMailTemplateService sysMailTemplateService; @Autowired private ISysParamsService sysParamsService; @GetMapping("page") @ApiOperation("分页") @ApiImplicitParams({ @ApiImplicitParam(name = Constant.Q.PAGE, value = Constant.QV.PAGE, required = true, dataType = Constant.QT.INT), @ApiImplicitParam(name = Constant.Q.LIMIT, value = Constant.QV.LIMIT, required = true, dataType = Constant.QT.INT), @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING), @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING), @ApiImplicitParam(name = "name", value = "name", dataType = Constant.QT.STRING, format = "name^EQ") }) @RequiresPermissions("sys:mail:all") public PageResult page(@ApiIgnore @QueryParam QueryFilter queryFilter) { List list = sysMailTemplateService.page(queryFilter); return PageResult.ok(list); } @GetMapping("/config") @ApiOperation("获取配置信息") @RequiresPermissions("sys:mail:all") public Result config() { EmailConfig config = sysParamsService.getValueObject(EmailUtils.MAIL_CONFIG_KEY, EmailConfig.class); return Result.ok(config); } @PostMapping("/saveConfig") @ApiOperation("保存配置信息") @LogOperation("邮件模板--->保存配置信息") @RequiresPermissions("sys:mail:all") public Result saveConfig(@RequestBody EmailConfig config) { // 校验数据 ValidatorUtils.validateEntity(config); sysParamsService.updateValueByCode(EmailUtils.MAIL_CONFIG_KEY, JSONObject.toJSONString(config)); return Result.ok(); } @GetMapping("{id}") @ApiOperation("信息") @RequiresPermissions("sys:mail:all") public Result info(@PathVariable("id") Long id) { SysMailTemplate sysMailTemplate = sysMailTemplateService.get(id); return Result.ok(sysMailTemplate); } @PostMapping @ApiOperation("新增") @LogOperation("系统邮件模板--->新增") @RequiresPermissions("sys:mail:all") public Result insert(SysMailTemplate entity) { // 校验类型 ValidatorUtils.validateEntity(entity, AddGroup.class, DefaultGroup.class); sysMailTemplateService.insert(entity); return Result.ok(); } @PutMapping @ApiOperation("修改") @LogOperation("系统邮件模板--->修改") @RequiresPermissions("sys:mail:all") public Result update(SysMailTemplate entity) { // 校验类型 ValidatorUtils.validateEntity(entity, UpdateGroup.class, DefaultGroup.class); sysMailTemplateService.update(entity); return Result.ok(); } @DeleteMapping @ApiOperation("删除") @LogOperation("系统邮件模板--->删除") @RequiresPermissions("sys:mail:all") public Result delete(@RequestBody Long[] ids) { sysMailTemplateService.deleteLogic(ids); return Result.ok(); } @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 Result.ok(); } return Result.ok().error("邮件发送失败"); } }