package com.fs.hisStore.mapper;

import com.fs.hisStore.domain.FsStoreScrm;
import com.fs.hisStore.vo.FsStoreRecommendListVO;
import com.fs.hisStore.vo.FsStoreScrmVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * 店铺管理Mapper接口
 *
 * @author fs
 * @date 2023-06-15
 */
public interface FsStoreScrmMapper
{
    /**
     * 查询店铺管理
     *
     * @param storeId 店铺管理主键
     * @return 店铺管理
     */
    public FsStoreScrm selectFsStoreByStoreId(Long storeId);

    /**
     * 查询店铺管理列表
     *
     * @param FsStoreScrm 店铺管理
     * @return 店铺管理集合
     */
    public List<FsStoreScrm> selectFsStoreList(FsStoreScrm FsStoreScrm);

    /**
     * 新增店铺管理
     *
     * @param FsStoreScrm 店铺管理
     * @return 结果
     */
    public int insertFsStore(FsStoreScrm FsStoreScrm);

    /**
     * 修改店铺管理
     *
     * @param FsStoreScrm 店铺管理
     * @return 结果
     */
    public int updateFsStore(FsStoreScrm FsStoreScrm);

    /**
     * 删除店铺管理
     *
     * @param storeId 店铺管理主键
     * @return 结果
     */
    public int deleteFsStoreByStoreId(Long storeId);

    /**
     * 批量删除店铺管理
     *
     * @param storeIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteFsStoreByStoreIds(Long[] storeIds);

    @Update("UPDATE fs_store_scrm SET is_audit=#{isAudit} WHERE store_id=#{storeId}")
    int updateFsStoreAudit(@Param("storeId") Long storeId, @Param("isAudit") Integer isAudit);

    @Select("select * from fs_store_scrm where account=#{username}")
    FsStoreScrm selectFsStoreByAccount(String username);

    @Select("SELECT * from fs_store_scrm WHERE   FIND_IN_SET(store_id, (SELECT store_ids FROM fs_doctor where doctor_id=#{doctorId}))")
    List<FsStoreScrm> selectFsStoreListByDoctorId(Long doctorId);

    List<FsStoreScrm> selectOverList();

    // 批量按ID更新状态
    int batchUpdateStatusByIds(@Param("ids") List<Long> ids, @Param("status") Integer status);

    List<FsStoreRecommendListVO> storeRecommendList();

    List<FsStoreScrm> selectFsStoreByStoreIds(String[] storeId);

    List<FsStoreScrm> selectFsStoreListByProduct(FsStoreScrm fsStoreScrm);

//    @Select("select store_id ,store_name,bus_no,bus_name  from fs_store_scrm ")
    @Select("select store_id ,store_name  from fs_store_scrm ")
    List<FsStoreScrmVO> selectFsAllStoreList();
}
