package com.nis.web.service.configuration; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.nis.domain.configuration.BaseIpCfg; import com.nis.domain.configuration.BaseStringCfg; import com.nis.domain.configuration.HttpUrlCfg; 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.Constants; import com.nis.util.StringUtil; import com.nis.web.dao.configuration.StringCfgDao; import com.nis.web.service.CrudService; /** * String相关配置事务类 * @author dell * */ @Service public class StringCfgService extends CrudService { @Autowired protected StringCfgDao stringCfgDao; /** * * addStringCfg(新增IP类配置) * (继承BaseStringCfg这个类方可使用) * @param baseStringCfg * @return *int * @exception * @since 1.0.0 */ @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public int addStringCfg(BaseStringCfg baseStringCfg,List areaIpCfgs){ if(areaIpCfgs!=null&&areaIpCfgs.size()>0){ this.saveIpBatch(areaIpCfgs); } //调用服务接口获取compileId Integer compileId = 0; try { List compileIds = ConfigServiceUtil.getId(1,1); if(!StringUtil.isEmpty(compileIds)){ compileId = compileIds.get(0); } } catch (Exception e) { e.printStackTrace(); logger.info("获取编译ID出错"); throw new MaatConvertException(":"+e.getMessage()); } if(compileId!=0){ baseStringCfg.setCompileId(compileId); return stringCfgDao.insert(baseStringCfg); }else{ throw new MaatConvertException(""); } // baseStringCfg.setCompileId(0); // return stringCfgDao.insert(baseStringCfg); } /** * * updateStringCfg(更新IP类配置) * (继承BaseStringCfg这个类方可使用) * @param baseStringCfg * @return *int * @exception * @since 1.0.0 */ @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public int updateStringCfg(BaseStringCfg baseStringCfg,List addAreaCfg,List updateAreaCfg,List deleteAreaCfgs){ if(addAreaCfg!=null&&addAreaCfg.size()>0){ this.saveIpBatch(addAreaCfg); } if(updateAreaCfg!=null&&updateAreaCfg.size()>0){ this.updateIpBatch(updateAreaCfg); } if(deleteAreaCfgs!=null&&deleteAreaCfgs.size()>0){ this.deleteIpBatch(deleteAreaCfgs); } return stringCfgDao.update(baseStringCfg); } public void auditWhiteDomain(String ids,HttpUrlCfg cfg) throws Exception{ for(String id:ids.split(",")){ Long.parseLong(id); } List beans=stringCfgDao.getListByCfgId(HttpUrlCfg.getTablename(),ids); Date date=new Date(); for(BaseStringCfg bean:beans){ bean.setTableName(IpPortCfg.getTablename()); bean.setAuditorId(bean.getCurrentUser().getId()); bean.setAuditTime(date); bean.setIsAudit(cfg.getIsAudit()); bean.setIsValid(cfg.getIsValid()); } this.auditBatch(beans, StringCfgDao.class); if(cfg.getIsAudit()==1){ //调用服务接口下发配置数据 String json=gsonToJson(beans); logger.info("文件样例下发配置参数:"+json); //调用服务接口下发配置 try { ToMaatResult result = ConfigServiceUtil.postMaatCfg(json); logger.info("IP白名单配置下发响应信息:"+result.getMsg()); } catch (Exception e) { e.printStackTrace(); logger.info("IP白名单配置下发失败"); throw new MaatConvertException(":"+e.getMessage()); } }else if(cfg.getIsAudit()==3){ //调用服务接口取消配置 String json=gsonToJson(beans); logger.info("IP白名单配置参数:"+json); //调用服务接口取消配置 try { ToMaatResult result = ConfigServiceUtil.put(json, 2); logger.info("IP白名单取消配置响应信息:"+result.getMsg()); } catch (Exception e) { e.printStackTrace(); logger.info("IP白名单取消配置失败"); throw new MaatConvertException(":"+e.getMessage()); } } } /** * * auditStringCfg(审核IP类配置) * (继承BaseStringCfg这个类方可使用) * @param baseStringCfg * @return *int * @throws Exception * @exception * @since 1.0.0 */ @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void auditStringCfg(int isAduit,List auditCfg,List sendCfg) throws Exception{ List areaCfg=new ArrayList<>(); for(BaseStringCfg c:auditCfg){ if(c.getAreaCfg()!=null){ areaCfg.addAll(c.getAreaCfg()); } } if(Constants.AUDIT_NOT_YES==isAduit|| Constants.AUDIT_YES==isAduit){//审核通过,取消审核通过需要发到maat if(sendToMaatConvertorBatch(isAduit,sendCfg)){ if(areaCfg!=null&&areaCfg.size()>0){ this.auditIpBatch(areaCfg); } this.auditBatch(auditCfg, StringCfgDao.class); } }else{ this.auditBatch(auditCfg, StringCfgDao.class); } } @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void deleteWhiteDomain(String ids){ List cfgs=new ArrayList(); Date date =new Date(); if(StringUtils.isNotBlank(ids)){ for(String idStr:ids.split(",")){ if(StringUtils.isNotBlank(idStr)){ BaseStringCfg cfg=new BaseStringCfg(); cfg.setCfgId(Long.parseLong(idStr)); cfg.setTableName(HttpUrlCfg.getTablename()); cfg.setEditorId(cfg.getCurrentUser().getId()); cfg.setEditTime(date); cfg.setIsValid(Constants.VALID_DEL); cfgs.add(cfg); } } } this.deleteBatch(cfgs, StringCfgDao.class); } /** * * deleteStringCfg(删除IP类配置) * (继承BaseStringCfg这个类方可使用) * @param baseStringCfg * @return *int * @exception * @since 1.0.0 */ @Transactional(readOnly=false,rollbackFor=RuntimeException.class) public void deleteStringCfg(List stringCfg,List areaCfg){ if(areaCfg!=null&&areaCfg.size()>0){ this.deleteIpBatch(areaCfg); } this.deleteBatch(stringCfg, StringCfgDao.class); } /** * * getStringCfg(根据IP与类名获取IP配置) * (继承BaseStringCfg这个类方可使用) * @param clazz * @param id * @return *BaseStringCfg * @exception * @since 1.0.0 */ public BaseStringCfg getStringCfgById(BaseStringCfg baseStringCfg){ return stringCfgDao.getById(baseStringCfg.getTableName(), baseStringCfg.getCfgId()); } public BaseStringCfg getStringCfgById(String tableName, long id){ return stringCfgDao.getById(tableName, id); } public Integer getIsValid(BaseStringCfg baseStringCfg){ return stringCfgDao.getIsValid(baseStringCfg); } public Integer getIsValid(String tableName, long id){ return stringCfgDao.getIsValid(tableName,id); } public Integer getIsAudit(BaseStringCfg baseStringCfg){ return stringCfgDao.getIsAudit(baseStringCfg); } public Integer getIsAudit(String tableName, long id){ return stringCfgDao.getIsAudit(tableName,id); } /** * getList(这里用一句话描述这个方法的作用) * (这里描述这个方法适用条件 – 可选) * @param tableName * @param ids * @return *List * @exception * @since 1.0.0 */ public List getListByCompileId(String tableName, String ids) { // TODO Auto-generated method stub return stringCfgDao.getListByCompileId(tableName,ids); } }