All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.rt.web.beans.WebBean Maven / Gradle / Ivy

There is a newer version: 1.1.17
Show newest version
package com.rt.web.beans;

import com.json.JSONArray;
import com.json.JSONObject;
import com.rt.core.util.RTUtil;
import com.rt.logic.beans.LogicBean;

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

/**
 * 业务层业务逻辑传递数据封装
 *
 * @author msc
 */
public class WebBean extends LogicBean {

    /**
     * 默认构造
     */
    public WebBean() {
    }

    /**
     * 通过json字符串构造
     *
     * @param string json string
     * @throws Exception json exception
     */
    public WebBean(String string) throws Exception {
        super(string);
    }

    /**
     * 通过Map构造
     *
     * @param map {@link Map}
     */
    public WebBean(Map map) {
        super(map);
    }

    /**
     * 构造函数
     *
     * @param code    message code
     * @param message message
     * @param data    data
     */
    public WebBean(String code, String message, Serializable data) {
        setCode(code);
        setMessage(message);
        setData(data);
    }

    /**
     * 构造函数
     *
     * @param code    message code
     * @param message message
     */
    public WebBean(String code, String message) {
        this(code, message, null);
    }

    /**
     * 构造函数
     *
     * @param data result data
     */
    public WebBean(Serializable data) {
        this(SUCCESS, SUCCESS_STR, data);
    }

    /**
     * 是否已经登录
     *
     * @return boolean
     */
    public boolean isLogin() {
        return getUserInfo() != null;
    }

    /**
     * 获取登录用户id
     *
     * @return String
     */
    public String getUserId() {
        UserInfo userInfo = getUserInfo();
        if (userInfo == null) {
            return null;
        }
        return userInfo.getId();
    }

    /**
     * 获取登录用户信息
     *
     * @return UserInfo
     */
    public UserInfo getUserInfo() {
        return (UserInfo) get("userInfo");
    }

    /**
     * 设置登录用户信息
     *
     * @param userInfo {@link UserInfo}
     */
    public void setUserInfo(UserInfo userInfo) {
        if (userInfo == null) {
            return;
        }
        put("userInfo", userInfo);
    }

    /**
     * ip request client ip
     *
     * @return String
     */
    public String getIp() {
        return getResultParam("ip");
    }

    /**
     * ip
     *
     * @param ip request client ip
     */
    public void setIp(String ip) {
        putResultParam("ip", ip);
    }

    /**
     * 服务器主地址
     *
     * @return String
     */
    public String getAgentHost() {
        return getResultParam("agentHost");
    }

    /**
     * 获取时区
     *
     * @return String like +0000
     */
    public String getTimeZone() {
        return getString("timeZone", "+0000");
    }

    /**
     * 设置时区
     *
     * @param timeZone like +0000
     */
    public void setTimeZone(String timeZone) {
        put("timeZone", timeZone);
    }

    /**
     * 服务器主地址
     *
     * @param agentHost 代理服务器
     */
    public void setAgentHost(String agentHost) {
        putResultParam("agentHost", agentHost);
    }

    /**
     * 远程请求地址
     *
     * @return String
     */
    public String getRemoteUrl() {
        return getResultParam("remoteUrl");
    }

    /**
     * 远程请求地址
     *
     * @param remoteUrl 远程主机地址
     */
    public void setRemoteUrl(String remoteUrl) {
        putResultParam("remoteUrl", remoteUrl);
    }

    /**
     * sessionId
     *
     * @return String
     */
    public String getSessionId() {
        return getResultParam("sessionId");
    }

    /**
     * sessionId
     *
     * @param sessionId session id
     */
    public void setSessionId(String sessionId) {
        putResultParam("sessionId", sessionId);
    }

    /**
     * 文件对象
     *
     * @param  object
     * @return T object
     */
    public  T getFile() {
        Map map = getFileMap();
        for (Object o : map.values()) {
            List list = (List) o;
            if (list != null && list.size() > 0) {
                return (T) list.get(0);
            }
        }
        return null;
    }

    /**
     * 文件对象
     *
     * @param name name
     * @param   object
     * @return T object
     */
    public  T getFile(String name) {
        List list = getFileArray(name);
        if (list == null || list.isEmpty()) {
            return null;
        }
        return (T) list.get(0);
    }

    /**
     * 设置文件对象
     *
     * @param name name
     * @param item item
     */
    public void setFile(String name, Object item) {
        List fileItem = new JSONArray();
        fileItem.add(item);
        getFileMap().put(name, fileItem);
    }

    /**
     * 获取文件列表
     *
     * @param name name
     * @return List
     */
    public List getFileArray(String name) {
        return (List) getFileMap().get(name);
    }

    /**
     * 添加文件
     *
     * @param name name
     * @param item item
     */
    public void addFile(String name, Object item) {
        List array = (List) getFileMap().get(name);
        if (array != null) {
            array.add(item);
        }
    }

    public void removeFile(String name, int index) {
        List array = (List) getFileMap().get(name);
        if (array == null || array.isEmpty() || index >= array.size()) {
            return;
        }
        array.remove(index);
        getFileMap().put(name, array);
    }

    /**
     * 添加文件
     *
     * @param name name
     * @param file file
     */
    public void putFile(String name, Object file) {
        List list = getFileArray(name);
        if (list == null) {
            list = new JSONArray();
            getFileMap().put(name, list);
        }
        list.add(file);
    }

    /**
     * 添加文件列表
     *
     * @param name  name
     * @param files List
     */
    public void putFiles(String name, List files) {
        getFileMap().put(name, files);
    }

    /**
     * 获取所有文件
     *
     * @return Map
     */
    public Map getFileMap() {
        Map map = (Map) get("fileArray");
        if (map == null) {
            map = new JSONObject();
            put("fileArray", map);
        }
        return map;
    }

