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

com.dahua.eco.base.spring.errorcode.ErrorCodeHelper Maven / Gradle / Ivy

package com.dahua.eco.base.spring.errorcode;

import com.dahua.eco.base.core.code.IErrorCode;
import com.dahua.eco.base.spring.context.BusinessContext;
import org.springframework.util.StringUtils;

public class ErrorCodeHelper {
    /**
     * 获取完整错误码(8位)
     *
     * @param errorCode 错误码枚举对象
     * @return
     */
    public static String getCompleteCode(IErrorCode errorCode) {
        if (errorCode == null) {
            return "";
        }

        // 如果传入的错误码的位数不是 6位(不合规错误码),则默认不做任何处理,直接返回
        if (errorCode.getSubCode().length() != IErrorCode.ERROR_CODE_SUB_LENGTH) {
            return errorCode.getSubCode();
        }

        if (errorCode.isInnerError()) {
            return BusinessContext.SYSTEMCODE_COMMON + errorCode.getSubCode();
        } else {
            return BusinessContext.getInstance().getSystemCode() + errorCode.getSubCode();
        }
    }

    /**
     * 获取完整错误码(8位),针业务系统错误码,框架内部错误码该方法不适用
     *
     * @param errorCode 错误码
     * @return
     */
    public static String getCompleteCode(String errorCode) {
        if (errorCode == null) {
            return "";
        }

        // 如果传入的错误码的位数不是 6位(不合规错误码),则默认不做任何处理,直接返回
        if (errorCode.length() != IErrorCode.ERROR_CODE_SUB_LENGTH) {
            return errorCode;
        }

        return BusinessContext.getInstance().getSystemCode() + errorCode;
    }

    /**
     * 根据错误编码获取错误码枚举对象
     *
     * @param code 6位错误码
     * @return
     */
    @SuppressWarnings("unchecked")
    public static  T getByCode(String code, Class clazz) {
        if (StringUtils.isEmpty(code)) {
            return null;
        }
        IErrorCode[] errorCodes = clazz.getEnumConstants();
        for (IErrorCode errorCode : errorCodes) {
            if (errorCode.getSubCode().equals(code)) {
                return (T)errorCode;
            }
        }
        return null;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy