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