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

Commit 979a35e3 authored by 张国柄's avatar 张国柄

想去API补充;

parent b77b468f
package com.liquidnet.service.adam.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel(value = "AdamDisposedUserVo", description = "想去的用户信息")
@Data
public class AdamDisposedUserVo implements Serializable, Cloneable {
private static final long serialVersionUID = 3222644230886542725L;
@ApiModelProperty(position = 10, value = "用户ID[64]")
private String uid;
@ApiModelProperty(position = 11, value = "用户头像[255]")
private String avatar;
@ApiModelProperty(position = 12, value = "用户昵称[32]")
private String nickname;
@ApiModelProperty(position = 13, value = "用户性别[32]")
private AdamTagVo sex;
@ApiModelProperty(position = 14, value = "内容ID[64]")
private String contentId;
@ApiModelProperty(position = 15, value = "内容类型")
private String type;
private static final AdamDisposedUserVo obj = new AdamDisposedUserVo();
public static AdamDisposedUserVo getNew() {
try {
return (AdamDisposedUserVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new AdamDisposedUserVo();
}
}
}
......@@ -6,19 +6,22 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "AdamDisposedVo", description = "想去信息")
@Data
public class AdamDisposedVo implements Serializable, Cloneable {
private static final long serialVersionUID = 3222644230886542725L;
@ApiModelProperty(position = 11, required = true, value = "内容ID[64]")
@ApiModelProperty(position = 11, value = "内容ID[64]")
private String contentId;
@ApiModelProperty(position = 12, required = true, value = "内容类型")
@ApiModelProperty(position = 12, value = "内容类型")
private String type;
@ApiModelProperty(position = 13, required = true, value = "标记时间")
@ApiModelProperty(position = 13, value = "标记时间")
private String createdAt;
@ApiModelProperty(position = 14, required = true, value = "展示信息")
@ApiModelProperty(position = 14, value = "展示信息")
private PerformanceVo contentInfo;
@ApiModelProperty(position = 15, value = "想去的用户信息列表,默认三个")
private List<AdamDisposedUserVo> userVos;
private static final AdamDisposedVo obj = new AdamDisposedVo();
......
......@@ -3,6 +3,7 @@ package com.liquidnet.service.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedUserVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedVo;
import com.liquidnet.service.adam.entity.AdamDisposed;
......@@ -25,4 +26,6 @@ public interface IAdamDisposedService extends IService<AdamDisposed> {
boolean queryState(String uid, String type, String contentId);
PageInfo<AdamDisposedVo> queryPage(String uid, String type, int pageNo, int pageSize);
PageInfo<AdamDisposedUserVo> queryDisposedUsers(String type, String contentId, int pageNo, int pageSize);
}
......@@ -4,7 +4,6 @@ import com.github.pagehelper.PageInfo;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.adam.dto.vo.AdamCollectBaseVo;
import com.liquidnet.service.adam.dto.vo.AdamDisposedBaseVo;
import com.liquidnet.service.adam.service.IAdamDisposedService;
import com.liquidnet.service.base.ResponseDto;
......@@ -82,26 +81,29 @@ public class AdamDisposedController {
// TODO: 2021/4/28 数据校验
pageNo = pageNo > 0 ? pageNo : 1;
pageSize = pageSize <= 0 || pageSize > 10 ? 5 : pageSize;
pageSize = pageSize <= 0 || pageSize > 10 ? 10 : pageSize;
return ResponseDto.success(adamDisposedService.queryPage(CurrentUtil.getCurrentUid(), type, pageNo, pageSize));
}
@ApiOperationSupport(order = 4)
@ApiOperation(value = "获取特定内容的想去用户列表 -> 返回结构待定")
@ApiOperation(value = "用户列表")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "VIDEO,TICKET,SITE,ARTIST,BAND,BRAND,STYLE,GOODS,MUSIC,SONG"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "type", value = "收藏类型", allowableValues = "TICKET"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "contentId", value = "内容ID[64]"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageNo", value = "页码", example = "1"),
@ApiImplicitParam(type = "form", required = false, dataType = "Integer", name = "pageSize", value = "页展示条数", example = "10"),
})
@PostMapping("list/user")
public ResponseDto<Object> listUser(@RequestParam String type, @RequestParam String contentId) {
// TODO: 2021/4/28 数据校验、身份认证、获取登录UID
String uid = "1";
// TODO: 2021/5/10
public ResponseDto<Object> listUser(@RequestParam String type, @RequestParam String contentId,
@RequestParam(defaultValue = "1", required = false) int pageNo,
@RequestParam(defaultValue = "10", required = false) int pageSize) {
// TODO: 2021/4/28 数据校验
pageNo = pageNo > 0 ? pageNo : 1;
pageSize = pageSize <= 0 || pageSize > 20 ? 20 : pageSize;
return ResponseDto.success();
return ResponseDto.success(adamDisposedService.queryDisposedUsers(type, contentId, pageNo, pageSize));
}
@ApiOperationSupport(order = 5)
......@@ -112,12 +114,7 @@ public class AdamDisposedController {
})
@GetMapping("state")
public ResponseDto<Object> state(@RequestParam String type, @RequestParam String contentId) {
// TODO: 2021/4/28 数据校验、身份认证、获取登录UID
String uid = "1";
// TODO: 2021/5/10
return ResponseDto.success();
// TODO: 2021/4/28 数据校验
return ResponseDto.success(adamDisposedService.queryState(CurrentUtil.getCurrentUid(), type, contentId));
}
}
......@@ -110,7 +110,7 @@ public class AdamCollectionServiceImpl extends ServiceImpl<AdamCollectionMapper,
@Override
public PageInfo<AdamCollectVo> queryPage(String uid, String type, int pageNo, int pageSize) {
Query query = Query.query(Criteria.where("uid").is(uid).and("type").is(type));
Query query = Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("state").is(1));
long count = mongoTemplate.count(query, AdamCollectBaseVo.class.getSimpleName());
......
package com.liquidnet.service.adam.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.DateUtil;
......@@ -14,11 +13,9 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.feign.kylin.api.FeignKylinPerformanceClient;
import com.liquidnet.service.kylin.dto.vo.PerformanceVo;
import com.mongodb.BasicDBObject;
import io.jsonwebtoken.lang.Collections;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
......@@ -27,8 +24,10 @@ import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.Collections;
import java.util.List;
/**
......@@ -104,39 +103,48 @@ public class AdamDisposedServiceImpl extends ServiceImpl<AdamDisposedMapper, Ada
@Override
public PageInfo<AdamDisposedVo> queryPage(String uid, String type, int pageNo, int pageSize) {
Query query = Query.query(Criteria.where("uid").is(uid).and("type").is(type));
Query query = Query.query(Criteria.where("uid").is(uid).and("type").is(type).and("state").is(1));
long count = mongoTemplate.count(query, AdamDisposedBaseVo.class.getSimpleName());
PageInfo<AdamDisposedVo> voPageInfo = null;
if (count > 0) {
Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt"));
query.with(pageable);
query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
List<AdamDisposedVo> disposedVoList = mongoTemplate.find(query, AdamDisposedVo.class, AdamDisposedBaseVo.class.getSimpleName());
if (!Collections.isEmpty(disposedVoList)) {
if (!CollectionUtils.isEmpty(disposedVoList)) {
List<PerformanceVo> performanceVoList = null;
try {
String[] contentIds = disposedVoList.stream().map(AdamDisposedVo::getContentId).toArray(a -> new String[disposedVoList.size()]);
ResponseDto<List<PerformanceVo>> performanceVoListDto = kylinPerformanceClient.performanceList(contentIds);
if (performanceVoListDto.isSuccess()) {
List<PerformanceVo> performanceVoList = performanceVoListDto.getData();
performanceVoList = performanceVoListDto.getData();
} else {
log.info("Failed:{}.API.performanceList(...) for AdamDisposedVo:{}", kylinPerformanceClient.getClass().getSimpleName(), performanceVoListDto.toJson());
}
} catch (Exception e) {
log.error("Exception:{}.API.performanceList(...) for AdamDisposedVo >> {}", kylinPerformanceClient.getClass().getSimpleName(), e.getLocalizedMessage());
}
if (!CollectionUtils.isEmpty(performanceVoList)) {
performanceVoList.forEach(pv -> {
disposedVoList.forEach(v -> {
performanceVoList.forEach(vl -> {
if (vl.getPerformancesId().equals(v.getContentId())) {
v.setContentInfo(vl);
}
if (pv.getPerformancesId().equals(v.getContentId())) v.setContentInfo(pv);
PageInfo<AdamDisposedUserVo> disposedUserVoPageInfo = this.queryDisposedUsers(type, v.getContentId(), 1, 3);
if (disposedUserVoPageInfo.getTotal() > 0) v.setUserVos(disposedUserVoPageInfo.getList());
});
});
} else {
log.info("Failed:{}.API.performanceList(...) for AdamDisposedVo:{}", kylinPerformanceClient.getClass().getSimpleName(), performanceVoListDto.toJson());
}
} catch (Exception e) {
log.error("Exception:{}.API.performanceList(...) for AdamDisposedVo", kylinPerformanceClient.getClass().getSimpleName(), e);
disposedVoList.forEach(v -> {
PageInfo<AdamDisposedUserVo> disposedUserVoPageInfo = this.queryDisposedUsers(type, v.getContentId(), 1, 3);
if (disposedUserVoPageInfo.getTotal() > 0) v.setUserVos(disposedUserVoPageInfo.getList());
});
}
}
......@@ -148,4 +156,24 @@ public class AdamDisposedServiceImpl extends ServiceImpl<AdamDisposedMapper, Ada
return voPageInfo;
}
@Override
public PageInfo<AdamDisposedUserVo> queryDisposedUsers(String type, String contentId, int pageNo, int pageSize) {
Query query = Query.query(Criteria.where("type").is(type).and("contentId").is(contentId).and("state").is(1));
long count = mongoTemplate.count(query, AdamDisposedBaseVo.class.getSimpleName());
PageInfo<AdamDisposedUserVo> voPageInfo = null;
if (count > 0) {
query.with(PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Direction.DESC, "createdAt")));
List<AdamDisposedUserVo> disposedUserVoList = mongoTemplate.find(query, AdamDisposedUserVo.class, AdamDisposedBaseVo.class.getSimpleName());
voPageInfo = PageInfo.of(disposedUserVoList);
voPageInfo.setTotal(count);
} else {
voPageInfo = new PageInfo<>();
}
return voPageInfo;
}
}
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