package com.hzya.frame.sys.appApi.entity;

import java.util.Date;

import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.sys.sysenum.SysEnum;
import com.hzya.frame.uuid.UUIDUtils;
import com.hzya.frame.web.entity.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * @description: 应用api
 * @tableName: sys_app_api
 * @entityName: AppApi
 * @author: llg
 * @history: 1.0
 */
public class AppApi extends BaseEntity {


    private String id;
    /**
     * api从属系统
     */
    private String appId;
    /**
     * 中文名称
     */
    private String apiName;
    /**
     * api名称
     */
    private String apiCode;
    /**
     * api描述
     */
    private String apiRemark;
    /**
     * 是否需要登录 1、是 2、否
     */
    private String needLogin;
    /**
     * 认证接口
     */
    private String authenticationPort;
    /**
     * 传参方式 1、query 2、data
     */
    private String parameterPassingMode;
    /**
     * 允许访问入口 1、app 2、H5
     */
    private String enableAccessEntry;
    /**
     * 服务接入协议 1、HTTP 2、HTTPS
     */
    private String serviceAccessProtocol;
    /**
     * 目标地址
     */
    private String destinationAddress;
    /**
     * 请求编码 1、UTF-8
     */
    private String requestCoding;
    /**
     * 请求方法 1、POST 2、GET
     */
    private String requestMethod;
    /**
     * 超时时间 6000 ms
     */
    private String timeoutPeriod;
    /**
     * 限流 6000 ms
     */
    private String currentLimiting;
    /**
     * Header入参 JSON
     */
    private String headerIn;
    /**
     * Query入参 JSON
     */
    private String queryIn;
    /**
     * Body 入参类型 1、Application/json
     */
    private String bodyInType;
    /**
     * Body 入参 JSON
     */
    private String bodyIn;
    /**
     * Body 出参 JSON
     */
    private String bodyOut;
    /**
     * 排序
     */
    private Long sorts;
    /**
     * 创建人id
     */
    private String createUserId;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 修改人id
     */
    private String modifyUserId;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modifyTime;
    /**
     * 状态(Y正常N删除)
     */
    private String sts;
    /**
     * 组织机构ID
     */
    private String orgId;
    private String createUser;
    private String appName;


    /**
     * 应用id(应用表主键)
     */
    public void setAppId(String appId) {
        this.appId = appId;
    }

    /**
     * 应用id(应用表主键)
     */
    public String getAppId() {
        return appId;
    }

    /**
     * 接口名称
     */
    public void setApiName(String apiName) {
        this.apiName = apiName;
    }

    /**
     * 接口名称
     */
    public String getApiName() {
        return apiName;
    }

    /**
     * 接口编码
     */
    public void setApiCode(String apiCode) {
        this.apiCode = apiCode;
    }

    /**
     * 接口编码
     */
    public String getApiCode() {
        return apiCode;
    }

    /**
     * 允许访问入口 1、app 2、H5
     */
    public void setEnableAccessEntry(String enableAccessEntry) {
        this.enableAccessEntry = enableAccessEntry;
    }

    /**
     * 允许访问入口 1、app 2、H5
     */
    public String getEnableAccessEntry() {
        return enableAccessEntry;
    }

    /**
     * 服务接入协议 1、HTTP 2、HTTPS
     */
    public void setServiceAccessProtocol(String serviceAccessProtocol) {
        this.serviceAccessProtocol = serviceAccessProtocol;
    }

    /**
     * 服务接入协议 1、HTTP 2、HTTPS
     */
    public String getServiceAccessProtocol() {
        return serviceAccessProtocol;
    }

    /**
     * 目标地址
     */
    public void setDestinationAddress(String destinationAddress) {
        this.destinationAddress = destinationAddress;
    }

    /**
     * 目标地址
     */
    public String getDestinationAddress() {
        return destinationAddress;
    }

    /**
     * 请求编码 1、UTF-8
     */
    public void setRequestCoding(String requestCoding) {
        this.requestCoding = requestCoding;
    }

