package com.xhpc.user.service;

import com.xhpc.common.core.domain.R;
import com.xhpc.user.domain.XhpcAppUser;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;


/**
 * C端用户信息 服务层
 *
 * @author ruoyi
 */
public interface IXhpcAppUserUserService {

    /**
     * 更新C端用户
     *
     * @param xhpcAppUser C端用户
     */
    public int update(XhpcAppUser xhpcAppUser);


    /**
     * C端用户详情
     *
     * @param appUserId C端用户id
     * @return 结果
     */
    public Map<String, Object> info(Long appUserId);

    /**
     * C端用户分页列表
     *
     * @param phone 手机号
     * @return 结果
     */
    public List<Map<String, Object>> selectAppUserList(String phone);


    public Map<String, Object> userSum(String phone);
    /**
     * 禁用/启用C端用户
     *
     * @param appUserId C端用户id
     * @return 结果
     */
    public void status(Long appUserId);

    /**
     * C端用户注册
     *
     * @param map C端用户 phone 手机号 code 验证码 type 登录方式1微信2小程序
     * @return 结果
     */
    public R<?> register(Map<String, Object> map);

    /**
     * C端用户登录
     *
     * @param map C端用户 phone 手机号 code 验证码 type 登录方式1微信2小程序
     * @return 结果
     */
    public R<?> login(Map<String, Object> map);

    /**
     * 小程序用户退出
     *
     * @param request
     * @param type    退出方式1微信2小程序
     * @return
     */
    public R<?> loginOut(HttpServletRequest request, String type);

    /**
     * C端用户自动登录
     *
     * @param map
     * @return
     */
    public R<?> voluntaryLogin(Map<String, Object> map);

    /**
     * 小程序用户详情
     *
     * @param
     * @return 结果
     */
    public Map<String, Object> appInfo(HttpServletRequest request);

    /**
     * 注销账号
     * @param phone
     * @param code
     * @return
     */
    public R<?> logout(String phone, String code);
}
