package com.fdkankan.sale.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fdkankan.common.constant.PayStatus;
import com.fdkankan.sale.entity.RepairPay;
import com.fdkankan.sale.mapper.IRepairPayMapper;
import com.fdkankan.sale.service.IRepairPayService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.sale.util.DateUtil;
import com.fdkankan.sale.vo.request.RepairPayParam;
import com.fdkankan.sale.vo.response.RepairPayVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author
* @since 2023-02-16
*/
@Service
public class RepairPayServiceImpl extends ServiceImpl implements IRepairPayService {
@Override
public RepairPay getByRepairId(String repairId,Integer payStatus) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(RepairPay::getRepairId,repairId);
wrapper.eq(RepairPay::getPayStatus,payStatus);
return this.getOne(wrapper);
}
@Override
public RepairPay getByOrderSn(String out_trade_no) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(RepairPay::getOrderSn,out_trade_no);
return this.getOne(wrapper);
}
@Override
public void updatePayStatus(String out_trade_no, String trade_no, String openid) {
LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(RepairPay::getOrderSn,out_trade_no);
wrapper.set(RepairPay::getWxPayOpenId,openid);
wrapper.set(RepairPay::getTradeNo,trade_no);
wrapper.set(RepairPay::getPayStatus,1);
wrapper.set(RepairPay::getPayTime, DateUtil.getDate());
this.update(wrapper);
}
@Override
public Page pageList(RepairPayParam param) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
if(StringUtils.isNotBlank(param.getRepairId())){
wrapper.like(RepairPay::getRepairId,param.getRepairId());
}
if(StringUtils.isNotBlank(param.getTradeNo())){
wrapper.like(RepairPay::getTradeNo,param.getTradeNo());
}
if(StringUtils.isNotBlank(param.getStartTime())){
wrapper.between(RepairPay:: getPayTime,param.getStartTime(),param.getEndTime());
}
wrapper.eq(RepairPay::getPayStatus,1);
wrapper.orderByDesc(RepairPay::getCreateTime);
Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
List listVo = new ArrayList<>();
for (RepairPay record : page.getRecords()) {
RepairPayVo vo = new RepairPayVo();
BeanUtils.copyProperties(record,vo);
listVo.add(vo);
}
Page pageVo = new Page<>(param.getPageNum(), param.getPageSize());
pageVo.setTotal(page.getTotal());
pageVo.setRecords(listVo);
return pageVo;
}
}