    /**
     * 请求编码 1、UTF-8
     */
    public String getRequestCoding() {
        return requestCoding;
    }

    /**
     * 请求方法 1、POST 2、GET
     */
    public void setRequestMethod(String requestMethod) {
        this.requestMethod = requestMethod;
    }

    /**
     * 请求方法 1、POST 2、GET
     */
    public String getRequestMethod() {
        return requestMethod;
    }

    /**
     * 超时时间 6000 ms
     */
    public void setTimeoutPeriod(String timeoutPeriod) {
        this.timeoutPeriod = timeoutPeriod;
    }

    /**
     * 超时时间 6000 ms
     */
    public String getTimeoutPeriod() {
        return timeoutPeriod;
    }

    /**
     * Header入参 JSON
     */
    public void setHeaderIn(String headerIn) {
        this.headerIn = headerIn;
    }

    /**
     * Header入参 JSON
     */
    public String getHeaderIn() {
        return headerIn;
    }

    /**
     * Query入参 JSON
     */
    public void setQueryIn(String queryIn) {
        this.queryIn = queryIn;
    }

    /**
     * Query入参 JSON
     */
    public String getQueryIn() {
        return queryIn;
    }

    /**
     * Body 入参类型 1、Application/json
     */
    public void setBodyInType(String bodyInType) {
        this.bodyInType = bodyInType;
    }

    /**
     * Body 入参类型 1、Application/json
     */
    public String getBodyInType() {
        return bodyInType;
    }

    /**
     * Body 入参 JSON
     */
    public void setBodyIn(String bodyIn) {
        this.bodyIn = bodyIn;
    }

    /**
     * Body 入参 JSON
     */
    public String getBodyIn() {
        return bodyIn;
    }

    /**
     * Body 出参 JSON
     */
    public void setBodyOut(String bodyOut) {
        this.bodyOut = bodyOut;
    }

    /**
     * Body 出参 JSON
     */
    public String getBodyOut() {
        return bodyOut;
    }

    /**
     * 排序
     */
    public void setSorts(Long sorts) {
        this.sorts = sorts;
    }

    /**
     * 排序
     */
    public Long getSorts() {
        return sorts;
    }

    /**
     * 创建人id
     */
    public void setCreateUserId(String createUserId) {
        this.createUserId = createUserId;
    }

    /**
     * 创建人id
     */
    public String getCreateUserId() {
        return createUserId;
    }

    /**
     * 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 修改人id
     */
    public void setModifyUserId(String modifyUserId) {
        this.modifyUserId = modifyUserId;
    }

    /**
     * 修改人id
     */
    public String getModifyUserId() {
        return modifyUserId;
    }

