/*
 * 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();

    /**
     * 封装设备返回信息
     *
     * @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 sendType
//     * @param phoneNumber
//     * @return
//     */
//    public Object getSecurityCodeByPhoneNumber(String sendType, String phoneNumber);
//    /**
//     * 根据类型和邮件地址，发送验证码
//     *
//     * @param sendType
//     * @param phoneNumber
//     * @return
//     */
//    public Object getSecurityCodeByEmail(String sendType, String Email);
    /**
     * 修改用户属性
     *
     * @param user
     * @return
     */
    public Object updateUser(Tbl_User user);

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

}
