diff --git a/src/main/java/com/nis/datasource/DynamicJedisDataBase.java b/src/main/java/com/nis/datasource/DynamicJedisDataBase.java index e10d44c..0040058 100644 --- a/src/main/java/com/nis/datasource/DynamicJedisDataBase.java +++ b/src/main/java/com/nis/datasource/DynamicJedisDataBase.java @@ -20,7 +20,7 @@ public class DynamicJedisDataBase { * @param index * @param redisTemplate */ - public static void setRedisDataBase1(int index, RedisTemplate redisTemplate) { + public static void setRedisDataBase(int index, RedisTemplate redisTemplate) { JedisConnectionFactory connectionFactory = SpringContextHolder.getBean("connectionFactory"+index); connectionFactory.setDatabase(index); redisTemplate.setConnectionFactory(connectionFactory); diff --git a/src/main/java/com/nis/domain/restful/ConfigCompile.java b/src/main/java/com/nis/domain/restful/ConfigCompile.java index 9fd27f6..4adac13 100644 --- a/src/main/java/com/nis/domain/restful/ConfigCompile.java +++ b/src/main/java/com/nis/domain/restful/ConfigCompile.java @@ -47,11 +47,11 @@ public class ConfigCompile implements Serializable { @ApiModelProperty(value = "保障期", required = false) private Integer guaranteeId; @ApiModelProperty(value = "事件", required = false) - private Integer affAirId; + private Integer affairId; @ApiModelProperty(value = "子话题", required = false) - private Integer topIcId; + private Integer topicId; @ApiModelProperty(value = "是否黑名单", required = true) - private Long doBlackList; + private Long doBlacklist; @ApiModelProperty(value = "是否生成日志", required = true) private Integer doLog; @ApiModelProperty(value = "生效范围", required = true) @@ -180,16 +180,16 @@ public class ConfigCompile implements Serializable { /** * @return doBlackList */ - public Long getDoBlackList() { - return doBlackList; + public Long getDoBlacklist() { + return doBlacklist; } /** * @param doBlackList * 要设置的 doBlackList */ - public void setDoBlackList(Long doBlackList) { - this.doBlackList = doBlackList; + public void setDoBlacklist(Long doBlacklist) { + this.doBlacklist = doBlacklist; } /** @@ -445,20 +445,20 @@ public class ConfigCompile implements Serializable { this.guaranteeId = guaranteeId; } - public Integer getAffAirId() { - return affAirId; + public Integer getAffairId() { + return affairId; } - public void setAffAirId(Integer affAirId) { - this.affAirId = affAirId; + public void setAffairId(Integer affairId) { + this.affairId = affairId; } - public Integer getTopIcId() { - return topIcId; + public Integer getTopicId() { + return topicId; } - public void setTopIcId(Integer topIcId) { - this.topIcId = topIcId; + public void setTopicId(Integer topicId) { + this.topicId = topicId; } @JsonIgnore diff --git a/src/main/java/com/nis/util/CamelUnderlineUtil.java b/src/main/java/com/nis/util/CamelUnderlineUtil.java new file mode 100644 index 0000000..a7d5ba8 --- /dev/null +++ b/src/main/java/com/nis/util/CamelUnderlineUtil.java @@ -0,0 +1,56 @@ +/** + * + */ +package com.nis.util; + +/** + * @ClassName:CamelUnderlineUtil + * @Description:TODO(这里用一句话描述这个类的作用) + * @author (zdx) + * @date 2018年5月25日 下午4:44:54 + * @version V1.0 + */ +public class CamelUnderlineUtil { + + private static final char UNDERLINE ='_'; + public static String camelToUnderline(String param) { + + if (StringUtil.isEmpty(param)) { + + return ""; + } + StringBuilder sb = new StringBuilder(); + int len = param.length(); + for (int i = 0; i < len; i++) { + char c = param.charAt(i); + if (Character.isUpperCase(c)) { + sb.append(UNDERLINE); + sb.append(Character.toLowerCase(c)); + } else { + sb.append(c); + } + } + return sb.toString(); + } + + public static String underlineToCamel(String param){ + + if (StringUtil.isEmpty(param)) { + + return ""; + } + StringBuilder sb = new StringBuilder(); + int len = param.length(); + for (int i = 0; i < len; i++) { + char c = param.charAt(i); + if (c==UNDERLINE) { + if(++i maatXmlConfigList = new ArrayList(); - public static void main(String[] args) { try { // validateXmlByXSD(); diff --git a/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java b/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java new file mode 100644 index 0000000..ad22dbf --- /dev/null +++ b/src/main/java/com/nis/util/ServiceAndRDBIndexReal.java @@ -0,0 +1,93 @@ +package com.nis.util; + +import java.util.HashMap; +import java.util.Map; + +/** + * + *

Title: ServiceAndRDBIndexReal

+ *

Description: 业务类型与各个表名的对应关系,业务类型与redisDBIndex的对应关系

+ *

Company: IIE

+ * @author rkg + * @date 2018年5月30日 + * + */ +public class ServiceAndRDBIndexReal { + + /** + * 第一个key是业务类型,第二个key是type(编译配置,分组配置,域配置)value是表名 + */ + private static Map> sercieNameMap = new HashMap>(); + /** + * key是业务类型,value是业务类型对应的redisdbIndex + */ + private static Map serviceDBIndexmap = new HashMap(); + + static { + String service = Configurations.getStringProperty("service", ""); + if (service != null && !service.trim().equals("")) { + String[] split = service.split(";"); + for (String str : split) { + String type = Configurations.getStringProperty(str, ""); + if (type != null && !type.trim().equals("")) { + Map typeMap = new HashMap(); + String[] typeArrs = type.split(";"); + for (String typeStr : typeArrs) { + String[] typeArr = typeStr.split(":"); + String tableNameArr[] = typeArr[1].split(","); + for (String tableName : tableNameArr) { + typeMap.put(Integer.parseInt(typeArr[0]), tableName.toUpperCase()); + } + } + sercieNameMap.put(Integer.parseInt(str), typeMap); + } + + } + } + String serviceDBIndexs = Configurations.getStringProperty("serviceDBIndex", ""); + if (serviceDBIndexs != null && !serviceDBIndexs.trim().equals("")) { + String[] serviceDBIndexArr = serviceDBIndexs.split(";"); + for (String serviceDBIndexStr : serviceDBIndexArr) { + String[] serviceDBIndex = serviceDBIndexStr.split(":"); + + String[] redisDbArr = serviceDBIndex[1].split(","); + for (String redisDBIndex : redisDbArr) { + serviceDBIndexmap.put(Integer.parseInt(serviceDBIndex[0]), Integer.parseInt(redisDBIndex)); + } + } + } + } + + public static Integer getRedisDBByService(Integer service) { + Integer redisIndex = serviceDBIndexmap.get(service); + if (redisIndex == null) { + return 0; + } + return redisIndex; + } + + /** + * 根据业务类型和具体的type获取对应的表名 + * @param service 业务类型 + * @param type 10代表是编译配置,11代表是分组配置,12代表是ip类域配置,13代表是数值类配置,14代表是字符串类域配置,15代表是增强字符串类域配置 + * @return + */ + public static String getTableName(int service, int type) { + Map typeMap = sercieNameMap.get(service); + if (typeMap != null && typeMap.size() > 0) { + return typeMap.get(type); + } else { + return ""; + } + + } + + public static void main(String[] args) { + String str = "80:2"; + String[] serviceDBIndex = str.split(":"); + String[] redisDbArr = serviceDBIndex[1].split(","); + for (String redisDBIndex : redisDbArr) { + System.out.println(redisDBIndex); + } + } +} diff --git a/src/main/java/com/nis/web/controller/restful/ConfigSourcesController.java b/src/main/java/com/nis/web/controller/restful/ConfigSourcesController.java index 641ecf8..43aa93e 100644 --- a/src/main/java/com/nis/web/controller/restful/ConfigSourcesController.java +++ b/src/main/java/com/nis/web/controller/restful/ConfigSourcesController.java @@ -6,24 +6,19 @@ 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 net.sf.json.JSONObject; - import org.apache.commons.codec.digest.DigestUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Scope; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import com.nis.datasource.DynamicJedisDataBase; import com.nis.domain.restful.ConfigCompile; import com.nis.domain.restful.ConfigSource; import com.nis.domain.restful.FileDesc; @@ -40,12 +35,13 @@ import com.nis.web.service.ServicesRequestLogService; import com.nis.web.service.fdfs.FastDFSFile; import com.nis.web.service.fdfs.FileManager; import com.nis.web.service.restful.ConfigRedisService; -import com.nis.web.service.restful.ConfigRedisServiceimpl; import com.nis.web.service.restful.ConfigSourcesService; import com.wordnik.swagger.annotations.Api; import com.wordnik.swagger.annotations.ApiOperation; import com.wordnik.swagger.annotations.ApiParam; +import net.sf.json.JSONObject; + /** * @ClassName: ConfigSourcesController * @Description: 配置存储服务 @@ -53,7 +49,7 @@ import com.wordnik.swagger.annotations.ApiParam; * @date 2016年9月5日 下午6:20:33 * @version V1.0 */ -//@Scope("prototype") +// @Scope("prototype") @RestController @RequestMapping("${servicePath}") @Api(value = "ConfigSourcesController", description = "配置存储服务,包括管控、监测、白名单的控制类") @@ -78,7 +74,7 @@ public class ConfigSourcesController extends BaseRestController { Integer service = 98; long id = configRedisService.getIncrId("seq_compileid"); // int id=2; - map.put("cfg_id", id + ""); + map.put("compile_id", id + ""); map.put("is_valid", "1"); map.put("dst_file", "home"); map.put("dst_file_md5", "fasdfdasfsdafdsafadsf"); @@ -87,20 +83,26 @@ public class ConfigSourcesController extends BaseRestController { map.put("file_id", id + ""); map.put("service", service + ""); listMap.add(map); - configRedisService.saveUnMaatConfig(listMap, service); + + Map>> configMap = new HashMap>>(); + configMap.put(1, listMap); + configRedisService.saveUnMaatConfig(configMap); } else { Integer service = 100; Map map = new HashMap(); long id = configRedisService.getIncrId("seq_compileid"); // int id=2; - map.put("cfg_id", id + ""); + map.put("compile_id", id + ""); map.put("is_valid", "1"); map.put("service", "100"); map.put("description", "123" + id); map.put("level", "20"); listMap.add(map); map.put("service", service + ""); - configRedisService.saveUnMaatConfig(listMap, service); + + Map>> configMap = new HashMap>>(); + configMap.put(1, listMap); + configRedisService.saveUnMaatConfig(configMap); } return "ok"; } catch (Exception e) { @@ -116,8 +118,13 @@ public class ConfigSourcesController extends BaseRestController { try { List listMap = new ArrayList(); listMap.add(getMaatConfig(service)); + Map> configMap = new HashMap>(); + configMap.put(1, listMap); + listMap = new ArrayList(); listMap.add(getMaatConfig(service)); - configRedisService.saveMaatConfig(listMap, service); + configMap.put(2, listMap); + configRedisService.saveMaatConfig(configMap); + // configRedisService.saveMaatConfig(listMap, service); // new ConfigRedisServiceimpl().GETMaatConfig(listMap); return "ok"; } catch (Exception e) { @@ -134,7 +141,7 @@ public class ConfigSourcesController extends BaseRestController { long seq_regionid1 = configRedisService.getIncrId("SEQ_REGIONID"); long seq_regionid2 = configRedisService.getIncrId("SEQ_REGIONID"); // int id=2; - configMap.put("cfg_id", seq_compileid + ""); + configMap.put("compile_id", seq_compileid + ""); configMap.put("service", service + ""); configMap.put("action", "0"); configMap.put("do_blacklist", "1"); @@ -143,13 +150,13 @@ public class ConfigSourcesController extends BaseRestController { configMap.put("user_region", "0"); configMap.put("is_valid", "1"); configMap.put("group_num", "1"); - configMap.put("father_cfg_id", "0"); + configMap.put("father_compile_id", "0"); configMap.put("op_time", time); List> groupMapList = new ArrayList>(); Map groupMap = new HashMap(); groupMap.put("group_id", seq_groupid + ""); - groupMap.put("cfg_id", seq_compileid + ""); + groupMap.put("compile_id", seq_compileid + ""); groupMap.put("is_valid", "1"); groupMap.put("op_time", time); groupMap.put("service", service + ""); @@ -204,6 +211,7 @@ public class ConfigSourcesController extends BaseRestController { maatConfig.setIpRegionMapList(ipRegionMapList); return maatConfig; } + @RequestMapping(value = "/cfg/v1/configSources", method = RequestMethod.POST) @ApiOperation(value = "业务配置存储", httpMethod = "POST", response = Map.class, notes = "对有效的配置(封堵|监测|白名单)存储") @ApiParam(value = "业务配置数据源", name = "configSource", required = true) @@ -448,22 +456,24 @@ public class ConfigSourcesController extends BaseRestController { } } - @RequestMapping(value = "/cfg/v1/commonSources", method = RequestMethod.POST, produces=org.springframework.http.MediaType.APPLICATION_JSON_VALUE) + + @RequestMapping(value = "/cfg/v1/commonSources", method = RequestMethod.POST, produces = org.springframework.http.MediaType.APPLICATION_JSON_VALUE) @ApiOperation(value = "回调配置存储", httpMethod = "POST", response = Map.class, notes = "回调配置存储服务") - //@ApiParam(value = "回调配置数据源", name = "JSONObject", requirerue) - public Map createCommonConfigSource(@RequestBody String jsonString , HttpServletRequest request, + // @ApiParam(value = "回调配置数据源", name = "JSONObject", requirerue) + public Map createCommonConfigSource(@RequestBody String jsonString, HttpServletRequest request, HttpServletResponse response) { ConfigSourcesService.setMsgList(new ArrayList());// 清除上次记录的日志信息 long start = System.currentTimeMillis(); - SaveRequestLogThread thread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_POST, request,null); + SaveRequestLogThread thread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_POST, request, + null); StringBuffer sb = new StringBuffer(); - + configSourcesService.savaCommonSources(thread, start, jsonString, sb); - return compileServiceResponse(thread, System.currentTimeMillis() - start, request, response, - "配置数据插入成功" , Constants.IS_DEBUG ? jsonString : null); + return compileServiceResponse(thread, System.currentTimeMillis() - start, request, response, "配置数据插入成功", + Constants.IS_DEBUG ? jsonString : null); } - + @RequestMapping(value = "/cfg/v1/fileUploadSources", method = RequestMethod.POST) @ApiOperation(value = "样例文件上传服务", httpMethod = "POST", response = Map.class, notes = "样例文件上传服务") @ApiParam(value = "样例文件上传服务", name = "MultipartFile", required = true) @@ -471,29 +481,32 @@ public class ConfigSourcesController extends BaseRestController { HttpServletResponse response) { ConfigSourcesService.setMsgList(new ArrayList());// 清除上次记录的日志信息 long start = System.currentTimeMillis(); - SaveRequestLogThread thread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_POST, request,null); - String filePath =""; + SaveRequestLogThread thread = super.saveRequestLog(servicesRequestLogService, Constants.OPACTION_POST, request, + null); + String filePath = ""; try { - FileDesc fileDesc = (FileDesc) JSONObject.toBean(JSONObject.fromObject(request.getHeader("File-Desc")),FileDesc.class); + FileDesc fileDesc = (FileDesc) JSONObject.toBean(JSONObject.fromObject(request.getHeader("File-Desc")), + FileDesc.class); if (!StringUtil.isEmpty(fileDesc.getChecksum())) { - //验证Md5 + // 验证Md5 String md5 = DigestUtils.md5Hex(file.getBytes()); - System.out.println("----------------------------MD5:'"+md5+"'==='"+fileDesc.getChecksum()+"'"); + System.out.println("----------------------------MD5:'" + md5 + "'==='" + fileDesc.getChecksum() + "'"); if (!md5.equals(fileDesc.getChecksum())) { thread.setExceptionInfo("checksum与文件MD5值不一致"); throw new RestServiceException(thread, System.currentTimeMillis() - start, "checksum与文件MD5值不一致", RestBusinessCode.config_integrity_error.getValue()); } String ext = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1); - FastDFSFile fdsfile = new FastDFSFile(file.getBytes(),file.getOriginalFilename(), ext); -// NameValuePair[] meta_list = new NameValuePair[5]; -// meta_list[0] = new NameValuePair("fileName", file.getOriginalFilename()); -// meta_list[1] = new NameValuePair("fileLength", String.valueOf(file.getSize())); -// meta_list[2] = new NameValuePair("fileExt", ext); -// meta_list[3] = new NameValuePair("fileAuthor", "rkg"); -// meta_list[4] = new NameValuePair("fileMd5", md5); + FastDFSFile fdsfile = new FastDFSFile(file.getBytes(), file.getOriginalFilename(), ext); + // NameValuePair[] meta_list = new NameValuePair[5]; + // meta_list[0] = new NameValuePair("fileName", file.getOriginalFilename()); + // meta_list[1] = new NameValuePair("fileLength", + // String.valueOf(file.getSize())); + // meta_list[2] = new NameValuePair("fileExt", ext); + // meta_list[3] = new NameValuePair("fileAuthor", "rkg"); + // meta_list[4] = new NameValuePair("fileMd5", md5); filePath = FileManager.upload(fdsfile, null); - }else{ + } else { thread.setExceptionInfo("请求头信息中缺少checksum参数"); throw new RestServiceException(thread, System.currentTimeMillis() - start, "请求头信息中缺少checksum参数", RestBusinessCode.missing_args.getValue()); @@ -504,10 +517,9 @@ public class ConfigSourcesController extends BaseRestController { } JSONObject jsonObj = new JSONObject(); jsonObj.put("accessUrl", filePath.substring(filePath.indexOf("group"))); - return compileServiceResponse(thread, System.currentTimeMillis() - start, request, response, - "文件上传成功" ,jsonObj); + return compileServiceResponse(thread, System.currentTimeMillis() - start, request, response, "文件上传成功", jsonObj); } - + private boolean isBlank(Date datetime) { if (null != datetime) { return true; diff --git a/src/main/java/com/nis/web/controller/restful/FastDFSController.java b/src/main/java/com/nis/web/controller/restful/FastDFSController.java index 3216246..343d3d3 100644 --- a/src/main/java/com/nis/web/controller/restful/FastDFSController.java +++ b/src/main/java/com/nis/web/controller/restful/FastDFSController.java @@ -34,7 +34,7 @@ public class FastDFSController { public static void main(String[] args) { String path = new FastDFSController().testAdd(); //String path = "M00/00/01/CgAGwFr786aAegOQAADz3NN2rlY283.jpg"; - new FastDFSController().testDelete(path); + //new FastDFSController().testDelete(path); } diff --git a/src/main/java/com/nis/web/dao/impl/BaseRedisDao.java b/src/main/java/com/nis/web/dao/impl/BaseRedisDao.java index 3d16e59..a79ac19 100644 --- a/src/main/java/com/nis/web/dao/impl/BaseRedisDao.java +++ b/src/main/java/com/nis/web/dao/impl/BaseRedisDao.java @@ -11,8 +11,8 @@ import com.nis.web.service.SpringContextHolder; @Repository public abstract class BaseRedisDao { - @Autowired - protected RedisTemplate redisTemplate; + //@Autowired + protected RedisTemplate redisTemplate1; // public void setRedisTemplate(RedisTemplate redisTemplate) { // StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); diff --git a/src/main/java/com/nis/web/service/fdfs/FileManagerConfig.java b/src/main/java/com/nis/web/service/fdfs/FileManagerConfig.java index 70a1b88..bf609ae 100644 --- a/src/main/java/com/nis/web/service/fdfs/FileManagerConfig.java +++ b/src/main/java/com/nis/web/service/fdfs/FileManagerConfig.java @@ -21,7 +21,7 @@ public class FileManagerConfig implements Serializable { public static final String SEPARATOR = "/"; // fdfs-tracker-nginx服务器 - public static final String TRACKER_NGNIX_ADDR = "10.0.6.192"; + public static final String TRACKER_NGNIX_ADDR = "10.0.6.249"; public static final String TRACKER_NGNIX_PORT = ""; diff --git a/src/main/java/com/nis/web/service/restful/ConfigRedisService.java b/src/main/java/com/nis/web/service/restful/ConfigRedisService.java index b64a6f3..4baee97 100644 --- a/src/main/java/com/nis/web/service/restful/ConfigRedisService.java +++ b/src/main/java/com/nis/web/service/restful/ConfigRedisService.java @@ -15,19 +15,18 @@ import com.nis.domain.restful.MaatConfig; * */ public interface ConfigRedisService { - /** - * 保存非maat配置接口,例如ysp文件样例,ysp标志样例 - * @param listMap 配置集合,一个map是一个集合 - * @param service 业务类型 - */ - public void saveUnMaatConfig(List> listMap, int service); /** - * 保存maat配置接口,例如ysp配置,文本类配置 - * @param maatConfigList - * @param service 业务类型 + * 下发非maat配置接口,key是redisDBIndex,value是配置集合 + * @param configMap */ - public void saveMaatConfig(List maatConfigList, int service); + public void saveUnMaatConfig(Map>> configMap); + + /** + * 保存 maat配置接口,key是redisDBIndex,value是配置集合 + * @param configMap + */ + public void saveMaatConfig(Map> configMap); /** * 获取指定key的自增长值 @@ -37,16 +36,31 @@ public interface ConfigRedisService { public Long getIncrId(String key); /** - * 删除非maat类配置 - * @param compileIdList 配置id集合 - * @param service 配置id所属的业务类型 + * 删除非maat类配置,第一个key是redisDBIndex,第二个key是业务类型,value是配置id集合 + * @param idMap */ - public void delUnMaatConfig(List compileIdList, int service); + public void delUnMaatConfig(Map>> idMap); /** - * 删除maat类配置 - * @param compileIdList 配置id集合 - * @param service 配置id所属的业务类型 + * 删除maat类配置,第一个key是redisDBIndex,第二个key是业务类型,value是配置id集合 + * @param idMap */ - public void delMaatConfig(List compileIdList, int service); + public void delMaatConfig(Map>> idMap); + + + + /** + * 下发配置成功后,需要更新编译,组,域等配置id的对应关系 + * @param maatConfigList + * @param service 业务类型 + */ + public void addMaatRelation(List maatConfigList, int service); + + /** + * 删除配置成功后,需要更新编译,组,域等配置id的对应关系 + * @param maatConfigLis + * @param service 业务类型 + */ + public void delMaatRelation(List compileIdList, int service); + } diff --git a/src/main/java/com/nis/web/service/restful/ConfigRedisServiceimpl.java b/src/main/java/com/nis/web/service/restful/ConfigRedisServiceimpl.java index e5bded3..9e6ec8f 100644 --- a/src/main/java/com/nis/web/service/restful/ConfigRedisServiceimpl.java +++ b/src/main/java/com/nis/web/service/restful/ConfigRedisServiceimpl.java @@ -1,13 +1,15 @@ package com.nis.web.service.restful; 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 java.util.concurrent.ConcurrentHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; @@ -18,257 +20,305 @@ import com.nis.domain.MaatXmlSeq; import com.nis.domain.restful.MaatConfig; import com.nis.domain.restful.MaatRelation; import com.nis.listener.CompileGroupRegionRela; -import com.nis.util.Configurations; import com.nis.util.ReadMaatXmlUtil; -import com.nis.web.dao.impl.BaseRedisDao; +import com.nis.util.ServiceAndRDBIndexReal; +import com.nis.web.service.SpringContextHolder; @Service() -public class ConfigRedisServiceimpl extends BaseRedisDao implements ConfigRedisService { +public class ConfigRedisServiceimpl implements ConfigRedisService { private static Logger logger = LoggerFactory.getLogger(ConfigRedisServiceimpl.class); - /** - * 第一个key是业务类型,第二个key是type(编译配置,分组配置,域配置)value是表名 - */ - private static Map> sercieNameMap = new HashMap>(); - /** - * key是业务类型,value是业务类型对应的redisdbIndex - */ - private static Map serviceDBIndexmap = new HashMap(); - - static { - String service = Configurations.getStringProperty("service", ""); - if (service != null && !service.trim().equals("")) { - String[] split = service.split(";"); - for (String str : split) { - String type = Configurations.getStringProperty(str, ""); - if (type != null && !type.trim().equals("")) { - Map typeMap = new HashMap(); - String[] typeArrs = type.split(";"); - for (String typeStr : typeArrs) { - String[] typeArr = typeStr.split(":"); - typeMap.put(Integer.parseInt(typeArr[0]), typeArr[1]); - } - sercieNameMap.put(Integer.parseInt(str), typeMap); - } - - } + @Transactional + public void saveTestConfig(List> listMap, int service) { + RedisTemplate redisTemplate0 = SpringContextHolder.getBean("redisTemplate2"); + RedisTemplate redisTemplate1 = SpringContextHolder.getBean("redisTemplate1"); + System.out.println(redisTemplate0.opsForValue().get("MAAT_VERSION")); + System.out.println(redisTemplate1.opsForValue().get("MAAT_VERSION")); + redisTemplate0.boundValueOps("MAAT_VERSION").increment(2l); + if (service == 2) { + int i = service / 0; } + redisTemplate1.boundValueOps("MAAT_VERSION").increment(1l); - String serviceDBIndexs = Configurations.getStringProperty("serviceDBIndex", ""); - if (serviceDBIndexs != null && !serviceDBIndexs.trim().equals("")) { - - String[] serviceDBIndexArr = serviceDBIndexs.split(";"); - for (String serviceDBIndexStr : serviceDBIndexArr) { - String[] serviceDBIndex = serviceDBIndexStr.split(":"); - - serviceDBIndexmap.put(Integer.parseInt(serviceDBIndex[0]), Integer.parseInt(serviceDBIndex[1])); - } - - } - } - - public void saveUnMaatConfig2(List> listMap, int service) { - System.out.println(redisTemplate.getConnectionFactory()); - setRedisDataBase(2, redisTemplate); - System.out.println(redisTemplate.getConnectionFactory()); - String maatVersion = redisTemplate.opsForValue().get("MAAT_VERSION"); - System.out.println("maatVersion:" + maatVersion); - redisTemplate.boundValueOps("MAAT_VERSION").increment(1l); + // redisTemplate0.exec(); + // redisTemplate1.exec(); } @Transactional - public void saveUnMaatConfig(List> listMap, int service) { - if (listMap != null && listMap.size() > 0) { - setRedisDataBase(getRedisDBByService(service), redisTemplate); - // String maatVersionStr = - // operRedisService.getMaatVersion(getRedisDBByService(service)); - String maatVersionStr = redisTemplate.opsForValue().get("MAAT_VERSION"); - if (maatVersionStr == null) { - maatVersionStr = "0"; + public void saveUnMaatConfig(Map>> configMap) { + if (configMap != null && configMap.size() > 0) { + for (Integer redisDBIndex : configMap.keySet()) { + if (redisDBIndex >= 0 && redisDBIndex <= 15) { + RedisTemplate redisTemplate = SpringContextHolder + .getBean("redisTemplate" + redisDBIndex); + List> listMap = configMap.get(redisDBIndex); + + String maatVersionStr = redisTemplate.opsForValue().get("MAAT_VERSION"); + if (maatVersionStr == null) { + maatVersionStr = "0"; + } + if (maatVersionStr != null) { + Long maatVersion = Long.valueOf(maatVersionStr) + 1; + for (Map map : listMap) { + String serviceStr = map.get("service"); + int service = Integer.parseInt(serviceStr); + MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service); + if (maatXmlConfig != null) { + List expressionList = maatXmlConfig.getExpressionList(); + String maatKey = ""; + for (MaatXmlExpr maatXmlExpr : expressionList) { + if (0 == maatXmlExpr.getType().intValue()) { + StringBuffer keyBF = new StringBuffer(); + String[] keySplit = maatXmlExpr.getKeyExpression().split(";"); + for (String keyStr : keySplit) { + if (!StringUtils.isEmpty(keyStr) && keyStr.trim().startsWith("[")) { + keyStr = keyStr.trim().replace("[", "").replace("]", ""); + keyBF.append(map.get(keyStr)); + } else { + keyBF.append(keyStr.trim()); + } + } + StringBuffer valBF = new StringBuffer(); + String[] valSplit = maatXmlExpr.getValueExpression().split(";"); + for (String valStr : valSplit) { + if (!StringUtils.isEmpty(valStr) && valStr.trim().startsWith("[")) { + valStr = valStr.trim().replace("[", "").replace("]", ""); + valBF.append(map.get(valStr)); + } else if (valStr.equals(" ")) { + valBF.append(" "); + } else if (valStr.equals("\\t")) {// xml中是字符串的\t这里判断的时候需要转义为\\t,但是添加的时候需要添加\t不是\\t + valBF.append("\t"); + } else if (valStr.equals("\\n")) { + valBF.append("\n"); + } + } + maatKey = keyBF.toString(); + redisTemplate.opsForValue().set(keyBF.toString().toUpperCase(), + valBF.toString()); + break; + } + } + for (MaatXmlExpr maatXmlExpr : expressionList) { + if (maatXmlExpr.getKeyExpression().toUpperCase().equals("MAAT_UPDATE_STATUS")) { + String zset = maatKey.replace("EFFECTIVE_RULE:", "ADD,"); + redisTemplate.boundZSetOps("MAAT_UPDATE_STATUS").add(zset, maatVersion); + } else if (maatXmlExpr.getKeyExpression().toUpperCase().equals("MAAT_RULE_TIMER")) { + Double score = 0d;// 界面下发的配置没有超时时间所以这里设置为0 + redisTemplate.boundZSetOps("MAAT_RULE_TIMER").add(maatKey, score); + } else if (maatXmlExpr.getKeyExpression().toUpperCase() + .equals("MAAT_VERSION_TIMER")) { + Long nowTime = new Date().getTime(); + nowTime = nowTime / 1000l; + Double score = nowTime.doubleValue();// 使用redis自带的time,得到当前时间的秒 + redisTemplate.boundZSetOps("MAAT_VERSION_TIMER").add(maatVersion + "", score); + } + } + List seqList = maatXmlConfig.getSequenceList(); + for (MaatXmlSeq maatXmlSeq : seqList) { + // setRedisDataBase(maatXmlSeq.getRedisDB(), + // redisTemplate); + String seqKey = maatXmlSeq.getSequenceKey(); + if (!seqKey.toUpperCase().equals("MAAT_VERSION")) { + Integer operation = maatXmlSeq.getOperation(); + if (operation == 1) { + redisTemplate.boundValueOps(seqKey.toUpperCase()).increment(1l); + } + } + + } + } + } + + } + redisTemplate.boundValueOps("MAAT_VERSION").increment(1l); + } } - if (maatVersionStr != null) { - Long maatVersion = Long.valueOf(maatVersionStr) + 1; - for (Map map : listMap) { - // String serviceStr = map.get("service"); - // int service = Integer.parseInt(serviceStr); - MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service); - if (maatXmlConfig != null) { - List expressionList = maatXmlConfig.getExpressionList(); - String maatKey = ""; - for (MaatXmlExpr maatXmlExpr : expressionList) { - if (0 == maatXmlExpr.getType().intValue()) { - StringBuffer keyBF = new StringBuffer(); - String[] keySplit = maatXmlExpr.getKeyExpression().split(";"); - for (String keyStr : keySplit) { - if (!StringUtils.isEmpty(keyStr) && keyStr.trim().startsWith("[")) { - keyStr = keyStr.trim().replace("[", "").replace("]", ""); - keyBF.append(map.get(keyStr)); - } else { - keyBF.append(keyStr.trim()); - } - } - StringBuffer valBF = new StringBuffer(); - String[] valSplit = maatXmlExpr.getValueExpression().split(";"); - for (String valStr : valSplit) { - if (!StringUtils.isEmpty(valStr) && valStr.trim().startsWith("[")) { - valStr = valStr.trim().replace("[", "").replace("]", ""); - valBF.append(map.get(valStr)); - } else if (valStr.equals(" ")) { - valBF.append(" "); - } else if (valStr.equals("\\t")) {// xml中是字符串的\t这里判断的时候需要转义为\\t,但是添加的时候需要添加\t不是\\t - valBF.append("\t"); - } else if (valStr.equals("\\n")) { - valBF.append("\n"); - } - } - // System.out.println(keyBF.toString()); - // System.out.println(valBF.toString()); - maatKey = keyBF.toString(); - redisTemplate.opsForValue().set(keyBF.toString().toUpperCase(), valBF.toString()); - break; - } - // redisTemplate.boundValueOps(keyBF.toString().toUpperCase()).set(valBF.toString()); + } - } - for (MaatXmlExpr maatXmlExpr : expressionList) { - if (maatXmlExpr.getKeyExpression().toUpperCase().equals("MAAT_UPDATE_STATUS")) { - String zset = maatKey.replace("EFFECTIVE_RULE:", "ADD,"); - redisTemplate.boundZSetOps("MAAT_UPDATE_STATUS").add(zset, maatVersion); - } else if (maatXmlExpr.getKeyExpression().toUpperCase().equals("MAAT_RULE_TIMER")) { - Double score = 0d;// 界面下发的配置没有超时时间所以这里设置为0 - redisTemplate.boundZSetOps("MAAT_RULE_TIMER").add(maatKey, score); - } else if (maatXmlExpr.getKeyExpression().toUpperCase().equals("MAAT_VERSION_TIMER")) { - Long nowTime = new Date().getTime(); - nowTime = nowTime / 1000l; - Double score = nowTime.doubleValue();// 使用redis自带的time,得到当前时间的秒 - redisTemplate.boundZSetOps("MAAT_VERSION_TIMER").add(maatVersion + "", score); - } - } - List seqList = maatXmlConfig.getSequenceList(); - for (MaatXmlSeq maatXmlSeq : seqList) { - // setRedisDataBase(maatXmlSeq.getRedisDB(), - // redisTemplate); - String seqKey = maatXmlSeq.getSequenceKey(); - if (!seqKey.toUpperCase().equals("MAAT_VERSION")) { - Integer operation = maatXmlSeq.getOperation(); - if (operation == 1) { - redisTemplate.boundValueOps(seqKey.toUpperCase()).increment(1l); - } - } + } + @Override + public void addMaatRelation(List maatConfigList, int service) { + Integer redisDBIndex = ServiceAndRDBIndexReal.getRedisDBByService(service); + MaatRelation maatRelation = CompileGroupRegionRela.getIdRelationMap().get(redisDBIndex); + + for (MaatConfig maatConfig : maatConfigList) { + // MaatXmlConfig maatXmlConfig = + // ReadMaatXmlUtil.getMaatConfigByService(service); + + List> groupMapList = maatConfig.getGroupMapList(); + if (groupMapList != null && groupMapList.size() > 0) { + for (Map map : groupMapList) { + String compileIdStr = map.get("compile_id"); + String groupIdStr = map.get("group_id"); + if (compileIdStr != null && !compileIdStr.equals("") && groupIdStr != null + && !groupIdStr.equals("")) { + Long groupId = Long.valueOf(groupIdStr); + Long compileId = Long.valueOf(compileIdStr); + Map> groupAndCompileMap = maatRelation.getGroupAndCompileMap(); + if (groupAndCompileMap != null) { + if (groupAndCompileMap.containsKey(groupId)) { + groupAndCompileMap.get(groupId).add(compileId); + } else { + Set set = new HashSet(); + set.add(compileId); + groupAndCompileMap.put(groupId, set); + } + } else { + Map> groupAndCompileMap1 = new ConcurrentHashMap>(); + Set set = new HashSet(); + set.add(compileId); + groupAndCompileMap1.put(groupId, set); + maatRelation.setGroupAndCompileMap(groupAndCompileMap1); + } + + Map> compileAndGroupMap = maatRelation.getCompileAndGroupMap(); + if (compileAndGroupMap != null) { + if (compileAndGroupMap.containsKey(compileId)) { + compileAndGroupMap.get(compileId).add(groupId); + } else { + Set set = new HashSet(); + set.add(groupId); + compileAndGroupMap.put(compileId, set); + } + } else { + Map> compileAndGroupMap1 = new ConcurrentHashMap>(); + Set set = new HashSet(); + set.add(groupId); + compileAndGroupMap1.put(compileId, set); + maatRelation.setCompileAndGroupMap(compileAndGroupMap1); } } } - } - redisTemplate.boundValueOps("MAAT_VERSION").increment(1l); + + List> ipRegionMapList = maatConfig.getIpRegionMapList(); + setReionAndGroupRela(ipRegionMapList, maatRelation); + List> numRegionMapList = maatConfig.getNumRegionMapList(); + setReionAndGroupRela(numRegionMapList, maatRelation); + List> strRegionMapList = maatConfig.getStrRegionMapList(); + setReionAndGroupRela(strRegionMapList, maatRelation); + List> strStrRegionMapList = maatConfig.getStrStrRegionMapList(); + setReionAndGroupRela(strStrRegionMapList, maatRelation); + List> fileDigestRegionMapList = maatConfig.getFileDigestRegionMapList(); + setReionAndGroupRela(fileDigestRegionMapList, maatRelation); + List> fileLikeRegionMapList = maatConfig.getFileLikeRegionMapList(); + setReionAndGroupRela(fileLikeRegionMapList, maatRelation); + } } - public void test() { - - setRedisDataBase(2, redisTemplate); - for (int i = 0; i < 10; i++) { - redisTemplate.boundZSetOps("1").add("a" + i, i); - if (i == 5) { - // int a = 1 / 0; - } - } - // 切换redis数据库 - setRedisDataBase(3, redisTemplate); - for (int i = 10; i < 20; i++) { - redisTemplate.boundZSetOps("1").add("a" + i, i); - if (i == 5) { - // int a = 1 / 0; - } - } - setRedisDataBase(4, redisTemplate); - for (int i = 20; i < 30; i++) { - redisTemplate.boundZSetOps("1").add("a" + i, i); - if (i == 25) { - // int a = 1 / 0; - } - } - } - - @Transactional - public void saveMaatConfig(List maatConfigList, int service) { - if (maatConfigList != null && maatConfigList.size() > 0) { - Integer redisDBIndex = getRedisDBByService(service); - setRedisDataBase(redisDBIndex, redisTemplate); - String maatVersionStr = redisTemplate.opsForValue().get("MAAT_VERSION"); - if (maatVersionStr == null) { - maatVersionStr = "0"; - } - - MaatRelation maatRelation = CompileGroupRegionRela.getIdRelationMap().get(redisDBIndex); - if (maatVersionStr != null) { - Long maatVersion = Long.valueOf(maatVersionStr) + 1; - for (MaatConfig maatConfig : maatConfigList) { - MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service); - setConfig(maatConfig, maatXmlConfig, maatVersion, service,maatRelation); + public void setReionAndGroupRela(List> regionMapList, MaatRelation maatRelation) { + if (regionMapList != null && regionMapList.size() > 0) { + for (Map map : regionMapList) { + String regionIdStr = map.get("region_id"); + String groupIdStr = map.get("group_id"); + if (regionIdStr != null && !regionIdStr.equals("") && groupIdStr != null && !groupIdStr.equals("")) { + Long groupId = Long.valueOf(groupIdStr); + Long regionId = Long.valueOf(regionIdStr); + Map> groupAndRegionMap = maatRelation.getGroupAndRegionMap(); + if (groupAndRegionMap != null) { + if (groupAndRegionMap.containsKey(groupId)) { + groupAndRegionMap.get(groupId).add(regionId); + } else { + Set set = new HashSet(); + set.add(regionId); + groupAndRegionMap.put(groupId, set); + } + } else { + Map> groupAndRegionMap1 = new ConcurrentHashMap>(); + Set set = new HashSet(); + set.add(regionId); + groupAndRegionMap1.put(groupId, set); + maatRelation.setGroupAndRegionMap(groupAndRegionMap1); + } } - redisTemplate.boundValueOps("MAAT_VERSION").increment(1l); } } } - public void setConfig(MaatConfig maatConfig, MaatXmlConfig maatXmlConfig, Long maatVersion, int service, MaatRelation maatRelation ) { + @Override + public void saveMaatConfig(Map> configMap) { + if (configMap != null && configMap.size() > 0) { + for (Integer redisDBIndex : configMap.keySet()) { + if (redisDBIndex >= 0 && redisDBIndex <= 15) { + RedisTemplate redisTemplate = SpringContextHolder + .getBean("redisTemplate" + redisDBIndex); + String maatVersionStr = redisTemplate.opsForValue().get("MAAT_VERSION"); + if (maatVersionStr == null) { + maatVersionStr = "0"; + } + if (maatVersionStr != null) { + Long maatVersion = Long.valueOf(maatVersionStr) + 1; + List maatConfigList = configMap.get(redisDBIndex); + if (maatConfigList != null && maatConfigList.size() > 0) { + for (MaatConfig maatConfig : maatConfigList) { + int service = maatConfig.getService(); + MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service); + setConfig(maatConfig, maatXmlConfig, maatVersion, service, redisTemplate); + } + } + + } + redisTemplate.boundValueOps("MAAT_VERSION").increment(1l); + } + } + } + } + + public void setConfig(MaatConfig maatConfig, MaatXmlConfig maatXmlConfig, Long maatVersion, int service, + RedisTemplate redisTemplate) { Map compileMap = maatConfig.getCompileMap(); - setCommonConfig(maatXmlConfig, compileMap, 10, maatVersion.doubleValue(), service);// 10代表是编译配置 + setCommonConfig(maatXmlConfig, compileMap, 10, maatVersion.doubleValue(), service, redisTemplate);// 10代表是编译配置 List> groupMapList = maatConfig.getGroupMapList(); if (groupMapList != null && groupMapList.size() > 0) { for (Map map : groupMapList) { - map.get(""); - Map> groupAndCompileMap = maatRelation.getGroupAndCompileMap(); - - - - setCommonConfig(maatXmlConfig, map, 11, maatVersion.doubleValue(), service);// 11代表是分组配置 + setCommonConfig(maatXmlConfig, map, 11, maatVersion.doubleValue(), service, redisTemplate);// 11代表是分组配置 } } + List> ipRegionMapList = maatConfig.getIpRegionMapList(); if (ipRegionMapList != null && ipRegionMapList.size() > 0) { for (Map map : ipRegionMapList) { - setCommonConfig(maatXmlConfig, map, 12, maatVersion.doubleValue(), service);// 12代表是ip类域配置 + setCommonConfig(maatXmlConfig, map, 12, maatVersion.doubleValue(), service, redisTemplate);// 12代表是ip类域配置 } } List> numRegionMapList = maatConfig.getNumRegionMapList(); if (numRegionMapList != null && numRegionMapList.size() > 0) { for (Map map : numRegionMapList) { - setCommonConfig(maatXmlConfig, map, 13, maatVersion.doubleValue(), service);// 13代表是数值类配置 + setCommonConfig(maatXmlConfig, map, 13, maatVersion.doubleValue(), service, redisTemplate);// 13代表是数值类配置 } } List> strRegionMapList = maatConfig.getStrRegionMapList(); if (strRegionMapList != null && strRegionMapList.size() > 0) { for (Map map : strRegionMapList) { - setCommonConfig(maatXmlConfig, map, 14, maatVersion.doubleValue(), service);// 14代表是字符串类域配置 + setCommonConfig(maatXmlConfig, map, 14, maatVersion.doubleValue(), service, redisTemplate);// 14代表是字符串类域配置 } } List> strStrRegionMapList = maatConfig.getStrStrRegionMapList(); if (strStrRegionMapList != null && strStrRegionMapList.size() > 0) { for (Map map : strStrRegionMapList) { - setCommonConfig(maatXmlConfig, map, 15, maatVersion.doubleValue(), service);// 15代表是增强字符串类域配置 + setCommonConfig(maatXmlConfig, map, 15, maatVersion.doubleValue(), service, redisTemplate);// 15代表是增强字符串类域配置 } } List> fileDigestRegionMapList = maatConfig.getFileDigestRegionMapList(); if (fileDigestRegionMapList != null && fileDigestRegionMapList.size() > 0) { for (Map map : fileDigestRegionMapList) { - setCommonConfig(maatXmlConfig, map, 16, maatVersion.doubleValue(), service);// 16代表是文件摘要类域配置 + setCommonConfig(maatXmlConfig, map, 16, maatVersion.doubleValue(), service, redisTemplate);// 16代表是文件摘要类域配置 } } List> fileLikeRegionMapList = maatConfig.getFileLikeRegionMapList(); if (fileLikeRegionMapList != null && fileLikeRegionMapList.size() > 0) { for (Map map : fileLikeRegionMapList) { - setCommonConfig(maatXmlConfig, map, 17, maatVersion.doubleValue(), service);// 17代表是文本相似性域配置 + setCommonConfig(maatXmlConfig, map, 17, maatVersion.doubleValue(), service, redisTemplate);// 17代表是文本相似性域配置 } } // updateCommonKey(maatXmlConfig); } public void setCommonConfig(MaatXmlConfig maatXmlConfig, Map map, int type, Double maatVersion, - int service) { + int service, RedisTemplate redisTemplate) { if (maatXmlConfig != null && map != null && map.size() > 0) { List expressionList = maatXmlConfig.getExpressionList(); String maatKey = ""; @@ -283,7 +333,7 @@ public class ConfigRedisServiceimpl extends BaseRedisDao impleme } else if (!StringUtils.isEmpty(keyStr) && keyStr.trim().startsWith("{")) { keyStr = keyStr.trim().replace("{", "").replace("}", ""); if (keyStr.toLowerCase().contains("table_name")) { - keyBF.append(getTableName(service, type)); + keyBF.append(ServiceAndRDBIndexReal.getTableName(service, type)); } } else { @@ -305,8 +355,8 @@ public class ConfigRedisServiceimpl extends BaseRedisDao impleme } } maatKey = keyBF.toString(); - // System.out.println(keyBF.toString()); - // System.out.println(valBF.toString()); + System.out.println(keyBF.toString()); + System.out.println(valBF.toString()); redisTemplate.opsForValue().set(maatKey.toUpperCase(), valBF.toString()); // redisTemplate.boundValueOps(keyBF.toString()).set(valBF.toString()); break; @@ -331,7 +381,7 @@ public class ConfigRedisServiceimpl extends BaseRedisDao impleme } } - public void updateCommonKey(MaatXmlConfig maatXmlConfig) { + public void updateCommonKey(MaatXmlConfig maatXmlConfig, RedisTemplate redisTemplate) { List seqList = maatXmlConfig.getSequenceList(); for (MaatXmlSeq maatXmlSeq : seqList) { String seqKey = maatXmlSeq.getSequenceKey(); @@ -345,166 +395,135 @@ public class ConfigRedisServiceimpl extends BaseRedisDao impleme } public Long getIncrId(String key) { - // - // connectionFactory.setDatabase(0); - // redisTemplate.setConnectionFactory(connectionFactory); - - // RedisAtomicLong atomicLong = new RedisAtomicLong(key, - // redisTemplate.getConnectionFactory()); - // - // Long id = atomicLong.getAndIncrement() + 1; - // if ((id == null || id.longValue() == 0) && liveTime > 0) { - // atomicLong.expire(liveTime, TimeUnit.SECONDS); - // } - // return id; - setRedisDataBase(0, redisTemplate); - // System.out.println(redisTemplate.getConnectionFactory()); + RedisTemplate redisTemplate = SpringContextHolder.getBean("redisTemplate0"); return redisTemplate.boundValueOps(key.toUpperCase()).increment(1l); // return redisTemplate.boundValueOps("MAAT_VERSION").increment(1l); } - public static Integer getRedisDBByService(Integer service) { - Integer redisIndex = serviceDBIndexmap.get(service); - if (redisIndex == null) { - return 0; + @Override + public void delUnMaatConfig(Map>> idMap) { + if (idMap != null && idMap.size() > 0) { + for (Integer redisDBIndex : idMap.keySet()) { + RedisTemplate redisTemplate = SpringContextHolder + .getBean("redisTemplate" + redisDBIndex); + Map> serviceConfigMap = idMap.get(redisDBIndex); + if (serviceConfigMap != null && serviceConfigMap.size() > 0) { + String maatVersionStr = redisTemplate.opsForValue().get("MAAT_VERSION"); + if (maatVersionStr == null) { + maatVersionStr = "0"; + } + if (maatVersionStr != null) { + Long maatVersion = Long.valueOf(maatVersionStr) + 1; + for (Integer service : serviceConfigMap.keySet()) { + List compileIdList = serviceConfigMap.get(service); + if (compileIdList != null && compileIdList.size() > 0) { + for (Long id : compileIdList) { + MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service); + if (maatXmlConfig != null) { + List expressionList = maatXmlConfig.getExpressionList(); + String maatKey = ""; + for (MaatXmlExpr maatXmlExpr : expressionList) { + if (0 == maatXmlExpr.getType().intValue()) { + StringBuffer keyBF = new StringBuffer(); + String[] keySplit = maatXmlExpr.getKeyExpression().split(";"); + for (String keyStr : keySplit) { + if (!StringUtils.isEmpty(keyStr) + && keyStr.toUpperCase().equals("EFFECTIVE_RULE")) { + keyStr = "OBSOLETE_RULE"; + keyBF.append(keyStr.trim()); + } else if (!StringUtils.isEmpty(keyStr) + && keyStr.trim().startsWith("[")) { + // keyStr = keyStr.trim().replace("[", "").replace("]", ""); + keyBF.append(id); + } else { + keyBF.append(keyStr.trim()); + } + } + maatKey = keyBF.toString(); + String oldKey = maatKey.replace("OBSOLETE_RULE", "EFFECTIVE_RULE"); + redisTemplate.rename(oldKey.toString().toUpperCase(), + keyBF.toString().toUpperCase()); + break; + } + // redisTemplate.boundValueOps(keyBF.toString().toUpperCase()).set(valBF.toString()); + + } + for (MaatXmlExpr maatXmlExpr : expressionList) { + if (maatXmlExpr.getKeyExpression().toUpperCase() + .equals("MAAT_UPDATE_STATUS")) { + String zset = maatKey.replace("OBSOLETE_RULE:", "DEL,"); + redisTemplate.boundZSetOps("MAAT_UPDATE_STATUS").add(zset, maatVersion); + } else if (maatXmlExpr.getKeyExpression().toUpperCase() + .equals("MAAT_RULE_TIMER")) { + Double score = 0d;// 界面下发的配置没有超时时间所以这里设置为0 + redisTemplate.boundZSetOps("MAAT_RULE_TIMER").add(maatKey, score); + } else if (maatXmlExpr.getKeyExpression().toUpperCase() + .equals("MAAT_VERSION_TIMER")) { + Long nowTime = new Date().getTime(); + nowTime = nowTime / 1000l; + Double score = nowTime.doubleValue();// 使用redis自带的time,得到当前时间的秒 + redisTemplate.boundZSetOps("MAAT_VERSION_TIMER").add(maatVersion + "", + score); + } + } + List seqList = maatXmlConfig.getSequenceList(); + for (MaatXmlSeq maatXmlSeq : seqList) { + // setRedisDataBase(maatXmlSeq.getRedisDB(), + // redisTemplate); + String seqKey = maatXmlSeq.getSequenceKey(); + if (!seqKey.toUpperCase().equals("MAAT_VERSION")) { + Integer operation = maatXmlSeq.getOperation(); + if (operation == 1) { + redisTemplate.boundValueOps(seqKey.toUpperCase()).increment(1l); + } + } + + } + } + } + + } + + } + redisTemplate.boundValueOps("MAAT_VERSION").increment(1l); + } + } + + } + } - return redisIndex; - } - - /** - * 根据业务类型和具体的type获取对应的表名 - // * @param service 业务类型 - * @param type 10代表是编译配置,11代表是分组配置,12代表是ip类域配置,13代表是数值类配置,14代表是字符串类域配置,15代表是增强字符串类域配置 - * @return - */ - public static String getTableName(int service, int type) { - Map typeMap = sercieNameMap.get(service); - if (typeMap != null && typeMap.size() > 0) { - return typeMap.get(type); - } else { - return ""; - } - - } - - public static void main(String[] args) { - String filePath = "http://10.0.6.192/group1/M00/00/01/CgAGwFr9LriANfj6AADz3NN2rlY448.jpg"; - String substr = filePath.substring(filePath.indexOf("group")); - String[] split = "maat_update_status".split(";"); - System.out.println(substr); - - getRedisDBByService(80); } @Override - public void delUnMaatConfig(List compileIdList, int service) { - if (compileIdList != null && compileIdList.size() > 0) { - Integer redisDBIndex = getRedisDBByService(service); - setRedisDataBase(redisDBIndex, redisTemplate); - String maatVersionStr = redisTemplate.opsForValue().get("MAAT_VERSION"); - if (maatVersionStr == null) { - maatVersionStr = "0"; - } - if (maatVersionStr != null) { - Long maatVersion = Long.valueOf(maatVersionStr) + 1; - for (Long id : compileIdList) { - MaatXmlConfig maatXmlConfig = ReadMaatXmlUtil.getMaatConfigByService(service); - if (maatXmlConfig != null) { - List expressionList = maatXmlConfig.getExpressionList(); - String maatKey = ""; - for (MaatXmlExpr maatXmlExpr : expressionList) { - if (0 == maatXmlExpr.getType().intValue()) { - StringBuffer keyBF = new StringBuffer(); - String[] keySplit = maatXmlExpr.getKeyExpression().split(";"); - for (String keyStr : keySplit) { - if (!StringUtils.isEmpty(keyStr) && keyStr.toUpperCase().equals("EFFECTIVE_RULE")) { - keyStr = "OBSOLETE_RULE"; - keyBF.append(keyStr.trim()); - } else if (!StringUtils.isEmpty(keyStr) && keyStr.trim().startsWith("[")) { - // keyStr = keyStr.trim().replace("[", "").replace("]", ""); - keyBF.append(id); - } else { - keyBF.append(keyStr.trim()); - } - } - maatKey = keyBF.toString(); - String oldKey = maatKey.replace("OBSOLETE_RULE", "EFFECTIVE_RULE"); - redisTemplate.rename(oldKey.toString().toUpperCase(), keyBF.toString().toUpperCase()); - break; - } - // redisTemplate.boundValueOps(keyBF.toString().toUpperCase()).set(valBF.toString()); + public void delMaatConfig(Map>> idMap) { + if (idMap != null && idMap.size() > 0) { + for (Integer redisDBIndex : idMap.keySet()) { + RedisTemplate redisTemplate = SpringContextHolder + .getBean("redisTemplate" + redisDBIndex); + Map> serviceConfigMap = idMap.get(redisDBIndex); + if (serviceConfigMap != null && serviceConfigMap.size() > 0) { + String maatVersionStr = redisTemplate.opsForValue().get("MAAT_VERSION"); + if (maatVersionStr == null) { + maatVersionStr = "0"; + } + if (maatVersionStr != null) { + Long maatVersion = Long.valueOf(maatVersionStr) + 1; + for (Integer service : serviceConfigMap.keySet()) { } - for (MaatXmlExpr maatXmlExpr : expressionList) { - if (maatXmlExpr.getKeyExpression().toUpperCase().equals("MAAT_UPDATE_STATUS")) { - String zset = maatKey.replace("OBSOLETE_RULE:", "DEL,"); - redisTemplate.boundZSetOps("MAAT_UPDATE_STATUS").add(zset, maatVersion); - } else if (maatXmlExpr.getKeyExpression().toUpperCase().equals("MAAT_RULE_TIMER")) { - Double score = 0d;// 界面下发的配置没有超时时间所以这里设置为0 - redisTemplate.boundZSetOps("MAAT_RULE_TIMER").add(maatKey, score); - } else if (maatXmlExpr.getKeyExpression().toUpperCase().equals("MAAT_VERSION_TIMER")) { - Long nowTime = new Date().getTime(); - nowTime = nowTime / 1000l; - Double score = nowTime.doubleValue();// 使用redis自带的time,得到当前时间的秒 - redisTemplate.boundZSetOps("MAAT_VERSION_TIMER").add(maatVersion + "", score); - } - } - List seqList = maatXmlConfig.getSequenceList(); - for (MaatXmlSeq maatXmlSeq : seqList) { - // setRedisDataBase(maatXmlSeq.getRedisDB(), - // redisTemplate); - String seqKey = maatXmlSeq.getSequenceKey(); - if (!seqKey.toUpperCase().equals("MAAT_VERSION")) { - Integer operation = maatXmlSeq.getOperation(); - if (operation == 1) { - redisTemplate.boundValueOps(seqKey.toUpperCase()).increment(1l); - } - } - } + redisTemplate.boundValueOps("MAAT_VERSION").increment(1l); } } - // redisTemplate.boundValueOps("MAAT_VERSION").set(maatVersion + ""); - redisTemplate.boundValueOps("MAAT_VERSION").increment(1l); } } } - // @Override - public void delMaatConfig(List compileIdList, int service) { - if (compileIdList != null && compileIdList.size() > 0) { - Integer redisDBIndex = getRedisDBByService(service); - setRedisDataBase(redisDBIndex, redisTemplate); - MaatRelation maatRelation = CompileGroupRegionRela.getIdRelationMap().get(redisDBIndex); - - Map> compileAndGroupMap = maatRelation.getCompileAndGroupMap(); - Map> groupAndCompileMap = maatRelation.getGroupAndCompileMap(); - Map> groupAndRegionMap = maatRelation.getGroupAndRegionMap(); - - } - - // - // if (maatConfigList != null && maatConfigList.size() > 0) { - // String maatVersionStr = - // operRedisService.getMaatVersion(getRedisDBByService(service)); - // if (maatVersionStr != null) { - // Long maatVersion = Long.valueOf(maatVersionStr) + 1; - // for (MaatConfig maatConfig : maatConfigList) { - // // Integer service = maatConfig.getService(); - // // if (service != null) { - // setRedisDataBase(getRedisDBByService(service), - // redisTemplate); - // MaatXmlConfig maatXmlConfig = - // ReadMaatXmlUtil.getMaatConfigByService(service); - // setConfig(maatConfig, maatXmlConfig, maatVersion, service); - // // } - // } - // redisTemplate.boundValueOps("MAAT_VERSION").set(maatVersion + ""); - // } - // } - // + @Override + public void delMaatRelation(List compileIdList, int service) { + // TODO Auto-generated method stub } diff --git a/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java b/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java index d929dff..0de96fe 100644 --- a/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java +++ b/src/main/java/com/nis/web/service/restful/ConfigSourcesService.java @@ -1,5 +1,11 @@ package com.nis.web.service.restful; +import java.beans.IntrospectionException; +import java.beans.PropertyDescriptor; +import java.io.File; +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.sql.Connection; import java.sql.SQLException; import java.text.ParseException; @@ -34,12 +40,14 @@ import com.nis.domain.restful.ConfigCompileTest; import com.nis.domain.restful.ConfigGroupRelation; import com.nis.domain.restful.DigestRegion; import com.nis.domain.restful.IpRegion; +import com.nis.domain.restful.MaatConfig; import com.nis.domain.restful.NumRegion; import com.nis.domain.restful.StrRegion; import com.nis.restful.CompileJudgeCode; import com.nis.restful.RestBusinessCode; import com.nis.restful.RestServiceException; import com.nis.util.BasicProvingUtil; +import com.nis.util.CamelUnderlineUtil; import com.nis.util.CompileVal; import com.nis.util.Configurations; import com.nis.util.OracleErrorCodeUtil; @@ -100,6 +108,36 @@ public class ConfigSourcesService extends BaseService { public static Map> getTableRelation() { Map> tableMap = new HashMap>(); Map typeMap = new HashMap(); + typeMap.put("AV_CONT_IP_PORT", "ip"); + tableMap.put(80, typeMap); + tableMap.put(144, typeMap); + + typeMap = new HashMap(); + typeMap.put("AV_CONT_URL", "str"); + tableMap.put(81, typeMap); + tableMap.put(145, typeMap); + + typeMap = new HashMap(); + typeMap.put("AV_PIC_IP_PORT", "ip"); + tableMap.put(82, typeMap); + tableMap.put(146, typeMap); + + typeMap = new HashMap(); + typeMap.put("AV_PIC_URL", "str"); + tableMap.put(83, typeMap); + tableMap.put(147, typeMap); + + typeMap = new HashMap(); + typeMap.put("AV_VoIP_IP_PORT", "ip"); + tableMap.put(84, typeMap); + tableMap.put(148, typeMap); + + typeMap = new HashMap(); + typeMap.put("AV_VoIP_ACCOUNT", "str"); + tableMap.put(85, typeMap); + tableMap.put(149, typeMap); + + typeMap = new HashMap(); typeMap.put("REUSE_IP", "ip"); typeMap.put("HID_CONTENT", "ip"); typeMap.put("GSB_PZ_IP", "ip"); @@ -1056,11 +1094,220 @@ public class ConfigSourcesService extends BaseService { this.map = map; } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** - * jdbc方式添加和修改 + * + * @Description: + * @author (zdx) + * @date 2018年5月25日 下午3:49:46 + * @param thread + * @param start + * @param configCompileList + * @param sb + * @return */ - /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + public String saveMaatConfig(SaveRequestLogThread thread, long start, List configCompileList, + StringBuffer sb) { + List maatConfigList = new ArrayList(); + List serviceList = new ArrayList(); + + for (ConfigCompile configCompile : configCompileList) { + serviceList.add(Integer.valueOf(configCompile.getService().toString())); + MaatConfig maatConfig = new MaatConfig(); + List groupRelationList = new ArrayList(); + List strRegionList = new ArrayList(); + List strStrongRegionList = new ArrayList(); + List ipRegionList =new ArrayList(); + List numRegionList = new ArrayList(); + List digestRegionList = new ArrayList(); + String msg = CompileVal.compileIsOk(configCompile, false, sb); + if (msg != CompileJudgeCode.CompileIsOk.getErrorReason()) { + logger1.error(msg); + thread.setExceptionInfo(msg + sb.toString()); + throw new RestServiceException(thread, System.currentTimeMillis() - start, msg + sb.toString(), + RestBusinessCode.config_integrity_error.getValue()); + } + + + if (null != configCompile.getGroupRelationList() && configCompile.getGroupRelationList().size() > 0) { + groupRelationList.addAll(configCompile.getGroupRelationList()); + } else { + logger1.error("配置分组数量不能为空" + sb.toString()); + thread.setExceptionInfo("配置分组数量不能为空" + sb.toString()); + throw new RestServiceException(thread, System.currentTimeMillis() - start, "配置分组数量不能为空" + sb.toString(), + RestBusinessCode.missing_args.getValue()); + } + if (null != configCompile.getStrRegionList() && configCompile.getStrRegionList().size() > 0) { + for (StrRegion strRegion : configCompile.getStrRegionList()) { + if (!isStrStrongRegion(strRegion.getTableName())) { + if (strRegion.getRegionId() == null) { + String errorMsg = "字符类域配置id不能为空 ,表名---" + strRegion.getTableName() + "" + sb.toString(); + logger1.error(errorMsg); + thread.setExceptionInfo(errorMsg); + throw new RestServiceException(thread, System.currentTimeMillis() - start, errorMsg, + RestBusinessCode.missing_args.getValue()); + } + strRegionList.add(strRegion); + } else { + if (strRegion.getRegionId() == null) { + String errorMsg = "增强字符类域配置id不能为空 ,表名---" + strRegion.getTableName() + "" + sb.toString(); + logger1.error(errorMsg); + thread.setExceptionInfo(errorMsg); + throw new RestServiceException(thread, System.currentTimeMillis() - start, errorMsg, + RestBusinessCode.missing_args.getValue()); + } + strStrongRegionList.add(strRegion); + } + } + } + + if (null != configCompile.getIpRegionList() && configCompile.getIpRegionList().size() > 0) { + for (IpRegion ipRegion : configCompile.getIpRegionList()) { + if (!ipRegion.getTableName().toUpperCase().equals("DJ_IP_PORT")) { + ipRegion.setProtocol(0); + } + + if (ipRegion.getRegionId() == null) { + String errorMsg = "ip类域配置id不能为空 ,表名---" + ipRegion.getTableName() + "" + sb.toString(); + logger1.error(errorMsg); + thread.setExceptionInfo(errorMsg); + throw new RestServiceException(thread, System.currentTimeMillis() - start, errorMsg, + RestBusinessCode.missing_args.getValue()); + } + + ipRegionList.add(ipRegion); + } + } + + if (null != configCompile.getNumRegionList() && configCompile.getNumRegionList().size() > 0) { + for (NumRegion numRegion : configCompile.getNumRegionList()) { + if (numRegion.getRegionId() == null) { + String errorMsg = "数值类域配置id不能为空 ,表名---" + numRegion.getTableName() + "" + sb.toString(); + logger1.error(errorMsg); + thread.setExceptionInfo(errorMsg); + throw new RestServiceException(thread, System.currentTimeMillis() - start, errorMsg, + RestBusinessCode.missing_args.getValue()); + } + numRegionList.add(numRegion); + } + } + if (null != configCompile.getDigestRegionList() && configCompile.getDigestRegionList().size() > 0) { + for (DigestRegion digestRegion : configCompile.getDigestRegionList()) { + if (digestRegion.getRegionId() == null) { + String errorMsg = "摘要类域配置id不能为空 ,表名---" + digestRegion.getTableName() + "" + sb.toString(); + logger1.error(errorMsg); + thread.setExceptionInfo(errorMsg); + throw new RestServiceException(thread, System.currentTimeMillis() - start, errorMsg, + RestBusinessCode.missing_args.getValue()); + } + + digestRegionList.add(digestRegion); + } + } + + maatConfig.setService(Integer.valueOf(configCompile.getService().toString())); + //编译 + maatConfig.setCompileMap(convertObjectToMap(configCompile, ConfigCompile.class)); + //分组 + List> dstMaplList = null; + if (!StringUtil.isEmpty(groupRelationList)) { + dstMaplList = new ArrayList>(); + for (ConfigGroupRelation group : groupRelationList) { + dstMaplList.add(convertObjectToMap(group, ConfigGroupRelation.class)); + } + } + maatConfig.setGroupMapList(dstMaplList); + //字符串域 + dstMaplList = null; + if (!StringUtil.isEmpty(strRegionList)) { + dstMaplList = new ArrayList>(); + for (StrRegion region : strRegionList) { + dstMaplList.add(convertObjectToMap(region, StrRegion.class)); + } + } + maatConfig.setStrRegionMapList(dstMaplList); + //增强字符串域 + dstMaplList = null; + if (!StringUtil.isEmpty(strStrongRegionList)) { + dstMaplList = new ArrayList>(); + for (StrRegion region : strStrongRegionList) { + dstMaplList.add(convertObjectToMap(region, StrRegion.class)); + } + } + maatConfig.setStrStrRegionMapList((dstMaplList)); + //数值域 + dstMaplList = null; + if (!StringUtil.isEmpty(numRegionList)) { + dstMaplList = new ArrayList>(); + for (NumRegion region : numRegionList) { + dstMaplList.add(convertObjectToMap(region, NumRegion.class)); + } + } + maatConfig.setNumRegionMapList(dstMaplList); + + //Ip域 + dstMaplList = null; + if (!StringUtil.isEmpty(ipRegionList)) { + dstMaplList = new ArrayList>(); + for (IpRegion region : ipRegionList) { + dstMaplList.add(convertObjectToMap(region, IpRegion.class)); + } + } + maatConfig.setIpRegionMapList(dstMaplList); + + //摘要类域 + dstMaplList = null; + if (!StringUtil.isEmpty(digestRegionList)) { + dstMaplList = new ArrayList>(); + for (DigestRegion region : digestRegionList) { + dstMaplList.add(convertObjectToMap(region, DigestRegion.class)); + } + } + + maatConfig.setFileDigestRegionMapList(dstMaplList); + dstMaplList = null; + //文本相似性域 + maatConfig.setFileLikeRegionMapList(dstMaplList); + maatConfigList.add(maatConfig); + } + if (!StringUtil.isEmpty(serviceList)&&serviceList.size()!=1) { + String errorMsg = "只能添加单一service配置信息列表"; + logger1.error(errorMsg); + thread.setExceptionInfo(errorMsg); + throw new RestServiceException(thread, System.currentTimeMillis() - start, errorMsg, + RestBusinessCode.op_action_error.getValue()); + } + + //调用接口入redis + configRedisService.saveMaatConfig(maatConfigList, serviceList.get(0)); + + return "ok"; + } + private Map convertObjectToMap(Object obj,Class clazz){ + Map dstMap = new HashMap(); + try { + Field[] fields= obj.getClass().getDeclaredFields(); + for (Field field : fields) { + if("serialVersionUID".equals(field.getName())) + continue; + String dstName = CamelUnderlineUtil.camelToUnderline(field.getName()); + PropertyDescriptor pd; + pd = new PropertyDescriptor(field.getName(), clazz); + Method method = pd.getReadMethod(); + Object dstObject = method.invoke(obj); + if (dstObject instanceof Date) { + dstObject = convertToTimeStamp16((Date)dstObject); + }if(dstObject instanceof ArrayList){ + dstObject = ""; + } + dstMap.put(dstName, StringUtil.isEmpty(dstObject)?"":dstObject.toString()); + } + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + logger1.error(e.getMessage()); + } + return dstMap; + } public String saveByJDBCThread(SaveRequestLogThread thread, long start, List configCompileList, StringBuffer sb) { List groupRelationList = new ArrayList(); @@ -1186,7 +1433,7 @@ public class ConfigSourcesService extends BaseService { } } } - + if (Configurations.getStringProperty("isCommit", "false").equals("true")) { int count = 0; if (null != configCompileList && configCompileList.size() > 0) { @@ -1298,6 +1545,12 @@ public class ConfigSourcesService extends BaseService { } return "ok"; } + + private String convertToTimeStamp16(Date date){ + sdf.setTimeZone(TimeZone.getTimeZone("UTC")); + return date.getTime()+"000"; + } + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** diff --git a/src/main/java/com/nis/web/service/restful/JDBCTest.java b/src/main/java/com/nis/web/service/restful/JDBCTest.java index d851dc5..959de3c 100644 --- a/src/main/java/com/nis/web/service/restful/JDBCTest.java +++ b/src/main/java/com/nis/web/service/restful/JDBCTest.java @@ -35,7 +35,7 @@ public class JDBCTest { count++; Object[] obj = new Object[] { compile.getCompileId(), compile.getService(), compile.getAction(), compile.getContType(), compile.getAttrType(), compile.getContLabel(), compile.getTaskId(), - compile.getGuaranteeId(), compile.getAffAirId(), compile.getTopIcId(), compile.getDoBlackList(), + compile.getGuaranteeId(), compile.getAffairId(), compile.getTopicId(), compile.getDoBlacklist(), compile.getDoLog(), compile.getEffectiveRange(), compile.getActiveSys(), compile.getConfigPercent(), compile.getConfigOption(), compile.getStartTime(), compile.getEndTime(), compile.getUserRegion(), compile.getIsValid(), compile.getGroupNum(), compile.getFatherCfgId(), compile.getOpTime() }; diff --git a/src/main/java/com/nis/web/service/restful/JDBCThreadTest.java b/src/main/java/com/nis/web/service/restful/JDBCThreadTest.java index c5e26ea..62d1b98 100644 --- a/src/main/java/com/nis/web/service/restful/JDBCThreadTest.java +++ b/src/main/java/com/nis/web/service/restful/JDBCThreadTest.java @@ -181,8 +181,8 @@ public class JDBCThreadTest implements Runnable { count++; Object[] obj = new Object[] { compile.getCompileId(), compile.getService(), compile.getAction(), compile.getContType(), compile.getAttrType(), compile.getContLabel(), compile.getTaskId(), - compile.getGuaranteeId(), compile.getAffAirId(), compile.getTopIcId(), - compile.getDoBlackList(), compile.getDoLog(), compile.getEffectiveRange(), + compile.getGuaranteeId(), compile.getAffairId(), compile.getTopicId(), + compile.getDoBlacklist(), compile.getDoLog(), compile.getEffectiveRange(), compile.getActiveSys(), compile.getConfigPercent(), compile.getConfigOption(), compile.getStartTime(), compile.getEndTime(), compile.getUserRegion(), compile.getIsValid(), compile.getGroupNum(), compile.getFatherCfgId(), compile.getOpTime() }; diff --git a/src/main/java/com/nis/web/service/restful/OperRedisService.java b/src/main/java/com/nis/web/service/restful/OperRedisService.java deleted file mode 100644 index 6e45a60..0000000 --- a/src/main/java/com/nis/web/service/restful/OperRedisService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.nis.web.service.restful; - -import org.springframework.stereotype.Service; - -import com.nis.datasource.DynamicJedisDataBase; -import com.nis.web.dao.impl.BaseRedisDao; - -@Service() -public class OperRedisService extends BaseRedisDao { - - public String getMaatVersion1(int redisIndex) { - //DynamicJedisDataBase.setRedisDataBase(redisIndex, redisTemplate); - // RedisAtomicLong atomicLong = new RedisAtomicLong(key, - // redisTemplate.getConnectionFactory()); - // - // Long id = atomicLong.getAndIncrement() + 1; - // if ((id == null || id.longValue() == 0) && liveTime > 0) { - // atomicLong.expire(liveTime, TimeUnit.SECONDS); - // } - // return id; - - return redisTemplate.opsForValue().get("MAAT_VERSION"); - - // return redisTemplate.boundValueOps("MAAT_VERSION").increment(1l); - // return redisTemplate.boundValueOps("MAAT_VERSION").increment(1l); - } -} diff --git a/src/main/java/com/nis/web/service/restful/SpringJDBCTest.java b/src/main/java/com/nis/web/service/restful/SpringJDBCTest.java index b129800..1736991 100644 --- a/src/main/java/com/nis/web/service/restful/SpringJDBCTest.java +++ b/src/main/java/com/nis/web/service/restful/SpringJDBCTest.java @@ -31,7 +31,7 @@ public class SpringJDBCTest { for (ConfigCompile compile : compileList) { bsu.update(new Object[] { compile.getCompileId(), compile.getService(), compile.getAction(), compile.getContType(), compile.getAttrType(), compile.getContLabel(), compile.getTaskId(), - compile.getGuaranteeId(), compile.getAffAirId(), compile.getTopIcId(), compile.getDoBlackList(), + compile.getGuaranteeId(), compile.getAffairId(), compile.getTopicId(), compile.getDoBlacklist(), compile.getDoLog(), compile.getEffectiveRange(), compile.getActiveSys(), compile.getConfigPercent(), compile.getConfigOption(), compile.getStartTime(), compile.getEndTime(), compile.getUserRegion(), compile.getIsValid(), compile.getGroupNum(), compile.getFatherCfgId(), compile.getOpTime() }); diff --git a/src/main/java/com/nis/web/service/restful/SpringJDBCThreadTest.java b/src/main/java/com/nis/web/service/restful/SpringJDBCThreadTest.java index 208ba8a..ce4aad7 100644 --- a/src/main/java/com/nis/web/service/restful/SpringJDBCThreadTest.java +++ b/src/main/java/com/nis/web/service/restful/SpringJDBCThreadTest.java @@ -155,7 +155,7 @@ public class SpringJDBCThreadTest implements Runnable { for (ConfigCompile compile : compileList) { bsu.update(new Object[] { compile.getCompileId(), compile.getService(), compile.getAction(), compile.getContType(), compile.getAttrType(), compile.getContLabel(), compile.getTaskId(), - compile.getGuaranteeId(), compile.getAffAirId(), compile.getTopIcId(), compile.getDoBlackList(), + compile.getGuaranteeId(), compile.getAffairId(), compile.getTopicId(), compile.getDoBlacklist(), compile.getDoLog(), compile.getEffectiveRange(), compile.getActiveSys(), compile.getConfigPercent(), compile.getConfigOption(), compile.getStartTime(), compile.getEndTime(), compile.getUserRegion(), compile.getIsValid(), compile.getGroupNum(), compile.getFatherCfgId(), compile.getOpTime() }); diff --git a/src/main/java/com/nis/web/service/restful/SpringJDBCThreadTest2.java b/src/main/java/com/nis/web/service/restful/SpringJDBCThreadTest2.java index 9266ce6..fb0f8d3 100644 --- a/src/main/java/com/nis/web/service/restful/SpringJDBCThreadTest2.java +++ b/src/main/java/com/nis/web/service/restful/SpringJDBCThreadTest2.java @@ -155,7 +155,7 @@ public class SpringJDBCThreadTest2 implements Runnable { for (ConfigCompile compile : compileList) { bsu.update(new Object[] { compile.getCompileId(), compile.getService(), compile.getAction(), compile.getContType(), compile.getAttrType(), compile.getContLabel(), compile.getTaskId(), - compile.getGuaranteeId(), compile.getAffAirId(), compile.getTopIcId(), compile.getDoBlackList(), + compile.getGuaranteeId(), compile.getAffairId(), compile.getTopicId(), compile.getDoBlacklist(), compile.getDoLog(), compile.getEffectiveRange(), compile.getActiveSys(), compile.getConfigPercent(), compile.getConfigOption(), compile.getStartTime(), compile.getEndTime(), compile.getUserRegion(), compile.getIsValid(), compile.getGroupNum(), compile.getFatherCfgId(), compile.getOpTime() }); diff --git a/src/main/resources/applicationContext-redis.xml b/src/main/resources/applicationContext-redis.xml index ab2b803..d5f3afb 100644 --- a/src/main/resources/applicationContext-redis.xml +++ b/src/main/resources/applicationContext-redis.xml @@ -51,11 +51,23 @@ class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" p:host-name="${redis.host}" p:port="${redis.port}" p:pool-config-ref="poolConfig" p:database="4" /> + + + + + + - + @@ -65,4 +77,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/fastdfs-client.properties b/src/main/resources/fastdfs-client.properties index 034e60e..4f71258 100644 --- a/src/main/resources/fastdfs-client.properties +++ b/src/main/resources/fastdfs-client.properties @@ -10,5 +10,5 @@ fastdfs.http_secret_key = FastDFS1234567890 fastdfs.http_tracker_http_port = 80 #fastdfs.tracker_servers = 10.0.11.201:22122,10.0.11.202:22122,10.0.11.203:22122 -fastdfs.tracker_servers = 10.0.6.192:22122 - +#fastdfs.tracker_servers = 10.0.6.192:22122 +fastdfs.tracker_servers = 10.0.6.249:22122 diff --git a/src/main/resources/fdfs_client.conf b/src/main/resources/fdfs_client.conf index c3d1fe2..530d0f9 100644 --- a/src/main/resources/fdfs_client.conf +++ b/src/main/resources/fdfs_client.conf @@ -5,6 +5,6 @@ http.tracker_http_port = 8080 http.anti_steal_token = no http.secret_key = FastDFS1234567890 -tracker_server = 10.0.6.192:22122 +tracker_server = 10.0.6.249:22122 #tracker_server = 10.0.11.248:22122 #tracker_server = 10.0.11.249:22122 diff --git a/src/main/resources/jdbc.properties b/src/main/resources/jdbc.properties index c88211a..d306c6e 100644 --- a/src/main/resources/jdbc.properties +++ b/src/main/resources/jdbc.properties @@ -132,7 +132,7 @@ jdbc.test.password=OrTu/cLwlduYPW/tmxqNgQ== redis.host=10.0.6.249 redis.port=6379 redis.pass= -redis.maxIdle=100 -redis.maxTotal=150 +redis.maxIdle=200 +redis.maxTotal=250 redis.maxWaitMillis=1000 redis.testOnBorrow=true diff --git a/src/main/resources/serviceTable.properties b/src/main/resources/serviceTable.properties index a56cfde..f09a931 100644 --- a/src/main/resources/serviceTable.properties +++ b/src/main/resources/serviceTable.properties @@ -10,7 +10,7 @@ service=80;81;82;83;84;85;144;145;146;147;148;149 -80=10:AV_CONFIG_COMPILE;11:AV_CONFIG_GROUP;12:AV_CONT_IP_PORT +80=10:AV_CONFIG_COMPILE;11:AV_CONFIG_GROUP;12:AV_CONT_IP_PORT,AV_CONT_URL 81=10:AV_CONFIG_COMPILE;11:AV_CONFIG_GROUP;14:AV_CONT_URL 82=10:AV_CONFIG_COMPILE;11:AV_CONFIG_GROUP;12:AV_PIC_IP_PORT 83=10:AV_CONFIG_COMPILE;11:AV_CONFIG_GROUP;13:AV_PIC_URL