package com.jiuqi.mobile.nigo.comeclose.manager.master;
import java.util.List;
import com.jiuqi.mobile.nigo.comeclose.bean.LoadOnGetList;
import com.jiuqi.mobile.nigo.comeclose.bean.app.collect.DealerServiceBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.collect.DrivingSchoolServiceBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.collect.GasStationServiceBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.collect.IntermediaryServiceBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.collect.PlantServiceBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.collect.RepairServiceBean;
import com.jiuqi.mobile.nigo.comeclose.bean.app.coop.CooperativeBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.PerfectInfoBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.UserBean;
import com.jiuqi.mobile.nigo.comeclose.bean.base.UserCountBean;
import com.jiuqi.mobile.nigo.comeclose.bean.master.DriverBean;
import com.jiuqi.mobile.nigo.comeclose.bean.master.OperateBean;
import com.jiuqi.mobile.nigo.comeclose.bean.master.OrganizationBean;
import com.jiuqi.mobile.nigo.comeclose.exception.NiGoException;
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
*
*/
@PortalAnnotation(implClass = "com.jiuqi.mobile.nigo.biz.master.manager.UserManagerImpl")
@ManagerAnnotation(implClass = "com.jiuqi.mobile.nigo.biz.master.manager.UserManagerImpl")
public interface IUserManager {
/**
* 通过手机号码查找用户
*
* @param mobileNumber
* @return
*/
UserBean findByUserMobile(String mobileNumber);
/**
* 通过帐号查找用户
*
* @param account
* @return
*/
@PortalMethodAnnctation
UserBean findByAccount(String account);
/**
* 根据电话号码和角色,判断新增的账号是否存在,并同时判断该角色下是否存在该电话号码
*
* @Title: findByTelephoneAndRoleCode
* @param @param telephone
* @param @param roleCode
* @param @return
* @return UserBean 返回类型
*/
UserBean findByTelephoneAndRoleCode(String telephone, int roleCode);
/**
* 根据账号和角色判断系统中是否已经存在
*
* @方法描述: <br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.master.IUserManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2014-12-4上午11:12:52 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:UserBean<br/>
* @param account
* @param roleCode
* @return
*/
UserBean findByAccountAndRoleCode(String account, int roleCode);
/**
* 通过账号和角色获取简单的userBean(userBean中仅有account、userName、mobileNumber、state等简单数据,
* 用于节省userBean的生成时间,如需其他简单属性,可继续添加)
*
* @方法描述:<br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.master.IUserManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2014-12-18上午9:23:24 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:UserBean<br/>
* @param account
* @param roleCode
* @return
*/
UserBean findSimpleUserByAccountAndRoleCode(String account, int roleCode);
/**
*
* @方法描述:根据账号判断员工是否存在 <br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.master.IUserManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2014-12-16上午10:15:01 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:UserBean<br/>
* @param account
* @return
*/
UserBean findEmployeeByAccount(String account);
/**
* 完善用户资料
*
* @param userImpl
* (如,DriverBean...)
* @return
* @throws NiGoException
*/
<T extends UserBean> boolean improveUserInfo(T userImpl)
throws NiGoException;
/**
* 完善用户资料(合作社专用)
*
* @param userImpl
* {@link OrganizationBean}
* @param cooper
* 合作社扩展信息对象
* @return
* @throws NiGoException
*/
boolean improveUserInfo(OrganizationBean org, CooperativeBean cooper)
throws NiGoException;
// /**
// * 完善用户资料(组织机构专用)
// * @param org {@link OrganizationBean}
// * @param orgInfo 组织机构扩展信息对象
// * @return
// * @throws NiGoException
// */
// boolean improveUserInfo(OrganizationBean org, OrganizeBean orgInfo)
// throws NiGoException;
// ============old============
/**
* 创建机手用户 20130809 修改至 IDriverManager
*
* @param driver
* @throws NiGoException
*/
@Deprecated
void create(DriverBean driver) throws NiGoException;
/**
* 创建用户
*
* @param User
* @throws NiGoException
*/
void create(UserBean User) throws NiGoException;
/**
* 创建操作员 20130809 修改至 IOrganizationManger.put
*
* @param operate
* @throws NiGoException
*/
@Deprecated
void create(OperateBean operate) throws NiGoException;
/**
* 删除机手用户(通过用户Guid)
*
* @param driver
* @throws NiGoException
*/
void delete(String userGuid) throws NiGoException;
/**
* 修改机手用户信息 20130809 修改至 IDriverManger
*
* @param driver
* @throws NiGoException
*/
@Deprecated
void update(DriverBean driver) throws NiGoException;
// /**
// * 修改管理员
// * @param organize
// * @throws NiGoException
// */
// void update(OrganizeBean organize) throws NiGoException;
/**
* 修改操作员 20130809 修改至 IOrganizationManger.put
*
* @param operate
* @throws NiGoException
*/
@Deprecated
void update(OperateBean operate) throws NiGoException;
/**
* 经销商 20130809 修改至 IServiceCollectManger
*
* @param dealer
* @throws NiGoException
*/
@Deprecated
void create(DealerServiceBean dealer) throws NiGoException;
/**
* 驾校 20130809 修改至 IServiceCollectManger
*
* @param school
* @throws NiGoException
*/
@Deprecated
void create(DrivingSchoolServiceBean school) throws NiGoException;
/**
* 加油站
* <p>
* 20130809 修改至 IServiceCollectManger
*
* @param gasStation
* @throws NiGoException
*/
@Deprecated
void create(GasStationServiceBean gasStation) throws NiGoException;
/**
* 中介服务机构
* <p>
* 20130809 修改至 IServiceCollectManger
*
* @param intermediary
* @throws NiGoException
*/
@Deprecated
void create(IntermediaryServiceBean intermediary) throws NiGoException;
/**
* 农业种植机构
* <p>
* 20130809 修改至 IServiceCollectManger
*
* @param plant
* @throws NiGoException
*/
@Deprecated
void create(PlantServiceBean plant) throws NiGoException;
/**
* 修理站
* <p>
* 20130809 修改至 IServiceCollectManger
*
* @param repair
* @throws NiGoException
*/
@Deprecated
void create(RepairServiceBean repair) throws NiGoException;
/**
* 经销商
* <p>
* 20130809 修改至 IServiceCollectManger
*
* @param dealer
* @throws NiGoException
*/
@Deprecated
void update(DealerServiceBean dealer) throws NiGoException;
/**
* 驾校
* <p>
* 20130809 修改至 IServiceCollectManger
*
* @param school
* @throws NiGoException
*/
@Deprecated
void update(DrivingSchoolServiceBean school) throws NiGoException;
/**
* 加油站
* <p>
* 20130809 修改至 IServiceCollectManger
*
* @param gasStation
* @throws NiGoException
*/
@Deprecated
void update(GasStationServiceBean gasStation) throws NiGoException;
/**
* 中介所
* <p>
* 20130809 修改至 IServiceCollectManger
*
* @param intermediary
* @throws NiGoException
*/
@Deprecated
void update(IntermediaryServiceBean intermediary) throws NiGoException;
/**
* 农业种植
* <p>
* 20130809 修改至 IServiceCollectManger
*
* @param plant
* @throws NiGoException
*/
@Deprecated
void update(PlantServiceBean plant) throws NiGoException;
/**
* 修理站
* <p>
* 20130809 修改至 IServiceCollectManger
*
* @param repair
* @throws NiGoException
*/
@Deprecated
void update(RepairServiceBean repair) throws NiGoException;
// =============service end
/**
* 用户激活
*
* @param userGuid
* @throws NiGoException
*/
void activate(String userGuid) throws NiGoException;
/**
* 用户激活
*
* @param mobileNumber
* @throws NiGoException
*/
void activateByMobileNumber(String mobileNumber) throws NiGoException;
/**
* 用户关闭
*
* @param userGuid
* @throws NiGoException
*/
void close(String userGuid) throws NiGoException;
/**
* 用户关闭
*
* @param mobileNumber
* @throws NiGoException
*/
void closeByMobileNumber(String mobileNumber) throws NiGoException;
/**
* 后台用户管理使用
*
* @auth lizh
* @Date 2013-11-7下午2:25:51
* @method get
* @fileName IUserManager
* @package com.jiuqi.mobile.nigo.comeclose.manager.master
* @project comeclose
* @param key
* @return
* @return LoadOnGetList<UserBean>
*/
LoadOnGetList<UserBean> get(SelectUserKey key);
// =============query
/**
* <p>
* 20130809 请到具体的Manager中进行查询
*
* @param userImplClass
* @param userGuid
* @return
*/
@Deprecated
<T extends UserBean> T find(Class<T> userImplClass, String userGuid);
/**
* <p>
* 20130809 请到具体的Manager中进行查询
*
* @param userImplClass
* @param mobileNumber
* @return
*/
@Deprecated
<T extends UserBean> T findByMobileNumber(Class<T> userImplClass,
String mobileNumber);
/**
* <p>
* 20130809 请到具体的Manager中进行查询
*
* @param userImplClass
* @param account
* @return
*/
@Deprecated
<T extends UserBean> T findByAccount(Class<T> userImplClass, String account);
/**
* 获得直属组织结构的指定用户类别的用户列表(直属)
* <p>
* 20130809 请到具体的Manager中进行查询
*
* @param userImplClass
* 用户实例类(如:机手、机主对象就是DriverBean.class)
* @param orgId
* 组织机构ID
* @return
*/
@Deprecated
<T extends UserBean> T[] getUsersByOrg(Class<T> userImplClass, String orgId);
// 20130726 ADD
/**
* 获得直属组织结构的指定用户类别的用户列表(直属)(可按用户名称模糊查询)
* <p>
* 20130809 转移至IDriverManger
*
* @param username
* 用户名称
* @param orgId
* 组织机构ID
* @return
*/
@Deprecated
DriverBean[] searchDriversByOrg(String username, String orgGuid);
/**
* 获得直属组织结构的指定用户类别的用户列表(直属)(可按用户名称模糊查询)
* <p>
* 20130809 转移至IOrganizationManger
*
* @param username
* 用户名称
* @param orgId
* 组织机构ID
* @return
*/
@Deprecated
CooperativeBean[] searchCooperativesByOrg(String username, String orgGuid);
/**
* 查询用户信息
*
* @param guid
* @return
*/
UserBean findSimpleUser(String guid);
/**
* @Title: resetPassWord
* @Description: 重置密码
* @param @param u
* @param @param pwd
* @param @return 设定文件
* @return boolean 返回类型
* @throws
*/
@PortalMethodAnnctation
boolean resetPassWord(UserBean u, String pwd);
/**
* @Title: findUserByRoleAndArea
* @Description: 根据行政区划code匹配位数。角色code查询用户信息
* @param @param area 行政区划code
* @param @param code 角色code
* @param @param wei 行政区划code匹配位数
* @param @return 设定文件
* @return List<UserBean> 返回类型
* @throws
*/
List<UserBean> findUserByRoleAndArea(long area, int code, int wei);
/**
* @Title: updateOperator
* @Description: 修改用户信息
* @param @param u
* @param @return 设定文件
* @return boolean 返回类型
* @throws
*/
boolean updateOperator(UserBean u);
/**
* 获取下级农机局
*
* @auth lizh
* @Date 2014-5-22下午2:19:10
* @method findAdminByArea
* @fileName IUserManager
* @package com.jiuqi.mobile.nigo.comeclose.manager.master
* @project comeclose
* @param area
* @param code
* @param wei
* @return
* @return List<UserBean>
*/
List<UserBean> findAdminByArea(long area, int wei);
/**
* 查询“错误代码102”的定位信息
*/
@PortalMethodAnnctation
void findByContent();
/**
* 按省市县统计各个角色用户量
*
* @param key
* @return
*/
List<UserCountBean> getUserCount(SelectUserCountKey key);
/**
* 获取用户,用于推送天气预报
*
* @return
*/
@PortalMethodAnnctation
List<UserBean> findUserBeans();
/**
* @Title: updateUser
* @Description:修改用户信息,完善资料
* @param @param userBean
* @param @return 设定文件
* @return boolean 返回类型
* @throws
*/
boolean updateUser(UserBean userBean) throws NiGoException;
/**
* @Title: updateSubsidiaryTable
* @Description:完善附属表信息。修改后的登录注册方案使用
* @param @param perfectInfoBean
* @param @return 设定文件
* @return String 返回类型
* @throws
*/
boolean updateSubsidiaryTable(PerfectInfoBean perfectInfoBean,
UserBean userBean, String... sessionId);
/**
* @Title: getPerfectInfoBeanByUserBean
* @Description:根据userBean中角色+guid获取 完善信息bean
* @param @param userBean
* @param @return 设定文件
* @return PerfectInfoBean 返回类型
* @throws
*/
PerfectInfoBean getPerfectInfoBeanByUserBean(UserBean userBean);
/**
* @Title: savaPerfectInfo
* @Description: 基础信息设置,保存修改信息
* @param @param perfectInfoBean
* @param @param userBean 设定文件
* @return void 返回类型
* @throws
*/
boolean savaPerfectInfo(PerfectInfoBean perfectInfoBean, UserBean userBean,
String... sessionId);
/**
* 根据行政区划查询农机局信息(返回值仅有guid和userName,用于安徽短信快速查询)
*
* @方法描述: <br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.master.IUserManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2015-1-20下午4:14:28 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:List<UserBean><br/>
* @param code
* @return
*/
List<UserBean> findByAreaCodeAndRoleCode(Long code);
@PortalMethodAnnctation
UserBean findByGuid(String guid);
/**
*
* @方法描述:修改用户头像 <br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.master.IUserManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2015-2-6下午1:51:23 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:int<br/>
* @param path
* @param userGuid
* @return
* @throws NiGoException
*/
@PortalMethodAnnctation
int updateUserImage(String path, String userGuid) throws NiGoException;
/**
*
* @方法描述: 重置密码<br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.master.IUserManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2015-3-12下午4:21:11 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:int<br/>
* @param account
* @param password
* @return
* @throws NiGoException
*/
int resetPasswordNew(String account, String password) throws NiGoException;
/**
*
* @方法描述:快速查询用户账号密码 <br/>
* @项目名称:comeclose<br/>
* @类路径:com.jiuqi.mobile.nigo.comeclose.manager.master.IUserManager.java<br/>
* @版权所有(c):JOIN-CHEER <br/>
* @作者:xuzhe <br/>
* @创建时间:2015-5-18下午4:40:24 <br/>
* @修改时间:<br/>
* @修改备注: <br/>
* @返回类型:List<List<String>><br/>
* @param fast
* @return
*/
List<List<String>> findByAccountFast(String fast);
}