GetUsersInfoUtil.java 6.48 KB
package com.util;

import com.model.AlarmGroup;
import com.model.User;
import com.monitor.mysql.mapper.AlarmGroupMapper;
import com.monitor.mysql.mapper.UserMapper;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 根据相关信息获取用户的详情
 * @author hui.xu
 *
 */
@Component
public class GetUsersInfoUtil {
	/**
	 * 日志接口
	 */
	private Logger logger = LoggerFactory.getLogger(getClass());
	
	@Autowired
	AlarmGroupMapper alarmGroupMapper;
    
    @Autowired
    UserMapper userMapper;
    
	/**
	 * 任务管理里绑定的报警组
     * 根据报警组的id获取用户的登录名获取用户的手机号
     * @param id 报警组id
     * @return
     */
    public String getMobileByAlarmGroup(int id){
    	try{
    		AlarmGroup alarmGroup = alarmGroupMapper.queryById(id);
    		if(alarmGroup == null){
    			return null;
    		}
    		String usersName = alarmGroup.getUsersName();
    		if(StringUtils.isBlank(usersName)){
    			logger.error(" - BaseHandler - getMobileByAlarmGroup - user is empty");
    			return null;
    		}
    		String []listUser = StringUtils.split(usersName,',');
    		if((listUser == null) || (listUser.length == 0)){
    			return null;
    		}
    		String []names = new String[listUser.length];
    		for (int i = 0; i < listUser.length; i++) {
				String string = listUser[i];
				if(StringUtils.isBlank(string)){
					continue;
				}
				names[i] = string;		
			}
    		if((null == names) || (names.length == 0)){
    			return null;
    		}
    		List<User> users = userMapper.selectByNames(names);
    		if(CollectionUtils.isEmpty(users)){
    			return null;
    		}
    		if(users.size() != listUser.length){
    			logger.error(" - BaseHandler - getMobileByAlarmGroup - The number of inconsistent - alarmGroup id is:" + id);
    		}
    		String mobiles = "";
    		int index = users.size() - 1;
    		for (int i = 0; i < users.size(); i++) {
    			User user = users.get(i);
    			if(index == i){
    				mobiles += user.getMobile();
				}else{
					mobiles += user.getMobile() + ",";
				}	
			}
    		return mobiles;
    	}catch(Exception e){
    		logger.error(" - BaseHandler - getMobileByAlarmGroup - error", e);
    	}
    	
    	return null;
    }
    
    /**
	 * 其余所有查询
     * 根据报警组的组名获取用户的登录名获取用户的手机号
     * @param groupName 报警组的名称,肯定是唯一的
     * @return
     */
    public String getMobileByAlarmGroup(String groupName){
    	try{
    		AlarmGroup alarmGroup = alarmGroupMapper.queryByContantsName(groupName);
    		if(alarmGroup == null){
    			return null;
    		}
    		String usersName = alarmGroup.getUsersName();
    		if(StringUtils.isBlank(usersName)){
    			logger.error(" - BaseHandler - getMobileByAlarmGroup - user is empty");
    			return null;
    		}
    		String []listUser = StringUtils.split(usersName,',');
    		if((listUser == null) || (listUser.length == 0)){
    			return null;
    		}
    		String []names = new String[listUser.length];
    		for (int i = 0; i < listUser.length; i++) {
				String string = listUser[i];
				if(StringUtils.isBlank(string)){
					continue;
				}
				names[i] = string;		
			}
    		if((null == names) || (names.length == 0)){
    			return null;
    		}
    		List<User> users = userMapper.selectByNames(names);
    		if(CollectionUtils.isEmpty(users)){
    			return null;
    		}
    		if(users.size() != listUser.length){
    			logger.error(" - BaseHandler - getMobileByAlarmGroup - The number of inconsistent - alarmGroup groupName is:" + groupName);
    		}
    		String mobiles = "";
    		int index = users.size() - 1;
    		for (int i = 0; i < users.size(); i++) {
    			User user = users.get(i);
    			if(index == i){
    				mobiles += user.getMobile();
				}else{
					mobiles += user.getMobile() + ",";
				}	
			}
    		return mobiles;
    	}catch(Exception e){
    		logger.error(" - BaseHandler - getMobileByAlarmGroup - error", e);
    	}
    	return null;
    }

	/**
	 * 其余所有查询
	 * 根据报警组的组名获取用户的登录名获取用户的邮箱
	 * @param groupName 报警组的名称,肯定是唯一的
	 * @return
	 */
	public String getEmailByAlarmGroup(String groupName){
		try{
			AlarmGroup alarmGroup = alarmGroupMapper.queryByContantsName(groupName);
			if(alarmGroup == null){
				return null;
			}
			String usersName = alarmGroup.getUsersName();
			if(StringUtils.isBlank(usersName)){
				logger.error(" - BaseHandler - getMobileByAlarmGroup - user is empty");
				return null;
			}
			String []listUser = StringUtils.split(usersName,',');
			if((listUser == null) || (listUser.length == 0)){
				return null;
			}
			String []names = new String[listUser.length];
			for (int i = 0; i < listUser.length; i++) {
				String string = listUser[i];
				if(StringUtils.isBlank(string)){
					continue;
				}
				names[i] = string;
			}
			if((null == names) || (names.length == 0)){
				return null;
			}
			List<User> users = userMapper.selectByNames(names);
			if(CollectionUtils.isEmpty(users)){
				return null;
			}
			if(users.size() != listUser.length){
				logger.error(" - BaseHandler - getEmailByAlarmGroup - The number of inconsistent - alarmGroup groupName is:" + groupName);
			}
			String email = "";
			int index = users.size() - 1;
			for (int i = 0; i < users.size(); i++) {
				User user = users.get(i);
				if(index == i){
					email += user.getEmail();
				}else{
					email += user.getEmail() + ",";
				}
			}
			return email;
		}catch(Exception e){
			logger.error(" - BaseHandler - getEmailByAlarmGroup - error", e);
		}

		return null;
	}


	public String getMobileByEmailList(List<String> userEmailList){
		try{
			if(userEmailList==null||userEmailList.size()<=0){
				return null;
			}
			List<User> users = userMapper.selectByEmails(userEmailList.toArray(new String[userEmailList.size()]));
			if(CollectionUtils.isEmpty(users)){
				return null;
			}

			Set<String> mobileSet=new HashSet<>();
			for (int i = 0; i < users.size(); i++) {
				User user = users.get(i);
				if(StringUtils.isNotBlank(user.getMobile())){
					mobileSet.add(user.getMobile());
				}
			}
			return StringUtils.join(mobileSet,",");
		}catch(Exception e){
			logger.error(" - BaseHandler - getMobileByAlarmGroup - error", e);
		}

		return null;
	}
}