This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
k18-ntcs-web-ntc/src/main/java/com/nis/web/controller/configuration/MailCfgController.java
zhangwei 9ba7998f0c 提交邮件配置功能代码
Signed-off-by: zhangwei <zhangwei@intranet.com>
2018-06-04 17:29:49 +08:00

167 lines
6.5 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.nis.web.controller.configuration;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.Page;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.ComplexkeywordCfg;
import com.nis.domain.configuration.FileDigestCfg;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.maat.ToMaatResult;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.FileUtils;
import com.nis.util.JsonMapper;
import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
/**
* 邮件相关配置控制类
* @author dell
*
*/
@Controller
@RequestMapping("${adminPath}/ntc/mail/")
public class MailCfgController extends BaseController{
@RequestMapping(value = {"mailList"})
@RequiresPermissions(value={"mail:config"})
public String mailList(Model model,@ModelAttribute("cfg")CfgIndexInfo cfg,HttpServletRequest request,HttpServletResponse response) {
Page<CfgIndexInfo> searchPage=new Page<CfgIndexInfo>(request,response,"a");
Page<CfgIndexInfo> page = mailCfgService.getMailList(searchPage, cfg);
model.addAttribute("page", page);
initPageCondition(model,cfg);
return "/cfg/mail/mailList";
}
@RequestMapping(value = {"mailForm"})
@RequiresPermissions(value={"mail:config"})
public String mailForm(Model model,String ids,CfgIndexInfo entity) {
if(StringUtils.isNotBlank(ids)){
entity = mailCfgService.getMailCfg(Long.parseLong(ids));
model.addAttribute("areaCfgs", entity.getAreaCfg());
}
initFormCondition(model,entity);
model.addAttribute("_cfg", entity);
return "/cfg/mail/mailForm";
}
@RequestMapping(value = {"saveMailCfg"})
@RequiresPermissions(value={"mail:config"})
public String saveMailCfg(Model model,HttpServletRequest request,HttpServletResponse response,String ids,
CfgIndexInfo entity,MultipartFile file) {
try {
ToMaatResult result = null;
if(file!=null && file.getSize()>0 && entity.getDigestList()!=null && entity.getDigestList().size()>0){
String sep = System.getProperty("file.separator");
String digestFilePath = request.getRealPath("/")+"digestFile";
FileUtils.createDirectory(digestFilePath);
String fileName = UUID.randomUUID()+FileUtils.getSuffix(file.getOriginalFilename(), true);
File uploadFile = new File(digestFilePath+sep+fileName);
FileCopyUtils.copy(file.getBytes(), uploadFile);
Date creatTime = entity.getCreateTime();
//获取文件摘要接口调用
Map<String,Object> fileMap = new HashMap();
fileMap.put("filetype", FileUtils.getSuffix(file.getName(), false));
fileMap.put("datatype", "dbSystem");//源文件存入数据中心
fileMap.put("createTime",creatTime);
fileMap.put("key",FileUtils.getPrefix(file.getName(), false));
fileMap.put("fileName", file.getName());
String md5 = DigestUtils.md5Hex(file.getBytes());
fileMap.put("checksum", md5);
result = ConfigServiceUtil.getFileDigest(null, uploadFile, JsonMapper.toJsonString(fileMap));
logger.info("获取文件摘要响应信息:"+result);
}
mailCfgService.saveMailCfg(entity,result);
} catch (IOException e) {
e.printStackTrace();
}
return "redirect:" + adminPath +"/ntc/mail/mailList?functionId="+entity.getFunctionId();
}
@RequestMapping(value = {"ajaxMailSubList"})
public String ajaxMailSubList(Model model,Long cfgId,Integer index) {
CfgIndexInfo cfg = mailCfgService.getMailCfg(cfgId);
List<String[]> tabList = new ArrayList();
if(cfg.getIpPortList()!=null){
String cfgType = null;
for(IpPortCfg ip:cfg.getIpPortList()){
if(!ip.getCfgType().equals(cfgType)){
tabList.add(new String[]{"1",ip.getCfgType()});
cfgType = ip.getCfgType();
}
}
}
if(cfg.getComplexList()!=null){
String cfgType = null;
for(ComplexkeywordCfg keyword:cfg.getComplexList()){
if(!keyword.getCfgType().equals(cfgType)){
tabList.add(new String[]{"3",keyword.getCfgType()});
cfgType = keyword.getCfgType();
}
}
}
if(cfg.getDigestList()!=null){
String cfgType = null;
for(FileDigestCfg digest:cfg.getDigestList()){
if(!digest.getCfgType().equals(cfgType)){
tabList.add(new String[]{"5",digest.getCfgType()});
cfgType = digest.getCfgType();
}
}
}
model.addAttribute("_cfg", cfg);
model.addAttribute("index", index);
model.addAttribute("tabList", tabList);
return "/cfg/mail/mailSubList";
}
@RequestMapping(value = {"updateMailCfgValid"})
@RequiresPermissions(value={"mail:config"})
public String updateMailCfgValid(Integer isValid,String ids,Integer functionId) {
mailCfgService.updateMailCfgValid(isValid,ids,functionId);
return "redirect:" + adminPath +"/ntc/mail/mailList?functionId="+functionId;
}
@RequestMapping(value = {"auditMailCfg"})
@RequiresPermissions(value={"mail:audit"})
public String auditMailCfg(Integer isAudit,Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) {
CfgIndexInfo entity = new CfgIndexInfo();
String[] idArray = ids.split(",");
for(String id :idArray){
entity = mailCfgService.getMailCfg(Long.parseLong(id));
entity.setIsAudit(isAudit);
entity.setIsValid(isValid);
entity.setAuditorId(UserUtils.getUser().getId());
entity.setAuditTime(new Date());
entity.setFunctionId(functionId);
try {
mailCfgService.auditMailCfg(entity,isAudit);
} catch (MaatConvertException e) {
e.printStackTrace();
logger.info("mail配置下发失败"+e.getMessage());
addMessage(redirectAttributes, e.getMessage());
}
}
return "redirect:" + adminPath +"/ntc/mail/mailList?functionId="+functionId;
}
}