提交邮件配置功能代码

Signed-off-by: zhangwei <zhangwei@intranet.com>
This commit is contained in:
zhangwei
2018-06-04 17:29:49 +08:00
parent 1dc2ddbc59
commit 9ba7998f0c
14 changed files with 2236 additions and 18 deletions

View File

@@ -1,6 +1,40 @@
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;
/**
* 邮件相关配置控制类
@@ -8,6 +42,125 @@ import org.springframework.stereotype.Controller;
*
*/
@Controller
public class MailCfgController {
@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;
}
}