package com.iformall.service;

import java.util.HashMap;
import java.util.List;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.dto.WxCUserBasicInfoDto;
import com.iformall.domain.po.WxCUser;

public interface WxCUserService {

    /**
     * 根据实体查询分页列表
     *
     * @param record
     * @param pageIndex
     * @param pageSize
     * @return
     */
    PageInfo<WxCUser> listAsPage(WxCUser record, Integer pageIndex, Integer pageSize);

    /**
     * 根据Id获得实体
     *
     * @param id
     * @return
     */
    WxCUser getById(Long id);

    /**
     * 根据token获得实体
     *
     * @param token
     * @return
     */
    WxCUser getByToken(String token);

    /**
     * 根据openId获得实体
     *
     * @param record
     * @return
     */
    WxCUser getByOpenId(WxCUser record);

    /**
     * 保存或更新实体
     *
     * @param record
     */
    int saveOrUpdate(WxCUser record);

    /**
     * 根据Id删除实体
     *
     * @param id
     */
    void deleteById(Long id);

    /**
     * 统计数量
     * @param dto
     * @return
     */
    long findCount(WxCUserBasicInfoDto dto);

    
    /**
     * 通过渠道获取会员信息
     * @param user
     * @param pageIndex
     * @param pageSize
     * @return
     */
    PageInfo<WxCUser> listByChannel(WxCUser user, Integer pageIndex, Integer pageSize);

    long countByChannel(WxCUser user);
    /**
     * 计算当前用户成长值
     */
    void scoreCalculate(WxCUser user, boolean isNew);
}
