package com.yanzuoguang.log;

import com.yanzuoguang.util.helper.JsonHelper;
import com.yanzuoguang.util.vo.CloudConfig;
import org.springframework.stereotype.Component;

/**
 * 获取日志字符串
 *
 * @author 颜佐光
 */
@Component
public class LogString {

    private final CloudConfig cloudConfig;

    public LogString(CloudConfig cloudConfig) {
        this.cloudConfig = cloudConfig;
    }

    /**
     * 获取JSON,当Json过长时,截断
     *
     * @param paraJson 长json字符串
     * @return 短json字符串
     */
    public String getMaxString(String paraJson) {
        if (paraJson != null && paraJson.length() > this.cloudConfig.getReqSize()) {
            paraJson = paraJson.substring(0, this.cloudConfig.getReqSize());
        }
        return paraJson;
    }

    /**
     * 获取内容转换为字符串
     *
     * @param body 内容
     * @return 字符串
     */
    public String getBodyString(Object body) {
        String ret;
        if (body instanceof String) {
            ret = getMaxString((String) body);
        } else {
            ret = getMaxString(JsonHelper.serialize(body));
        }
        return ret;
    }

}