package com.trade.client.credit.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.trade.client.credit.service.CBizCreditApplyService;
import com.trade.common.utils.uuid.BizNoUtil;
import com.trade.service.credit.domain.BizCreditApply;
import com.trade.service.TransStruct;
import com.trade.service.credit.domain.vo.BizCreditApplyVO;
import com.trade.service.credit.mapper.BizCreditApplyMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * <p>
 * 授信申请信息记录 服务实现类
 * </p>
 *
 * @author zhangchenm
 * @since 2024-06-05
 */
@Service
public class CBizCreditApplyServiceImpl extends ServiceImpl<BizCreditApplyMapper, BizCreditApply> implements CBizCreditApplyService {

    @Resource
    private TransStruct transStruct;

    @Override
    public Long tempSave(BizCreditApplyVO bizCreditApplyVO) {
        if (null == bizCreditApplyVO.getId()) {// 新增
            BizCreditApply bizCreditApply = transStruct.vO2BizCreditApply(bizCreditApplyVO);
            bizCreditApply.setStatus(0);
            this.save(bizCreditApply);
            return bizCreditApply.getId();
        }
        // 修改
        BizCreditApply bizCreditApply = this.getById(bizCreditApplyVO.getId());
        bizCreditApply.setApplyNo(BizNoUtil.generateCreditApplyNo());
        return bizCreditApplyVO.getId();
    }

    @Override
    public Boolean submit(BizCreditApplyVO bizCreditApplyVO) {
        if (null == bizCreditApplyVO.getId()) {// 一次填完提交
            BizCreditApply bizCreditApply = transStruct.vO2BizCreditApply(bizCreditApplyVO);
            bizCreditApply.setStatus(1);
            bizCreditApply.setApplyNo(BizNoUtil.generateCreditApplyNo());
            this.save(bizCreditApply);
            return true;
        }
        // 暂存提交
        BizCreditApply bizCreditApply = this.getById(bizCreditApplyVO.getId());
        bizCreditApply.setStatus(1);
        bizCreditApply.setApplyNo(BizNoUtil.generateCreditApplyNo());
        return this.updateById(bizCreditApply);
    }
}
