kongzy
2024-07-01 47a751cb301d05276ae5d75145d57b2d090fe4e1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package com.nanometer.smartlab.api;
 
import com.alibaba.fastjson.JSON;
import com.nanometer.smartlab.exception.BusinessException;
import com.nanometer.smartlab.exception.ExceptionEnumCode;
import com.nanometer.smartlab.model.ResponseModel;
import com.nanometer.smartlab.util.Constants;
import com.nanometer.smartlab.util.MessageUtil;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ExceptionHandler;
 
import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;
 
/**
 * Created by johnny on 16/7/20.
 */
public abstract class BaseAction implements Serializable {
    private final static Logger logger = LoggerFactory.getLogger(BaseAction.class);
 
    /** 基于@ExceptionHandler异常处理 */
    @ExceptionHandler
    public Object exp(HttpServletRequest request, Exception e) {
        if(e instanceof IllegalArgumentException){
            logger.error("error occured.", e);
            return ResponseModel.getParamInstence(e.getMessage());
        }else if (e instanceof RuntimeException){
            logger.error("error occured.", e);
            return ResponseModel.getErrInstance();
        }else if (e instanceof Throwable) {
            logger.error("error occured.", e);
            return ResponseModel.getErrInstance();
        } else {
            logger.error("error occured.", e);
            return ResponseModel.getErrInstance();
        }
 
    }
 
    public String getResponseString(ResponseModel responseModel) {
        if (responseModel == null) {
            responseModel = new ResponseModel<String>();
            responseModel.setCode(ExceptionEnumCode.OK.getCode());
            responseModel.setMessage(MessageUtil.getMessageByCode(responseModel.getCode()));
        }
 
        return JSON.toJSONString(responseModel);
    }
 
    public String getResponseString(String code, String errMessage) {
        ResponseModel responseModel = new ResponseModel<String>();
        responseModel.setCode(code);
        responseModel.setMessage(errMessage);
        return this.getResponseString(responseModel);
    }
 
    public String getResponseString(String code) {
        String errMessage = MessageUtil.getMessageByCode(code);
        return this.getResponseString(code, errMessage);
    }
 
    public String getOkResponseString() {
        return this.getResponseString(ExceptionEnumCode.OK.getCode());
    }
 
    public String getSysErrResponseString() {
        return this.getResponseString(ExceptionEnumCode.SYS_ERR.getCode());
    }
 
    private String getHeader(HttpServletRequest request, String key) {
        if (request == null || StringUtils.isBlank(key)) {
            return null;
        }
 
        return request.getHeader(key);
    }
 
    public String getIdCardFromHeader(HttpServletRequest request) {
        return this.getHeader(request, Constants.HEADER_KEY_ID_CARD);
    }
}