    /**
     * 修改时间
     */
    public void setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
    }

    /**
     * 修改时间
     */
    public Date getModifyTime() {
        return modifyTime;
    }

    /**
     * 组织机构ID
     */
    public void setOrgId(String orgId) {
        this.orgId = orgId;
    }

    /**
     * 组织机构ID
     */
    public String getOrgId() {
        return orgId;
    }





    public String getApiRemark() {
        return apiRemark;
    }

    public void setApiRemark(String apiRemark) {
        this.apiRemark = apiRemark;
    }

    public String getNeedLogin() {
        return needLogin;
    }

    public void setNeedLogin(String needLogin) {
        this.needLogin = needLogin;
    }

    public String getParameterPassingMode() {
        return parameterPassingMode;
    }

    public void setParameterPassingMode(String parameterPassingMode) {
        this.parameterPassingMode = parameterPassingMode;
    }

    public String getCurrentLimiting() {
        return currentLimiting;
    }

    public void setCurrentLimiting(String currentLimiting) {
        this.currentLimiting = currentLimiting;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public String getAppName() {
        return appName;
    }

    public void setAppName(String appName) {
        this.appName = appName;
    }

    public String getAuthenticationPort() {
        return authenticationPort;
    }

    public void setAuthenticationPort(String authenticationPort) {
        this.authenticationPort = authenticationPort;
    }

    @Override
    public String getId() {
        return id;
    }

    @Override
    public void setId(String id) {
        this.id = id;
    }

    @Override
    public String getSts() {
        return sts;
    }

    @Override
    public void setSts(String sts) {
        this.sts = sts;
    }

    /**
     * @param sendData
     * @return java.lang.String
     * @Author lvleigang
     * @Description 转换query 值
     * @Date 9:54 上午 2023/8/31
     **/
    public String getQuery(JSONObject sendData, JSONObject loginData) {
        if(sendData == null){
            sendData = new JSONObject();
        }
        if(loginData == null){
            loginData = new JSONObject();
        }
        StringBuffer returnStr = new StringBuffer();
        if (this.queryIn != null && !"".equals(this.queryIn)) {
            if (JSONUtil.isTypeJSONArray(this.queryIn)) {
                JSONArray headerArray = JSON.parseArray(this.queryIn);
                for (int i = 0; i < headerArray.size(); i++) {
                    JSONObject querys = headerArray.getJSONObject(i);

                    //query 只有基本类型，不用循环判断下级
                    //判断参数是否有值
                    //获取对象下面的层级数据
                    if (SysEnum.AUTHPORT.getValue().equals(querys.getString(SysEnum.PARAMETERTYPE.getValue()))) {//认证类型
                        String query = querys.getString(SysEnum.EXAMPLE.getValue());
                        if (query != null && !"".equals(query)) {
                            JSONArray example = JSONArray.parseArray(query);
                            String logValue = getObjectValue(loginData, example);
                            if (i == 0) {
                                returnStr.append("?");
                                returnStr.append(querys.getString(SysEnum.PARAMETERNAME.getValue()) + "=" + logValue);
                            } else {
                                returnStr.append("&");
                                returnStr.append(querys.getString(SysEnum.PARAMETERNAME.getValue()) + "=" + logValue);
                            }
                        }
                    } else {
                        //不是认证类型直接取值
                        if (sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())) != null
                                && !"".equals(sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())))) {//先判断入参是否有值
                            if (i == 0) {
                                returnStr.append("?");
                                returnStr.append(querys.getString(SysEnum.PARAMETERNAME.getValue()) + "=" + sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())));
                            } else {
                                returnStr.append("&");
                                returnStr.append(querys.getString(SysEnum.PARAMETERNAME.getValue()) + "=" + sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())));
                            }
                        } else if (querys.getString(SysEnum.EXAMPLE.getValue()) != null && !"".equals(querys.getString(SysEnum.EXAMPLE.getValue()))) {//入参没有值用实例值，如果没有不添加
                            if (i == 0) {
                                returnStr.append("?");
                                returnStr.append(querys.getString(SysEnum.PARAMETERNAME.getValue()) + "=" + querys.getString(SysEnum.EXAMPLE.getValue()));
                            } else {
                                returnStr.append("&");
                                returnStr.append(querys.getString(SysEnum.PARAMETERNAME.getValue()) + "=" + querys.getString(SysEnum.EXAMPLE.getValue()));
                            }
                        } else {//没有值直接拼接
                            if (i == 0) {
                                returnStr.append("?");
                                returnStr.append(querys.getString(SysEnum.PARAMETERNAME.getValue()) + "=");
                            } else {
                                returnStr.append("&");
                                returnStr.append(querys.getString(SysEnum.PARAMETERNAME.getValue()) + "=");
                            }
                        }
                    }


                }
            }
        }
        return returnStr.toString();
    }

    /**
     * @param loginData
     * @param example
     * @return java.lang.String
     * @Author lvleigang
     * @Description 根据jsonArray 获取jsonobject中的值
     * @Date 11:47 上午 2023/8/31
     **/
    private String getObjectValue(JSONObject loginData, JSONArray example) {
        String values = "";
        if (example != null && example.size() > 0) {
            for (int i = 0; i < example.size(); i++) {
                if (loginData.getString(example.getString(i)) != null && !"".equals(loginData.getString(example.getString(i)))) {
                    if (i == (example.size() - 1)) {
                        values = loginData.getString(example.getString(i));
                    } else {
                        loginData = JSONObject.parseObject(loginData.getString(example.getString(i)));
                    }
                } else {
                    return values;
                }
            }
        }
        return values;
    }

    /**
     * @param sendData
     * @return java.lang.String
     * @Author lvleigang
     * @Description 转换header 值
     * @Date 9:54 上午 2023/8/31
     **/
    public Map<String, String> getHeaders(JSONObject sendData, JSONObject loginData) {
        if(sendData == null){
            sendData = new JSONObject();
        }
        if(loginData == null){
            loginData = new JSONObject();
        }
        Map<String, String> map = new HashMap<>();
        if (this.headerIn != null && !"".equals(this.headerIn)) {
            if (JSONUtil.isTypeJSONArray(this.headerIn)) {
                JSONArray headerArray = JSON.parseArray(this.headerIn);
                for (int i = 0; i < headerArray.size(); i++) {
                    JSONObject querys = headerArray.getJSONObject(i);
                    //query 只有基本类型，不用循环判断下级
                    //判断参数是否有值
                    //获取对象下面的层级数据
                    if (SysEnum.AUTHPORT.getValue().equals(querys.getString(SysEnum.PARAMETERTYPE.getValue()))) {//认证类型
                        String query = querys.getString(SysEnum.EXAMPLE.getValue());
                        if (query != null && !"".equals(query)) {
                            JSONArray example = JSONArray.parseArray(query);
                            String logValue = getObjectValue(loginData, example);
                            map.put(querys.getString(SysEnum.PARAMETERNAME.getValue()), logValue);
                        }
                    } else {
                        //不是认证类型直接取值
                        if (sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())) != null
                                && !"".equals(sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())))) {//先判断入参是否有值
                            map.put(querys.getString(SysEnum.PARAMETERNAME.getValue()), sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())));
                        } else if (querys.getString(SysEnum.EXAMPLE.getValue()) != null && !"".equals(querys.getString(SysEnum.EXAMPLE.getValue()))) {//入参没有值用实例值，如果没有不添加
                            map.put(querys.getString(SysEnum.PARAMETERNAME.getValue()), querys.getString(SysEnum.EXAMPLE.getValue()));
                        } else {//没有值直接拼接
                            map.put(querys.getString(SysEnum.PARAMETERNAME.getValue()), "");
                        }
                    }
                }
            }
        }
        return map;
    }


    /**
     * @param sendData
     * @param loginData
     * @return java.lang.String
     * @Author lvleigang
     * @Description 设置body值
     * @Date 2:23 下午 2023/8/31
     **/
    public String getBodys(JSONObject sendData, JSONObject loginData) {
        if(sendData == null){
            sendData = new JSONObject();
        }
        if(loginData == null){
            loginData = new JSONObject();
        }
        JSONObject returnObject = new JSONObject();
        if (this.bodyIn != null && !"".equals(this.bodyIn)) {
            if (JSONUtil.isTypeJSONArray(this.bodyIn)) {
                JSONArray headerArray = JSON.parseArray(this.bodyIn);
                for (int i = 0; i < headerArray.size(); i++) {
                    //获取到第一个数据
                    JSONObject querys = headerArray.getJSONObject(i);
                    returnObject.put(querys.getString(SysEnum.PARAMETERNAME.getValue()), getUpdata(querys, sendData, loginData));
                }
            }
        }
        return returnObject.toString();
    }

    /**
     * @param querys    设置的字段属性
     * @param sendData  发送数据
     * @param loginData 认证信息
     * @return java.lang.Object
     * @Author lvleigang
     * @Description 设置值
     * @Date 4:14 下午 2023/8/31
     **/
    private Object getUpdata(JSONObject querys, JSONObject sendData, JSONObject loginData) {
        if (SysEnum.AUTHPORT.getValue().equals(querys.getString(SysEnum.PARAMETERTYPE.getValue()))) {//认证类型 可以直接设置值
            String query = querys.getString(SysEnum.EXAMPLE.getValue());
            if (query != null && !"".equals(query)) {
                JSONArray example = JSONArray.parseArray(query);
                String logValue = getObjectValue(loginData, example);
                return logValue;
            }
        } else if (SysEnum.FUNDAMENTAL.getValue().equals(querys.getString(SysEnum.PARAMETERTYPE.getValue()))) {//基本类型
            if (sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())) != null
                    && !"".equals(sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())))) {//先判断入参是否有值
                return sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue()));
            } else if (querys.getString(SysEnum.EXAMPLE.getValue()) != null && !"".equals(querys.getString(SysEnum.EXAMPLE.getValue()))) {//入参没有值用实例值，如果没有不添加
                return querys.getString(SysEnum.EXAMPLE.getValue());
            } else {//没有值直接拼接
                return "";
            }
        } else if (SysEnum.COMPLEX.getValue().equals(querys.getString(SysEnum.PARAMETERTYPE.getValue()))) {//复杂类型
            if (sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())) != null
                    && !"".equals(sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())))) {//先判断入参是否有值
                //获取子级
                String childers = querys.getString(SysEnum.CHILDREN.getValue());
                if (childers != null && !"".equals(childers)) {
                    JSONArray childersObj = JSONArray.parseArray(childers);
                    if (childersObj != null && childersObj.size() > 0) {
                        JSONObject obj = new JSONObject();
                        for (int i = 0; i < childersObj.size(); i++) {
                            JSONObject a = childersObj.getJSONObject(i);
                            obj.put(a.getString(SysEnum.PARAMETERNAME.getValue()), getUpdata(a, sendData.getJSONObject(querys.getString(SysEnum.PARAMETERNAME.getValue())), loginData));
                        }
                        return obj;
                    }
                } else {
                    JSONObject obj = new JSONObject();
                    return obj;
                }
            } else {//入参没有值用实例值，如果没有不添加
                //获取子级
                String childers = querys.getString(SysEnum.CHILDREN.getValue());
                if (childers != null && !"".equals(childers)) {
                    JSONArray childersObj = JSONArray.parseArray(childers);
                    if (childersObj != null && childersObj.size() > 0) {
                        JSONObject obj = new JSONObject();
                        for (int i = 0; i < childersObj.size(); i++) {
                            JSONObject a = childersObj.getJSONObject(i);
                            obj.put(a.getString(SysEnum.PARAMETERNAME.getValue()), getUpdata(a, new JSONObject(), loginData));
                        }
                        return obj;
                    } else { //没有值直接拼接
                        JSONObject obj = new JSONObject();
                        return obj;
                    }
                } else { //没有值直接拼接
                    JSONObject obj = new JSONObject();
                    return obj;
                }
            }
        } else if (SysEnum.FUNDAMENTALLIST.getValue().equals(querys.getString(SysEnum.PARAMETERTYPE.getValue()))) {//基本列表
            if (sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())) != null
                    && !"".equals(sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())))) {//先判断入参是否有值
                JSONArray jsonArray = JSONArray.parseArray(sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())));
                return jsonArray;
            } else if (querys.getString(SysEnum.EXAMPLE.getValue()) != null && !"".equals(querys.getString(SysEnum.EXAMPLE.getValue()))) {//入参没有值用实例值，如果没有不添加
                if ("String".equals(querys.getString(SysEnum.CONCRETETYPE.getValue()))) {
                    JSONArray jsonArray = new JSONArray();
                    jsonArray.add(querys.getString(SysEnum.EXAMPLE.getValue()));
                    return jsonArray;
                } else if ("Int".equals(querys.getString(SysEnum.CONCRETETYPE.getValue()))) {
                    JSONArray jsonArray = new JSONArray();
                    jsonArray.add(querys.getIntValue(SysEnum.EXAMPLE.getValue()));
                    return jsonArray;
                } else if ("Long".equals(querys.getString(SysEnum.CONCRETETYPE.getValue()))) {
                    JSONArray jsonArray = new JSONArray();
                    jsonArray.add(querys.getLongValue(SysEnum.EXAMPLE.getValue()));
                    return jsonArray;
                } else if ("Float".equals(querys.getString(SysEnum.CONCRETETYPE.getValue()))) {
                    JSONArray jsonArray = new JSONArray();
                    jsonArray.add(querys.getFloatValue(SysEnum.EXAMPLE.getValue()));
                    return jsonArray;
                } else if ("Double".equals(querys.getString(SysEnum.CONCRETETYPE.getValue()))) {
                    JSONArray jsonArray = new JSONArray();
                    jsonArray.add(querys.getDoubleValue(SysEnum.EXAMPLE.getValue()));
                    return jsonArray;
                } else if ("Boolean".equals(querys.getString(SysEnum.CONCRETETYPE.getValue()))) {
                    JSONArray jsonArray = new JSONArray();
                    jsonArray.add(querys.getBooleanValue(SysEnum.EXAMPLE.getValue()));
                    return jsonArray;
                } else {
                    JSONArray jsonArray = new JSONArray();
                    jsonArray.add(querys.getString(SysEnum.EXAMPLE.getValue()));
                    return jsonArray;
                }
            } else {//没有值直接拼接
                JSONArray jsonArray = new JSONArray();
                return jsonArray;
            }
        } else if (SysEnum.COMPLEXLIST.getValue().equals(querys.getString(SysEnum.PARAMETERTYPE.getValue()))) {//复杂列表
            if (sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())) != null
                    && !"".equals(sendData.getString(querys.getString(SysEnum.PARAMETERNAME.getValue())))) {//先判断入参是否有值
                //获取入参的数据
                //循环入参
                //循环api配置的参数
                //设置api的参数
                //返回数据
                JSONArray sendArray = sendData.getJSONArray(querys.getString(SysEnum.PARAMETERNAME.getValue()));
                if(sendArray == null || sendArray.size() == 0){
                    return new JSONArray();
                }
                String childers = querys.getString(SysEnum.CHILDREN.getValue());
                if(childers == null || "".equals(childers)){
                    return new JSONArray();
                }
                JSONArray childersObj = JSONArray.parseArray(childers);
                if(childersObj == null || childersObj.size() == 0){
                    return new JSONArray();
                }
                JSONArray obj = new JSONArray();
                for (int i = 0; i < sendArray.size(); i++) {
                    JSONObject sl = new JSONObject();
                    for (int a = 0; a < childersObj.size(); a++) {
                        JSONObject b = childersObj.getJSONObject(a);
                        //入参没有只能取实例，实例只会有一个
                        sl.put(b.getString(SysEnum.PARAMETERNAME.getValue()), getUpdata(b, sendArray.getJSONObject(i), loginData));
                    }
                    obj.add(sl);
                }
                return obj;
            } else {//入参没有值用实例值，如果没有不添加
                String childers = querys.getString(SysEnum.CHILDREN.getValue());
                if (childers != null && !"".equals(childers)) {
                    JSONArray childersObj = JSONArray.parseArray(childers);
                    if (childersObj != null && childersObj.size() > 0) {
                        JSONArray obj = new JSONArray();
                        JSONObject sl = new JSONObject();
                        for (int i = 0; i < childersObj.size(); i++) {
                            JSONObject a = childersObj.getJSONObject(i);
                            //入参没有只能取实例，实例只会有一个
                            sl.put(a.getString(SysEnum.PARAMETERNAME.getValue()), getUpdata(a, new JSONObject(), loginData));
                        }
                        obj.add(sl);
                        return obj;
                    }
                } else {
                    JSONArray obj = new JSONArray();
                    return obj;
                }
            }
        }
        return null;
    }
}
