diff --git a/src/main/java/com/nis/domain/configuration/GroupAreaInfo.java b/src/main/java/com/nis/domain/configuration/GroupAreaInfo.java new file mode 100644 index 000000000..24c3e1697 --- /dev/null +++ b/src/main/java/com/nis/domain/configuration/GroupAreaInfo.java @@ -0,0 +1,47 @@ +package com.nis.domain.configuration; + +import java.io.Serializable; +import java.util.Date; + +/** + * 分组地理信息 + */ +public class GroupAreaInfo extends BaseCfg implements Serializable{ + + private static final long serialVersionUID = 3312689200711339511L; + + private Long id; + private Integer groupId; + private Integer areaCode; + + public Long getId() { + return id; + } + public void setId(Long id) { + this.id = id; + } + public Integer getGroupId() { + return groupId; + } + public void setGroupId(Integer groupId) { + this.groupId = groupId; + } + public Integer getAreaCode() { + return areaCode; + } + public void setAreaCode(Integer areaCode) { + this.areaCode = areaCode; + } + public Date getCreateTime() { + return createTime; + } + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + public Date getEditTime() { + return editTime; + } + public void setEditTime(Date editTime) { + this.editTime = editTime; + } +} diff --git a/src/main/java/com/nis/web/controller/configuration/GroupAreaController.java b/src/main/java/com/nis/web/controller/configuration/GroupAreaController.java new file mode 100644 index 000000000..a68aac5fa --- /dev/null +++ b/src/main/java/com/nis/web/controller/configuration/GroupAreaController.java @@ -0,0 +1,89 @@ +package com.nis.web.controller.configuration; + +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.beans.factory.annotation.Autowired; +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 com.nis.domain.Page; +import com.nis.domain.basics.PolicyGroupInfo; +import com.nis.domain.configuration.GroupAreaInfo; +import com.nis.util.StringUtil; +import com.nis.web.controller.BaseController; +import com.nis.web.service.configuration.GroupAreaService; + +/** + * 分组地理信息管理 + * + */ +@Controller +@RequestMapping(value = "${adminPath}/cfg/groupArea") +public class GroupAreaController extends BaseController { + + @Autowired + private GroupAreaService groupAreaService; + + @RequestMapping(value = { "/groupAreaList", "" }) + public String policyGroupList(GroupAreaInfo cfg, HttpServletRequest request, HttpServletResponse response, + Model model) { + if (cfg == null)cfg = new GroupAreaInfo(); + Page pageCondition = new Page(request, response, "r"); + Page page = groupAreaService.findGroupAreaInfoList(pageCondition, cfg); + // 获取策略分组信息 + List policyGroups = policyGroupInfoService.findNatPolicyGroups(); + // 获取区域信息 + initFormCondition(model); + model.addAttribute("cfg", cfg); + model.addAttribute("page", page); + model.addAttribute("policyGroups", policyGroups); + return "/cfg/manipulation/ipmulitiplex/groupAreaList"; + } + + @RequestMapping(value={"/groupAreaForm"}) + public String form(String ids,Model model,String doAction,RedirectAttributes redirectAttributes) { + GroupAreaInfo groupArea=new GroupAreaInfo(); + // 获取未使用的策略分组 + List groups = policyGroupInfoService.findNatPolicyGroups(); + groups = groupAreaService.getNotUsedPolicyGroups(groups); + if(!StringUtil.isEmpty(ids)){ + groupArea=groupAreaService.getInfoById(Integer.parseInt(ids)); + groups.add(policyGroupInfoService.getById(groupArea.getGroupId())); + } + // 获取区域信息 + initFormCondition(model); + model.addAttribute("_cfg", groupArea); + model.addAttribute("policyGroups", groups); + return "/cfg/manipulation/ipmulitiplex/groupAreaForm"; + } + + @RequestMapping(value = "saveOrUpdate") + public String saveOrUpdate(GroupAreaInfo cfg,Model model,RedirectAttributes redirectAttributes) { + try { + groupAreaService.saveOrUpdate(cfg); + addMessage(redirectAttributes, "save_success"); + } catch (Exception e) { + logger.error("新增失败",e); + addMessage(redirectAttributes, "save_failed"); + } + return "redirect:" + adminPath + "/cfg/groupArea/groupAreaList"; + } + + @RequestMapping(value={"delete"}) + public String delete(RedirectAttributes redirectAttributes, String ids,int isValid) { + try { + groupAreaService.deldete(ids,isValid); + addMessage(redirectAttributes, "delete_success"); + } catch (Exception e) { + logger.error("删除失败",e); + addMessage(redirectAttributes, "delete_failed"); + } + return "redirect:" + adminPath + "/cfg/groupArea/groupAreaList"; + } + +} diff --git a/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.java b/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.java index 93144d780..b855bac71 100644 --- a/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.java +++ b/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.java @@ -15,5 +15,5 @@ public interface PolicyGroupInfoDao extends CrudDao { List findHasIPPolicyGroupInfosByType(int groupType); List findPolicyGroupInfosHasIpRegionByType(int groupType); PolicyGroupInfo getById(int id); - + List findNatPolicyGroups(); } \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.xml b/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.xml index dae3b765b..218d135a8 100644 --- a/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.xml +++ b/src/main/java/com/nis/web/dao/basics/PolicyGroupInfoDao.xml @@ -67,6 +67,12 @@ FROM policy_group_info r where r.is_valid=1 + + SELECT + + + , s.name as creator_name + ,e.name as editor_name + + FROM group_area_info r + left join sys_user s on r.creator_id=s.id + left join sys_user e on r.editor_id=e.id + + + + AND ${page.where} + + + AND r.group_id =#{groupId } + + + AND r.area_code =#{areaCode } + + AND r.IS_VALID =1 + + AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%') + + + AND r.EDITOR_NAME like concat(concat('%',#{editorName,jdbcType=VARCHAR}),'%') + + + + + + + ORDER BY ${page.orderBy} + + + ORDER BY r.id desc + + + + + + + + insert into group_area_info( + ID, + GROUP_ID, + AREA_CODE, + IS_VALID, + CREATOR_ID, + CREATE_TIME + )values ( + #{id,jdbcType=INTEGER}, + #{groupId,jdbcType=INTEGER}, + #{areaCode,jdbcType=INTEGER}, + #{isValid,jdbcType=INTEGER}, + #{creatorId,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP} + ) + + + + update group_area_info + + + + id = #{id,jdbcType=INTEGER}, + + + group_Id = #{groupId,jdbcType=INTEGER}, + + + area_code = #{areaCode,jdbcType=INTEGER}, + + + is_valid = #{isValid,jdbcType=INTEGER}, + + + editor_id = #{editorId,jdbcType=INTEGER}, + + + edit_time = #{editTime,jdbcType=TIMESTAMP}, + + + + + + and id = #{id,jdbcType=INTEGER} + + + + + \ No newline at end of file diff --git a/src/main/java/com/nis/web/service/basics/PolicyGroupInfoService.java b/src/main/java/com/nis/web/service/basics/PolicyGroupInfoService.java index daf37fcd9..795ec3803 100644 --- a/src/main/java/com/nis/web/service/basics/PolicyGroupInfoService.java +++ b/src/main/java/com/nis/web/service/basics/PolicyGroupInfoService.java @@ -45,6 +45,10 @@ public class PolicyGroupInfoService extends BaseService{ List list=policyGroupInfoDao.findPolicyGroupInfos(); return list; } + public List findNatPolicyGroups() { + List list=policyGroupInfoDao.findNatPolicyGroups(); + return list; + } public List findPolicyGroupInfosByType(int type) { List list=policyGroupInfoDao.findPolicyGroupInfosByType(type); return list; diff --git a/src/main/java/com/nis/web/service/configuration/GroupAreaService.java b/src/main/java/com/nis/web/service/configuration/GroupAreaService.java new file mode 100644 index 000000000..021b6d037 --- /dev/null +++ b/src/main/java/com/nis/web/service/configuration/GroupAreaService.java @@ -0,0 +1,83 @@ +package com.nis.web.service.configuration; + +import java.util.Date; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.nis.domain.Page; +import com.nis.domain.basics.PolicyGroupInfo; +import com.nis.domain.configuration.GroupAreaInfo; +import com.nis.util.StringUtil; +import com.nis.web.dao.configuration.GroupAreaDao; +import com.nis.web.security.UserUtils; +import com.nis.web.service.BaseService; + +@Service +public class GroupAreaService extends BaseService{ + + @Autowired + private GroupAreaDao groupAreaDao; + + public Page findGroupAreaInfoList(Page page, GroupAreaInfo entity) { + entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"r")); + entity.setPage(page); + List list=groupAreaDao.findGroupAreaInfoList(entity); + page.setList(list); + return page; + } + + public GroupAreaInfo getInfoById(int groupId) { + GroupAreaInfo GroupAreaInfo=groupAreaDao.getInfoById(groupId); + return GroupAreaInfo; + } + + public void saveOrUpdate(GroupAreaInfo entity) { + entity.setIsValid(1); + if(entity.getId()==null){//新增 + Date createTime=new Date(); + entity.setCreatorId(UserUtils.getUser().getId()); + entity.setCreateTime(createTime); + groupAreaDao.insert(entity); + }else{//修改 + Date editTime=new Date(); + entity.setEditorId(UserUtils.getUser().getId()); + entity.setEditTime(editTime); + groupAreaDao.update(entity); + } + + } + + public void deldete(String ids, int isValid) { + if(!StringUtil.isEmpty(ids)){ + GroupAreaInfo entity=new GroupAreaInfo(); + Date editTime=new Date(); + entity.setEditorId(UserUtils.getUser().getId()); + entity.setEditTime(editTime); + entity.setIsValid(isValid); + for (String id : ids.split(",")) { + if(!StringUtil.isEmpty(id)){ + entity.setId(Long.parseLong(id)); + groupAreaDao.update(entity); + } + } + } + } + + // 获取未使用的策略分组 + public List getNotUsedPolicyGroups(List policyGroups) { + List groupAreas=groupAreaDao.findGroupAreaInfoList(new GroupAreaInfo()); + for (GroupAreaInfo groupArea : groupAreas) { + for (int i = 0; i < policyGroups.size(); i++) { + Integer groupId = policyGroups.get(i).getGroupId(); + if(groupArea.getGroupId().equals(groupId)){ + policyGroups.remove(i); + i--; + } + } + } + return policyGroups; + } + +} diff --git a/src/main/resources/messages/message_en.properties b/src/main/resources/messages/message_en.properties index 0c02bb0e2..d12f3d071 100644 --- a/src/main/resources/messages/message_en.properties +++ b/src/main/resources/messages/message_en.properties @@ -1219,7 +1219,7 @@ NTC_VOIP_ACCOUNT=VoIP Account export_failed=Export Failed user_manage=Client Account Manage ip_reuse_policy_object=IP Reuse Policy Object -area_group_manage=Group Area Manage +area_group_manage=Grouping Area Manage stream_media_protocol=Stream Media Protocol new_link=New Link active_link=Active Link diff --git a/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/groupAreaForm.jsp b/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/groupAreaForm.jsp new file mode 100644 index 000000000..df59a4685 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/groupAreaForm.jsp @@ -0,0 +1,102 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="${cfgName}"></spring:message> + + + + +
+ +

+ +

+ +
+
+
+
+
+ + + +
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/groupAreaList.jsp b/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/groupAreaList.jsp new file mode 100644 index 000000000..3c6538a81 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/cfg/manipulation/ipmulitiplex/groupAreaList.jsp @@ -0,0 +1,193 @@ +<%@ page contentType="text/html;charset=UTF-8"%> +<%@ include file="/WEB-INF/include/taglib.jsp"%> + + +<spring:message code="${cfgName}"></spring:message> + + + + +
+ + +

+ +

+ +
+
+
+
+ + + + + + + +
+
+
+
+ + + + + +
+ + +
+ + + + + + +
+
+
+
+ + + +
+
+ <%-- --%> + + + <%-- --%> + + href="javascript:;"> + + +
+
+ + + +
+
+
+
+ + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+ +
+
+ + " onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> + +
+
+
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ <%-- + ${fns:abbr(cfg.groupName,20)} + --%> + + + + + + + + ${cfg.creatorName }${cfg.editorName }
+
${page}
+
+
+
+
+
+ + + \ No newline at end of file