//pageVo 存放分页数据
@Data
@ApiModel("自定义分页")
public class ResultPage {
@ApiModelProperty(value = "数据集合")
private List<?> list;
@ApiModelProperty(value = "当前页")
private Integer current;
@ApiModelProperty(value = "总条数")
private Integer total;
@ApiModelProperty(value = "每页条数")
private Integer size;
@ApiModelProperty(value = "总页数")
private Integer pages;
}
public Result<?>buyerWindowList(@RequestParam(name = "pageNo",defaultValue = "1")Integer pageNo,
@RequestParam(name = "pageSize",defaultValue = "10")Integer pageSize){
//此处建了一个pageVo用来存放分页数据
ResultPage page = new ResultPage();
LoginUser user = LoginUserUtil.get();
QueryWrapper<OutOrder> wrapper = new QueryWrapper<>();
wrapper.lambda().eq(OutOrder::getUserId,user.getId());
wrapper.lambda().eq(OutOrder::getCategory, OrderCategoryEnum.OUT_DISPLAY_WINDOW.getCategory());
List<OutOrder> list = orderService.list(wrapper);
// startPosition 是计算的取值开始位置
int startPosition = (pageNo-1)*pageSize;
// list.stream().skip(Y) 此方法是指从第Y位开始取值 .limit(X) 并取前X个值
Stream<OutOrder> stream = list.stream().skip(startPosition).limit(pageSize);
// stream.collect(Collectors.toList()) 返回一个list
List<OutOrder> collect = stream.collect(Collectors.toList());
BuyerWindowListVo vo = new BuyerWindowListVo();
ArrayList<BuyerWindowListVo> listVos = new ArrayList<>();
for (OutOrder outOrder : collect) {
//获取任务版本最终版
QueryWrapper<OutRequirementTaskVersion> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(OutRequirementTaskVersion::getTaskId,outOrder.getTaskId());
queryWrapper.lambda().eq(OutRequirementTaskVersion::getUserId,outOrder.getUserId());
queryWrapper.lambda().orderByDesc(OutRequirementTaskVersion::getVersionNumber);
queryWrapper.lambda().last("limit 0,1");
OutRequirementTaskVersion one = taskVersionService.getOne(queryWrapper);
OutDisplayWindow window = outDisplayWindowService.getById(outOrder.getTaskId());
vo.setTitle(window.getTitle());
vo.setId(window.getId());
vo.setCreateTime(outOrder.getCreateTime());
vo.setGoodsPrice(outOrder.getGoodsPrice());
if (one!=null){
vo.setAudit(one.getAudit());
}else {
vo.setAudit(OutDateEnum.PLANING_TASK_AUDIT_ING.getCode());
}
//截稿时间的计算,先获取开始时间
Date date = outOrder.getCreateTime();
//获取交稿所需时间
Integer submissionTime = window.getSubmissionTime();
//计算
Date date1 = DateUtil.addDay(date, submissionTime);
String endTime = DateUtil.format(date1, "yyyy-MM-dd");
vo.setEndTime(endTime);
listVos.add(vo);
}
page.setCurrent(pageNo);
page.setSize(pageSize);
page.setTotal(list.size());
page.setList(listVos);
Double ceil = Math.ceil((float) list.size() / pageSize);
Integer pages = ceil.intValue();
page.setPages(pages);
return Result.OK(page);
}