记得上下班打卡 | git大法好,push需谨慎

Commit e8ee46e4 authored by anjiabin's avatar anjiabin

提交chime社交相关

parent 3794d2d6
...@@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; ...@@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.liquidnet.commons.lang.util.BeanUtil; import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.StringUtil; import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.adam.dto.rsc.AdamChimeUinfoDto; import com.liquidnet.service.adam.dto.rsc.AdamChimeUinfoDto;
import com.liquidnet.service.adam.dto.rsc.AdamChimeUinfoReq; import com.liquidnet.service.adam.dto.rsc.AdamChimeUinfoReq;
...@@ -15,6 +16,7 @@ import com.liquidnet.service.chime.dto.PerformanceDto; ...@@ -15,6 +16,7 @@ import com.liquidnet.service.chime.dto.PerformanceDto;
import com.liquidnet.service.chime.utils.DataUtils; import com.liquidnet.service.chime.utils.DataUtils;
import com.liquidnet.service.chime.utils.ObjectUtil; import com.liquidnet.service.chime.utils.ObjectUtil;
import com.liquidnet.service.chime.utils.RedisDataUtil; import com.liquidnet.service.chime.utils.RedisDataUtil;
import com.liquidnet.service.chime.vo.mongo.ChimeUserInfoVo;
import com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo; import com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo;
import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient; import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient;
import com.liquidnet.service.feign.kylin.api.FeignKylinForChimeClient; import com.liquidnet.service.feign.kylin.api.FeignKylinForChimeClient;
...@@ -22,6 +24,11 @@ import com.liquidnet.service.kylin.constant.KylinPerformanceStatusEnum; ...@@ -22,6 +24,11 @@ import com.liquidnet.service.kylin.constant.KylinPerformanceStatusEnum;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo; import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -52,6 +59,9 @@ public class ChimeUserBiz { ...@@ -52,6 +59,9 @@ public class ChimeUserBiz {
@Autowired @Autowired
private FeignAdamBaseClient feignAdamBaseClient; private FeignAdamBaseClient feignAdamBaseClient;
@Autowired
private MongoTemplate mongoTemplate;
/** /**
* Json转换list * Json转换list
* @param tags * @param tags
...@@ -276,4 +286,42 @@ public class ChimeUserBiz { ...@@ -276,4 +286,42 @@ public class ChimeUserBiz {
} }
return userTagDtoList; return userTagDtoList;
} }
/**
* 根据演出id获取用户信息
* @param performanceId
* @return
*/
public List<String> getAvatarImgList(String performanceId){
//根据演出id获取用户信息 只查询5条
List<String> userIdList = new ArrayList<>();
//获取总数
Criteria criteria = Criteria.where("joinPerformanceId").is(performanceId);
//过滤本人 获取当前用户id
String userId = CurrentUtil.getCurrentUid();
if(StringUtil.isNotEmpty(userId)){
criteria = criteria.and("userId").ne(userId);
}
// 每页五个
Pageable pageable = PageRequest.of(0, 5);
Query query = Query.query(criteria);
query.with(pageable);
long startTime = System.currentTimeMillis();
List<ChimeUserInfoVo> chimeUserInfoVoList = mongoTemplate.find(query, ChimeUserInfoVo.class, ChimeUserInfoVo.class.getSimpleName());
long endTime = System.currentTimeMillis();
log.info("getAvatarImgList 获取演出列表头像 耗时:{}ms",endTime-startTime);
//根据用户id获取头像信息
List<String> avatarImgList = new ArrayList<>();
if(StringUtil.isNotNull(chimeUserInfoVoList)){
userIdList = chimeUserInfoVoList.stream().map(ChimeUserInfoVo::getUserId).collect(Collectors.toList());
}
List<AdamChimeUinfoDto> adamChimeUinfoDtoList = this.getAdamUserInfoDtoList(userIdList);
if(StringUtil.isNotNull(adamChimeUinfoDtoList)){
avatarImgList = adamChimeUinfoDtoList.stream().map(AdamChimeUinfoDto::getAvatar).collect(Collectors.toList());
}
return avatarImgList;
}
} }
package com.liquidnet.service.chime.utils; package com.liquidnet.service.chime.utils;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.adam.dto.rsc.AdamChimeUinfoDto;
import com.liquidnet.service.chime.biz.ChimeUserBiz; import com.liquidnet.service.chime.biz.ChimeUserBiz;
import com.liquidnet.service.chime.constant.ChimeConstant; import com.liquidnet.service.chime.constant.ChimeConstant;
import com.liquidnet.service.chime.dto.ChimeJoinUserCountDto; import com.liquidnet.service.chime.dto.ChimeJoinUserCountDto;
...@@ -23,7 +21,6 @@ import org.springframework.stereotype.Component; ...@@ -23,7 +21,6 @@ import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Slf4j @Slf4j
@Component @Component
...@@ -108,20 +105,35 @@ public class DataUtils { ...@@ -108,20 +105,35 @@ public class DataUtils {
* @return * @return
*/ */
public List<ChimeJoinUserCountDto> getJoinUserCountList(List<String> performanceIdList){ public List<ChimeJoinUserCountDto> getJoinUserCountList(List<String> performanceIdList){
// Aggregation agg = Aggregation.newAggregation(
// // 挑选所需的字段,类似select *,*所代表的字段内容
// Aggregation.project("joinPerformanceId","userId"),
// // sql where 语句筛选符合条件的记录
// Aggregation.match(Criteria.where("joinPerformanceId").in(performanceIdList)),
// // 分组条件,设置分组字段
// Aggregation.group("joinPerformanceId")
// .first("joinPerformanceId").as("joinPerformanceId")
// .addToSet("userId").as("userIdArray")
// .count().as("totalCount"),
// // 排序(根据某字段排序 倒序)
//// Aggregation.sort(Sort.Direction.DESC,"startDate"),
// // 重新挑选字段
// Aggregation.project("joinPerformanceId","totalCount","userIdArray")
// );
//以下查询不合并
Aggregation agg = Aggregation.newAggregation( Aggregation agg = Aggregation.newAggregation(
// 挑选所需的字段,类似select *,*所代表的字段内容 // 挑选所需的字段,类似select *,*所代表的字段内容
Aggregation.project("joinPerformanceId","userId"), Aggregation.project("joinPerformanceId"),
// sql where 语句筛选符合条件的记录 // sql where 语句筛选符合条件的记录
Aggregation.match(Criteria.where("joinPerformanceId").in(performanceIdList)), Aggregation.match(Criteria.where("joinPerformanceId").in(performanceIdList)),
// 分组条件,设置分组字段 // 分组条件,设置分组字段
Aggregation.group("joinPerformanceId") Aggregation.group("joinPerformanceId")
.first("joinPerformanceId").as("joinPerformanceId") .first("joinPerformanceId").as("joinPerformanceId")
.addToSet("userId").as("userIdArray")
.count().as("totalCount"), .count().as("totalCount"),
// 排序(根据某字段排序 倒序) // 排序(根据某字段排序 倒序)
// Aggregation.sort(Sort.Direction.DESC,"startDate"), // Aggregation.sort(Sort.Direction.DESC,"startDate"),
// 重新挑选字段 // 重新挑选字段
Aggregation.project("joinPerformanceId","totalCount","userIdArray") Aggregation.project("joinPerformanceId","totalCount")
); );
AggregationResults<Document> results = mongoTemplate.aggregate(agg, ChimeUserInfoVo.class.getSimpleName(), Document.class); AggregationResults<Document> results = mongoTemplate.aggregate(agg, ChimeUserInfoVo.class.getSimpleName(), Document.class);
...@@ -133,12 +145,8 @@ public class DataUtils { ...@@ -133,12 +145,8 @@ public class DataUtils {
ChimeJoinUserCountDto dto = ChimeJoinUserCountDto.getNew(); ChimeJoinUserCountDto dto = ChimeJoinUserCountDto.getNew();
dto.setPerformancesId(document.getString("joinPerformanceId")); dto.setPerformancesId(document.getString("joinPerformanceId"));
dto.setCount(document.getInteger("totalCount")); dto.setCount(document.getInteger("totalCount"));
List<String> ppl2 = document.getList("userIdArray",String.class); // List<String> ppl2 = document.getList("userIdArray",String.class);
//根据userId获取用户头像 dto.setAvatarImgList(chimeUserBiz.getAvatarImgList(dto.getPerformancesId()));
List<AdamChimeUinfoDto> adamChimeUinfoDtoList = chimeUserBiz.getAdamUserInfoDtoList(ppl2);
if(StringUtil.isNotNull(adamChimeUinfoDtoList)){
dto.setAvatarImgList(adamChimeUinfoDtoList.stream().map(AdamChimeUinfoDto::getAvatar).collect(Collectors.toList()));
}
joinUserCountDtoList.add(dto); joinUserCountDtoList.add(dto);
}); });
log.debug("排序后的code列表2:[{}]",results); log.debug("排序后的code列表2:[{}]",results);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment