ResultUtils.java 3.77 KB
package com.sincre.springboot.utils;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.sincre.springboot.ApiModel.BaiduResult;
import com.sincre.springboot.ApiModel.TuYaResResult;
import com.sincre.springboot.ApiModel.YinShiResResult;
import com.sincre.springboot.common.ResponseCode;
import com.sincre.springboot.common.ServerResponse;

/**
 * 结果返回工具类
 * 成功的code统一为 200,其他的根据接口返回的code返回给客户端
 */
public class ResultUtils {

    private static ResultUtils resultUtils;

    public ResultUtils() {

    }

    public static ResultUtils getInstance() {
        if (null == resultUtils) {
            synchronized (ResultUtils.class) {
                if (null == resultUtils) resultUtils = new ResultUtils();
            }
        }
        return resultUtils;
    }


    /**
     * 涂鸦云返回结果
     *
     * @param yinShiResResult
     * @return
     */
    public ServerResponse returnResultYingshi(YinShiResResult yinShiResResult) {

        try {
            int code = yinShiResResult.getCode();

            if (code == 200) {
                int total = 0;
                if (yinShiResResult.getPage() != null) {
                    total = yinShiResResult.getPage().getTotal();
                }
                return ServerResponse.createBySuccess(String.valueOf(total), ResponseCode.SUCCESS.getDesc(), yinShiResResult.getData());
            } else {
                if (code == 10002) {//accessToken过期或异常
                    CacheHelper.GetYinShiToken();
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                return ServerResponse.createByErrorCodeMessage(code, yinShiResResult.getMsg());
            }
        }
        catch (Exception ex){
            return  ServerResponse.createByErrorMessage("服务器内部处理出错!");
        }
    }

    /**
     * 涂鸦云返回结果
     * @param
     * @return
     */
    public ServerResponse returnResultTuYa(TuYaResResult tuYaResResult) {
        try {
            boolean success = tuYaResResult.getSuccess();

            if (success) {
                //data 返回的是数组
                if(JSON.isValidArray(tuYaResResult.getResult().toString())){
                    int total;
                    JSONArray  jsonArray = JSON.parseArray(tuYaResResult.getResult().toString());
                    total = jsonArray.size();
                    return ServerResponse.createBySuccess(String.valueOf(total), ResponseCode.SUCCESS.getDesc(), tuYaResResult.getResult());
                }
                //data 返回的是对象
                return ServerResponse.createBySuccess(ResponseCode.SUCCESS.getDesc(), tuYaResResult.getResult());
            }

            int code = Integer.valueOf(tuYaResResult.getCode());
            return ServerResponse.createByErrorCodeMessage(code, tuYaResResult.getMsg());
        }
        catch (Exception ex){
            return  ServerResponse.createByErrorMessage("服务器内部处理出错!");
        }
    }

    /**
     * 百度云返回结果
     * @param baiduResult
     * @return
     */
    public ServerResponse returnResult_Baidu(BaiduResult baiduResult,String data) {
        try {
            int code = baiduResult.getError_code();
            String msg = baiduResult.getError_msg();

            if (msg == null) {
                return ServerResponse.createBySuccess(data);
            }else{
                return ServerResponse.createByErrorCodeMessage(code,msg);
            }
        }
        catch (Exception ex){
            return  ServerResponse.createByErrorMessage("服务器内部处理出错!");
        }
    }
}