ResponseMsgBuilder.java

package com.mycim.webapp;

import com.fa.sesa.exception.ErrorCode;
import com.fa.sesa.exception.SystemIllegalException;
import com.fa.sesa.i18n.I18nUtils;
import com.mycim.framework.utils.exception.ExceptionUtils;
import com.mycim.framework.utils.lang.StringUtils;
import com.mycim.framework.utils.msg.JsonUtils;
import com.mycim.framework.utils.msg.model.RequestHeader;
import com.mycim.framework.utils.msg.model.Response;
import com.mycim.framework.utils.msg.model.ResponseHeader;

/**
 * 构建回复消息
 *
 * @author Johnson Wang
 * @date 2019/7/24 17:29
 **/
public class ResponseMsgBuilder {

    public static String buildSuccessJsonMsg(Object responseBody) {
        return buildSuccessJsonMsg(responseBody, new RequestHeader());
    }

    public static String buildSuccessJsonMsg(Object responseBody, RequestHeader requestHeader) {
        return buildSuccessJsonMsg(null, responseBody, requestHeader);
    }

    public static String buildSuccessJsonMsg(String msgId, Object responseBody, RequestHeader requestHeader) {
        return buildSuccessJsonMsg(msgId, StringUtils.EMPTY, responseBody, requestHeader);
    }


    public static String buildSuccessJsonMsg(String msgId, String defaultMsg, Object responseBody,
                                             RequestHeader requestHeader) {
        Response response = new Response();
        ResponseHeader responseHeader = new ResponseHeader(requestHeader);
        responseHeader.setCode(ErrorCode.success.getErrCode());
        responseHeader.setMessage(msgId);
        responseHeader.setSubMessage(StringUtils.isEmpty(responseHeader.getMessage()) ? null : I18nUtils
                .getMessage(responseHeader.getMessage(), defaultMsg));
        response.setHead(responseHeader);
        response.setBody(responseBody);
        return JsonUtils.toString(response);
    }

    public static String buildSuccessJsonMsg() {
        Response response = new Response();
        ResponseHeader responseHeader = new ResponseHeader();
        responseHeader.setCode(ErrorCode.success.getErrCode());
        responseHeader.setMessage("system.success");
        responseHeader.setSubMessage(I18nUtils.getMessage(responseHeader.getMessage()));

        response.setHead(responseHeader);
        return JsonUtils.toString(response);
    }

    public static String buildSuccessJsonMsg(RequestHeader requestHeader) {
        Response response = new Response();
        ResponseHeader responseHeader = new ResponseHeader(requestHeader);
        responseHeader.setCode(ErrorCode.success.getErrCode());
        responseHeader.setMessage("system.success");
        responseHeader.setSubMessage(I18nUtils.getMessage(responseHeader.getMessage()));

        response.setHead(responseHeader);
        return JsonUtils.toString(response);
    }

    public static String buildErrorJsonMsg(Throwable e) {
        SystemIllegalException systemIllegalException = ExceptionUtils.findSystemException(e);
        Response response = new Response();
        ResponseHeader responseHeader = new ResponseHeader();
        responseHeader.setCode(systemIllegalException.getCode().getErrCode());
        String sysErrorInfo = systemIllegalException.getMessage();
        responseHeader.setMessage(sysErrorInfo);
        responseHeader.setSubMessage(sysErrorInfo);
        response.setHead(responseHeader);
        return JsonUtils.toString(response);
    }

}