package com.ruoyi.common.enums;

import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.common.utils.JsonUtils;
import com.ruoyi.common.utils.StringDataTypeUtils;
import com.ruoyi.common.utils.Xml2JsonUtils;

/**
 * @author LinQiLong
 * @date 2023/4/26 10:38
 */
public enum DataType {

    /**
     * json 格式
     */
    JSON {
        @Override
        public JSONObject toJSONObject(String dataStr) {
            return JsonUtils.jsonToPojo(dataStr, JSONObject.class);
        }
    },
    XML {
        @Override
        public JSONObject toJSONObject(String dataStr) {
            JSONObject resObj = Xml2JsonUtils.xml2Json(dataStr);
            // 2. 查询指定数据
            return resObj;
        }
    },
    STRING, NUMBER;

    public static JSONObject getDataByJSON(String dataStr) {
        // 判断类型
        String type = StringDataTypeUtils.getType(dataStr);
        DataType dataType = DataType.valueOf(type);
        // 转换成 JSONObject
        return dataType.toJSONObject(dataStr);
    }

    public JSONObject toJSONObject(String dataStr) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("data", dataStr);
        return jsonObject;
    }

}