    /**
     * 获取请求参数对象值
     *
     * @param name name
     * @return JSONArray
     */
    public JSONArray getParamArray(String name) {
        JSONArray array = getParam().getJSONArray(name, false);
        // 注意这里的写法,如果为空,有可能值只传入了一个,但是业务上需要是个array.
        // 所以需要构造成
        if (array.isEmpty()) {
            String value = getParam(name);
            // 注意:不要删除这个为空判断,可能是前台需要一个空值.
            if (RTUtil.isEmpty(value)) {
                getParam().put(name, RTUtil.EMPTY);
            } else {
                array.add(value);
            }
        }
        return array;
    }

    /**
     * 查询实体
     *
     * @return the queryEntity
     */
    public String getQueryEntity() {
        return getParam("queryEntity");
    }

    /**
     * 查询实体
     *
     * @param className the queryEntity
     */
    public void setQueryEntity(String className) {
        putParam("queryEntity", className);
    }

    /**
     * json格式返回
     *
     * @param json set return data type is json
     */
    public void setReturnJSON(boolean json) {
        if (json) {
            putParam("dt", "json");
        } else {
            putParam("dt", "");
        }
    }

    /**
     * json格式返回
     *
     * @return boolean is return json data type
     */
    public boolean isReturnJSON() {
        return RTUtil.contains(getParam("dt"), "json");
    }

    /**
     * 文件格式返回
     *
     * @return boolean is return file data type
     */
    public boolean isReturnFile() {
        return RTUtil.contains(getParam("dt"), "file");
    }

    /**
     * file格式返回
     *
     * @param isFile set return file data type
     */
    public void setReturnFile(boolean isFile) {
        if (isFile) {
            putParam("dt", "file");
        } else {
            putParam("dt", "");
        }
    }

    /**
     * Stream返回
     *
     * @return boolean  is return byte[] stream data type
     */
    public boolean isReturnStream() {
        return RTUtil.contains(getParam("dt"), "stream");
    }

    /**
     * Stream返回
     *
     * @param isStream set return byte[] stream data type
     */
    public void setReturnStream(boolean isStream) {
        if (isStream) {
            putParam("dt", "stream");
        } else {
            putParam("dt", "");
        }
    }

    /**
     * 获取数据size
     *
     * @return int
     */
    public int getDataSize() {
        Object data = getData();
        if (data instanceof List) {
            List list = (List) data;
            return list.size();
        } else if (data instanceof Map) {
            Map map = (Map) data;
            return map.size();
        }
        return 0;
    }

    /**
     * 添加数据对象到data
     *
     * @param value Serializable
     */
    public void addDataItem(Serializable value) {
        List data = getListData();
        if (data == null) {
            data = new JSONArray();
            setData(data);
        }
        data.add(value);
    }

    /**
     * 添加数据对象到data
     * * 注意:如果原data属性不是map类型,原有data属性数据将被清除,重新实例化新Map实例,并装载新数据.
     *
     * @param key   key
     * @param value Serializable
     */
    public void putDataItem(String key, Serializable value) {
        getMapData().put(key, value);
    }

    /**
     * 请求参数中是否有某个属性
     *
     * @param id param id
     * @return boolean has param
     */
    public boolean hasParam(String id) {
        return getParam().has(id);
    }

    /**
     * 不需要count查询
     *
     * @return boolean
     */
    public boolean isNoCount() {
        return !hasParam("maxrow") || getMaxRow() == 0;
    }

    /**
     * 不需要count查询
     */
    public void setNoCount() {
        setMaxRow(0);
    }

    /**
     * 初始化分页信息
     *
     * @return PageInfo
     */
    public PageInfo initPageInfo() {
        PageInfo pageInfo = getPageInfo();
        if (pageInfo == null) {
            pageInfo = new PageInfo();
            put(PageInfo.ID, pageInfo);
        }
        // 计算分页
        pageInfo.computePage(getStartRow(), getMaxRow(), getTotalRow());
        return pageInfo;
    }

    /**
     * 分页信息
     *
     * @return the pageInfo
     */
    public PageInfo getPageInfo() {
        return (PageInfo) getJSONObject(PageInfo.ID);
    }

    /**
     * 总记录数
     *
     * @return the totalRow
     */
    public long getTotalRow() {
        return getResultParam().getlong("totalRow");
    }

    /**
     * 总记录数
     *
     * @param totalRow the totalRow to set
     */
    public void setTotalRow(long totalRow) {
        getResultParam().put("totalRow", totalRow);
    }

    /**
     * 最多返回记录数
     *
     * @return the maxRow
     */
    public long getMaxRow() {
        return getParam().getlong("maxRow");
    }

    /**
     * 最多返回记录
     *
     * @param maxRow the maxRow to set
     */
    public void setMaxRow(long maxRow) {
        getParam().put("maxRow", maxRow);
    }

    /**
     * 开始记录数
     *
     * @return the startRow
     */
    public long getStartRow() {
        return getParam().getlong("startRow");
    }

    /**
     * 开始记录数
     *
     * @param startRow the startRow to set
     */
    public void setStartRow(long startRow) {
        getParam().put("startRow", startRow);
    }

    /**
     * 清理所有请求参数
     */
    public void clearParam() {
        remove("param");
        clearMultipartData();
    }

    /**
     * 清理附件数据
     */
    public void clearMultipartData() {
        remove("fileArray");
    }

    /**
     * 清理数据
     */
    public void clearData() {
        remove("data");
        remove("pageInfo");
        clearMultipartData();
    }

    /**
     * 清理用户数据
     */
    public void clearUserInfo() {
        remove("userInfo");
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy