package com.bohuikeji.delivery.backstage.service.impl;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.bohuikeji.delivery.backstage.entity.TCourier;
import com.bohuikeji.delivery.backstage.entity.TCourierExam;
import com.bohuikeji.delivery.backstage.entity.TCourierPay;
import com.bohuikeji.delivery.backstage.mapper.TCourierExamMapper;
import com.bohuikeji.delivery.backstage.service.ITCourierPayService;
import com.bohuikeji.delivery.backstage.service.ITCourierrExamService;
import com.bohuikeji.frame.module.admin.base.ServiceImplBase;
import com.bohuikeji.frame.module.admin.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.StringJoiner;


/**
 * <p>
 * 派送员信息表 服务实现类
 * </p>
 *
 * @author 10552
 * @since 2019-08-22
 */
@RequiredArgsConstructor
@Service
@Slf4j
public class TCourierExamServiceImpl extends ServiceImplBase<TCourierExamMapper, TCourierExam> implements ITCourierrExamService {
    final ITCourierPayService courierPayService;

    /**
     * 骑手退款申请审核表
     * @param tCourier
     * @return
     */
    @Override
    public TCourierExam saveEacem(TCourier tCourier) {
        List<TCourierPay> pays=courierPayService.list(new QueryWrapper<TCourierPay>().eq("player_id",tCourier.getCourierId()).eq("pay_status","已支付"));
        TCourierExam tCourierExam = new TCourierExam();
        tCourierExam.setCourierId(tCourier.getCourierId());
        tCourierExam.setCourierNumber(tCourier.getCourierNumber());
        tCourierExam.setCourierName(tCourier.getCourierName());
        tCourierExam.setCourierType(tCourier.getCourierType());
        tCourierExam.setCourierPayStatus(tCourier.getCourierPayStatus());
        tCourierExam.setCourierPhone(tCourier.getCourierPhone());
        tCourierExam.setCourierSettledMoney(tCourier.getCourierSettledMoney());
        tCourierExam.setFranId(tCourier.getFranId());
        tCourierExam.setGrade(tCourier.getGrade());
        if (pays!=null&&pays.size()>0){
            StringJoiner channelStr=new StringJoiner("<br>");
            StringJoiner channelNumStr=new StringJoiner("<br>");
            StringJoiner payNumStr=new StringJoiner("<br>");
            StringJoiner payTimeStr=new StringJoiner("<br>");
            pays.forEach(pay->{
                channelStr.add(pay.getPayChannel());
                channelNumStr.add(pay.getPayChannelNum());
                payNumStr.add(pay.getPayNum());
                payTimeStr.add(pay.getPayTime().format(StringUtils.dataTimeFormat));
            });
            tCourierExam.setPayChannel(channelStr.toString());
            tCourierExam.setPayChannelNum(channelNumStr.toString());
            tCourierExam.setPayNum(payNumStr.toString());
            tCourierExam.setPayTime(payTimeStr.toString());
        }
        save(tCourierExam);
        return tCourierExam;
    }
}
