package com.fdkankan.ucenter.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fdkankan.common.constant.TbStatus;
import com.fdkankan.common.response.PageInfo;
import com.fdkankan.ucenter.entity.DownloadOrder;
import com.fdkankan.ucenter.entity.Invoice;
import com.fdkankan.ucenter.entity.User;
import com.fdkankan.ucenter.mapper.IDownloadOrderMapper;
import com.fdkankan.ucenter.service.IDownloadOrderService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.ucenter.service.IInvoiceService;
import com.fdkankan.ucenter.service.IUserService;
import com.fdkankan.ucenter.vo.request.IncrementOrderParam;
import com.fdkankan.ucenter.vo.response.DownloadVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
*
* 下载次数订单表 服务实现类
*
*
* @author
* @since 2022-07-13
*/
@Service
public class DownloadOrderServiceImpl extends ServiceImpl implements IDownloadOrderService {
@Autowired
IUserService userService;
@Autowired
IInvoiceService invoiceService;
@Override
public PageInfo pageList(IncrementOrderParam param) {
User user = userService.getByUserName(param.getUserName());
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DownloadOrder::getUserId,user.getId());
wrapper.orderByDesc(DownloadOrder::getTradeTime);
Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
List listVo = new ArrayList<>();
for (DownloadOrder record : page.getRecords()) {
DownloadVo vo = new DownloadVo();
BeanUtils.copyProperties(record,vo);
Invoice invoice = invoiceService.getByDownId(record.getId());
vo.setInvoice(invoice);
listVo.add(vo);
}
Page pageVo = new Page<>(param.getPageNum(),param.getPageSize());
pageVo.setTotal(page.getTotal());
pageVo.setRecords(listVo);
return PageInfo.PageInfo(pageVo);
}
@Override
public DownloadOrder getByOrderSn(String orderSn) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(DownloadOrder::getOrderSn,orderSn);
List list = this.list(queryWrapper);
if(list == null || list.size() <=0){
return null;
}
return list.get(0);
}
@Override
public boolean paySuccessDownloadOrder(String orderSn, String tradeNo, int paymentTypeName) {
LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(DownloadOrder::getPayType,paymentTypeName)
.set(DownloadOrder::getNumber,tradeNo)
.set(DownloadOrder::getPayStatus,1)
.set(DownloadOrder::getTradeTime,new Date())
.eq(DownloadOrder::getOrderSn,orderSn);
return this.update(updateWrapper);
}
}