package com.younike.system.mapper;

import java.util.List;
import com.younike.system.domain.Merchant;
import com.younike.system.domain.vo.MerchantSettledVO;
import com.younike.system.param.MerchantQueryParam;

/**
 * 店铺信息Mapper接口
 * 
 * @author elev
 * @date 2022-01-07
 */
public interface MerchantMapper {
    /**
     * 查询店铺信息
     * 
     * @param merchantId 店铺信息主键
     * @return 店铺信息
     */
    Merchant selectMerchantByMerchantId(Long merchantId);

    /**
     * 查询店铺信息列表
     * 
     * @param merchant 店铺信息
     * @return 店铺信息集合
     */
    public List<Merchant> selectMerchantList(Merchant merchant);

    /**
     * 查询待审核店铺信息列表
     *
     * @param param 店铺信息
     * @return 店铺信息集合
     */
    public List<MerchantSettledVO> selectAuditMerchantList(MerchantQueryParam param);

    /**
     * 查询审核通过店铺信息列表
     *
     * @param merchant 店铺信息
     * @return 店铺信息集合
     */
    public List<MerchantSettledVO> selectPassMerchantList(MerchantQueryParam param);

    /**
     * 新增店铺信息
     * 
     * @param merchant 店铺信息
     * @return 结果
     */
    int insertMerchant(Merchant merchant);

    /**
     * 修改店铺信息
     * 
     * @param merchant 店铺信息
     * @return 结果
     */
    int updateMerchant(Merchant merchant);

    /**
     * 删除店铺信息
     * 
     * @param merchantId 店铺信息主键
     * @return 结果
     */
    int deleteMerchantByMerchantId(Long merchantId);

    /**
     * 批量删除店铺信息
     * 
     * @param merchantIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteMerchantByMerchantIds(Long[] merchantIds);

    /**
     * 获取用户账号关联的店铺
     * @param adminId
     * @return
     */
    Merchant selectMerchantByAdminId(Long adminId);

    void updateMerchants(List<Merchant> merchantList);
}
