/* * Copyright (c) 2008-2016 Computer Network Information Center (CNIC), Chinese Academy of Sciences. * * This file is part of Duckling project. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package cn.vlabs.umt.services.user.dao; import java.util.List; import cn.vlabs.umt.services.user.bean.LoginNameInfo; import cn.vlabs.umt.services.user.bean.User; /** * 用户登录名相关持久层 * @author lvly * @since 2013-2-27 */ public interface IUserLoginNameDAO { /**单纯的增加一条记录 * <br>请根据业务逻辑进行判断,是否应该插入 * @param loginName 登录名,可以是邮箱,也可以是手机号 * @param uid 用户id * @param type 类型,说明是手机,主账户,还是辅助账户 * @param status 状态,已激活,未激活等 参见LoginNameInfo.STATUS_XXX * @return generateId */ int createLoginName(String loginName,int uid,String type,String status); /** * 删除登录账户,主账户不可删,只能删除辅助账户,或者手机 * @param loginNameId 数据库主键 * @return none **/ void removeLoginName(int loginNameId); /** * 删除登录账号,删除辅助账号 * @param uid * @param email */ void removeSecondaryLoginName(int uid, String email); /** * 更新登录值 * @param uid 用户id * @param oldLoginName 旧账户 * @param newLoginName 新登录名 * @return boolean 是否成功更新 **/ boolean updateLoginName(int uid,String oldLoginName,String newloginName); /** * 根据登陆名获取用户信息 * @param loginName 登陆名 * @return 用户 * */ User getUserByLoginName(String loginName); /** * 查询该登录名是否被使用 * @param loginName * */ boolean isUsed(String loginName); /** * 批量查询登陆名是否已被使用 * @param loginName 登录名 * @return 返回已被使用的集合 * */ String[] isUsed(String[] loginName); /** * 获得一个用户的一类的所有登录名 * @param uid * @param type User.LOGINNAME_XXX * @param status LoginNameInfo.STATUS_XXX * @return */ List<String> getLoginNameInfos(int uid,String type,String status); /** * 设置已激活,但是提出更改请求的账户 * @param uid 用户id * @param oldLoginName 旧用户登录名 * @param newLoginName 新用户登录名,显示用 * */ void updateToLoginName(int uid,String oldLoginName,String newLoginName); /** * 获取用户登录名信息 * @param uid * @param type User.LOGINNAME_XXX * */ List<LoginNameInfo> getLoginNameInfo(int uid,String type); /** * 获取用户登录名信息 * @param loginNameInfoId umt_login_name 产生的id * */ LoginNameInfo getLoginNameInfoById(int loginNameInfoId); /** * 激活账户名 * @param uid 用户id * @param loginName 账户名 * @param type 类型 * */ void toActive(int uid,String loginName,String type); /** * 删除已有,未激活的邮箱 * @param email * **/ void removeSameTmpEmail(String email); /** * 激活账户名 * @param loginNameinfoId 主键 * */ void toActive(int loginInfoId); /** * @param uid * @param loginName * @return */ LoginNameInfo getALoginNameInfo(int uid, String loginName); /** * @param uid * @param loginName * @param type * @return */ int getLoginNameId(int uid, String loginName, String type); /** * @param uid * @param loginName * @return */ boolean isUsedByMe(int uid, String loginName); /** * @param uid */ void removeLoginNamesByUid(int[] uid); void removeLdapLoginName(int uid); List<LoginNameInfo> getLoginNameInfos(List<String> uids, String loginnameTypeLdap); }