package com.iamberry.wechat.service.mapper;

import java.util.List;

import com.iamberry.wechat.core.entity.Page;
import com.iamberry.wechat.core.entity.member.Member;

/**
 * 会员信息 mapper
 * 2016年4月21日
 * @author Administrator
 *
 */
public interface MemberMapper {
	/**
	 * 根据 userid 查询一个member
	 * 2016年4月21日
	 * @return
	 */
	Member getMemberByUserId(Integer userId);
	/**
	 * 根据 openid 查询一个member
	 * 2016年4月28日
	 * @author 穆再兴
	 * @return
	 */
	public Member getMemberByUserOpenId(String openid);
	/**
	 * 获取所有用户数量 
	 * @return
	 */
	Integer getCount();
	/**
	 * 分页显示用户信息
	 * @param page
	 * @return
	 */
	List<Member> getMemberByPage(Page page);
	
	/**
	 * 修改用可用积分
	 * @param member
	 * @return
	 */
	public Integer updateUserIntegral(Member member);
	
	/**
	 * 根据 userid 修改会员信息
	 * 2016年4月21日
	 * @author 穆再兴
	 * @param userId
	 * @return
	 */
	public Integer updateMemberByUserId(Member member);
	
	/**
	 * 修改用户已用积分
	 * @param member
	 * @return
	 */
	public Integer updateUserUseIntegral(Member member);
	
	/**
	 * 分页查询微代理下线会员信息
	 * @param page
	 * @return
	 */
	public List<Member> selectUserIntegralByWechatProxyId(Page page);
	Member selectUserIdentityAndQrcodeByOpenId(String openid);
	List<Member> getMemberByFuzzy();
	
	/**
	 * 根据用户openid，获取用户来源、用户身份
	 * @param openid
	 * @return
	 */
	public Member selectUserResAndIdSByOpenId(String openid);
	
	/**
	 * 根据 openid 修改用户可用金额
	 * 2016年5月4日
	 * @param member
	 * @return
	 */
	public Integer updateUserIncomeByOpenId(Member member);
	
	/**
	 * 根据用户openid，修改用户绑定状态
	 * @param openId
	 * @return
	 */
	public Integer updateUserFlagByOpenId(String openId);
	
	/**
	 * 根据userid获取当前用户的“下线人数”和“已购买人数”
	 * 2016年5月11日
	 * @param openId
	 * @return
	 */
	public List<Integer> selectDownCountByUserId(Integer userId);
	
	/**
	 * 根据openid 修改用户的是否购买
	 * 2016年11月2日
	 * mzx
	 * @return
	 */
	public Integer updateIsBaughtByOpenid(Member member);


	/**
	 *个人分销员
	 *根据placeInfo查询个人用户的个数
	 *@paramplaceInfo
	 *@return
	 */
	Integer getOrdinaryNumber(Member member);


	/**
	 *后台-Drp分销管理主界面-->获取个人分销员的下线列表
	 */
	List<Member>  getOrdinary(Member member);


}
