package com.cool.store.mapper;

import com.cool.store.dto.partner.ZoneCheckDTO;
import com.cool.store.entity.HyIntendDevelopementMappingDO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author zhangchenbiao
 * @date 2023-05-29 03:50
 */
public interface HyIntendDevelopementMappingMapper {
    /**
     *
     * 默认插入方法，只会给有值的字段赋值
     * 会对传进来的字段做判空处理，如果字段为空，则使用数据库默认字段或者null
     * dateTime:2023-05-29 03:50
     */
    int insertSelective(@Param("record") HyIntendDevelopementMappingDO record);

    /**
     *
     * 默认更新方法，根据主键更新，不会把null值更新到数据库，避免覆盖之前有值的
     * dateTime:2023-05-29 03:50
     */
    int updateByPrimaryKeySelective(@Param("record") HyIntendDevelopementMappingDO record);

    /**
     * 批量删除数据
     * @param idList
     * @return
     */
    int deleteByOpenAreaIds(@Param("openAreaIdList") List<Long> idList, @Param("type") String type);


    /**
     * 删除战区对应的关联意向区域
     * @param idList
     * @param type
     * @return
     */
    int deleteByMappingIds(@Param("mappingIds") List<Long> idList, @Param("type") String type);
    /**
     *
     * @param recordList
     * @return
     */
    int batchInsert(@Param("recordList") List<HyIntendDevelopementMappingDO> recordList);

    /**
     * 查询根据selectByMappingIdList集合
     * @param mappingIdList
     * @return
     */
    List<ZoneCheckDTO> selectByMappingIdList(@Param("mappingIdList") List<Long> mappingIdList);

    List<ZoneCheckDTO> selectByOpenAreaMappingIdList(@Param("openAreaMappingIdList") List<Long> openAreaMappingIdList,
                                                     @Param("type") String type,
                                                     @Param("currentId") Long currentId);


    HyIntendDevelopementMappingDO selectByOpenAreaMappingId(@Param("openAreaMappingId") Long openAreaMappingId,
                                                     @Param("type") String type);

}