付延余
2022-12-16 f0f8ee8c4a945adbc742d9bab69382b28ad311fb
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
151
152
153
154
155
package com.wgcloud.controller;
 
import com.wgcloud.entity.MailSet;
import com.wgcloud.service.LogInfoService;
import com.wgcloud.service.MailSetService;
import com.wgcloud.util.msg.WarnMailUtil;
import com.wgcloud.util.staticvar.StaticKeys;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/**
 * @version v3.3
 * @ClassName:MailSetController.java
 * @author: http://www.wgstart.com
 * @date: 2021年1月16日
 * @Description: 邮件告警管理
 * @Copyright: 2019-2021 wgcloud. All rights reserved.
 */
@Controller
@RequestMapping("/mailset")
public class MailSetController {
 
 
    private static final Logger logger = LoggerFactory.getLogger(MailSetController.class);
 
    @Resource
    private MailSetService mailSetService;
    @Resource
    private LogInfoService logInfoService;
 
 
    /**
     * 根据条件查询列表
     *
     * @param model
     * @param request
     * @return
     */
    @RequestMapping(value = "list")
    public String MailSetList(MailSet MailSet, Model model, HttpServletRequest request) {
        Map<String, Object> params = new HashMap<String, Object>();
        try {
            List<MailSet> list = mailSetService.selectAllByParams(params);
            if (list.size() > 0) {
                model.addAttribute("mailSet", list.get(0));
            }
        } catch (Exception e) {
            logger.error("查询邮件设置错误", e);
            logInfoService.save("查询邮件设置错误", e.toString(), StaticKeys.LOG_XTCZ);
 
        }
        String msg = request.getParameter("msg");
        if (!StringUtils.isEmpty(msg)) {
            if ("save".equals(msg)) {
                model.addAttribute("msg", "保存成功");
            } else if ("test".equals(msg)) {
                String result = request.getParameter("result");
                if ("success".equals(result)) {
                    model.addAttribute("msg", "测试发送成功");
                } else {
                    model.addAttribute("msg", "测试发送失败,请查看日志");
                }
            } else {
                model.addAttribute("msg", "删除成功");
            }
        } else {
            model.addAttribute("msg", "");
        }
        return "mail/view";
    }
 
 
    /**
     * 保存邮件设置信息
     *
     * @param MailSet
     * @param model
     * @param request
     * @return
     */
    @RequestMapping(value = "save")
    public String saveMailSet(MailSet mailSet, Model model, HttpServletRequest request) {
        try {
            if (StringUtils.isEmpty(mailSet.getId())) {
                mailSetService.save(mailSet);
                mailSetService.saveLog(request, StaticKeys.LOG_ADD, mailSet);
            } else {
                mailSetService.updateById(mailSet);
                mailSetService.saveLog(request, StaticKeys.LOG_UPDATE, mailSet);
            }
        } catch (Exception e) {
            logger.error("保存邮件设置信息错误", e);
            logInfoService.save("保存邮件设置信息错误", e.toString(), StaticKeys.LOG_XTCZ);
        }
        return "redirect:/mailset/list?msg=save";
    }
 
    @RequestMapping(value = "test")
    public String test(MailSet mailSet, Model model, HttpServletRequest request) {
        String result = "success";
        try {
            if (StringUtils.isEmpty(mailSet.getId())) {
                mailSetService.save(mailSet);
                mailSetService.saveLog(request, StaticKeys.LOG_ADD, mailSet);
            } else {
                mailSetService.updateById(mailSet);
                mailSetService.saveLog(request, StaticKeys.LOG_UPDATE, mailSet);
            }
            StaticKeys.mailSet = mailSet;
            result = WarnMailUtil.sendMail(mailSet.getToMail(), "WGCLOUD测试邮件发送", "WGCLOUD测试邮件发送");
        } catch (Exception e) {
            logger.error("测试邮件设置信息错误", e);
            logInfoService.save("测试邮件设置信息错误", e.toString(), StaticKeys.LOG_XTCZ);
        }
        return "redirect:/mailset/list?msg=test&result=" + result;
    }
 
    /**
     * 删除告警邮件信息
     *
     * @param id
     * @param model
     * @param request
     * @param redirectAttributes
     * @return
     */
    @RequestMapping(value = "del")
    public String delete(Model model, HttpServletRequest request, RedirectAttributes redirectAttributes) {
        String errorMsg = "删除告警邮件设置错误";
        try {
            if (!StringUtils.isEmpty(request.getParameter("id"))) {
                mailSetService.deleteById(request.getParameter("id").split(","));
                mailSetService.saveLog(request, StaticKeys.LOG_DEL, new MailSet());
            }
        } catch (Exception e) {
            logger.error(errorMsg, e);
            logInfoService.save(errorMsg, e.toString(), StaticKeys.LOG_XTCZ);
        }
 
        return "redirect:/mailset/list?msg=del";
    }
 
 
}