package com.jiuqi.mobile.nigo.comeclose.manager.base;
import java.sql.SQLException;
import com.jiuqi.mobile.nigo.comeclose.bean.base.UserBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.UserLoginLogBean;
import com.jiuqi.mobile.nigo.comeclose.bean.master.DriverBean;
import com.jiuqi.mobile.nigo.comeclose.bean.message.LoginMessageBean;
import com.jiuqi.mobile.nigo.comeclose.exception.LoginException;
import com.jiuqi.mobile.nigo.comeclose.exception.NiGoException;
import com.jiuqi.mobile.nigo.comeclose.exception.UserNotFoundException;
import com.jiuqi.mobile.nigo.comeclose.exception.UserOldPassWordErrorException;
import com.jiuqi.mobile.nigo.comeclose.manager.IManager;
import com.jiuqi.mobile.nigo.comeclose.manager.ManagerAnnotation;
import com.jiuqi.mobile.nigo.comeclose.portal.PortalAnnotation;
import com.jiuqi.mobile.nigo.comeclose.portal.PortalMethodAnnctation;
/**
* 用户登录注册
*
* @author modi
*
*/
@ManagerAnnotation(implClass = "com.jiuqi.mobile.nigo.biz.base.manager.LoginManagerImpl")
@PortalAnnotation(implClass = "com.jiuqi.mobile.nigo.biz.base.manager.LoginManagerImpl")
public interface ILoginManager extends IManager {
public static final String SystemPassword = "$@!2131*3287634#%-1209";
/**
* 通过用户GUID获取用户
*
* @param guid
* @return
*/
UserBean find(String guid);
/**
* 登录,成功返回一个Session ID
*
* @param userName
* @param password
* @return sessionId
* @throws NiGoException
*/
String login(String userName, String password) throws LoginException;
/**
* 获取当前登录用户
*
* @param sessionId
* @return
* @throws NiGoException
*/
@PortalMethodAnnctation
UserBean getUser(String sessionId) throws LoginException;
/**
* 退出(注销用户登录信息)
*
* @param sessionId
* @throws NiGoException
*/
@PortalMethodAnnctation
void loginOut(String sessionId, UserBean user, int ip);
// void register(UserBean user, String password) throws LoginException;
/**
* 用户注册
*
* @param userName
* @param mobileNumber
* @param password
* @param roleCode
* @throws LoginException
*/
@PortalMethodAnnctation
void register(String userName, String mobileNumber, String password,
int roleCode, String telephone, long code, String companyName)
throws LoginException;
@Deprecated
@PortalMethodAnnctation
void register(String userName, String mobileNumber, String password,
int roleCode) throws LoginException;
/**
* 激活
*
* @param bean
* @throws LoginException
*/
void activate(DriverBean bean) throws LoginException;
/**
* 查询当前用户历史登录信息
*
* @param sessionId
* @return
* @throws LoginException
*/
UserLoginLogBean getLoginLogs(String sessionId) throws LoginException;
// ==========20130722_ADD================
/**
* 修改用户密码
*
* @param userMobileNumberOrAccount
* @param oldPassword
* @param newPassword
*/
@Deprecated
void updatePassword(String userMobileNumberOrAccount, String oldPassword,
String newPassword) throws UserNotFoundException,
UserOldPassWordErrorException;
/**
* 个人设置中修改用户名,用户电话号码,用户账号,用户密码
*
* @param guid
* @param account
* @param coName
* @param cosim
* @param oldPassword
* @param newPassword
* @throws UserNotFoundException
* @throws UserOldPassWordErrorException
*/
String updateUser(String guid, String account, String coName, String cosim,
String oldPassword, String newPassword)
throws UserNotFoundException, UserOldPassWordErrorException;
/**
* @Title: updateUser
* @Description: 个人设置中修改用户名,用户账号,用户密码
* @param @param guid
* @param @param account
* @param @param coName
* @param @param oldPassword
* @param @param newPassword
* @param @return
* @param @throws UserNotFoundException
* @param @throws UserOldPassWordErrorException 设定文件
* @return String 返回类型
* @throws
*/
String updateUserNoMobile(String guid, String account, String coName,
String oldPassword, String newPassword)
throws UserNotFoundException, UserOldPassWordErrorException;
/**
* @Title: changePWD
* @Description: 密码修改,只修改密码<br/>
* 20141209
* @param @param userGuid
* @param @param oldPassword
* @param @param newPassword
* @param @return 设定文件
* @return String 返回类型
* @throws
*/
String changePWD(String userGuid, String oldPassword, String newPassword)
throws UserNotFoundException, UserOldPassWordErrorException;
/**
* 设置用户信息是否公开
*
* @param userGuid
* @param isPublicInfo
*/
void setPublicInfo(String userMobileNumberOrAccount, boolean isPublicInfo)
throws UserNotFoundException;
// void registerByAuto(String guid, String userName, String mobileNumber,
// int roleCode, AdminAreaBean adminArea) throws LoginException ;
/**
* 增加登录日志
*
* @param user
* @param ip
* @param flag
*/
void addLoginLog(UserBean user, String sessionId, int flag)
throws LoginException;
/**
* 查询账号是否存在
*/
@PortalMethodAnnctation
boolean accountIsExist(String account);
/**
* 登录时获取角色
*
* @param account
* @param password
* @return
*/
@PortalMethodAnnctation
int getRoleCode(String account, String password);
/**
* 根据guid,rolecode修改用户roleCode和userType信息
*
* @param code
* @param guid
* @return
*/
@PortalMethodAnnctation
int updateRole(int code, String guid);
/**
* @Title: findByAccount
* @Description: TODO(根据账户名称查询用户信息)
* @param @param account
* @param @return 设定文件
* @return UserBean 返回类型
* @throws
*/
@PortalMethodAnnctation
UserBean findByAccount(String account);
// /**
// * @Title: accountIsOrNotExist
// * @Description: 判断账号是否存在。修正登录注册流程使用 编写于 2014-10-29
// * @param @param account
// * @param @return 设定文件
// * @return UserBean 返回类型
// * @throws
// */
// @PortalMethodAnnctation
// UserBean accountIsOrNotExist(String account,String...strings);
//
// /**
// * @Title: regist
// * @Description: 一种注册方式:手机号码,验证码 编写于 2014-10-29
// * @param @param account 账号
// * @param @param valcode 验证码
// * @param @return 设定文件
// * @return Boolean 返回类型
// * @throws
// */
// @PortalMethodAnnctation
// String regist(String account,String valcode)throws NiGoException;
//
// /**
// * @Title: registOther
// * @Description: 其他方式注册,包含账号、密码、绑定手机号、验证码 编写于 2014-10-29
// * @param @param account
// * @param @param password
// * @param @param mobileNumber
// * @param @param verCode
// * @param @return 设定文件
// * @return Boolean 返回类型
// * @throws
// */
// @PortalMethodAnnctation
// String registOther(String account,String password,String mobileNumber,
// String verCode)throws NiGoException;
/**
* 整合用户模块信息
*
* @Title: madeUserModule
* @param @param user
* @return void 返回类型
* @throws SQLException
*/
void madeUserModule(UserBean user) throws SQLException;
/**
* 最新用户登录
*
* @Title: loginNew
* @param @param account
* @param @param password
* @param @return
* @return String 返回类型
*/
String loginNew(String account, String password);
/**
*
* @方法描述:客户端使用的登录接口 <br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.base.ILoginManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2015-4-20上午10:17:37 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:LoginMessageBean<br/>
* @param account
* @param password
* @return
* @throws NiGoException
*/
LoginMessageBean loginForClient(String account, String password) throws NiGoException;
}