package com.ruixuan.salesLeads.mapper;

import com.alibaba.fastjson.JSONObject;
import com.ruixuan.salesLeads.pojo.SaleFinanceCompanySubjectInfoPojo;
import com.ruixuan.salesLeads.pojo.SaleFinancePolicyInfoPojo;
import com.ruixuan.salesLeads.pojo.TestPojo;
import com.ruixuan.salesLeads.pojo.vo.SaleFinancePolicyInfoVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * ***************************************************
 *
 * @Auther: zianY
 * @Descipion: TODO
 * @CreateDate: 2022-05-19
 * ****************************************************
 */
public interface SaleFinancePolicyInfoMapper {


    /**
     * 查看政策列表
     * @param saleFinancePolicyInfoVo
     * @return
     */
    List<SaleFinancePolicyInfoPojo> selectPolicyList(SaleFinancePolicyInfoVo saleFinancePolicyInfoVo);

    /**
     * 查看政策详情
     * @param policyId 政策id
     * @return
     */
    SaleFinancePolicyInfoPojo selectPolicyInfoById(String policyId);

    /**
     * 新增政策
     * @param policyInfoPojo
     */
    Integer addSaleFinancePolicyInfo(SaleFinancePolicyInfoPojo policyInfoPojo);

    /**
     *  查询 政策审核人信息
     * @return
     */
    List<JSONObject> selectPolicyApprovalUser();

    /**
     * 通过用户查询 政策审核人信息
     * @param approvalUserId 审核人id
     * @return
     */
    JSONObject selectPolicyApprovalUserByUserId(String approvalUserId);

    /**
     * 通过当前审核人的级别查询 政策下一级审核人信息
     * @param approvalUserId
     * @return
     */
    JSONObject selectNextApprovalUser(String approvalUserId);

    /**
     *修改政策审核状态
     * @param policyId 政策id
     * @param approvedProgress 审核人id
     * @param approvedStatus 状态 0:草稿 1：待审核 2:审核中 3：审核通过4：审核拒绝
     */
    void updatePolicyStatus(@Param("policyId")Integer policyId,@Param("approvedProgress")String approvedProgress,@Param("approvedStatus")Integer approvedStatus);

    /**
     * 查询快手账户以及公司和资质
     * @return
     */
    List<JSONObject> selectPolicyCustomerList();

    /**
     * 查询公司主体列表
     * @return
     */
    List<SaleFinanceCompanySubjectInfoPojo> selectCompanySubjectInfoList();

}
