package com.tofly.ghrq_route.module.user.controller;

import com.tofly.ghrq_route.module.pipeAnalyze.domain.FieldsBean;
import com.tofly.ghrq_route.module.user.domain.CarBean;
import com.tofly.ghrq_route.module.user.domain.CompanyBean;
import com.tofly.ghrq_route.module.user.domain.CompanyUserBean;
import com.tofly.ghrq_route.module.user.domain.DepartUserBean;
import com.tofly.ghrq_route.module.user.domain.DepartmentBean;
import com.tofly.ghrq_route.module.user.domain.DepartmentUserBean;
import com.tofly.ghrq_route.module.user.domain.DeviceBean;
import com.tofly.ghrq_route.module.user.domain.MessageUserBean;
import com.tofly.ghrq_route.module.user.domain.RegisterInfoBean;
import com.tofly.ghrq_route.module.user.domain.UserBean;
import com.tofly.ghrq_route.module.user.domain.UserMapDataBean;
import com.tofly.ghrq_route.module.user.domain.UserMenuBean;
import com.tofly.ghrq_route.module.user.domain.UserOnlineMapDataBean;

import java.util.List;

/**
 * Created by Amu on 2017/2/9.
 */

public interface IUserCallBack {
    /**
     *
     * 方法名： onCheck <br>
     * 功能：返回login的结果<br>
     * 参数：  isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语
     * 返回值： void<br>
     * 异常：
     */
    public void onLogin(boolean isSuccess, int errorCode, String errMsg, UserBean user);

    /**
     *
     * 方法名： onGetAccountInfo <br>
     * 功能：返回getUserInfo的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; user:用户信息
     * 返回值： void<br>
     * 异常：
     */
    public void onGetAccountInfo(boolean isSuccess, int errorCode, String errMsg, UserBean user);

    /**
     *
     * 方法名： onGetUserMenus <br>
     * 功能：返回用户功能权限列表<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; userMenus:用户列表信息
     * 返回值： void<br>
     * 异常：
     */
    public void onGetUserMenus(boolean isSuccess, int errorCode, String errMsg, List<UserMenuBean> userMenus);

    /**
     *
     * 方法名： onUpdateAccount <br>
     * 功能：返回updateAccount的结果<br>
     * 参数：  isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语
     * 返回值： void<br>
     * 异常：
     */
    public void onUpdateAccount(boolean isSuccess, int errorCode, String errMsg);

    /**
     *
     * 方法名： onUpdateAccountAvatar <br>
     * 功能：返回updateUserAvatar的结果<br>
     * 参数：  isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语
     * 返回值： void<br>
     * 异常：
     */
    public void onUpdateAccountAvatar(boolean isSuccess, int errorCode, String errMsg);

    /**
     *
     * 方法名： onUpdateAccountPassword <br>
     * 功能：返回updateAccountPassword的结果<br>
     * 参数：  isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语
     * 返回值： void<br>
     * 异常：
     */
    public void onUpdateAccountPassword(boolean isSuccess, int errorCode, String errMsg);

    /**
     *
     * 方法名： onGetUserInfo <br>
     * 功能：返回其他用户的信息<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; user:用户信息
     * 返回值： void<br>
     * 异常：
     */
    public void onGetUserInfo(boolean isSuccess, int errorCode, String errMsg, UserBean user, DeviceBean device);

    /**
     *
     * 方法名： onLogout <br>
     * 功能：返回logout的结果<br>
     * 参数：  isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语
     * 返回值： void<br>
     * 异常：
     */
    public void onLogout(boolean isSuccess, int errorCode, String errMsg);

    /**
     *
     * 方法名： onGetUserMList <br>
     * 功能：返回其他用户的列表<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; userList:用户列表
     * 返回值： void<br>
     * 异常：
     */
    public void onGetUserMList(boolean isSuccess, int errorCode, String errMsg, List<MessageUserBean> userList);

    /**
     *
     * 方法名： onGetUserList <br>
     * 功能：返回用户列表<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; userList:用户列表
     * 返回值： void<br>
     * 异常：
     */
    public void onGetUserList(boolean isSuccess, int errorCode, String errMsg, List<DepartUserBean> userList);

    /**
     *
     * 方法名： onRegisterAccount <br>
     * 功能：返回注册用户的结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;
     * 返回值： void<br>
     * 异常：
     */
    public void onRegisterAccount(boolean isSuccess, int errorCode, String errMsg);

