1. 程式人生 > >java返回結果封裝及控制層抽象類

java返回結果封裝及控制層抽象類

統一返回的結果集

package com.zyd.common.vo;

import com.zyd.common.constant.ZydResultConstants;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/***
 * 統一返回的結果集
 * 
 * @author 
 *
 * @param <T>
 */
@Data
@ApiModel("統一返回的結果集")
public class ResultInfo<T> {

    /** 返回編碼 */
    @ApiModelProperty(value = "返回描述")
    private ResultMsg e;
    /** 返回結果 */
    @ApiModelProperty(value = "返回的結果")
    private T rdatas;
    
    @Data
    @ApiModel("介面返回描述")
    @AllArgsConstructor
    @NoArgsConstructor
    class ResultMsg{
        @ApiModelProperty("返回編碼")
        int errid;
        @ApiModelProperty("返回描述")
        String msg;
    }

    public ResultInfo() {

    }
    
    /***
     * 判斷返回結果是否正確
     * @return
     */
    public boolean isSucc() {
        return e==null?false:ZydResultConstants.SUCCESS_CODE == e.getErrid();
    }
    

    ResultInfo(int errid, String msg, T rdatas) {
        this.e = this.new ResultMsg(errid, msg);
        this.rdatas = rdatas;
    }

    /***
     * 返回成功
     * 
     * @param rdatas
     *            返回結果
     * @return
     */
    public static <T> ResultInfo<T> success(T rdatas) {
        return success(rdatas, "");
    }

    /***
     * 返回成功
     * 
     * @param rdatas
     *            返回結果
     * @param msg
     *            返回描述
     * @return
     */
    public static <T> ResultInfo<T> success(T rdatas, String msg) {
        return new ResultInfo<>(ZydResultConstants.SUCCESS_CODE, msg, rdatas);
    }

    /***
     * 返回錯誤
     * 
     * @param msg
     *            返回描述
     * @return
     */
    public static <T> ResultInfo<T> fail(String msg) {
        return fail(msg, ZydResultConstants.FAIL_CODE);
    }

    /***
     * 返回錯誤
     * 
     * @param msg
     *            返回描述
     * @param res
     *            返回編碼
     * @return
     */
    public static <T> ResultInfo<T> fail(String msg, int res) {
        return fail(msg, res, null);
    }

    /***
     * 返回錯誤
     * 
     * @param msg
     *            返回描述
     * @param res
     *            返回編碼
     * @param rdatas
     *            返回結果
     * @return
     */
    public static <T> ResultInfo<T> fail(String msg, int res, T rdatas) {
        return new ResultInfo<>(res, msg, rdatas);
    }

}

控制層抽象類

package com.zyd.common.base;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import com.zyd.common.vo.ResultInfo;

import lombok.extern.slf4j.Slf4j;

/***
 * 控制層抽象類
 * @author
 *
 */
@Slf4j
public abstract class ABaseController {
    /***
     * 獲得請求物件
     * @return
     */
    public HttpServletRequest getRequest() {
        return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
    }
    
    /***
     * 獲得response物件
     * 
     * @return
     */
    public HttpServletResponse getResponse() {
        return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
    }

    public <T> ResultInfo<T> ok(T t) {
        return ResultInfo.success(t);
    }

    public <T> ResultInfo<T> ok(T o, String msg) {
        return ResultInfo.success(o, msg);
    }

    /***
     * 返回錯誤
     * 
     * @param msg
     *            返回描述
     * @return
     */
    public static <T> ResultInfo<T> fail(String msg) {
        return ResultInfo.fail(msg);
    }
    /***
     * 返回錯誤
     * @param msg 返回描述
     * @param res 返回編碼
     * @return
     */
    public static <T> ResultInfo<T> fail(String msg, int res) {
        return ResultInfo.fail(msg, res);

    }
    /***
     * 返回錯誤
     * @param msg 返回描述
     * @param res 返回編碼
     * @param t 返回結果
     * @return
     */
    public static <T> ResultInfo<T> fail(String msg, int res, T t) {
        return ResultInfo.fail(msg, res, t);
    }
    
    public int getUserId() {
        String userid = getRequest().getParameter("userid");
        if(userid==null) {
            return 0;
        }
        try {
            return Integer.parseInt(userid);
        } catch (NumberFormatException e) {
            log.info("非int型別使用者Id:",userid);
            return 0;
        }
    }
}