
package com.tmerclub.cloud.multishop.service;

import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.multishop.dto.ShopCompanyAuditingDTO;
import com.tmerclub.cloud.multishop.dto.ShopCompanyDTO;
import com.tmerclub.cloud.multishop.vo.ShopCompanyAuditingVO;

/**
 * @author chiley
 * @date 2022/9/13 14:39
 */
public interface CompanyAuditingService {

    /**
     * 更新备注
     * @param shopCompanyAuditingDTO
     */
    void updateRemark(ShopCompanyAuditingDTO shopCompanyAuditingDTO);

    /**
     * 商家申请变更工商信息
     *
     * @param shopCompanyDTO
     */
    void applyChangeCompanyInfo(ShopCompanyDTO shopCompanyDTO);


    /**
     * 企业信息更新回调
     * @param bizUserId
     * @param status
     * @param result
     * @param failReason
     */
    void updateCompanyInfoResult(String bizUserId, Integer status, Integer result, String failReason);

    /**
     * 根据店铺id获取最近一条工商审核信息
     *
     * @param shopId
     * @return
     */
    ShopCompanyAuditingVO getLatestAuditingByShopId(Long shopId);


    /**
     * 撤销申请
     *
     * @param shopId
     */
    void revoke(Long shopId);

    /**
     * 分页获取待审核的工商信息
     *
     * @param pageDTO                分页参数
     * @param shopCompanyAuditingDTO 搜索参数
     * @return
     */
    PageVO<ShopCompanyAuditingVO> page(PageDTO pageDTO, ShopCompanyAuditingDTO shopCompanyAuditingDTO);

    /**
     * 审核公司信息
     * @param shopCompanyAuditingDTO
     */
    void audit(ShopCompanyAuditingDTO shopCompanyAuditingDTO);

    /**
     * 获取工商信息审核信息
     * @param shopId
     * @return
     */
    ShopCompanyAuditingVO getAuditInfo(Long shopId);

    /**
     * 回调更新通联状态
     * @param bizUserId
     * @param status
     * @param failReason
     * @param isPassShop
     */
    void updateAllinpayShopStatus(String bizUserId, Integer status, String failReason, Integer isPassShop);
}
