解决冲突 提交本地

This commit is contained in:
zhangshilin
2018-03-17 17:09:19 +08:00
parent b96389e37f
commit d5a2a32c51
25 changed files with 2737 additions and 8 deletions

View File

@@ -0,0 +1,152 @@
package com.nis.domain.specific;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.nis.domain.BaseEntity;
import com.nis.util.Configurations;
/**
* 系统特定服务信息表-记录特定服务信息(specific_service_cfg)
* @author zsl
*
*/
public class SpecificServiceCfg extends BaseEntity<SpecificServiceCfg>{
private static final long serialVersionUID = -1133644323636425766L;
private Integer specServiceId; //spec_service_id 协议ID int N 主键,初始化
//private Integer specServiceCode; //协议编码 int N 暂定,以后可扩展 1000微信 , 1001QQ
private String specServiceName; //spec_service_name 协议名称 varchar(64) N
private String specServiceDesc; //spec_service_desc 协议描述 varchar2(64) N
private Integer isValid; //is_valid 有效标志 int N 1-有效 0-无效
private Date opTime; //op_time 操作时间 date N
private SpecificServiceCfg parent; //parent_id 父节点id int N 0表示一级节点
private Integer isLeaf; //is_leaf 是否是叶子节点 int N 0否1是只有一级填0
private Integer groupId; //group_id maat端配置分组id int N 缺省0表示未与maat分组同步
private Date beginDate; // 开始日期
private Date endDate; // 结束日期
private String showSequence; //显示序号
public Integer getSpecServiceId() {
return specServiceId;
}
public void setSpecServiceId(Integer specServiceId) {
this.specServiceId = specServiceId;
}
public String getSpecServiceName() {
return specServiceName;
}
public void setSpecServiceName(String specServiceName) {
this.specServiceName = specServiceName;
}
public String getSpecServiceDesc() {
return specServiceDesc;
}
public void setSpecServiceDesc(String specServiceDesc) {
this.specServiceDesc = specServiceDesc;
}
public Integer getIsValid() {
return isValid;
}
public void setIsValid(Integer isValid) {
this.isValid = isValid;
}
public Date getOpTime() {
return opTime;
}
public void setOpTime(Date opTime) {
this.opTime = opTime;
}
public SpecificServiceCfg getParent() {
return parent;
}
public void setParent(SpecificServiceCfg parent) {
this.parent = parent;
}
public Integer getIsLeaf() {
return isLeaf;
}
public void setIsLeaf(Integer isLeaf) {
this.isLeaf = isLeaf;
}
public Integer getGroupId() {
return groupId;
}
public void setGroupId(Integer groupId) {
this.groupId = groupId;
}
public Date getBeginDate() {
return beginDate;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public String getShowSequence() {
return showSequence;
}
public void setShowSequence(String showSequence) {
this.showSequence = showSequence;
}
@JsonIgnore
public static void sortList(List<SpecificServiceCfg> list, List<SpecificServiceCfg> allList, Integer parentId, boolean cascade) {
for(int i=0;i<allList.size();i++){
SpecificServiceCfg ss = allList.get(i);
if(ss!=null&&ss.getParent()!=null&&ss.getParent().getSpecServiceId()!=null&&ss.getParent().getSpecServiceId()==parentId){
list.add(ss);
if(cascade){
for(int j=0;j<allList.size();j++){
SpecificServiceCfg child = allList.get(j);
if(child!=null&&child.getParent()!=null&&child.getParent().getSpecServiceId()!=null&&child.getParent().getSpecServiceId().equals(ss.getSpecServiceId())){
sortList(list,allList,ss.getSpecServiceId(),true);
break;
}
}
}
}
}
}
//处理下级序号
public static void addChildrenSeq(List<SpecificServiceCfg> list,Integer parentId){
int countNo = 1;
for(int i=0; i<list.size(); i++){
SpecificServiceCfg ss = list.get(i);
if(ss.getParent()!=null && ss.getParent().getSpecServiceId()!=null
&& ss.getParent().getSpecServiceId().equals(parentId)){
//找出该父类
for(SpecificServiceCfg se:list){
if(se.getSpecServiceId()==parentId){
ss.setShowSequence(se.getShowSequence()+Configurations.getStringProperty("childrenMark", ".")+countNo);
countNo++;
}
}
//继续获取子节点
for (int j=0; j<list.size(); j++){
SpecificServiceCfg child = list.get(j);
if (child.getParent()!=null && child.getParent().getSpecServiceId()!=null
&& child.getParent().getSpecServiceId().equals(ss.getSpecServiceId())){
addChildrenSeq(list, ss.getSpecServiceId());
break;
}
}
}
}
}
}

View File

@@ -0,0 +1,229 @@
package com.nis.domain.specific;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.nis.domain.BaseEntity;
import com.nis.domain.SysUser;
/**
* 系统特定服务信息表-记录特定服务信息(specific_service_cfg)
* @author zsl
*
*/
public class SpecificServiceHostCfg extends BaseEntity<SpecificServiceHostCfg>{
private static final long serialVersionUID = -301627652860717175L;
private Integer hostId; //host_id 配置ID bigint N 主键,自增
private Integer specServiceId; //spec_service_id 协议id int N protocol_info_cfg.protocol_id
private String srcIp; //src_ip 源IP地址 varchar(64) N 缺省0.0.0.0值表示任意
private String srcIpMask; //src_ip_mask 源地址掩码 varchar(64) N IPV4:255.255.255.255表示无掩码即精确IP匹配0.0.0.0值表示任意;
//IPV6FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF表示无掩码::两个半角冒号表示任意。非0掩码值必须是2的指数幂下同。
private String srcPort; //src_port 源端口 varchar(6) N 0表示任意值
private String srcPortMask; //src_port_mask 源端口掩码 varchar(6) N 65535表示无掩码即精确端口匹配0表示任意
private String dstIp; //dst_ip 目的IP地址 varchar(64) N 缺省0.0.0.0值表示任意
private String dstIpMask; //dst_ip_mask 目的地址掩码 varchar(64) N 同源ip地址掩码
private String dstPort; //dst_port 目的端口 varchar(6) N 目的端口,0表示任意值
private String dstPortMask; //dst_port_mask 目的端口掩码 varchar(6) N 同源端口掩码
private Integer direction;; //direction 方向 int N 0双向1单向默认缺省为双向。
private Integer protocol; //protocol 协议 int N 6表示tcp,17表示udp0表示任意
private Integer isValid; //is_valid 有效标识 int N 0无效1有效
private Integer isAudit; //is_audit 是否审核 int N 0未审核1审核通过2审核未通过3取消审核通过即删除
private SysUser creator; //creator_id 创建人员 int N 取自sys_user.id
private Date createTime; //create_time 配置时间 date N
private SysUser editor; //editor_id 修改人员 int Y 取自sys_user.id
private Date editTime; //edit_time 修改时间 date Y
private SysUser auditor; //auditor_id 审核人员 int Y 取自sys_user.id
private Date auditTime; //audit_time 审核时间 date Y
private Date beginDate;
private Date endDate;
private Date editBeginDate;
private Date editEndDate;
private Date auditBeginDate;
private Date auditEndDate;
public Integer getHostId() {
return hostId;
}
public void setHostId(Integer hostId) {
this.hostId = hostId;
}
public Integer getSpecServiceId() {
return specServiceId;
}
public void setSpecServiceId(Integer specServiceId) {
this.specServiceId = specServiceId;
}
public String getSrcIp() {
return srcIp;
}
public void setSrcIp(String srcIp) {
this.srcIp = srcIp;
}
public String getSrcIpMask() {
return srcIpMask;
}
public void setSrcIpMask(String srcIpMask) {
this.srcIpMask = srcIpMask;
}
public String getSrcPort() {
return srcPort;
}
public void setSrcPort(String srcPort) {
this.srcPort = srcPort;
}
public String getSrcPortMask() {
return srcPortMask;
}
public void setSrcPortMask(String srcPortMask) {
this.srcPortMask = srcPortMask;
}
public String getDstIp() {
return dstIp;
}
public void setDstIp(String dstIp) {
this.dstIp = dstIp;
}
public String getDstIpMask() {
return dstIpMask;
}
public void setDstIpMask(String dstIpMask) {
this.dstIpMask = dstIpMask;
}
public String getDstPort() {
return dstPort;
}
public void setDstPort(String dstPort) {
this.dstPort = dstPort;
}
public String getDstPortMask() {
return dstPortMask;
}
public void setDstPortMask(String dstPortMask) {
this.dstPortMask = dstPortMask;
}
public Integer getDirection() {
return direction;
}
public void setDirection(Integer direction) {
this.direction = direction;
}
public Integer getProtocol() {
return protocol;
}
public void setProtocol(Integer protocol) {
this.protocol = protocol;
}
public Integer getIsValid() {
return isValid;
}
public void setIsValid(Integer isValid) {
this.isValid = isValid;
}
public Integer getIsAudit() {
return isAudit;
}
public void setIsAudit(Integer isAudit) {
this.isAudit = isAudit;
}
public SysUser getCreator() {
return creator;
}
public void setCreator(SysUser creator) {
this.creator = creator;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public SysUser getEditor() {
return editor;
}
public void setEditor(SysUser editor) {
this.editor = editor;
}
public Date getEditTime() {
return editTime;
}
public void setEditTime(Date editTime) {
this.editTime = editTime;
}
public SysUser getAuditor() {
return auditor;
}
public void setAuditor(SysUser auditor) {
this.auditor = auditor;
}
public Date getAuditTime() {
return auditTime;
}
public void setAuditTime(Date auditTime) {
this.auditTime = auditTime;
}
public Date getBeginDate() {
return beginDate;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public Date getEditBeginDate() {
return editBeginDate;
}
public void setEditBeginDate(Date editBeginDate) {
this.editBeginDate = editBeginDate;
}
public Date getEditEndDate() {
return editEndDate;
}
public void setEditEndDate(Date editEndDate) {
this.editEndDate = editEndDate;
}
public Date getAuditBeginDate() {
return auditBeginDate;
}
public void setAuditBeginDate(Date auditBeginDate) {
this.auditBeginDate = auditBeginDate;
}
public Date getAuditEndDate() {
return auditEndDate;
}
public void setAuditEndDate(Date auditEndDate) {
this.auditEndDate = auditEndDate;
}
/**
* 处理数据
* @param list
* @param sourceList
* @param ParentId
* @param cascade
*/
@JsonIgnore
public static void sort(List<SpecificServiceHostCfg> list, List<SpecificServiceHostCfg> sourceList, Integer ParentId, boolean cascade){
}
}

View File

@@ -11,9 +11,11 @@ import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.SysDataDictionaryName;
import com.nis.domain.basics.ServiceDictInfo;
import com.nis.domain.basics.SysDictInfo;
import com.nis.domain.specific.SpecificServiceCfg;
import com.nis.web.dao.SysDictDao;
import com.nis.web.dao.basics.ServiceDictInfoDao;
import com.nis.web.dao.basics.SysDictInfoDao;
import com.nis.web.dao.specific.SpecificServiceCfgDao;
import com.nis.web.service.SpringContextHolder;
@@ -29,6 +31,7 @@ public class ConfigDictUtils {
private final static ServiceDictInfoDao serviceDictInfoDao = SpringContextHolder.getBean(ServiceDictInfoDao.class);
private final static SysDictInfoDao sysDictInfoDao = SpringContextHolder.getBean(SysDictInfoDao.class);
private final static SpecificServiceCfgDao specificServiceCfgDao = SpringContextHolder.getBean(SpecificServiceCfgDao.class);
/**
* 根据主键查询配置详情
@@ -47,6 +50,15 @@ public class ConfigDictUtils {
public static SysDictInfo getSysDictInfoById(Integer sysDictId){
return sysDictInfoDao.getDictById(sysDictId);
}
/**
* 根据主键查询配置详情
* @param sysDictId
* @return
*/
public static SpecificServiceCfg getBySpecServiceId(Integer specServiceId){
return specificServiceCfgDao.getBySpecServiceId(specServiceId);
}
/**
* 根据计算公式计算数据结果
* @param sysDictId

View File

@@ -39,6 +39,8 @@ import com.nis.web.service.configuration.SslCfgService;
import com.nis.web.service.configuration.StringCfgService;
import com.nis.web.service.configuration.TunnelCfgService;
import com.nis.web.service.configuration.WebCfgService;
import com.nis.web.service.specific.SpecificServiceCfgService;
import com.nis.web.service.specific.SpecificServiceHostCfgService;
import com.nis.web.service.systemService.ServiceConfigInfoService;
import com.nis.web.service.systemService.SystemServiceService;
@@ -117,6 +119,10 @@ public class BaseController {
protected NumCfgService numCfgService;
@Autowired
protected ComplexStringCfgService complexStringCfgService;
@Autowired
protected SpecificServiceCfgService specificServiceCfgService;
@Autowired
protected SpecificServiceHostCfgService specificServiceHostCfgService;
/**
* 管理基础路径
*/

View File

@@ -0,0 +1,282 @@
package com.nis.web.controller.specific;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.Page;
import com.nis.domain.specific.SpecificServiceCfg;
import com.nis.util.StringUtil;
import com.nis.util.StringUtils;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping(value = "${adminPath}/specific/specificServiceCfg")
public class SpecificServiceCfgController extends BaseController {
/* @ModelAttribute
public SpecificServiceCfg get(@RequestParam(required=false)Integer specServiceId) {
if (!StringUtil.isEmpty(specServiceId)) {
SpecificServiceCfg ss = specificServiceCfgService.getBySpecServiceId(specServiceId);
return ss==null?new SpecificServiceCfg():ss;
} else {
return new SpecificServiceCfg();
}
}*/
/**
* 查出分页列表
*
* @param specificServiceCfg
* @param request
* @param response
* @param model
* @return
*/
@RequiresPermissions("sys:dict:view")
@RequestMapping(value = "list")
public String list(SpecificServiceCfg specificServiceCfg, HttpServletRequest request, HttpServletResponse response,
Model model) {
String searchType = null;
String searchContent = null;
if(specificServiceCfg.getSpecServiceId()!=null){
searchType = "specServiceId";
searchContent = specificServiceCfg.getSpecServiceId().toString();
}
if(!StringUtils.isBlank(specificServiceCfg.getSpecServiceName())){
searchType = "specServiceName";
searchContent = specificServiceCfg.getSpecServiceName();
}
model.addAttribute("searchType", searchType);
model.addAttribute("searchContent", searchContent);
// 取出所有符合条件的数据
List<SpecificServiceCfg> allList = specificServiceCfgService.findAllSpecificServiceCfg(specificServiceCfg);
model.addAttribute("showTotalCount", allList.size());
// 取出所有符合条件的顶层分页
Page<SpecificServiceCfg> page = specificServiceCfgService
.findTopPage(new Page<SpecificServiceCfg>(request, response), specificServiceCfg);
// 植入序号
for (int i = 0; i < page.getList().size(); i++) {
page.getList().get(i).setShowSequence("" + (i + 1 + ((page.getPageNo() - 1) * page.getPageSize())));
}
model.addAttribute("page", page);
// 删除顶层数据、取出id 优化处理
List<Integer> intList = Lists.newArrayList();
for (SpecificServiceCfg tempSS : page.getList()) {
if (tempSS != null) {
intList.add(tempSS.getSpecServiceId());
}
}
for (int i = allList.size() - 1; i >= 0; i--) {
SpecificServiceCfg ss = allList.get(i);
if ((ss != null && intList.contains(ss.getSpecServiceId())) || (ss != null && ss.getSpecServiceId() == 0)) {
allList.remove(ss);
}
}
allList.addAll(page.getList());
List<SpecificServiceCfg> list = Lists.newArrayList();
SpecificServiceCfg.sortList(list, allList, 0, true);
//处理下级序号
SpecificServiceCfg.addChildrenSeq(list, 0);
model.addAttribute("list", list);
return "/specific/specificServiceCfgList";
}
/**
* 进入查看或新增、修改页面
*
* @param specificServiceCfg
* @param model
* @param doAction
* @param mulitId
* @return
*/
@RequestMapping(value = { "form" })
public String form(SpecificServiceCfg specificServiceCfg, Model model, String doAction, String mulitId) {
Integer id = 0;
if (mulitId != null) {
String[] ids = mulitId.split(",");
id = Integer.valueOf(ids[0]);
}
if (id != 0) {
specificServiceCfg = specificServiceCfgService.getBySpecServiceId(id);
}
if (specificServiceCfg == null || specificServiceCfg.getParent() == null
|| specificServiceCfg.getParent().getSpecServiceId() == 0) {
SpecificServiceCfg parent = new SpecificServiceCfg();
parent.setSpecServiceId(0);
parent.setSpecServiceName("根节点");
specificServiceCfg.setParent(parent);
}
model.addAttribute("specificServiceCfg", specificServiceCfg);
if (doAction != null && doAction.equals("0")) {
return "/specific/specificServiceCfgInfo";
}
return "/specific/specificServiceCfgForm";
}
/**
* 新增或保存
* @param specificServiceCfg
* @param model
* @param redirectAttributes
* @return
*/
@RequiresPermissions("sys:dict:edit")
@RequestMapping(value="saveOrUpdate")
public String saveOrUpdate(SpecificServiceCfg specificServiceCfg, Model model,
RedirectAttributes redirectAttributes,Integer oldId) {
try {
specificServiceCfgService.saveOrUpdate(specificServiceCfg,oldId);
addMessage(redirectAttributes, "保存成功");
} catch (Exception e) {
e.printStackTrace();
addMessage(redirectAttributes, "保存失败!");
}
return "redirect:" + adminPath + "/specific/specificServiceCfg/list";
}
/**
* 删除
* @param specificServiceCfg
* @param redirectAttributes
* @param mulitId
* @return
*/
@RequestMapping(value="delete")
public String delete(SpecificServiceCfg specificServiceCfg, RedirectAttributes redirectAttributes, String mulitId){
try{
specificServiceCfgService.delete(mulitId);
addMessage(redirectAttributes,"删除成功");
}catch (Exception e){
e.printStackTrace();
addMessage(redirectAttributes,"删除失败");
}
return "redirect:"+adminPath+"/specific/specificServiceCfg/list";
}
/**
* 父节点选择树形结构
* @param extId
* @param isShowHide
* @param response
* @return
*/
@RequiresPermissions("user")
@ResponseBody
@RequestMapping(value = "treeData")
public List<Map<String, Object>> treeData(@RequestParam(required=false) String extId,@RequestParam(required=false) String isShowHide, HttpServletResponse response){
List<Map<String, Object>> mapList = Lists.newArrayList();
Map<String, Object> map2 = Maps.newHashMap();
map2.put("id", 0);
map2.put("pId", 0);
map2.put("name","根节点");
//map2.put("placeholder","0");
mapList.add(map2);
List<SpecificServiceCfg> list = specificServiceCfgService.findAllSpecificServiceCfg(new SpecificServiceCfg());
for (int i=0; i<list.size(); i++){
SpecificServiceCfg specificServiceCfg = list.get(i);
if(StringUtils.isBlank(extId)||(extId!=null&&!extId.equals(specificServiceCfg.getSpecServiceId().toString()))){
if(specificServiceCfg.getIsValid()==0){
continue;
}
Map<String, Object> map = Maps.newHashMap();
map.put("id", specificServiceCfg.getSpecServiceId());
map.put("pId", specificServiceCfg.getParent().getSpecServiceId());
map.put("name",specificServiceCfg.getSpecServiceName());
mapList.add(map);
}
}
return mapList;
}
/**
* 校验协议id是否重复
* @param specServiceId
* @param oldId
* @return
*/
@ResponseBody
@RequestMapping(value = "isIdRepeat")
public boolean isIdRepeat(String specServiceId,String oldId){
System.out.println(specServiceId +"--"+specServiceId);
System.out.println(oldId.trim().equals(specServiceId));
if(oldId.trim().equals(specServiceId)){
return true;
}
if(specServiceId!=null){
SpecificServiceCfg ss = specificServiceCfgService.getBySpecServiceId(Integer.valueOf(specServiceId));
if(ss==null){
return true;
}
}
return false;
}
/**
* 校验叶子节点无上级不得选为叶子节点
* @param specServiceId
* @param oldId
* @return
*/
@ResponseBody
@RequestMapping(value = "ajaxLeafHasTree")
public boolean ajaxLeafHasTree(Integer parentId, Integer newIsLeaf){
if(parentId==null||parentId==0){
if(newIsLeaf==0){
return true;
}
}
if(parentId!=null&parentId!=0){
return true;
}
return false;
}
/**
* 校验叶子节点有下级不得更改为叶子节点
* @param parent
* @param newIsLeaf
* @return
*/
@ResponseBody
@RequestMapping(value = "ajaxLeafChange")
public boolean ajaxLeafChange(Integer parent,Integer newIsLeaf){
if(parent==null){
return true;
}
List<SpecificServiceCfg> list = specificServiceCfgService.getChildrenById(parent);
if(list==null||list.size()>0){
return true;
}else{
if(newIsLeaf==0){
return true;
}
}
return false;
}
}

View File

@@ -0,0 +1,130 @@
package com.nis.web.controller.specific;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.common.collect.Lists;
import com.nis.domain.Page;
import com.nis.domain.specific.SpecificServiceHostCfg;
import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping(value = "${adminPath}/specific/specificServiceHostCfg")
public class SpecificServiceHostCfgController extends BaseController {
@ModelAttribute
public SpecificServiceHostCfg get(@RequestParam(required=false) Integer hostId) {
if (!StringUtil.isEmpty(hostId)){
return specificServiceHostCfgService.getDictByHostId(hostId);
}else{
return new SpecificServiceHostCfg();
}
}
/**
* 分页查询
* @param specificServiceHostCfg
* @param request
* @param response
* @param model
* @return
*/
@RequiresPermissions("sys:dict:view")
@RequestMapping(value = "list")
public String list(SpecificServiceHostCfg specificServiceHostCfg, HttpServletRequest request, HttpServletResponse response,
Model model) {
//查出分页数据
Page<SpecificServiceHostCfg> page = specificServiceHostCfgService.findSpecHostList(new Page<SpecificServiceHostCfg>(request, response), specificServiceHostCfg);
model.addAttribute("page", page);
//查出所有
List<SpecificServiceHostCfg> list = specificServiceHostCfgService.getAll();
List<Integer> listSpecServiceId = Lists.newArrayList();
List<String> listSrcIp = Lists.newArrayList();
List<String> listDstIp = Lists.newArrayList();
for(SpecificServiceHostCfg ssh:list){
if(ssh!=null&ssh.getSpecServiceId()!=null){
listSpecServiceId.add(ssh.getSpecServiceId());
}
if(ssh!=null&ssh.getSrcIp()!=null){
listSrcIp.add(ssh.getSrcIp());
}
if(ssh!=null&ssh.getDstIp()!=null){
listDstIp.add(ssh.getDstIp());
}
}
model.addAttribute("listSpecServiceId", listSpecServiceId);
model.addAttribute("listSrcIp", listSrcIp);
model.addAttribute("listDstIp", listDstIp);
return "/specific/specificServiceHostCfgList";
}
/**
* 进入查看、修改或新增页面
* @param specificServiceHostCfg
* @param request
* @param response
* @param model
* @return
*/
@RequiresPermissions("sys:dict:view")
@RequestMapping(value = "form")
public String form(SpecificServiceHostCfg specificServiceHostCfg, HttpServletRequest request, HttpServletResponse response, Model model) {
return "/specific/specificServiceHostCfgForm";
}
/**
* 新增或修改
* @param specificServiceHostCfg
* @param model
* @param redirectAttributes
* @param mulitId
* @return
*/
@RequestMapping(value = "saveOrUpdate")
public String saveOrUpdate(SpecificServiceHostCfg specificServiceHostCfg,Model model,RedirectAttributes redirectAttributes){
try {
specificServiceHostCfgService.saveOrUpdate(specificServiceHostCfg);
addMessage(redirectAttributes, "保存成功");
} catch (Exception e) {
e.printStackTrace();
addMessage(redirectAttributes, "保存失败!");
}
return "redirect:"+adminPath+"/specific/specificServiceHostCfgList";
}
/**
* 删除
* @param specificServiceHostCfg
* @param redirectAttributes
* @param mulitId
* @return
*/
@RequestMapping(value="delete")
public String delete(SpecificServiceHostCfg specificServiceHostCfg, RedirectAttributes redirectAttributes, String mulitId){
try{
specificServiceHostCfgService.delete(mulitId);
addMessage(redirectAttributes,"删除成功");
}catch (Exception e){
e.printStackTrace();
addMessage(redirectAttributes,"删除失败");
}
return "redirect:"+adminPath+"/specific/specificServiceHostCfg/list";
}
}

View File

@@ -0,0 +1,46 @@
package com.nis.web.dao.specific;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.nis.domain.specific.SpecificServiceCfg;
import com.nis.web.dao.CrudDao;
import com.nis.web.dao.MyBatisDao;
@MyBatisDao
public interface SpecificServiceCfgDao extends CrudDao<SpecificServiceCfg> {
/**
* 根据id查出对象
* @param specServiceId
* @return
*/
SpecificServiceCfg getBySpecServiceId(Integer specServiceId);
/**
* 查询所有符合条件顶层分页列表
* @param specificServiceCfg
*/
List<SpecificServiceCfg> findTopPage(SpecificServiceCfg specificServiceCfg);
/**
* 查询所有符合条件的数据
* @param specificServiceCfg
* @return
*/
List<SpecificServiceCfg> findAllSpecificServiceCfg(SpecificServiceCfg specificServiceCfg);
/**
* 修改配置信息
* @param specificServiceCfg
* @param oldId
*/
void update(@Param("specificServiceCfg")SpecificServiceCfg specificServiceCfg, @Param("oldId")Integer oldId);
/**
* 根据specServiceId查询所有下级
* @param specServiceId
* @return
*/
List<SpecificServiceCfg> getChildrenById(Integer specServiceId);
}

View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.nis.web.dao.specific.SpecificServiceCfgDao" >
<resultMap id="CFGResultMap" type="com.nis.domain.specific.SpecificServiceCfg" >
<id column="spec_service_id" property="specServiceId" jdbcType="INTEGER" />
<result column="spec_service_name" property="specServiceName" jdbcType="VARCHAR" />
<result column="spec_service_desc" property="specServiceDesc" jdbcType="VARCHAR" />
<result column="is_valid" property="isValid" jdbcType="INTEGER" />
<result column="op_time" property="opTime" jdbcType="TIMESTAMP" />
<result column="is_leaf" property="isLeaf" jdbcType="INTEGER" />
<result column="group_id" property="groupId" jdbcType="INTEGER" />
<!-- 父id -->
<association property="parent" javaType="com.nis.domain.specific.SpecificServiceCfg">
<id column="parent_id" property="specServiceId" jdbcType="INTEGER" />
</association>
</resultMap>
<sql id="specificServiceCfgColumns">
s.spec_service_id AS specServiceId,
s.spec_service_name AS specServiceName,
s.spec_service_desc AS specServiceDesc,
s.is_valid AS isValid,
s.op_time AS opTime,
s.parent_id AS "parent.specServiceId",
s.is_leaf AS isLeaf,
s.group_id AS groupId
</sql>
<!-- 根据id查出对象 -->
<select id="getBySpecServiceId" resultType="com.nis.domain.specific.SpecificServiceCfg" parameterType="java.lang.Integer">
select <include refid="specificServiceCfgColumns" />
from specific_service_cfg s where s.spec_service_id = #{specServiceId}
</select>
<!-- 查出所有符合条件的顶层数据 -->
<select id="findTopPage" resultMap="CFGResultMap" parameterType="com.nis.domain.specific.SpecificServiceCfg">
SELECT * FROM specific_service_cfg s WHERE s.is_valid=1
<if test="specServiceId != null">
AND s.spec_service_id like '%${specServiceId}%'
</if>
<if test="specServiceName != null and specServiceName != '' ">
AND s.spec_service_name like '%${specServiceName}%'
</if>
<if test="specServiceDesc != null and specServiceDesc != '' ">
AND s.spec_service_desc like '%${specServiceDesc}%'
</if>
<if test="beginDate != null" >
AND s.op_time &gt;= #{beginDate,jdbcType=TIMESTAMP}
</if>
<if test="endDate != null" >
AND s.op_time &lt;= #{endDate,jdbcType=TIMESTAMP}
</if>
AND s.parent_id not in (
SELECT s2.spec_service_id FROM specific_service_cfg s2 WHERE s2.is_valid=1
<if test="specServiceId != null">
AND s2.spec_service_id like '%${specServiceId}%'
</if>
<if test="specServiceName != null and specServiceName != '' ">
AND s2.spec_service_name like '%${specServiceName}%'
</if>
<if test="specServiceDesc != null and specServiceDesc != '' ">
AND s2.spec_service_desc like '%${specServiceDesc}%'
</if>
<if test="beginDate != null" >
AND s2.op_time &gt;= #{beginDate,jdbcType=TIMESTAMP}
</if>
<if test="endDate != null" >
AND s2.op_time &lt;= #{endDate,jdbcType=TIMESTAMP}
</if>
)
<choose>
<when test="page != null and page.orderBy != null and page.orderBy != ''">
ORDER BY s.${page.orderBy}
</when>
<otherwise>
ORDER BY s.op_time desc
</otherwise>
</choose>
</select>
<!-- 查询符合条件的所有数据 -->
<select id="findAllSpecificServiceCfg" resultMap="CFGResultMap" parameterType="com.nis.domain.specific.SpecificServiceCfg">
SELECT * from specific_service_cfg where is_valid = 1
<if test="specServiceId != null">
AND spec_service_id like '%${specServiceId}%'
</if>
<if test="specServiceName != null and specServiceName != '' ">
AND spec_service_name like '%${specServiceName}%'
</if>
<if test="specServiceDesc != null and specServiceDesc != '' ">
AND spec_service_desc like '%${specServiceDesc}%'
</if>
<if test="beginDate != null">
AND op_time &gt; #{beginDate}
</if>
<if test="endDate != null" >
AND op_time &lt; #{endDate}
</if>
<choose>
<when test="page != null and page.orderBy != null and page.orderBy != '' ">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY op_time desc
</otherwise>
</choose>
</select>
<!-- 新增 -->
<insert id="insert" parameterType="com.nis.domain.specific.SpecificServiceCfg" useGeneratedKeys="true">
insert into specific_service_cfg (spec_service_id,spec_service_name,spec_service_desc,is_valid, op_time, parent_id,is_leaf,group_id)
values(#{specServiceId},#{specServiceName},#{specServiceDesc},#{isValid},#{opTime},#{parent.specServiceId},#{isLeaf},#{groupId})
</insert>
<!-- 修改 -->
<update id="update" parameterType="com.nis.domain.specific.SpecificServiceCfg">
UPDATE specific_service_cfg s SET
s.spec_service_id = #{specificServiceCfg.specServiceId},
s.spec_service_name = #{specificServiceCfg.specServiceName},
s.spec_service_desc = #{specificServiceCfg.specServiceDesc},
s.is_valid = #{specificServiceCfg.isValid},
s.op_time = #{specificServiceCfg.opTime},
s.parent_id = #{specificServiceCfg.parent.specServiceId},
s.is_leaf = #{specificServiceCfg.isLeaf},
s.group_id = #{specificServiceCfg.groupId}
WHERE s.spec_service_id = #{oldId}
</update>
<!-- 删除 -->
<update id="delete" parameterType="com.nis.domain.specific.SpecificServiceCfg">
UPDATE specific_service_cfg s set s.is_valid = #{isValid} where s.spec_service_id = #{specServiceId}
</update>
<!-- getChildrenById -->
<select id="getChildrenById" resultMap="CFGResultMap" parameterType="java.lang.Integer">
SELECT * FROM specific_service_cfg s WHERE s.is_valid = 1 and s.parent_id = #{specServiceId}
</select>
</mapper>

View File

@@ -0,0 +1,41 @@
package com.nis.web.dao.specific;
import java.util.List;
import com.nis.domain.specific.SpecificServiceHostCfg;
import com.nis.web.dao.CrudDao;
import com.nis.web.dao.MyBatisDao;
@MyBatisDao
public interface SpecificServiceHostCfgDao extends CrudDao<SpecificServiceHostCfg> {
/**
* 根据主键查询数据对象
* @param hostId
* @return
*/
SpecificServiceHostCfg getByHostId(Integer hostId);
/**
* 查询分页
* @param specificServiceHostCfg
* @return
*/
List<SpecificServiceHostCfg> findSpecHostList(SpecificServiceHostCfg specificServiceHostCfg);
/**
* 查出所有
* @return
*/
List<SpecificServiceHostCfg> getAll();
/**
* 删除
* @param hostId
*/
void delete(Integer hostId);
}

View File

@@ -0,0 +1,157 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.nis.web.dao.specific.SpecificServiceHostCfgDao">
<resultMap id="specificServiceHostCfgResultMap"
type="com.nis.domain.specific.SpecificServiceHostCfg">
<id column="host_id" property="hostId" jdbcType="INTEGER" />
<result column="spec_service_id" property="specServiceId"
jdbcType="INTEGER" />
<result column="src_ip" property="srcIp" jdbcType="VARCHAR" />
<result column="src_ip_mask" property="srcIpMask" jdbcType="VARCHAR" />
<result column="src_port" property="srcPort" jdbcType="VARCHAR" />
<result column="src_port_mask" property="srcPortMask" jdbcType="VARCHAR" />
<result column="dst_ip" property="dstIp" jdbcType="VARCHAR" />
<result column="dst_ip_mask" property="dstIpMask" jdbcType="VARCHAR" />
<result column="dst_port" property="dstPort" jdbcType="VARCHAR" />
<result column="dst_port_mask" property="dstPortMask" jdbcType="VARCHAR" />
<result column="direction" property="direction" jdbcType="INTEGER" />
<result column="protocol" property="protocol" jdbcType="INTEGER" />
<result column="is_valid" property="isValid" jdbcType="INTEGER" />
<result column="is_audit" property="isAudit" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="edit_time" property="editTime" jdbcType="TIMESTAMP" />
<result column="audit_time" property="auditTime" jdbcType="TIMESTAMP" />
<!-- 创建人员 -->
<association property="creator" javaType="com.nis.domain.SysUser">
<id property="id" column="creator_id" />
</association>
<!-- 修改人员 -->
<association property="editor" javaType="com.nis.domain.SysUser">
<id property="id" column="editor_id" />
</association>
<!-- 审核人员 -->
<association property="auditor" javaType="com.nis.domain.SysUser">
<id property="id" column="auditor_id" />
</association>
</resultMap>
<sql id="specificServiceHostCfgColumns">
s.host_id AS hostId,
s.spec_service_id AS specServiceId,
s.src_ip AS srcIp,
s.src_ip_mask AS srcIpMask,
s.src_port AS srcPort,
s.src_port_mask AS srcPortMask,
s.dst_ip AS dstIp,
s.dst_ip_mask AS dstIpMask,
s.dst_port AS dstPort,
s.dst_port_mask AS dstPortMask,
s.direction AS direction,
s.protocol AS protocol,
s.is_valid AS isValid,
s.is_audit AS isAudit,
s.creator_id AS "creator.id",
s.create_time AS createTime,
s.editor_id AS "editor.id",
s.edit_time AS editTime,
s.auditor_id AS "auditor.id",
s.audit_time AS auditTime
</sql>
<!-- 根据id查出对象 -->
<select id="getByHostId" resultType="com.nis.domain.specific.SpecificServiceHostCfg"
parameterType="java.lang.Integer">
select
<include refid="specificServiceHostCfgColumns" />
from specific_service_host_cfg s where s.host_id = #{hostId}
</select>
<!-- 查询分页 -->
<select id="findSpecHostList" resultMap="specificServiceHostCfgResultMap" parameterType="com.nis.domain.specific.SpecificServiceHostCfg">
select * from specific_service_host_cfg where 1 = 1
<if test="isAudit !=null" >
AND is_audit = #{isAudit}
</if>
<if test="specServiceId !=null" >
AND spec_service_id = #{specServiceId}
</if>
<if test="protocol !=null" >
AND protocol = #{protocol}
</if>
<if test="direction !=null" >
AND direction = #{direction}
</if>
<if test="beginDate !=null" >
AND create_time &gt;= #{beginDate,jdbcType=TIMESTAMP}
</if>
<if test="endDate !=null" >
AND create_time &lt;= #{endDate,jdbcType=TIMESTAMP}
</if>
<if test="editBeginDate !=null" >
AND edit_time &gt;= #{editBeginDate,jdbcType=TIMESTAMP}
</if>
<if test="editEndDate !=null" >
AND edit_time &lt;= #{editEndDate,jdbcType=TIMESTAMP}
</if>
<if test="auditBeginDate !=null" >
AND audit_time &gt;= #{auditBeginDate,jdbcType=TIMESTAMP}
</if>
<if test="auditEndDate !=null" >
AND audit_time &lt;= #{auditEndDate,jdbcType=TIMESTAMP}
</if>
<choose>
<when test="page !=null and page.orderBy != null and page.orderBy != ''">
ORDER BY ${page.orderBy}
</when>
<otherwise>
ORDER BY create_time desc
</otherwise>
</choose>
</select>
<!-- 查询所有 -->
<select id="getAll" resultMap="specificServiceHostCfgResultMap">
select * from specific_service_host_cfg
</select>
<!-- 新增 -->
<insert id="insert" parameterType="com.nis.domain.specific.SpecificServiceHostCfg">
insert into specific_service_host_cfg (spec_service_id,src_ip,src_ip_mask,src_port,src_port_mask,dst_ip,dst_ip_mask,dst_port,dst_port_mask,direction,protocol,is_valid,is_audit,creator_id,create_time,editor_id,edit_time,auditor_id,audit_time)
values(#{specServiceId},#{srcIp},#{srcIpMask},#{srcPort},#{srcPortMask},#{dstIp},#{dstIpMask},#{dstPort},#{dstPortMask},#{direction},#{protocol},#{isValid},#{isAudit},#{creator.id},#{createTime},#{editor.id},#{editTime},#{auditor.id},#{auditTime})
</insert>
<!-- 修改 -->
<update id="update" parameterType="com.nis.domain.specific.SpecificServiceHostCfg">
update specific_service_host_cfg s set
s.spec_service_id = #{specServiceId},
s.src_ip = #{srcIp},
s.src_ip_mask = #{srcIpMask},
s.src_port = #{srcPort},
s.src_port_mask = #{srcPortMask},
s.dst_ip = #{dstIp},
s.dst_ip_mask = #{dstIpMask},
s.dst_port = #{dstPort},
s.dst_port_mask = #{dstPortMask},
s.direction = #{direction},
s.protocol = #{protocol},
s.is_valid = #{isValid},
s.is_audit = #{isAudit},
s.creator_id = #{creator.id},
s.create_time = #{createTime},
s.editor_id = #{editor.id},
s.edit_time = #{editTime},
s.auditor_id = #{auditor.id},
s.audit_time = #{auditTime}
where s.host_id = #{hostId}
</update>
<!-- 删除 -->
<update id="delete" parameterType="java.lang.Integer">
update specific_service_host_cfg s set
s.is_valid = 0
where s.host_id = #{hostId}
</update>
</mapper>

View File

@@ -0,0 +1,119 @@
package com.nis.web.service.specific;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.beust.jcommander.internal.Lists;
import com.nis.domain.Page;
import com.nis.domain.specific.SpecificServiceCfg;
import com.nis.util.StringUtil;
import com.nis.web.dao.specific.SpecificServiceCfgDao;
import com.nis.web.service.BaseService;
@Service
public class SpecificServiceCfgService extends BaseService{
@Autowired
private SpecificServiceCfgDao specificServiceCfgDao;
/**
* 根据id查询对象
* @param specServiceId
* @return
*/
public SpecificServiceCfg getBySpecServiceId(Integer specServiceId) {
return specificServiceCfgDao.getBySpecServiceId(specServiceId);
}
/**
* 查询所有符合条件的顶层分页
* @param page
* @param specificServiceCfg
* @return
*/
public Page<SpecificServiceCfg> findTopPage(Page<SpecificServiceCfg> page, SpecificServiceCfg specificServiceCfg){
// 设置分页参数
specificServiceCfg.setPage(page);
// 执行分页查询
List<SpecificServiceCfg> list = Lists.newArrayList();
list = specificServiceCfgDao.findTopPage(specificServiceCfg);
SpecificServiceCfg ss = new SpecificServiceCfg();
ss.setSpecServiceId(0);
for(SpecificServiceCfg ssc:list){
ssc.setParent(ss);
}
page.setList(list);
return page;
}
/**
* 查询所有符合条件的数据
* @param specificServiceCfg
* @return
*/
public List<SpecificServiceCfg> findAllSpecificServiceCfg(SpecificServiceCfg specificServiceCfg) {
return specificServiceCfgDao.findAllSpecificServiceCfg(specificServiceCfg);
}
/**
* 保存或修改
* @param specificServiceCfg
*/
public void saveOrUpdate(SpecificServiceCfg specificServiceCfg, Integer oldId) {
if(oldId==null){//新增
specificServiceCfg.setIsValid(1);
specificServiceCfg.setOpTime(new Date());
specificServiceCfgDao.insert(specificServiceCfg);
}else{//修改
specificServiceCfg.setOpTime(new Date());
//修改id则将其子类的parent_id一并修改
if(oldId!=specificServiceCfg.getSpecServiceId()){
//找出所有子类
List<SpecificServiceCfg> list = specificServiceCfgDao.getChildrenById(oldId);
SpecificServiceCfg se =new SpecificServiceCfg();
se.setSpecServiceId(specificServiceCfg.getSpecServiceId());
for(SpecificServiceCfg ss:list){
if(ss!=null){
ss.setParent(se);
specificServiceCfgDao.update(ss,ss.getSpecServiceId());
}
}
}
specificServiceCfgDao.update(specificServiceCfg,oldId);
}
}
/**
* 删除
* @param specificServiceCfg
*/
public void delete(String mulitId) {
String[] ids = mulitId.split(",");
for(String id:ids){
if (!id.equals("")) {
SpecificServiceCfg specificServiceCfg = specificServiceCfgDao.getBySpecServiceId(Integer.valueOf(id));
List<SpecificServiceCfg> list = Lists.newArrayList();
//找出所有下级
if(specificServiceCfg!=null){
SpecificServiceCfg.sortList(list, specificServiceCfgDao.findAllSpecificServiceCfg(new SpecificServiceCfg()), specificServiceCfg.getSpecServiceId(), true);
list.add(specificServiceCfg);
for(SpecificServiceCfg ss:list){
ss.setIsValid(0);
specificServiceCfgDao.delete(ss);
}
}
}
}
}
/**
* 根据specServiceId查询所有下级
* @param specServiceId
* @return
*/
public List<SpecificServiceCfg> getChildrenById(Integer specServiceId) {
return specificServiceCfgDao.getChildrenById(specServiceId);
}
}

View File

@@ -0,0 +1,96 @@
package com.nis.web.service.specific;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.nis.domain.Page;
import com.nis.domain.SysUser;
import com.nis.domain.specific.SpecificServiceHostCfg;
import com.nis.web.dao.specific.SpecificServiceHostCfgDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService;
@Service
public class SpecificServiceHostCfgService extends BaseService{
@Autowired
private SpecificServiceHostCfgDao specificServiceHostCfgDao;
/**
* 根据主键查询数据对象
* @param hostId
* @return
*/
public SpecificServiceHostCfg getDictByHostId(Integer hostId) {
return specificServiceHostCfgDao.getByHostId(hostId);
}
/**
* 查出分页
* @param page
* @param specificServiceHostCfg
* @return
*/
public Page<SpecificServiceHostCfg> findSpecHostList(Page<SpecificServiceHostCfg> page,
SpecificServiceHostCfg specificServiceHostCfg) {
specificServiceHostCfg.setPage(page);
page.setList(specificServiceHostCfgDao.findSpecHostList(specificServiceHostCfg));
return page;
}
/**
* 新增或修改
* @param specificServiceHostCfg
*/
public void saveOrUpdate(SpecificServiceHostCfg specificServiceHostCfg) {
SysUser user = UserUtils.getUser();
Date date = new Date();
if(specificServiceHostCfg.getHostId()==null){//新增
specificServiceHostCfg.setIsValid(1);
specificServiceHostCfg.setCreator(user);
specificServiceHostCfg.setCreateTime(date);
specificServiceHostCfg.setEditor(user);
specificServiceHostCfg.setEditTime(date);
specificServiceHostCfgDao.insert(specificServiceHostCfg);
}else{//修改
//是否进行了审核操作
SpecificServiceHostCfg ssh = specificServiceHostCfgDao.getByHostId(specificServiceHostCfg.getHostId());
if(ssh.getIsAudit()!=specificServiceHostCfg.getIsAudit()){
specificServiceHostCfg.setAuditor(user);
specificServiceHostCfg.setAuditTime(date);
}
specificServiceHostCfg.setEditor(user);
specificServiceHostCfg.setEditTime(date);
specificServiceHostCfgDao.update(specificServiceHostCfg);
}
}
/**
* 查出所有
* @return
*/
public List<SpecificServiceHostCfg> getAll() {
return specificServiceHostCfgDao.getAll();
}
/**
* 删除
* @param mulitId
*/
public void delete(String mulitId) {
String[] ids = mulitId.split(",");
for(String hostId:ids){
if (!StringUtils.isEmpty(hostId)) {
specificServiceHostCfgDao.delete(Integer.valueOf(hostId));
}
}
}
}