UserToolObject.java 2.93 KB
package com.xiniunet.web.tool;

import com.xiniunet.framework.util.SettingUtil;
import com.xiniunet.framework.util.SpringContext;
import com.xiniunet.framework.util.auth.ExtUser;
import com.xiniunet.framework.util.auth.LocalData;
import com.xiniunet.master.domain.system.User;
import com.xiniunet.master.request.system.UserGetRequest;
import com.xiniunet.master.response.system.UserGetResponse;
import com.xiniunet.web.helper.MasterHelper;

import java.io.Serializable;
import java.util.List;


/**
 *
 * Created on 2014/09/15.
 * @author 沈振家
 * @version 0.1.0
 */
public class UserToolObject implements Serializable {
    private static final long serialVersionUID = -7507510429755782597L;

    private static String baseUrl;

    /**
     * 从Spring中取得可以获得仓库对象的工具类
     */
    private static final MasterHelper masterHelper =
            (MasterHelper) SpringContext.getApplicationContext().getBean(MasterHelper.class);

    //---------------------系统管理相关工具----------------
	/**
	 * 通过用户ID获取用户名
	 * @param userId
	 * @return
	 */
    public static String getUserName(Long userId) {
	    UserGetRequest request = new UserGetRequest();
	    request.setId(userId);
        UserGetResponse response = masterHelper.getUser(request, LocalData.getCurrentPassport());
        if (response.hasError()) {
            return "";
        }
        return response.getUser().getName();
    }

	/**
	 * 通过用户ID获取用户信息
	 * @param userId
	 * @return
	 */
    public static User getUser(Long userId) {
        UserGetRequest userGetRequest = new UserGetRequest();
        userGetRequest.setId(userId);

        UserGetResponse response = masterHelper.getUser(userGetRequest, LocalData.getCurrentPassport());
        return response.getUser();
    }

    public static boolean hasAnyFunction(String ...functionCodeList){
        ExtUser extUser = LocalData.getCurrentUser();
        if(extUser.getUserId().equals(LocalData.getCurrentPassport().getOwnerId()) ||
                extUser.getUserId().equals(LocalData.getCurrentPassport().getAdminId())) {
            // 如果是管理员,检查护照信息
            return true;
        }

        List<String> functionList = extUser.getFunctionList();
        for(String functionCode : functionCodeList) {

            for(String code : functionList) {
                if(code.toLowerCase().equals(functionCode.toLowerCase())) {
                    return true;
                }
            }
        }
        return false;
    }

    public static String getBaseUrl(){
        if (baseUrl == null){
            if (SettingUtil.getProperty("","deploy.mode").equals("development")){
                baseUrl = SettingUtil.getProperty("","site.dev.baseurl");
            } else {
                baseUrl = SettingUtil.getProperty("","site.pro.baseurl");
            }
        }
        return baseUrl;
    }

    @Override
    public String toString() {
        return "";
    }
}