Browse Source

Merge branches 'dev' and 'dev_issue_project' of http://git.elinkit.com.cn:7070/r/epmet-cloud into dev_issue_project

master
yinzuomei 5 years ago
parent
commit
73d6165709
  1. 14
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java
  2. 100
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java
  3. 6
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java
  4. 2
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupStatisticalServiceImpl.java
  5. 2
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java

14
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/redis/IssueVoteDetailRedis.java

@ -211,5 +211,19 @@ public class IssueVoteDetailRedis {
}
}
/**
* @Description 修改缓存中某个属性 - hash
* @param issueId
* @param field
* @param value
* @return void
* @author wangc
* @date 2020.05.22 11:31
**/
public void hset(String issueId,String field,Object value){
String key = new StringBuilder(IssueConstant.REDIS_KEY).append(issueId).toString();
redisUtils.hSet(key,field,value);
}
}

100
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java

@ -268,9 +268,21 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
Set<String> notExistedIds = new HashSet<String>();
notExistedIds.addAll(ids);
notExistedIds.removeAll(statisiticalIds);
Set<String> existedIds = new HashSet<>();
existedIds.addAll(ids);
existedIds.retainAll(statisiticalIds);
//更新
//TODO 对ids进行更新 - 从缓存中拿取
//对ids进行更新 - 从缓存中拿取
List<IssueVoteStatisticalDTO> listToUpdate = new ArrayList<>();
setVotableCountsAndUpdateCache(listToUpdate,
existedIds.stream().flatMap(existedId -> issues.stream().filter(issue ->
StringUtils.equals(issue.getId(),existedId)).map(issueDTO -> {
return issueDTO;
})).collect(Collectors.toSet()),
votableCountMap);
//TODO 批量更新listToUpdate
if (notExistedIds.size() > NumConstant.ZERO) {
//新增
@ -325,7 +337,29 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
.collect(Collectors.toList());
}
//TODO 批量查找collect的votableCount
//批量查找summary的votableCount
Map<String,List<IssueDTO>> gridIssueMap =
issues.stream().collect(Collectors.groupingBy(IssueDTO::getGridId));
for(IssueVoteStatisticalDTO vote : summary){
for(Map.Entry<String,List<IssueDTO>> entry : gridIssueMap.entrySet()){
String k = entry.getKey();
List<IssueDTO> v = entry.getValue();
if(null == v || v.size() < NumConstant.ONE) continue;
for(IssueDTO issue : v){
if(StringUtils.equals(vote.getIssueId(),issue.getId()))
vote.setVotableCount(
null == votableCountMap ? NumConstant.ZERO
: null == votableCountMap.get(k) ? NumConstant.ZERO : votableCountMap.get(k)
);
}
}
}
for(Map.Entry<String,List<IssueDTO>> entry : gridIssueMap.entrySet()){
String k = entry.getKey();
List<IssueDTO> v = entry.getValue();
}
//TODO 批量插入
}
@ -347,29 +381,9 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
Map<String,List<IssueDTO>> gridIssueMap =
issues.stream().collect(Collectors.groupingBy(IssueDTO::getGridId));
setVotableCountsAndUpdateCache(listToUpdate,issues,votableCountMap);
for(Map.Entry<String,List<IssueDTO>> entry : gridIssueMap.entrySet()){
String k = entry.getKey();
List<IssueDTO> v = entry.getValue();
for(IssueDTO issue : v){
IssueVoteStatisticalDTO vote = new IssueVoteStatisticalDTO();
vote.setIssueId(issue.getId());
VoteRedisFormDTO cache = issueVoteDetailRedis.get(issue.getId());
if(null == cache)
continue;
vote.setSupportCount(cache.getSupportAmount());
vote.setOppositionCount(cache.getOppositionAmount());
vote.setVotableCount( null == votableCountMap ?
NumConstant.ZERO :
null == votableCountMap.get(k) ? NumConstant.ZERO : votableCountMap.get(k)
);
//if(cache.get)
}
}
//TODO listToUpdate批量更新
}
@ -406,4 +420,40 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
return baseDao.selectByIssueId(issueId);
}
/**
* @Description 遍历应表决数
* @param list - List<IssueVoteStatisticalDTO> | Set<IssueDTO> | Map<String,Integer>
* @return
* @author wangc
* @date 2020.05.22 11:55
**/
private void setVotableCountsAndUpdateCache(List<IssueVoteStatisticalDTO> list,
Set<IssueDTO> issues,
Map<String,Integer> votableCountMap){
Map<String,List<IssueDTO>> gridIssueMap =
issues.stream().collect(Collectors.groupingBy(IssueDTO::getGridId));
for(Map.Entry<String,List<IssueDTO>> entry : gridIssueMap.entrySet()){
String k = entry.getKey();
List<IssueDTO> v = entry.getValue();
for(IssueDTO issue : v){
IssueVoteStatisticalDTO vote = new IssueVoteStatisticalDTO();
vote.setIssueId(issue.getId());
VoteRedisFormDTO cache = issueVoteDetailRedis.get(issue.getId());
if(null == cache)
continue;
vote.setSupportCount(cache.getSupportAmount());
vote.setOppositionCount(cache.getOppositionAmount());
vote.setVotableCount( null == votableCountMap ?
NumConstant.ZERO :
null == votableCountMap.get(k) ? NumConstant.ZERO : votableCountMap.get(k)
);
list.add(vote);
if(cache.getShouldVoteCount() != vote.getVotableCount()){
issueVoteDetailRedis.hset(issue.getId(),ModuleConstants.SHOULD_VOTE_COUNT,vote.getVotableCount());
}
}
}
}
}

6
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/utils/ModuleConstants.java

@ -93,4 +93,10 @@ public interface ModuleConstants {
String CREATED_OR_UPDATED_BY_SYSTEM = "system";
/**
* 缓存中应表决数
*
*/
String SHOULD_VOTE_COUNT = "shouldVoteCount";
}

2
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupStatisticalServiceImpl.java

@ -86,7 +86,7 @@ public class ResiGroupStatisticalServiceImpl extends BaseServiceImpl<ResiGroupSt
QueryWrapper<ResiGroupStatisticalEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
wrapper.eq(StringUtils.isNotBlank((String)params.get(ModuleConstant.RESI_GROUP_ID_CAMEL)),ModuleConstant.RESI_GOUP_ID,params.get(ModuleConstant.RESI_GROUP_ID_CAMEL));
wrapper.eq(StringUtils.isNotBlank((String)params.get(ModuleConstant.RESI_GROUP_ID_CAMEL)),ModuleConstant.RESI_GROUP_ID,params.get(ModuleConstant.RESI_GROUP_ID_CAMEL));
wrapper.eq(StringUtils.isNotBlank((String)params.get(FieldConstant.DEL_FLAG_HUMP)),FieldConstant.DEL_FLAG,params.get(FieldConstant.DEL_FLAG_HUMP));
return wrapper;
}

2
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java

@ -209,7 +209,7 @@ public interface ModuleConstant extends Constant {
* */
String RESI_GROUP_ID_CAMEL = "resiGroupId";
String RESI_GOUP_ID = "RESI_GOUP_ID";
String RESI_GROUP_ID = "RESI_GROUP_ID";
/**
* APP 居民端

Loading…
Cancel
Save