package com.iamberry.wechat.service.game.dao;

import java.util.List;

import com.iamberry.wechat.core.entity.game.GameLogsDto;
import com.iamberry.wechat.core.entity.game.GamePrizeDto;
import com.iamberry.wechat.core.entity.game.GameSystemDto;
import com.iamberry.wechat.core.entity.order.Order;

public interface GameDao {
	
	/**
	 * 通过游戏类型查询游戏信息
	 * @param gameSystemDto
	 * @return
	 */
	public GameSystemDto selectGameByGameType(GameSystemDto gameSystemDto);
	
	/**
	 * 通过游戏id查询游戏信息
	 * @param gameSystemDto
	 * @return
	 */
	public GameSystemDto selectGameByGameId(GameSystemDto gameSystemDto);
	
	/**
	 * 通过游戏id查询游戏奖品信息
	 * @param gamePrizeDto
	 * @return
	 */
	public List<GamePrizeDto> selectGamePrizeByGameId(GamePrizeDto gamePrizeDto);
	
	/**
	 * 根据openid和订单id和游戏id查询游戏日志信息
	 * @param gameLogsDto
	 * @return
	 */
	public List<GameLogsDto> selectGameLogsByGameId(GameLogsDto gameLogsDto);
	
	/**
	 * 根据openid和订单id和游戏id查询游戏日志数量
	 * @param gameLogsDto
	 * @return
	 */
	public Integer selectGameLogsCount(GameLogsDto gameLogsDto);

	/**
	 * 保存游戏信息
	 * @param dto
	 * @return
	 */
	public int saveLogs(GameLogsDto dto);

	/**
	 * 更新库存
	 * @param prize
	 * @return
	 */
	public int updatePrizeNum(Integer prize);
	
	/**
	 * 根据gameid获取当前用户所有中奖纪录
	 * 2016年9月28日
	 * @param logDto
	 * @return
	 */
	public List<GameLogsDto> selectWinningLogsByGameId(GameLogsDto logDto);
	
	/**
	 * 根据gameid获取当前用户所有中奖纪录数量
	 * @param logDto
	 * @return
	 */
	public Integer selectWinningCount(GameLogsDto logDto);
	
	/**
	 * 根据时间和openid查询订单条目数
	 * @param order
	 * @return
	 */
	public Integer selectOrderByCreateDate(Order order);
}