    /**
     *
     * 方法名： onGetRegisterDeviceInfo <br>
     * 功能：返回设备注册信息结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;
     * 返回值： void<br>
     * 异常：
     */
    public void onGetRegisterDeviceInfo(boolean isSuccess, int errorCode, String errMsg, RegisterInfoBean infoBean);

    /**
     *
     * 方法名： onGetCompanyList <br>
     * 功能：返回公司列表<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; companyList:公司列表
     * 返回值： void<br>
     * 异常：
     */
    public void onGetCompanyList(boolean isSuccess, int errorCode, String errMsg, List<CompanyBean> companyList);

    /**
     *
     * 方法名： onGetCompanyUserList <br>
     * 功能：返回公司绑定用户列表<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; userList:公司用户列表
     * 返回值： void<br>
     * 异常：
     */
    public void onGetCompanyUserList(boolean isSuccess, int errorCode, String errMsg, List<CompanyUserBean> userList);

    /**
     *
     * 方法名： onGetDepartmentList <br>
     * 功能：返回部门列表<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; departmentList:部门列表
     * 返回值： void<br>
     * 异常：
     */
    public void onGetDepartmentList(boolean isSuccess, int errorCode, String errMsg, List<DepartmentBean> departmentList);

    /**
     *
     * 方法名： onGetDepartmentUserList <br>
     * 功能：返回部门用户列表<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; userList:部门用户列表
     * 返回值： void<br>
     * 异常：
     */
    public void onGetDepartmentUserList(boolean isSuccess, int errorCode, String errMsg, List<DepartmentUserBean> userList);

    /**
     *
     * 方法名： onGetCarList <br>
     * 功能：返回可用车列表<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语; carList:可用车列表
     * 返回值： void<br>
     * 异常：
     */
    public void onGetCarList(boolean isSuccess, int errorCode, String errMsg, List<CarBean> carList);

    /**
     *
     * 方法名： onUserBindCar <br>
     * 功能：返回绑定车辆结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;
     * 返回值： void<br>
     * 异常：
     */
    public void onUserBindCar(boolean isSuccess, int errorCode, String errMsg);

    /**
     *
     * 方法名： onUserUnBindCar <br>
     * 功能：返回解绑车辆结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;
     * 返回值： void<br>
     * 异常：
     */
    public void onUserUnBindCar(boolean isSuccess, int errorCode, String errMsg);

    /**
     *
     * 方法名：获取用户地图配置信息 <br>
     * 功能：返回结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;  mapConfigDataBean: 地图配置信息
     * 返回值： void<br>
     * 异常：
     */
    public void onGetMapConfigData(boolean isSuccess, int errorCode, String errMsg, List<UserOnlineMapDataBean> urlConfigDataBean, List<UserMapDataBean> userMapDataBeanList);

    /**
     *
     * 方法名：获取地图图层属性排序配置 <br>
     * 功能：返回结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;  mapConfigDataBean: 地图配置信息
     * 返回值： void<br>
     * 异常：
     */
    public void onGetMapLayerIndexConfigData(boolean isSuccess, int errorCode, String errMsg, List<FieldsBean> results);

    /**
     *
     * 方法名：获取分公司地图图层列表<br>
     * 功能：返回结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;  mapConfigDataBean: 地图配置信息
     * 返回值： void<br>
     * 异常：
     */
    //public void onGetMapLayersData(boolean isSuccess, int errorCode, String errMsg, List<LayersMap> layersMaps);


    /**
     *
     * 方法名：获取当前手机的绑定状态<br>
     * 功能：返回结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;  bind_status: 0[未绑定],1[已绑定],2[绑定错误]
     * 返回值： void<br>
     * 异常：
     */
    public void onCheckPdaBind(boolean isSuccess, int errorCode, String errMsg, int bind_status);

    /**
     *
     * 方法名：绑定手机的返回状态<br>
     * 功能：返回结果<br>
     * 参数： isSuccess,是否成功;errorCode 错误码  ;errMsg:错误提示语;
     * 返回值： void<br>
     * 异常：
     */
    public void onPdaDeviceBinded(boolean isSuccess, int errorCode, String errMsg);

    /**
     * 获取用户gisToken
     * */
    public void onGetUserGisToken(boolean isSuccess, int errorCode, String errMsg, String gisToken);
}
