|
@ -42,6 +42,7 @@ import com.epmet.dto.form.*; |
|
|
import com.epmet.dto.result.CommonDataFilterResultDTO; |
|
|
import com.epmet.dto.result.CommonDataFilterResultDTO; |
|
|
import com.epmet.dto.result.IssueInitiatorResultDTO; |
|
|
import com.epmet.dto.result.IssueInitiatorResultDTO; |
|
|
import com.epmet.dto.result.UserResiInfoResultDTO; |
|
|
import com.epmet.dto.result.UserResiInfoResultDTO; |
|
|
|
|
|
import com.epmet.feign.EpmetUserOpenFeignClient; |
|
|
import com.epmet.modules.constant.GroupMemberConstant; |
|
|
import com.epmet.modules.constant.GroupMemberConstant; |
|
|
import com.epmet.modules.constant.ResiGroupRedisKeys; |
|
|
import com.epmet.modules.constant.ResiGroupRedisKeys; |
|
|
import com.epmet.modules.feign.EpmetUserFeignClient; |
|
|
import com.epmet.modules.feign.EpmetUserFeignClient; |
|
@ -88,6 +89,7 @@ import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.stereotype.Service; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
import org.springframework.util.CollectionUtils; |
|
|
|
|
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
import java.text.SimpleDateFormat; |
|
|
import java.util.*; |
|
|
import java.util.*; |
|
@ -142,6 +144,9 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi |
|
|
@Autowired |
|
|
@Autowired |
|
|
private GovIssueFeignClient govIssueFeignClient; |
|
|
private GovIssueFeignClient govIssueFeignClient; |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
|
private EpmetUserOpenFeignClient userOpenFeignClient; |
|
|
|
|
|
|
|
|
@Value("${openapi.scan.server.url}") |
|
|
@Value("${openapi.scan.server.url}") |
|
|
private String scanApiUrl; |
|
|
private String scanApiUrl; |
|
|
@Value("${openapi.scan.method.textSyncScan}") |
|
|
@Value("${openapi.scan.method.textSyncScan}") |
|
@ -386,7 +391,38 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi |
|
|
|
|
|
|
|
|
//2. 在缓存中拉取用户信息
|
|
|
//2. 在缓存中拉取用户信息
|
|
|
setCacheUserInfoWithIssue(topicPageFormDTO.getGroupId(), pastTopics); |
|
|
setCacheUserInfoWithIssue(topicPageFormDTO.getGroupId(), pastTopics); |
|
|
|
|
|
|
|
|
|
|
|
//3.用户徽章
|
|
|
|
|
|
//3.1首先需要拿到客户Id
|
|
|
|
|
|
ResiGroupEntity group = resiGroupDao.selectById(topicPageFormDTO.getGroupId()); |
|
|
|
|
|
if(null != group && StringUtils.isNotBlank(group.getCustomerId())){ |
|
|
|
|
|
Result<Map<String, List<UserBadgeUnitFormDTO>>> badgeR |
|
|
|
|
|
= userOpenFeignClient.userShowBadge( |
|
|
|
|
|
new UserGroupFormDTO(group.getCustomerId(), |
|
|
|
|
|
pastTopics.stream() |
|
|
|
|
|
.filter(top -> StringUtils.equals("other",top.getReleaseUserFlag())) |
|
|
|
|
|
.map(ResiTopicIncludeIssueInfoResultDTO::getUserId) |
|
|
|
|
|
.distinct().collect(Collectors.toList()))); |
|
|
|
|
|
if(null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()){ |
|
|
|
|
|
Map<String, List<UserBadgeUnitFormDTO>> badgeM = badgeR.getData(); |
|
|
|
|
|
pastTopics.forEach(top -> { |
|
|
|
|
|
if(StringUtils.equals("other",top.getReleaseUserFlag())){ |
|
|
|
|
|
top.setBadgeList( |
|
|
|
|
|
CollectionUtils.isEmpty(badgeM.get(top.getUserId())) ? |
|
|
|
|
|
Collections.EMPTY_LIST : |
|
|
|
|
|
badgeM.get(top.getUserId()).stream().map(UserBadgeUnitFormDTO :: getBadgeIcon).collect(Collectors.toList()) |
|
|
|
|
|
); |
|
|
|
|
|
}else top.setBadgeList(Collections.EMPTY_LIST); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
}else pastTopics.forEach(top -> top.setBadgeList(Collections.EMPTY_LIST)); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new Result<List<ResiTopicIncludeIssueInfoResultDTO>>().ok(pastTopics); |
|
|
return new Result<List<ResiTopicIncludeIssueInfoResultDTO>>().ok(pastTopics); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -616,6 +652,18 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
resultDTO.setCloseDetail(closeDetail); |
|
|
resultDTO.setCloseDetail(closeDetail); |
|
|
|
|
|
|
|
|
|
|
|
//4.获取用户徽章的信息
|
|
|
|
|
|
List<String> userId = new LinkedList<>();userId.add(topicDetail.getCreatedBy()); |
|
|
|
|
|
Result<Map<String, List<UserBadgeUnitFormDTO>>> badgeR |
|
|
|
|
|
= userOpenFeignClient.userShowBadge(new UserGroupFormDTO(group.getCustomerId(), userId)); |
|
|
|
|
|
if(null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()){ |
|
|
|
|
|
resultDTO.setBadgeList( |
|
|
|
|
|
CollectionUtils.isEmpty(badgeR.getData().get(topicDetail.getCreatedBy())) ? |
|
|
|
|
|
Collections.EMPTY_LIST: |
|
|
|
|
|
badgeR.getData().get(topicDetail.getCreatedBy()).stream().map(UserBadgeUnitFormDTO :: getBadgeIcon).collect(Collectors.toList()) |
|
|
|
|
|
); |
|
|
|
|
|
}else resultDTO.setBadgeList(Collections.EMPTY_LIST); |
|
|
return new Result<ResiTopicIncludeIssueDetailResultDTO>().ok(resultDTO); |
|
|
return new Result<ResiTopicIncludeIssueDetailResultDTO>().ok(resultDTO); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -641,6 +689,36 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi |
|
|
//2.遍历用户信息
|
|
|
//2.遍历用户信息
|
|
|
if (null != hiddenTopics && hiddenTopics.size() > 0) { |
|
|
if (null != hiddenTopics && hiddenTopics.size() > 0) { |
|
|
setCacheUserInfo(topicPageFormDTO.getGroupId(), hiddenTopics); |
|
|
setCacheUserInfo(topicPageFormDTO.getGroupId(), hiddenTopics); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//3.用户徽章
|
|
|
|
|
|
//3.1首先需要拿到客户Id
|
|
|
|
|
|
ResiGroupEntity group = resiGroupDao.selectById(topicPageFormDTO.getGroupId()); |
|
|
|
|
|
if(null != group && StringUtils.isNotBlank(group.getCustomerId())){ |
|
|
|
|
|
Result<Map<String, List<UserBadgeUnitFormDTO>>> badgeR |
|
|
|
|
|
= userOpenFeignClient.userShowBadge( |
|
|
|
|
|
new UserGroupFormDTO(group.getCustomerId(), |
|
|
|
|
|
hiddenTopics.stream() |
|
|
|
|
|
.filter(top -> StringUtils.equals("other",top.getReleaseUserFlag())) |
|
|
|
|
|
.map(ResiTopicInfoResultDTO::getUserId) |
|
|
|
|
|
.distinct().collect(Collectors.toList()))); |
|
|
|
|
|
if(null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()){ |
|
|
|
|
|
Map<String, List<UserBadgeUnitFormDTO>> badgeM = badgeR.getData(); |
|
|
|
|
|
hiddenTopics.forEach(top -> { |
|
|
|
|
|
if(StringUtils.equals("other",top.getReleaseUserFlag())){ |
|
|
|
|
|
top.setBadgeList( |
|
|
|
|
|
CollectionUtils.isEmpty(badgeM.get(top.getUserId())) ? |
|
|
|
|
|
Collections.EMPTY_LIST : |
|
|
|
|
|
badgeM.get(top.getUserId()).stream().map(UserBadgeUnitFormDTO :: getBadgeIcon).collect(Collectors.toList()) |
|
|
|
|
|
); |
|
|
|
|
|
}else top.setBadgeList(Collections.EMPTY_LIST); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
}else hiddenTopics.forEach(top -> top.setBadgeList(Collections.EMPTY_LIST)); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
return new Result<List<ResiTopicInfoResultDTO>>().ok(hiddenTopics); |
|
|
return new Result<List<ResiTopicInfoResultDTO>>().ok(hiddenTopics); |
|
@ -791,6 +869,30 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi |
|
|
|
|
|
|
|
|
//2. 在缓存中拉取用户信息
|
|
|
//2. 在缓存中拉取用户信息
|
|
|
setCacheUserInfo(topicPageFormDTO.getGroupId(), pastTopics); |
|
|
setCacheUserInfo(topicPageFormDTO.getGroupId(), pastTopics); |
|
|
|
|
|
|
|
|
|
|
|
//3.用户徽章
|
|
|
|
|
|
//3.1首先需要拿到客户Id
|
|
|
|
|
|
ResiGroupEntity group = resiGroupDao.selectById(topicPageFormDTO.getGroupId()); |
|
|
|
|
|
if (null != group && StringUtils.isNotBlank(group.getCustomerId())) { |
|
|
|
|
|
Result<Map<String, List<UserBadgeUnitFormDTO>>> badgeR |
|
|
|
|
|
= userOpenFeignClient.userShowBadge( |
|
|
|
|
|
new UserGroupFormDTO(group.getCustomerId(), |
|
|
|
|
|
pastTopics.stream() |
|
|
|
|
|
.map(ResiTopicInfoResultDTO::getUserId) |
|
|
|
|
|
.distinct().collect(Collectors.toList()))); |
|
|
|
|
|
if (null != badgeR && badgeR.success() && null != badgeR.getData() && !badgeR.getData().isEmpty()) { |
|
|
|
|
|
Map<String, List<UserBadgeUnitFormDTO>> badgeM = badgeR.getData(); |
|
|
|
|
|
pastTopics.forEach(top -> { |
|
|
|
|
|
top.setBadgeList( |
|
|
|
|
|
CollectionUtils.isEmpty(badgeM.get(top.getUserId())) ? |
|
|
|
|
|
Collections.EMPTY_LIST : |
|
|
|
|
|
badgeM.get(top.getUserId()).stream().map(UserBadgeUnitFormDTO::getBadgeIcon).collect(Collectors.toList()) |
|
|
|
|
|
); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
} else pastTopics.forEach(top -> top.setBadgeList(Collections.EMPTY_LIST)); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
return new Result<List<ResiTopicInfoResultDTO>>().ok(pastTopics); |
|
|
return new Result<List<ResiTopicInfoResultDTO>>().ok(pastTopics); |
|
|
|
|
|
|
|
@ -864,11 +966,13 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi |
|
|
|
|
|
|
|
|
if (result.success() && null != result.getData() && result.getData().size() > 0) { |
|
|
if (result.success() && null != result.getData() && result.getData().size() > 0) { |
|
|
for (UserResiInfoResultDTO user : result.getData()) { |
|
|
for (UserResiInfoResultDTO user : result.getData()) { |
|
|
ResiTopicInfoResultDTO topic = |
|
|
|
|
|
topicMap.get(user.getUserId()).get(0); |
|
|
|
|
|
topic.setReleaseUserHeadPhoto(user.getHeadPhoto()); |
|
|
|
|
|
topic.setReleaseUserName(user.getShowName()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(!CollectionUtils.isEmpty(topicMap.get(user.getUserId()))){ |
|
|
|
|
|
topicMap.get(user.getUserId()).forEach( topic -> { |
|
|
|
|
|
topic.setReleaseUserHeadPhoto(user.getHeadPhoto()); |
|
|
|
|
|
topic.setReleaseUserName(user.getShowName()); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
//存入缓存
|
|
|
//存入缓存
|
|
|
ResiGroupMemberInfoRedisDTO memberRedisDTO = new ResiGroupMemberInfoRedisDTO(); |
|
|
ResiGroupMemberInfoRedisDTO memberRedisDTO = new ResiGroupMemberInfoRedisDTO(); |
|
|
ResiGroupMemberDTO memberMySql = resiGroupMemberDao.selectGroupMemberInfo(groupId, user.getUserId()); |
|
|
ResiGroupMemberDTO memberMySql = resiGroupMemberDao.selectGroupMemberInfo(groupId, user.getUserId()); |
|
@ -936,10 +1040,12 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi |
|
|
|
|
|
|
|
|
if (result.success() && null != result.getData() && result.getData().size() > 0) { |
|
|
if (result.success() && null != result.getData() && result.getData().size() > 0) { |
|
|
for (UserResiInfoResultDTO user : result.getData()) { |
|
|
for (UserResiInfoResultDTO user : result.getData()) { |
|
|
ResiTopicIncludeIssueInfoResultDTO topic = |
|
|
if(!CollectionUtils.isEmpty(topicMap.get(user.getUserId()))){ |
|
|
topicMap.get(user.getUserId()).get(0); |
|
|
topicMap.get(user.getUserId()).forEach( topic -> { |
|
|
topic.setReleaseUserHeadPhoto(user.getHeadPhoto()); |
|
|
topic.setReleaseUserHeadPhoto(user.getHeadPhoto()); |
|
|
topic.setReleaseUserName(user.getShowName()); |
|
|
topic.setReleaseUserName(user.getShowName()); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
//存入缓存
|
|
|
//存入缓存
|
|
|
ResiGroupMemberInfoRedisDTO memberRedisDTO = new ResiGroupMemberInfoRedisDTO(); |
|
|
ResiGroupMemberInfoRedisDTO memberRedisDTO = new ResiGroupMemberInfoRedisDTO(); |
|
|