package com.nis.web.service.basics; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import com.nis.domain.basics.PolicyGroupInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.nis.domain.Page; import com.nis.domain.basics.CommonGroupInfo; import com.nis.domain.basics.IpCommCfg; import com.nis.domain.basics.UrlCommCfg; import com.nis.exceptions.MaatConvertException; import com.nis.util.ConfigServiceUtil; import com.nis.util.StringUtil; import com.nis.web.dao.basics.CommonGroupManageDao; import com.nis.web.dao.basics.IpCommGroupCfgDao; import com.nis.web.dao.basics.UrlCommGroupDao; import com.nis.web.security.UserUtils; import com.nis.web.service.BaseService; @Service public class CommonGroupManageService extends BaseService{ @Autowired private CommonGroupManageDao commonGroupManageDao; @Autowired private IpCommGroupCfgDao ipCommGroupCfgDao; // 校验分组时使用 @Autowired private UrlCommGroupDao urlCommGroupDao; public Page findCommonGroupInfoList(Page page, CommonGroupInfo entity) { entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(),"r")); entity.setPage(page); List list=commonGroupManageDao.findCommonGroupInfoList(entity); page.setList(list); return page; } public CommonGroupInfo getById(int id) { CommonGroupInfo groupInfo=commonGroupManageDao.getById(id); return groupInfo; } @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void saveOrUpdate(CommonGroupInfo entity) throws MaatConvertException{ entity.setIsValid(1); if(entity.getGroupId()==null){ // 新增 Date createTime=new Date(); entity.setCreatorId(UserUtils.getUser().getId()); entity.setCreateTime(createTime); // 获取GroupId int serviceGroupId=0; List groupIds= ConfigServiceUtil.getId(2,1); if(groupIds.size()>0) { serviceGroupId=groupIds.get(0).intValue(); }else { throw new MaatConvertException("Get group id failed"); } entity.setServiceGroupId(serviceGroupId); commonGroupManageDao.insert(entity); }else{ // 修改 Date editTime=new Date(); entity.setEditorId(UserUtils.getUser().getId()); entity.setEditTime(editTime); commonGroupManageDao.update(entity); } } @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void deldete(String ids, int isValid){ CommonGroupInfo entity=new CommonGroupInfo(); Date editTime=new Date(); entity.setEditorId(UserUtils.getUser().getId()); entity.setEditTime(editTime); entity.setIsValid(isValid); if(!StringUtil.isEmpty(ids)){ for (String id : ids.split(",")) { if(!StringUtil.isEmpty(id)){ entity.setGroupId(Integer.parseInt(id)); commonGroupManageDao.update(entity); } } } } // 分组配置界面使用 public List findCommonGroupInfosByType(int type) { List list=commonGroupManageDao.findCommonGroupInfosByType(type); return list; } // 导出时使用 public List findGroupInfoList(String ids) { List list=commonGroupManageDao.findGroupInfoList(ids); return list; } /** * 更新分组状态 policy_group_info ud_flag:0(无有效的域配置) 1(存在有效的域配置) * @param policyGroupInfos * @param groupType */ public void updateGroupStatus(List policyGroupInfos, Integer groupType) { /** * void updateUdFlag(String groupIds, Integer udFlag, Integer groupType); */ for(PolicyGroupInfo info:policyGroupInfos){ boolean update=false; Integer udFlag = 0; if(groupType == 5) { // IP List list = ipCommGroupCfgDao.getCfgInfoByGroupIds(info.getServiceGroupId().toString()); if(list.size() > 0&&info.getUdFlag().equals(0)) { update=true; udFlag = 1; // 可用 }else if(list.size()==0&&info.getUdFlag().equals(2)){ update=true; } }else if(groupType == 7) { // URL List list = urlCommGroupDao.getCfgInfoByGroupIds(info.getServiceGroupId().toString()); if(list.size() > 0&&info.getUdFlag().equals(0)) { update=true; udFlag = 1; }else if(list.size()==0&&info.getUdFlag().equals(2)){ update=true; } } if(update){ commonGroupManageDao.updateGroupStatus(info.getServiceGroupId().toString(), udFlag, groupType); } } } }