Browse Source

Merge branch 'dev' of http://git.elinkit.com.cn:7070/r/epmet-cloud into dev_data_stats

master
wxz 5 years ago
parent
commit
ac0b0a02ba
  1. 2
      epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-dev.yml
  2. 2
      epmet-module/gov-voice/gov-voice-server/pom.xml
  3. 22
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/constant/TagConstant.java
  4. 34
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java
  5. 9
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
  6. 18
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/TagServiceImpl.java

2
epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services: services:
gov-voice-server: gov-voice-server:
container_name: gov-voice-server-dev container_name: gov-voice-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/gov-voice-server:0.3.52 image: 192.168.1.130:10080/epmet-cloud-dev/gov-voice-server:0.3.53
ports: ports:
- "8105:8105" - "8105:8105"
network_mode: host # 使用现有网络 network_mode: host # 使用现有网络

2
epmet-module/gov-voice/gov-voice-server/pom.xml

@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<version>0.3.52</version> <version>0.3.53</version>
<parent> <parent>
<artifactId>gov-voice</artifactId> <artifactId>gov-voice</artifactId>
<groupId>com.epmet</groupId> <groupId>com.epmet</groupId>

22
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/constant/TagConstant.java

@ -15,34 +15,34 @@ package com.epmet.constant;
*/ */
public interface TagConstant { public interface TagConstant {
/** /* *//**
* 客户维度政府端 热度标签 key的前缀 zset * 客户维度政府端 热度标签 key的前缀 zset
* 完整keyGRID_TAG_KEY:客户ID * 完整keyGRID_TAG_KEY:客户ID
*/ *//*
String GOV_TAG_KEY = "epmet:tags:customer:rankingTag:"; String GOV_TAG_KEY = "epmet:tags:customer:rankingTag:";
/** *//**
* 客户维度政府端 关联标签 key的前缀 set * 客户维度政府端 关联标签 key的前缀 set
* 完整keyGRID_TAG_KEY:标签ID * 完整keyGRID_TAG_KEY:标签ID
*/ *//*
String GOV_RETAG_KEY = "epmet:tags:customer:relationTag:"; String GOV_RETAG_KEY = "epmet:tags:customer:relationTag:";
/** *//**
* 网格热度标签居民端 key的前缀 zset * 网格热度标签居民端 key的前缀 zset
* 完整keyGRID_TAG_KEY:网格ID * 完整keyGRID_TAG_KEY:网格ID
*/ *//*
String GRID_TAG_KEY = "epmet:tags:grid:rankingTag:"; String GRID_TAG_KEY = "epmet:tags:grid:rankingTag:";
/** *//**
* 网格关联标签居民端 key的前缀 set * 网格关联标签居民端 key的前缀 set
* 完整keyGRID_RETAG_KEY:网格ID:标签ID * 完整keyGRID_RETAG_KEY:网格ID:标签ID
*/ *//*
String GRID_RETAG_KEY ="epmet:tags:grid:relationTag:"; String GRID_RETAG_KEY ="epmet:tags:grid:relationTag:";
/** *//**
* 冒号 * 冒号
*/ *//*
String COLON = ":"; String COLON = ":";*/
String BEGIN_UPDATE = "开始更新标签缓存... ..."; String BEGIN_UPDATE = "开始更新标签缓存... ...";
String SUCCESS_UPDATE = "更新标签缓存成功... ..."; String SUCCESS_UPDATE = "更新标签缓存成功... ...";

34
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/redis/TagRedis.java

@ -88,14 +88,14 @@ public class TagRedis {
if (tagIdList.size() > 1){ if (tagIdList.size() > 1){
for (int i = NumConstant.ONE; i < tagIdList.size(); i++) { for (int i = NumConstant.ONE; i < tagIdList.size(); i++) {
String tagId = tagIdList.get(i); String tagId = tagIdList.get(i);
tagId = TagConstant.GOV_RETAG_KEY+customerId+TagConstant.COLON+tagId; tagId = RedisKeys.getCustomerReTagKey(customerId,tagId);
keys.add(tagId); keys.add(tagId);
} }
String key = TagConstant.GOV_RETAG_KEY+customerId+TagConstant.COLON+tagIdList.get(0); String key = RedisKeys.getCustomerReTagKey(customerId,tagIdList.get(0));
objects = redisUtils.intersect(key, keys); objects = redisUtils.intersect(key, keys);
}else { }else {
// 查询关联标签数量 等于1条时 // 查询关联标签数量 等于1条时
String key = TagConstant.GOV_RETAG_KEY+customerId+TagConstant.COLON+tagIdList.get(0); String key = RedisKeys.getCustomerReTagKey(customerId,tagIdList.get(0));
objects = redisUtils.sMembers(key); objects = redisUtils.sMembers(key);
} }
List<CorrelationTagListResultDTO> resultList = new ArrayList<>(); List<CorrelationTagListResultDTO> resultList = new ArrayList<>();
@ -113,7 +113,7 @@ public class TagRedis {
if (resultList.size() > NumConstant.ZERO) { if (resultList.size() > NumConstant.ZERO) {
long start = 0; long start = 0;
long end = -1; long end = -1;
String customerKey = TagConstant.GOV_TAG_KEY + customerId; String customerKey = RedisKeys.getCustomerTagKey(customerId);
Set<ZSetOperations.TypedTuple<Object>> typedTuples = redisUtils.zReverseRangeWithScores(customerKey, start, end); Set<ZSetOperations.TypedTuple<Object>> typedTuples = redisUtils.zReverseRangeWithScores(customerKey, start, end);
for (CorrelationTagListResultDTO correlationTagList : resultList) { for (CorrelationTagListResultDTO correlationTagList : resultList) {
for (ZSetOperations.TypedTuple<Object> typedTuple : typedTuples) { for (ZSetOperations.TypedTuple<Object> typedTuple : typedTuples) {
@ -145,7 +145,7 @@ public class TagRedis {
public List<TagInfoResultDTO> zRevRange(String key){ public List<TagInfoResultDTO> zRevRange(String key){
long start = 0; long start = 0;
long end = -1; long end = -1;
String tagKey = TagConstant.GOV_TAG_KEY+key; String tagKey = RedisKeys.getCustomerTagKey(key);
Set<Object> objects = redisUtils.zRevRange(tagKey, start, end); Set<Object> objects = redisUtils.zRevRange(tagKey, start, end);
if (objects.size()== NumConstant.ZERO){ if (objects.size()== NumConstant.ZERO){
return new ArrayList<>(); return new ArrayList<>();
@ -166,7 +166,7 @@ public class TagRedis {
public List<TagInfoResultDTO> zGridRevRange(String key){ public List<TagInfoResultDTO> zGridRevRange(String key){
long start = 0; long start = 0;
long end = -1; long end = -1;
String tagKey = TagConstant.GRID_TAG_KEY+key; String tagKey = RedisKeys.getGridTagKey(key);
Set<Object> objects = redisUtils.zRevRange(tagKey, start, end); Set<Object> objects = redisUtils.zRevRange(tagKey, start, end);
if (objects.size()== NumConstant.ZERO){ if (objects.size()== NumConstant.ZERO){
return new ArrayList<>(); return new ArrayList<>();
@ -192,14 +192,14 @@ public class TagRedis {
if (tagIdList.size() > 1){ if (tagIdList.size() > 1){
for (int i = NumConstant.ONE; i < tagIdList.size(); i++) { for (int i = NumConstant.ONE; i < tagIdList.size(); i++) {
String tagId = tagIdList.get(i); String tagId = tagIdList.get(i);
tagId = TagConstant.GRID_RETAG_KEY+gridId+TagConstant.COLON+tagId; tagId = RedisKeys.getGridReTagKey(gridId,tagId);
keys.add(tagId); keys.add(tagId);
} }
String key = TagConstant.GRID_RETAG_KEY+gridId+TagConstant.COLON+tagIdList.get(0); String key = RedisKeys.getGridReTagKey(gridId,tagIdList.get(0));
objects = redisUtils.intersect(key, keys); objects = redisUtils.intersect(key, keys);
}else { }else {
//当级联标签为一条时 //当级联标签为一条时
String key = TagConstant.GRID_RETAG_KEY+gridId+TagConstant.COLON+tagIdList.get(0); String key = RedisKeys.getGridReTagKey(gridId,tagIdList.get(0));
objects = redisUtils.sMembers(key); objects = redisUtils.sMembers(key);
} }
List<TagInfoResultDTO> resultList = new ArrayList<>(); List<TagInfoResultDTO> resultList = new ArrayList<>();
@ -216,8 +216,9 @@ public class TagRedis {
if (resultList.size() > NumConstant.ZERO) { if (resultList.size() > NumConstant.ZERO) {
long start = 0; long start = 0;
long end = -1; long end = -1;
String customerKey = TagConstant.GRID_TAG_KEY+formDto.getGridId(); String gridTagKey =RedisKeys.getGridTagKey(formDto.getGridId());
Set<ZSetOperations.TypedTuple<Object>> typedTuples = redisUtils.zReverseRangeWithScores(customerKey, start, end);
Set<ZSetOperations.TypedTuple<Object>> typedTuples = redisUtils.zReverseRangeWithScores(gridTagKey, start, end);
for (TagInfoResultDTO tagInfo : resultList) { for (TagInfoResultDTO tagInfo : resultList) {
for (ZSetOperations.TypedTuple<Object> typedTuple : typedTuples) { for (ZSetOperations.TypedTuple<Object> typedTuple : typedTuples) {
TagRankResultDTO tagRank = objectToDTO(typedTuple.getValue(), TagRankResultDTO.class); TagRankResultDTO tagRank = objectToDTO(typedTuple.getValue(), TagRankResultDTO.class);
@ -291,14 +292,11 @@ public class TagRedis {
public void updateMoreTag(String key, Set<UpdateTagUseCountsResultDTO> value) { public void updateMoreTag(String key, Set<UpdateTagUseCountsResultDTO> value) {
try { try {
log.info(TagConstant.BEGIN_UPDATE); log.info(TagConstant.BEGIN_UPDATE);
redisTemplate.executePipelined(new RedisCallback<Set<UpdateTagUseCountsResultDTO>>() { redisTemplate.executePipelined((RedisCallback<Set<UpdateTagUseCountsResultDTO>>) connection -> {
@Override for (UpdateTagUseCountsResultDTO tag : value) {
public Set doInRedis(RedisConnection connection) throws DataAccessException { connection.sAdd(redisTemplate.getKeySerializer().serialize(key),redisTemplate.getValueSerializer().serialize(tag));
for (UpdateTagUseCountsResultDTO tag : value) {
connection.sAdd(redisTemplate.getKeySerializer().serialize(key),redisTemplate.getValueSerializer().serialize(tag));
}
return null;
} }
return null;
}); });
log.info(TagConstant.SUCCESS_UPDATE); log.info(TagConstant.SUCCESS_UPDATE);
}catch (Exception e){ }catch (Exception e){

9
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java

@ -26,6 +26,7 @@ import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.scan.param.ImgScanParamDTO; import com.epmet.commons.tools.scan.param.ImgScanParamDTO;
import com.epmet.commons.tools.scan.param.ImgTaskDTO; import com.epmet.commons.tools.scan.param.ImgTaskDTO;
import com.epmet.commons.tools.scan.param.TextScanParamDTO; import com.epmet.commons.tools.scan.param.TextScanParamDTO;
@ -1196,14 +1197,14 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
String customerId = formDto.getCustomerId(); String customerId = formDto.getCustomerId();
//更新缓存标签使用数量 //更新缓存标签使用数量
tagsInfo.forEach(resultDTO -> { tagsInfo.forEach(resultDTO -> {
String customerKey = TagConstant.GOV_TAG_KEY + customerId; String customerKey = RedisKeys.getCustomerTagKey(customerId);
tagRedis.updateTagUseCounts(customerKey, resultDTO); tagRedis.updateTagUseCounts(customerKey, resultDTO);
}); });
//政府端更新redis的级联标签(set) //政府端更新redis的级联标签(set)
List<UpdateTagUseCountsResultDTO> tagsInfoCopy = new ArrayList<>(); List<UpdateTagUseCountsResultDTO> tagsInfoCopy = new ArrayList<>();
for (int i = 0; i < tagsInfo.size(); i++) { for (int i = 0; i < tagsInfo.size(); i++) {
tagsInfoCopy.addAll(tagsInfo); tagsInfoCopy.addAll(tagsInfo);
String key = TagConstant.GOV_RETAG_KEY + customerId + TagConstant.COLON + tagsInfo.get(i).getTagId(); String key = RedisKeys.getCustomerReTagKey(customerId, tagsInfo.get(i).getTagId());
tagsInfoCopy.remove(tagsInfo.get(i)); tagsInfoCopy.remove(tagsInfo.get(i));
Set<UpdateTagUseCountsResultDTO> setTag = new HashSet<>(tagsInfoCopy); Set<UpdateTagUseCountsResultDTO> setTag = new HashSet<>(tagsInfoCopy);
tagRedis.updateMoreTag(key, setTag); tagRedis.updateMoreTag(key, setTag);
@ -1259,7 +1260,7 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
List<UpdateTagUseCountsResultDTO> gridTagCacheCopy = new ArrayList<>(); List<UpdateTagUseCountsResultDTO> gridTagCacheCopy = new ArrayList<>();
gridTagCache.forEach(cacheDTO -> { gridTagCache.forEach(cacheDTO -> {
String gridId = cacheDTO.getGridId(); String gridId = cacheDTO.getGridId();
String key = TagConstant.GRID_TAG_KEY + gridId; String key = RedisKeys.getGridTagKey(gridId);
List<UpdateTagUseCountsResultDTO> tagsInfo = cacheDTO.getTagsInfo(); List<UpdateTagUseCountsResultDTO> tagsInfo = cacheDTO.getTagsInfo();
tagsInfo.forEach(resultDTO -> { tagsInfo.forEach(resultDTO -> {
tagRedis.updateTagUseCounts(key, resultDTO); tagRedis.updateTagUseCounts(key, resultDTO);
@ -1267,7 +1268,7 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
//级联 //级联
for (int i = 0; i < tagsInfo.size(); i++) { for (int i = 0; i < tagsInfo.size(); i++) {
gridTagCacheCopy.addAll(tagsInfo); gridTagCacheCopy.addAll(tagsInfo);
String moreKey = TagConstant.GRID_RETAG_KEY + gridId + TagConstant.COLON + tagsInfo.get(i).getTagId(); String moreKey = RedisKeys.getGridReTagKey(gridId, tagsInfo.get(i).getTagId());
gridTagCacheCopy.remove(tagsInfo.get(i)); gridTagCacheCopy.remove(tagsInfo.get(i));
Set<UpdateTagUseCountsResultDTO> setTag = new HashSet<>(gridTagCacheCopy); Set<UpdateTagUseCountsResultDTO> setTag = new HashSet<>(gridTagCacheCopy);
tagRedis.updateMoreTag(moreKey, setTag); tagRedis.updateMoreTag(moreKey, setTag);

18
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/TagServiceImpl.java

@ -3,8 +3,8 @@ package com.epmet.service.impl;
import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.constant.TagConstant;
import com.epmet.dao.*; import com.epmet.dao.*;
import com.epmet.dto.form.*; import com.epmet.dto.form.*;
import com.epmet.dto.result.CorrelationTagListResultDTO; import com.epmet.dto.result.CorrelationTagListResultDTO;
@ -90,7 +90,7 @@ public class TagServiceImpl implements TagService {
InitTagsFormDTO tagInfo = new InitTagsFormDTO(); InitTagsFormDTO tagInfo = new InitTagsFormDTO();
UpdateTagUseCountsResultDTO initTag = new UpdateTagUseCountsResultDTO(); UpdateTagUseCountsResultDTO initTag = new UpdateTagUseCountsResultDTO();
UUID uuid = UUID.randomUUID(); UUID uuid = UUID.randomUUID();
String replaceUuid = uuid.toString().replace("-", ""); String replaceUuid = uuid.toString().replace(StrConstant.HYPHEN, "");
tagInfo.setId(replaceUuid); tagInfo.setId(replaceUuid);
initTag.setTagId(replaceUuid); initTag.setTagId(replaceUuid);
tagInfo.setTagName(tagName); tagInfo.setTagName(tagName);
@ -100,7 +100,7 @@ public class TagServiceImpl implements TagService {
initCacheTags.add(initTag); initCacheTags.add(initTag);
}); });
tagCustomerDao.initTags(tags); tagCustomerDao.initTags(tags);
String key = TagConstant.GOV_TAG_KEY+customerId; String key = RedisKeys.getCustomerTagKey(customerId);
tagRedis.initCacheTags(key,initCacheTags); tagRedis.initCacheTags(key,initCacheTags);
return tagRedis.zRevRange(customerId); return tagRedis.zRevRange(customerId);
} }
@ -159,7 +159,10 @@ public class TagServiceImpl implements TagService {
}); });
} }
if (reCustomerTagMap.size() > 0) { if (reCustomerTagMap.size() > 0) {
reCustomerTagMap.forEach((customerAndTagId, tagSet) -> tagRedis.updateMoreTag(TagConstant.GOV_RETAG_KEY.concat(customerAndTagId), tagSet)); reCustomerTagMap.forEach((customerAndTagId, tagSet) -> {
String[] customerIdAndTagIdArr = customerAndTagId.split(StrConstant.COLON);
tagRedis.updateMoreTag(RedisKeys.getCustomerReTagKey(customerIdAndTagIdArr[0], customerIdAndTagIdArr[1]), tagSet);
});
} }
@ -189,14 +192,17 @@ public class TagServiceImpl implements TagService {
for (ArticlePublishRangeEntity publishRange : articleIdList) { for (ArticlePublishRangeEntity publishRange : articleIdList) {
List<ArticleTagsEntity> articleTagsEntities = articleReTagMap.get(publishRange.getArticleId()); List<ArticleTagsEntity> articleTagsEntities = articleReTagMap.get(publishRange.getArticleId());
if (CollectionUtils.isEmpty(articleTagsEntities)){ if (CollectionUtils.isEmpty(articleTagsEntities)){
//该文章诶呦标签 //该文章没有标签
continue; continue;
} }
buildGridReTag(resultMap,gridId,articleTagsEntities); buildGridReTag(resultMap,gridId,articleTagsEntities);
} }
} }
if (resultMap.size() > 0) { if (resultMap.size() > 0) {
resultMap.forEach((gridIdAndTagId, tagSet) -> tagRedis.updateMoreTag(TagConstant.GRID_RETAG_KEY.concat(gridIdAndTagId), tagSet)); resultMap.forEach((gridIdAndTagId, tagSet) -> {
String[] gridIdAndTagIdArr = gridIdAndTagId.split(StrConstant.COLON);
tagRedis.updateMoreTag(RedisKeys.getGridReTagKey(gridIdAndTagIdArr[0],gridIdAndTagIdArr[1]), tagSet);
});
} }
return true; return true;
} }

Loading…
Cancel
Save