package com.sunxung.factoring.service.fundmanagement;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sunxung.factoring.entity.GridPage;
import com.sunxung.factoring.entity.fundmanagement.FinancialInstitutionInfo;
import com.sunxung.factoring.entity.fundmanagement.vo.*;
import com.sunxung.factoring.entity.sys.User;
import com.sunxung.factoring.entity.sys.vo.SeachUser;

import java.util.List;

/**
 * @Description : 资方管理service层
 * @Author : L.Jia
 * @Date: 2023-02-13 19:45
 */
public interface FinancialInstitutionService extends IService<FinancialInstitutionInfo> {

    /**
     * 列表页查询
     *
     * @return
     */
    GridPage<FinancialInstitutionInfo> findBySearch(SeachUser search);

    /**
     * 获取详情页列表
     *
     * @param search
     * @return
     */
    GridPage<FinancialInstitutionDetailVo> getDetailList(FinancialInstitutionSearch search);

    /**
     * 关联企业
     *
     * @param enterpriseVo
     */
    void addEnterpriseList(EnterpriseVo enterpriseVo);

    /**
     * 新增资方 并生成资方账号
     *
     * @param institutionInfo
     * @return
     */
    boolean addFinancialInstitution(FinancialInstitutionInfo institutionInfo);

    /**
     * 更新资方账号
     *
     * @param user
     */
    void updateFinancialUser(User user);

    /**
     * 根据资方id获取用户所有支用信息
     *
     * @param institutionId
     * @return
     */
    List<CreditSubjectsVo> getQuotaDisburseList(Long institutionId);

    /**
     * 关联支用
     *
     * @param enterpriseDisburseVo
     */
    void addEnterpriseDisburseList(EnterpriseDisburseVo enterpriseDisburseVo);

    /**
     * 删除关联支用或者删除关联客户
     *
     * @param financialInstitutionDetailVo
     */
    void deleteEnterprise(FinancialInstitutionDetailVo financialInstitutionDetailVo);

    /**
     * 历史资方新增用户
     */
    void addBackerUser();

    /**
     * 重置密码
     * @param institutionName
     */
    void modifyPassword(String institutionName);
}
