/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ifish.helper;

import com.ifish.bean.Tbl_Device;
import com.ifish.bean.Tbl_Device_User;
import com.ifish.bean.Tbl_User;
import java.util.Map;
import org.springframework.web.multipart.MultipartFile;

/**
 *
 * @author Administrator
 */
public interface UserHelperI {

    /**
     * 登陆接口
     *
     * @param user
     * @return
     */
    public Object login(Tbl_User user);

    /**
     * 根据用户Id获取用户信息
     *
     * @param userId
     * @return
     * @throws java.lang.Exception
     */
    public Tbl_User getUserById(Integer userId) throws Exception;

    /**
     * 游客注册接口
     *
     * @return
     */
    public Object touristRegister(String loginType);

    /**
     * 封装设备返回信息
     *
     * @param device
     * @param deviceUser
     * @return
     * @throws java.lang.Exception
     */
    public Map<String, Object> getDeviceInfo(Tbl_Device device, Tbl_Device_User deviceUser) throws Exception;

    /**
     * 手机邮箱用户注册
     *
     * @param user
     * @return
     */
    public Object registerUserMobile(Tbl_User user);

    /**
     * 邮箱用户发送注册链接
     *
     * @param user
     * @return
     */
    public Object registerByEmail(Tbl_User user);

    /**
     * 添加邮箱用户
     *
     * @param md5
     * @return
     */
    public String registerEmail(String md5);

    /**
     * 邮箱用户修改密码
     *
     * @param md5
     * @return
     */
    public String updatePasswordEmail(String md5);

    /**
     * 修改用户属性
     *
     * @param user
     * @return
     */
    public Object updateUser(Tbl_User user);

    /**
     * 修改用户头像
     *
     * @param file
     * @param userId
     * @return
     */
    public Object updateUserImg(MultipartFile file, Integer userId, String path);

    /**
     * 已知用户ID修改用户手机号码和密码
     *
     * @param userId
     * @param password
     * @param phoneNumber
     * @return
     */
    public Object updateUserPassword(Integer userId, String password, String phoneNumber, String token);

    /**
     * 忘记密码，根据手机号修改密码
     *
     * @param phoneNumber
     * @param password
     * @return
     */
    public Object forgetPassword(String phoneNumber, String password);

    /**
     * 邮箱账号忘记密码，发送邮件验证
     *
     * @param email
     * @param password
     * @return
     */
    public Object forgetPasswordByEmail(String email, String password);

    /**
     * 极光是否注册别名成功
     *
     * @param userId
     * @return
     */
    public Object IsRegisterJPush(String userId);
}
