167 lines
6.5 KiB
Java
167 lines
6.5 KiB
Java
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;
|
||
}
|
||
}
|