package com.yonge.cooleshow.cms.dal.dao;

import java.util.List;
import java.util.Map;

import com.yonge.cooleshow.cms.dal.entity.SysNewsInformation;
import com.yonge.cooleshow.cms.dto.SysNewsInformationDto;
import com.yonge.toolset.mybatis.dal.BaseDAO;
import org.apache.ibatis.annotations.Param;

public interface SysNewsInformationDao extends BaseDAO<Long, SysNewsInformation> {

	/**
	 * 根据类型查询资讯列表
	 *
	 * @param type
	 * @return
	 */
	List<SysNewsInformation> queryByType(Integer type);

	/**
	 * 删除
	 *
	 * @param id
	 * @return
	 */
	int deleteWithLogical(Long id);

	List<SysNewsInformation> queryHomePage(Map<String, Object> params);

	int queryHomeCount(Map<String, Object> params);

	/**
	 * 查询需要更新状态的对象集合
	 *
	 * @return
	 */
	List<SysNewsInformation> queryNeedUpdateStatusList();

	SysNewsInformationDto queryById(Long id);

	/**
	 * 分页数量
	 *
	 * @param params
	 * @return
	 */
	int selectPageCount(Map<String, Object> params);

	/**
	 * 分页数据
	 *
	 * @param params
	 * @return
	 */
	List<SysNewsInformationDto> selectPage(Map<String, Object> params);

	/**
	 * 修改状态
	 *
	 * @param id
	 */
	void updateStatus(Long id);

	/**
	 * 查看广告版本
	 *
	 * @param version 版本
	 * @param status  状态
	 * @return
	 */
	Integer selectByVersionAndStatus(@Param("version") String version, @Param("status") Integer status);

	/**
	 * 获取当前app版本是否为审核状态
	 *
	 * @param platform 平台
	 * @param version 版本
	 * @return
	 */
	String selectAppVersionInfo(@Param("platform") String platform, @Param("version") String version);

	Integer selectByStatus(Integer status);
}