/*
* 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.service.impl;
import java.util.List;
import net.duckling.cloudy.common.CommonUtils;
import cn.vlabs.umt.services.user.bean.LoginNameInfo;
import cn.vlabs.umt.services.user.bean.User;
import cn.vlabs.umt.services.user.dao.IUserLoginNameDAO;
import cn.vlabs.umt.services.user.service.IUserLoginNameService;
/**
* @author lvly
* @since 2013-3-4
*/
public class UserLoginNameService implements IUserLoginNameService{
private IUserLoginNameDAO loginNameDAO;
public UserLoginNameService(IUserLoginNameDAO loginNameDAO){
this.loginNameDAO=loginNameDAO;
}
@Override
public LoginNameInfo getALoginNameInfo(int uid, String loginName) {
return loginNameDAO.getALoginNameInfo(uid,loginName);
}
@Override
public List<LoginNameInfo> getLoginNameInfo(int uid, String type) {
return loginNameDAO.getLoginNameInfo(uid,type);
}
@Override
public void updateLoginName(int uid,String oldLoginName,String newLoginName) {
loginNameDAO.updateToLoginName(uid, oldLoginName, null);
loginNameDAO.updateLoginName(uid,oldLoginName, newLoginName);
}
@Override
public LoginNameInfo getLoginNameInfoById(int loginNameInfoId) {
return loginNameDAO.getLoginNameInfoById(loginNameInfoId);
}
@Override
public int createLoginName(String loginName, int uid, String type,String status) {
return loginNameDAO.createLoginName(loginName, uid, type,status);
}
@Override
public String getValidSecondaryEmailStr(int uid) {
StringBuffer result=new StringBuffer();
List<String> secondarys=loginNameDAO.getLoginNameInfos(uid, LoginNameInfo.LOGINNAME_TYPE_SECONDARY,LoginNameInfo.STATUS_ACTIVE);
for(String str:secondarys){
result.append(str).append(";");
}
return result.toString();
}
@Override
public void removeSecondaryEmail(int uid, String email) {
loginNameDAO.removeSecondaryLoginName(uid,email);
}
@Override
public void updateToLoginName(int uid, String oldLoginName, String newLoginName) {
loginNameDAO.updateToLoginName(uid,oldLoginName,newLoginName);
}
@Override
public void toActive(int loginInfoId) {
LoginNameInfo nameInfo=getLoginNameInfoById(loginInfoId);
loginNameDAO.toActive(loginInfoId);
loginNameDAO.removeSameTmpEmail(nameInfo.getLoginName());
}
@Override
public void toActive(int uid, String loginName, String type) {
loginNameDAO.toActive(uid,loginName,type);
loginNameDAO.removeSameTmpEmail(loginName);
}
@Override
public void removeLoginNameById(int loginNameInfoId) {
loginNameDAO.removeLoginName(loginNameInfoId);
}
@Override
public int getLoginNameId(int uid, String loginName, String type) {
return loginNameDAO.getLoginNameId(uid,loginName,type);
}
@Override
public boolean isUsedByMe(int uid,String loginName){
return loginNameDAO.isUsedByMe(uid,loginName);
}
@Override
public void removeLoginNamesByUid(int uid) {
loginNameDAO.removeLoginNamesByUid(new int[]{uid});
}
@Override
public boolean isUsed(String loginName) {
return loginNameDAO.isUsed(loginName);
}
@Override
public void removeLdapLoginName(int uid) {
loginNameDAO.removeLdapLoginName(uid);
}
@Override
public LoginNameInfo getLdapLoginName(int uid) {
return CommonUtils.first(getLoginNameInfo(uid, LoginNameInfo.LOGINNAME_TYPE_LDAP));
}
@Override
public User getUserByName(String loginName){
return loginNameDAO.getUserByLoginName(loginName);
}
}