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

Commit e8ee46e4 authored by anjiabin's avatar anjiabin

提交chime社交相关

parent 3794d2d6
......@@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.adam.dto.rsc.AdamChimeUinfoDto;
import com.liquidnet.service.adam.dto.rsc.AdamChimeUinfoReq;
......@@ -15,6 +16,7 @@ import com.liquidnet.service.chime.dto.PerformanceDto;
import com.liquidnet.service.chime.utils.DataUtils;
import com.liquidnet.service.chime.utils.ObjectUtil;
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.feign.adam.api.FeignAdamBaseClient;
import com.liquidnet.service.feign.kylin.api.FeignKylinForChimeClient;
......@@ -22,6 +24,11 @@ import com.liquidnet.service.kylin.constant.KylinPerformanceStatusEnum;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinPerformanceVo;
import lombok.extern.slf4j.Slf4j;
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 java.util.ArrayList;
......@@ -52,6 +59,9 @@ public class ChimeUserBiz {
@Autowired
private FeignAdamBaseClient feignAdamBaseClient;
@Autowired
private MongoTemplate mongoTemplate;
/**
* Json转换list
* @param tags
......@@ -276,4 +286,42 @@ public class ChimeUserBiz {
}
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;
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.constant.ChimeConstant;
import com.liquidnet.service.chime.dto.ChimeJoinUserCountDto;
......@@ -23,7 +21,6 @@ import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Component
......@@ -108,20 +105,35 @@ public class DataUtils {
* @return
*/
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(
// 挑选所需的字段,类似select *,*所代表的字段内容
Aggregation.project("joinPerformanceId","userId"),
Aggregation.project("joinPerformanceId"),
// 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.project("joinPerformanceId","totalCount")
);
AggregationResults<Document> results = mongoTemplate.aggregate(agg, ChimeUserInfoVo.class.getSimpleName(), Document.class);
......@@ -133,12 +145,8 @@ public class DataUtils {
ChimeJoinUserCountDto dto = ChimeJoinUserCountDto.getNew();
dto.setPerformancesId(document.getString("joinPerformanceId"));
dto.setCount(document.getInteger("totalCount"));
List<String> ppl2 = document.getList("userIdArray",String.class);
//根据userId获取用户头像
List<AdamChimeUinfoDto> adamChimeUinfoDtoList = chimeUserBiz.getAdamUserInfoDtoList(ppl2);
if(StringUtil.isNotNull(adamChimeUinfoDtoList)){
dto.setAvatarImgList(adamChimeUinfoDtoList.stream().map(AdamChimeUinfoDto::getAvatar).collect(Collectors.toList()));
}
// List<String> ppl2 = document.getList("userIdArray",String.class);
dto.setAvatarImgList(chimeUserBiz.getAvatarImgList(dto.getPerformancesId()));
joinUserCountDtoList.add(dto);
});
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