package cn.com.countrygarden.bi.main.dao.dup;

import cn.com.countrygarden.bi.main.model.dup.CaseField;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;

import javax.transaction.Transactional;
import java.util.List;
import java.util.Map;

@Repository
@Transactional
public interface CaseFieldMapper extends Mapper<CaseField> {

    //    int insertCaseField(Map<String, Object> paramMap);
    int insertCaseField(CaseField caseField);

    /**
     * 根据条件查询录入了的案场信息
     *
     * @param organ     区域ID
     * @param comm      项目ID
     * @param caseField 案场ID
     * @param beginDate 销售开始时间
     * @param endDate   销售结束时间
     * @return 返回所有符合条件的集合
     */
    List<CaseField> queryByKeys(@Param("organ") String organ, @Param("organs") List<String> organs, @Param("comm") String comm,
                                @Param("comms") List<String> comms, @Param("caseField") String caseField,
                                @Param("beginDate") String beginDate, @Param("endDate") String endDate, @Param("page") int page,
                                @Param("size") int size);
    
    List<CaseField> queryByKeysNoPage(
    		@Param("organ") String organ,@Param("comm") String comm,
    		@Param("yearMonth") String yearMonth);

    /**
     * 查询该条件下的总数
     *
     * @param organ
     * @param comm
     * @param caseField
     * @param beginDate
     * @param endDate
     * @return
     */
    int queryTotal(@Param("organ") String organ, @Param("organs") List<String> organs, @Param("comm") String comm,
                   @Param("comms") List<String> comms, @Param("caseField") String caseField,
                   @Param("beginDate") String beginDate, @Param("endDate") String endDate);

    /**
     * 逻辑删除该记录
     *
     * @param id       案场ID
     * @param userCode 用户ID
     * @return
     */
    int softDeleteById(@Param("id") int id, @Param("userCode") String userCode);

    /**
     * 修改案场信息根据ID
     *
     * @param caseField
     * @return
     */
    int modifyCaseFieldById(CaseField caseField);

    CaseField queryById(int id);

}