package com.fs.store.mapper;

import java.util.List;
import com.fs.store.domain.FsShippingTemplatesRegion;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * 邮费区域Mapper接口
 *
 * @author fs
 * @date 2022-03-15
 */
public interface FsShippingTemplatesRegionMapper
{
    /**
     * 查询邮费区域
     *
     * @param id 邮费区域ID
     * @return 邮费区域
     */
    public FsShippingTemplatesRegion selectFsShippingTemplatesRegionById(Long id);

    /**
     * 查询邮费区域列表
     *
     * @param fsShippingTemplatesRegion 邮费区域
     * @return 邮费区域集合
     */
    public List<FsShippingTemplatesRegion> selectFsShippingTemplatesRegionList(FsShippingTemplatesRegion fsShippingTemplatesRegion);

    /**
     * 新增邮费区域
     *
     * @param fsShippingTemplatesRegion 邮费区域
     * @return 结果
     */
    public int insertFsShippingTemplatesRegion(FsShippingTemplatesRegion fsShippingTemplatesRegion);

    /**
     * 修改邮费区域
     *
     * @param fsShippingTemplatesRegion 邮费区域
     * @return 结果
     */
    public int updateFsShippingTemplatesRegion(FsShippingTemplatesRegion fsShippingTemplatesRegion);

    /**
     * 删除邮费区域
     *
     * @param id 邮费区域ID
     * @return 结果
     */
    public int deleteFsShippingTemplatesRegionById(Long id);

    /**
     * 批量删除邮费区域
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteFsShippingTemplatesRegionByIds(Long[] ids);

    @Delete("delete from fs_shipping_templates_region where temp_id=#{tempId}")
    int deleteFsShippingTemplatesRegionByTempId(Long tempId);
    @Select("select * from fs_shipping_templates_region where find_in_set(temp_id,#{tempIds}) and find_in_set(city_id,#{cityIds})")
    List<FsShippingTemplatesRegion> selectFsShippingTemplatesRegionListByTempIdsAndCityIds(@Param("tempIds") String tempIds,@Param("cityIds") String cityIds);

    @Select("select * from fs_shipping_templates_region where temp_id=${templateId}")
    List<FsShippingTemplatesRegion> selectTempRegionByTempIdAndCityId(@Param("templateId") Long templateId);


    void batchSaveRegions(@Param("list") List<FsShippingTemplatesRegion> fsShippingTemplatesRegions);
}
