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

Commit 83d1b1ed authored by anjiabin's avatar anjiabin

提交chime社交相关

parent 109261ff
......@@ -18,6 +18,10 @@ import javax.validation.constraints.NotNull;
public class ChimeUserListQueryReqDto {
@ApiModelProperty(value = "演出ID", example = "")
private String performanceId;
@ApiModelProperty(value = "性别", example = "")
private String sex;
@ApiModelProperty(value = "兴趣标签", example = "")
private String tags;
@ApiModelProperty(value = "每页记录数", example = "20")
@NotNull(message = "每页记录数不能为空")
......@@ -29,6 +33,7 @@ public class ChimeUserListQueryReqDto {
@ApiModelProperty(value = "排序字段", hidden = true)
private String orderItem;
@ApiModelProperty(value = "排序方式", hidden = true)
private String orderSc;
......
......@@ -16,12 +16,13 @@ import lombok.Data;
@ApiModel(value = "ChimeUserTagsMappingVo", description = "社交用户标签映射表")
@Data
public class ChimeUserTagsMappingVo {
private Integer mid;
private static final long serialVersionUID = 5325511589667456214L;
@ApiModelProperty(position = 0, value = "用户ID[64]")
private String userId;
@ApiModelProperty(position = 1, value = "标签")
private String tag;
@ApiModelProperty(position = 1, value = "标签code")
private String tagCode;
@ApiModelProperty(position = 2, value = "标签描述")
private String tagDesc;
private static final ChimeUserTagsMappingVo obj = new ChimeUserTagsMappingVo();
public static ChimeUserTagsMappingVo getNew() {
......
......@@ -111,6 +111,8 @@ public class ChimePerformanceController {
reqDto.setPageSize(pageSize);
reqDto.setOrderItem(orderBy);
reqDto.setOrderSc(sort);
reqDto.setSex(sex);
reqDto.setTags(tags);
// PageInfo<ChimeUserInfoDto> pageInfo = chimePerformanceService.getUserListByCon(reqDto);
PagedResult<ChimeUserInfoDto> pageInfo = chimePerformanceService.getUserListByCon(reqDto);
return ResponseDto.success(pageInfo);
......
package com.liquidnet.service.chime.service.impl;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.StringUtil;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.chime.dto.ChimeUserInfoDto;
import com.liquidnet.service.chime.dto.ChimeUserListQueryReqDto;
......@@ -13,11 +14,15 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.LookupOperation;
import org.springframework.data.mongodb.core.aggregation.ProjectionOperation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
......@@ -35,6 +40,11 @@ public class ChimePerformanceServiceImpl implements IChimePerformanceService{
@Autowired
private MongoTemplate mongoTemplate;
/**
* 用户关联查询
* @param reqDto
* @return
*/
@Override
public PagedResult<ChimeUserInfoDto> getUserListByCon(ChimeUserListQueryReqDto reqDto) {
PagedResult<ChimeUserInfoDto> pagedResult = ObjectUtil.getChimeUserInfoDtoPagedResult();
......@@ -48,15 +58,28 @@ public class ChimePerformanceServiceImpl implements IChimePerformanceService{
Pageable pageable = PageRequest.of(pageNum, pageSize, Sort.by(Sort.Direction.DESC, "userId"));
//条件
Criteria criteria = Criteria.where("joinPerformanceId").is(reqDto.getPerformanceId());
//关联表
LookupOperation lookupToLots = LookupOperation.newLookup().
from("ChimeUserTagsMappingVo").//关联表名 lots
localField("userId").//关联字段
foreignField("userId").//主表关联字段对应的次表字段
as("userTag");//查询结果集合名
if(StringUtil.isNotEmpty(reqDto.getTags())){
criteria = criteria.and("userTag.tagCode").in(Arrays.asList(reqDto.getTags().split(",")));
}
AggregationOperation matchToLots = Aggregation.match(criteria);
ProjectionOperation project = Aggregation.project("mid","userId","sex","avatar","joinPerformanceId");
// if (!reqDto.getPerformanceId().isEmpty()) {
// criteria.and("title").regex(".*?\\" + reqDto.getTitle());
// }
Query query = Query.query(criteria);
// 查询总数
long count = mongoTemplate.count(query, ChimeUserInfoVo.class, ChimeUserInfoVo.class.getSimpleName());
project.andInclude("_id");
Aggregation newAggregation = Aggregation.newAggregation(lookupToLots,matchToLots,project);
query.with(pageable);
List<ChimeUserInfoVo> chimeUserInfoVoList = mongoTemplate.find(query, ChimeUserInfoVo.class, ChimeUserInfoVo.class.getSimpleName());
List<ChimeUserInfoVo> chimeUserInfoVoList = mongoTemplate.aggregate(newAggregation,ChimeUserInfoVo.class.getSimpleName(),ChimeUserInfoVo.class).getMappedResults();
// 查询总数
long count = chimeUserInfoVoList.size();
//处理Vo
List<ChimeUserInfoDto> dtoList = new ArrayList<>();
for (ChimeUserInfoVo item : chimeUserInfoVoList) {
......@@ -71,4 +94,40 @@ public class ChimePerformanceServiceImpl implements IChimePerformanceService{
}
return pagedResult;
}
// @Override
// public PagedResult<ChimeUserInfoDto> getUserListByCon(ChimeUserListQueryReqDto reqDto) {
// PagedResult<ChimeUserInfoDto> pagedResult = ObjectUtil.getChimeUserInfoDtoPagedResult();
// try {
// int pageNum = reqDto.getPageNum() - 1;
// int pageSize = reqDto.getPageSize();
// //初始化分页
// pagedResult.setPageSize(pageSize).setCurrentPage(pageNum+1);
//
// // 排序 分页
// Pageable pageable = PageRequest.of(pageNum, pageSize, Sort.by(Sort.Direction.DESC, "userId"));
// //条件
// Criteria criteria = Criteria.where("joinPerformanceId").is(reqDto.getPerformanceId());
//// if (!reqDto.getPerformanceId().isEmpty()) {
//// criteria.and("title").regex(".*?\\" + reqDto.getTitle());
//// }
// Query query = Query.query(criteria);
// // 查询总数
// long count = mongoTemplate.count(query, ChimeUserInfoVo.class, ChimeUserInfoVo.class.getSimpleName());
//
// query.with(pageable);
// List<ChimeUserInfoVo> chimeUserInfoVoList = mongoTemplate.find(query, ChimeUserInfoVo.class, ChimeUserInfoVo.class.getSimpleName());
// //处理Vo
// List<ChimeUserInfoDto> dtoList = new ArrayList<>();
// for (ChimeUserInfoVo item : chimeUserInfoVoList) {
// ChimeUserInfoDto voData = ChimeUserInfoDto.getNew();
// BeanUtil.copy(item,voData);
// voData.setUserTags(null);
// dtoList.add(voData);
// }
// pagedResult.setList(dtoList).setTotal(count, pageSize);
// } catch (Exception e) {
// e.printStackTrace();
// }
// return pagedResult;
// }
}
......@@ -13,10 +13,15 @@ import com.liquidnet.service.chime.dto.ChimeUserRegisterReqDto;
import com.liquidnet.service.chime.service.IChimeUserService;
import com.liquidnet.service.chime.utils.DataUtils;
import com.liquidnet.service.chime.vo.mongo.ChimeUserInfoVo;
import com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
......@@ -83,6 +88,20 @@ public class ChimeUserServiceImpl implements IChimeUserService {
//插入mongo
dataUtils.createChimeUser(chimeUserInfoVo);
//插入userTagMapping
List<ChimeUserTagsMappingVo> userTagList = new ArrayList<>();
if(StringUtil.isNotEmpty(reqDto.getTags())){
List<String> list = Arrays.asList(reqDto.getTags().split(","));
for(String tagCode:list){
ChimeUserTagsMappingVo tempvo = ChimeUserTagsMappingVo.getNew();
tempvo.setUserId(reqDto.getUserId());
tempvo.setTagCode(tagCode);
tempvo.setTagDesc("描述"+tagCode);
userTagList.add(tempvo);
}
}
dataUtils.createUserTagMapping(userTagList);
return null;
}
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.chime.utils;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.chime.vo.mongo.ChimeUserInfoVo;
import com.liquidnet.service.chime.vo.mongo.ChimeUserTagsMappingVo;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketEntitiesVo;
import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
......@@ -41,6 +42,10 @@ public class DataUtils {
log.info("updateChimeUser result:{}",result.toString());
}
public void createUserTagMapping(List<ChimeUserTagsMappingVo> chimeUserTagsMappingVoList){
mongoTemplate.insert(chimeUserTagsMappingVoList,ChimeUserTagsMappingVo.class.getSimpleName());
}
/**
* 根据订单id 获取 订单vo 详情
*
......
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