Browse Source

Merge branch 'dev' of chenweida/patient-co-management into dev

chenweida 7 years ago
parent
commit
1895c28a17

+ 37 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/gateway/GcHttpLog.java

@ -28,6 +28,8 @@ public class GcHttpLog extends IdEntity implements java.io.Serializable {
    private String input;
    private String output;
    private Date createTime;
    private Integer flag = 1;
    private String message;
    // Constructors
@ -106,4 +108,39 @@ public class GcHttpLog extends IdEntity implements java.io.Serializable {
        this.createTime = createTime;
    }
    public Integer getFlag() {
        return flag;
    }
    public void setFlag(Integer flag) {
        this.flag = flag;
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    public enum flagEm {
        success(1),
        error(1)
        ;
        flagEm(Integer code) {
            this.code = code;
        }
        private Integer code;
        public Integer getCode() {
            return code;
        }
        public void setCode(Integer code) {
            this.code = code;
        }
    }
}

+ 13 - 24
common/common-entity/src/main/java/com/yihu/wlyy/entity/gateway/GcToken.java

@ -1,27 +1,28 @@
package com.yihu.wlyy.entity.gateway;
import java.sql.Timestamp;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
 * GtToken entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "gt_token")
public class GcToken implements java.io.Serializable {
@Table(name = "gc_token")
public class GcToken extends IdEntity implements java.io.Serializable {
	// Fields
	private Integer id;
	private String appid;
	private String token;
	private Timestamp createTime;
	private Timestamp outTime;
	private Date createTime;
	private Date outTime;
	private Integer del;
	// Constructors
@ -31,8 +32,8 @@ public class GcToken implements java.io.Serializable {
	}
	/** full constructor */
	public GcToken(String appid, String token, Timestamp createTime,
			Timestamp outTime, Integer del) {
	public GcToken(String appid, String token, Date createTime,
			Date outTime, Integer del) {
		this.appid = appid;
		this.token = token;
		this.createTime = createTime;
@ -40,18 +41,6 @@ public class GcToken implements java.io.Serializable {
		this.del = del;
	}
	// Property accessors
	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "id", unique = true, nullable = false)
	public Integer getId() {
		return this.id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	@Column(name = "appid", length = 200)
	public String getAppid() {
		return this.appid;
@ -71,20 +60,20 @@ public class GcToken implements java.io.Serializable {
	}
	@Column(name = "create_time", length = 0)
	public Timestamp getCreateTime() {
	public Date getCreateTime() {
		return this.createTime;
	}
	public void setCreateTime(Timestamp createTime) {
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	@Column(name = "out_time", length = 0)
	public Timestamp getOutTime() {
	public Date getOutTime() {
		return this.outTime;
	}
	public void setOutTime(Timestamp outTime) {
	public void setOutTime(Date outTime) {
		this.outTime = outTime;
	}

+ 85 - 79
common/common-entity/src/main/java/com/yihu/wlyy/entity/gateway/GcTokenLog.java

@ -7,7 +7,9 @@ import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.Table;
@ -18,84 +20,88 @@ import javax.persistence.Table;
@Table(name = "gc_token_log")
public class GcTokenLog extends IdEntity implements java.io.Serializable {
	// Fields
	private String ip;
	private String appIp;
	private Integer tokenId;
	private Integer flag;
	private String message;
	private Date createTime;
	// Constructors
	/** default constructor */
	public GcTokenLog() {
	}
	/** full constructor */
	public GcTokenLog(String ip, String appIp, Integer tokenId, Integer flag,
			String message, Timestamp createTime) {
		this.ip = ip;
		this.appIp = appIp;
		this.tokenId = tokenId;
		this.flag = flag;
		this.message = message;
		this.createTime = createTime;
	}
	@Column(name = "ip")
	public String getIp() {
		return this.ip;
	}
	public void setIp(String ip) {
		this.ip = ip;
	}
	@Column(name = "app_ip")
	public String getAppIp() {
		return this.appIp;
	}
	public void setAppIp(String appIp) {
		this.appIp = appIp;
	}
	@Column(name = "token_id")
	public Integer getTokenId() {
		return this.tokenId;
	}
	public void setTokenId(Integer tokenId) {
		this.tokenId = tokenId;
	}
	@Column(name = "flag")
	public Integer getFlag() {
		return this.flag;
	}
	public void setFlag(Integer flag) {
		this.flag = flag;
	}
	@Column(name = "message", length = 2000)
	public String getMessage() {
		return this.message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	@Column(name = "create_time", length = 0)
	public Date getCreateTime() {
		return this.createTime;
	}
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
    // Fields
    private String ip;
    private String appIp;
    private String token;
    private Integer flag; //获取1 成功 0失败
    private String message;
    private Date createTime;
    // Constructors
    /**
     * default constructor
     */
    public GcTokenLog() {
    }
    /**
     * full constructor
     */
    public GcTokenLog(String ip, String appIp, String tokenId, Integer flag,
                      String message, Timestamp createTime) {
        this.ip = ip;
        this.appIp = appIp;
        this.flag = flag;
        this.message = message;
        this.createTime = createTime;
    }
    @Column(name = "ip")
    public String getIp() {
        return this.ip;
    }
    public void setIp(String ip) {
        this.ip = ip;
    }
    @Column(name = "app_ip")
    public String getAppIp() {
        return this.appIp;
    }
    public void setAppIp(String appIp) {
        this.appIp = appIp;
    }
    @Column(name = "token")
    public String getToken() {
        return token;
    }
    public void setToken(String token) {
        this.token = token;
    }
    @Column(name = "flag")
    public Integer getFlag() {
        return this.flag;
    }
    public void setFlag(Integer flag) {
        this.flag = flag;
    }
    @Column(name = "message", length = 2000)
    public String getMessage() {
        return this.message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    @Column(name = "create_time", length = 0)
    public Date getCreateTime() {
        return this.createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

+ 88 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/interceptors/GateWayInterceptor.java

@ -4,16 +4,25 @@ package com.yihu.wlyy.interceptors;
 * Created by chenweida on 2017/8/17.
 */
import com.yihu.wlyy.entity.gateway.GcHttpLog;
import com.yihu.wlyy.entity.gateway.GcToken;
import com.yihu.wlyy.repository.gateway.GcHttpLogDao;
import com.yihu.wlyy.repository.gateway.GcTokenDao;
import com.yihu.wlyy.util.NetworkUtil;
import com.yihu.wlyy.web.gateway.vo.base.BaseResultModel;
import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
/**
 * 对外的请求拦截
@ -24,20 +33,96 @@ public class GateWayInterceptor extends BaseInterceptor {
    private Logger logger = LoggerFactory.getLogger(GateWayInterceptor.class);
    @Autowired
    private GcHttpLogDao httpLogDao;
    @Autowired
    private GcTokenDao tokenDao;
    /**
     * preHandle:预处理回调方法
     *
     * @param request
     * @param response
     * @param handler
     * @return
     * @throws Exception
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        return false;
        String token = request.getParameter("token");
        String ip = NetworkUtil.getIpAddress(request);
        try {
            GcToken gcToken = tokenDao.findByToken(token);
            if (gcToken == null) {
                saveHttpLog(ip, JSONObject.fromObject(request.getParameterMap()).toString(), null, token, request.getRequestURI(), GcHttpLog.flagEm.error.getCode(), BaseResultModel.codeEm.token_no_power.getMessage());
                //没权限
                BaseResultModel baseResultModel = new BaseResultModel(BaseResultModel.codeEm.token_no_power.getCode(), BaseResultModel.codeEm.token_no_power.getMessage());
                response.getOutputStream().write(JSONObject.fromObject(baseResultModel).toString().getBytes());
            }
            if (gcToken.getDel() == null || gcToken.getDel() == 0) {
                saveHttpLog(ip, JSONObject.fromObject(request.getParameterMap()).toString(), null, token, request.getRequestURI(), GcHttpLog.flagEm.error.getCode(), BaseResultModel.codeEm.token_out_effect.getMessage());
                //token无效
                BaseResultModel baseResultModel = new BaseResultModel(BaseResultModel.codeEm.token_out_effect.getCode(), BaseResultModel.codeEm.token_out_effect.getMessage());
                response.getOutputStream().write(JSONObject.fromObject(baseResultModel).toString().getBytes());
            }
            if (System.currentTimeMillis() > gcToken.getOutTime().getTime()) {
                saveHttpLog(ip, JSONObject.fromObject(request.getParameterMap()).toString(), null, token, request.getRequestURI(), GcHttpLog.flagEm.error.getCode(), BaseResultModel.codeEm.token_out_time.getMessage());
                //token过期
                BaseResultModel baseResultModel = new BaseResultModel(BaseResultModel.codeEm.token_out_time.getCode(), BaseResultModel.codeEm.token_out_time.getMessage());
                response.getOutputStream().write(JSONObject.fromObject(baseResultModel).toString().getBytes());
            }
        } catch (Exception e) {
            saveHttpLog(ip, JSONObject.fromObject(request.getParameterMap()).toString(), null, token, request.getRequestURI(), GcHttpLog.flagEm.error.getCode(), e.getMessage());
            return false;
        }
        return true;
    }
    /**
     * 后处理回调方法
     *
     * @param request
     * @param response
     * @param handler
     * @param modelAndView
     * @throws Exception
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        HandlerMethod handlerMethod = (HandlerMethod) handler;
        //保存成功之后的日志
        String token = request.getParameter("token");
        String ip = NetworkUtil.getIpAddress(request);
        saveHttpLog(ip,
                JSONObject.fromObject(request.getParameterMap()).toString(),
                JSONObject.fromObject(modelAndView.getModelMap()).toString(),
                token,
                request.getRequestURI(),
                GcHttpLog.flagEm.success.getCode(),
                null);
    }
    /**
     * 整个请求处理完毕回调方法
     *
     * @param request
     * @param response
     * @param handler
     * @param ex
     * @throws Exception
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    }
    @Transactional
    public void saveHttpLog(String ip, String input, String output, String token, String method, Integer flag, String message) {
        GcHttpLog gcHttpLog = new GcHttpLog();
        gcHttpLog.setCreateTime(new Date());
        gcHttpLog.setIp(ip);
        gcHttpLog.setInput(input);
        gcHttpLog.setOutput(output);
        gcHttpLog.setToken(token);
        gcHttpLog.setMethod(method);
        gcHttpLog.setFlag(flag);
        httpLogDao.save(gcHttpLog);
    }
}

+ 3 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/gateway/GcClientDetailsDao.java

@ -2,10 +2,13 @@ package com.yihu.wlyy.repository.gateway;
import com.yihu.wlyy.entity.gateway.GcClientDetails;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by chenweida on 2017/8/17.
 */
public interface GcClientDetailsDao extends PagingAndSortingRepository<GcClientDetails, Long>, JpaSpecificationExecutor<GcClientDetails> {
    @Query("from GcClientDetails where appId=?1 and del=1")
    GcClientDetails findByAppid(String appid);
}

+ 21 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/gateway/GcTokenDao.java

@ -0,0 +1,21 @@
package com.yihu.wlyy.repository.gateway;
import com.yihu.wlyy.entity.gateway.GcClientDetails;
import com.yihu.wlyy.entity.gateway.GcToken;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by chenweida on 2017/8/17.
 */
public interface GcTokenDao extends PagingAndSortingRepository<GcToken, Long>, JpaSpecificationExecutor<GcToken> {
    @Query("update GcToken g set g.del=0 where g.appid=?1 and g.del=1")
    @Modifying
    void updateDel(String appid);
    @Query("from GcToken where token=?1")
    GcToken findByToken(String token);
}

+ 5 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/gateway/GcClientDetailsService.java

@ -1,5 +1,6 @@
package com.yihu.wlyy.service.gateway;
import com.yihu.wlyy.entity.gateway.GcClientDetails;
import com.yihu.wlyy.repository.gateway.GcClientDetailsDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -11,4 +12,8 @@ import org.springframework.stereotype.Service;
public class GcClientDetailsService {
    @Autowired
    private GcClientDetailsDao gtClientDetailsDao;
    public GcClientDetails findByAppId(String appid) {
        return gtClientDetailsDao.findByAppid(appid);
    }
}

+ 69 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/gateway/GcTokenService.java

@ -1,8 +1,16 @@
package com.yihu.wlyy.service.gateway;
import com.yihu.wlyy.entity.gateway.GcToken;
import com.yihu.wlyy.entity.gateway.GcTokenLog;
import com.yihu.wlyy.repository.gateway.GcTokenDao;
import com.yihu.wlyy.repository.gateway.GcTokenLogDao;
import com.yihu.wlyy.util.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.UUID;
/**
 * Created by chenweida on 2017/8/17.
@ -11,4 +19,65 @@ import org.springframework.stereotype.Service;
public class GcTokenService {
    @Autowired
    private GcTokenLogDao tokenLogDao;
    @Autowired
    private GcTokenDao tokenDao;
    /**
     * 根据appid生成token
     *
     * @param appid
     * @param appSecret
     * @return
     */
    @Transactional
    public GcToken createToken(String appid, String appSecret, String ip) {
        try {
            //把该用户之前有效的token设置为无效
            tokenDao.updateDel(appid);
            //创新新的appId
            Date date = new Date();
            String token = UUID.randomUUID().toString();
            GcToken gc = new GcToken();
            gc.setAppid(appid);
            gc.setCreateTime(date);
            //2小时过期
            gc.setOutTime(DateUtil.getNextMin(date, 120));
            gc.setToken(token);
            gc.setDel(1);
            tokenDao.save(gc);
            //保存日志
            GcTokenLog gcTokenLog = new GcTokenLog();
            gcTokenLog.setAppIp(appid);
            gcTokenLog.setCreateTime(new Date());
            gcTokenLog.setAppIp(ip);
            gcTokenLog.setMessage("创建token");
            gcTokenLog.setToken(token);
            gcTokenLog.setFlag(1);
            tokenLogDao.save(gcTokenLog);
            return gc;
        } catch (Exception e) {
            //保存失败日志
            GcTokenLog gcTokenLog = new GcTokenLog();
            gcTokenLog.setAppIp(appid);
            gcTokenLog.setCreateTime(new Date());
            gcTokenLog.setAppIp(ip);
            gcTokenLog.setMessage("创建token");
            gcTokenLog.setFlag(0);
            tokenLogDao.save(gcTokenLog);
        }
        return null;
    }
    /**
     * 根据token获取GcToken对象
     * @param token
     * @return
     */
    public GcToken getToken(String token) {
        return tokenDao.findByToken(token);
    }
}

+ 45 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/gateway/controller/GcTokenController.java

@ -1,14 +1,27 @@
package com.yihu.wlyy.web.gateway.controller;
import com.fasterxml.jackson.databind.deser.Deserializers;
import com.yihu.wlyy.entity.gateway.GcClientDetails;
import com.yihu.wlyy.entity.gateway.GcToken;
import com.yihu.wlyy.service.gateway.GcClientDetailsService;
import com.yihu.wlyy.service.gateway.GcTokenService;
import com.yihu.wlyy.util.NetworkUtil;
import com.yihu.wlyy.web.gateway.vo.GcTokenModel;
import com.yihu.wlyy.web.gateway.vo.base.BaseResultModel;
import com.yihu.wlyy.web.gateway.vo.base.ResultOneModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
/**
 * Created by chenweida on 2017/8/17.
 * 对外的网关
@ -17,13 +30,41 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/wlyygc")
@Api(description = "token相关服务")
public class GcTokenController {
    @Autowired
    private GcTokenService tokenService;
    @Autowired
    private GcClientDetailsService clientDetailsService;
    @ApiOperation("获取token")
    @RequestMapping(value = "token", method = RequestMethod.GET)
    public ResultOneModel getToken(
    public ResultOneModel<GcTokenModel> getToken(
            @ApiParam(name = "appid", value = "appid", required = true) @RequestParam(required = true, value = "appid") String appid,
            @ApiParam(name = "appSecret", value = "appSecret", required = true) @RequestParam(required = true, value = "appSecret") String appSecret) {
        return null;
            @ApiParam(name = "appSecret", value = "appSecret", required = true) @RequestParam(required = true, value = "appSecret") String appSecret,
            HttpServletRequest request) {
        //得到用户
        GcClientDetails clientDetails = clientDetailsService.findByAppId(appid);
        if (clientDetails == null) {
            ResultOneModel resultOneModel = new ResultOneModel(null);
            resultOneModel.setCode(BaseResultModel.codeEm.error_Appid.getCode());
            resultOneModel.setMessage(BaseResultModel.codeEm.error_Appid.getMessage());
            return resultOneModel;
        }
        //判断appSecret
        if (appSecret.equals(clientDetails.getAppSecret())) {
            ResultOneModel resultOneModel = new ResultOneModel(null);
            resultOneModel.setCode(BaseResultModel.codeEm.error_AppSecret.getCode());
            resultOneModel.setMessage(BaseResultModel.codeEm.error_AppSecret.getMessage());
            return resultOneModel;
        }
        //生成token
        GcToken gcToken = null;
        try {
            gcToken = tokenService.createToken(appid, appSecret, NetworkUtil.getIpAddress(request));
        } catch (IOException e) {
            e.printStackTrace();
        }
        GcTokenModel gcTokenModel = new GcTokenModel();
        BeanUtils.copyProperties(gcToken, gcTokenModel);
        return new ResultOneModel(gcTokenModel);
    }
}

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/gateway/vo/DoctorModel.java

@ -9,7 +9,7 @@ import java.util.Date;
/**
 * Created by chenweida on 2017/8/17.
 */
@ApiModel("医生实体")
@ApiModel(description ="医生实体")
public class DoctorModel {
    @ApiModelProperty(value = "主键", required = false, access = "response")

+ 43 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/gateway/vo/GcTokenModel.java

@ -0,0 +1,43 @@
package com.yihu.wlyy.web.gateway.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
/**
 * Created by chenweida on 2017/8/17.
 */
@ApiModel(description = "")
public class GcTokenModel {
    @ApiModelProperty(value = "请求凭证", required = false, access = "response")
    private String token;
    @ApiModelProperty(value = "创建时间", required = false, access = "response")
    private Date createTime;
    @ApiModelProperty(value = "过期时间", required = false, access = "response")
    private Date outTime;
    public String getToken() {
        return token;
    }
    public void setToken(String token) {
        this.token = token;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getOutTime() {
        return outTime;
    }
    public void setOutTime(Date outTime) {
        this.outTime = outTime;
    }
}

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/gateway/vo/HospitalModel.java

@ -6,7 +6,7 @@ import io.swagger.annotations.ApiModelProperty;
/**
 * Created by chenweida on 2017/8/17.
 */
@ApiModel("医生实体")
@ApiModel(description ="医生实体")
public class HospitalModel {
    @ApiModelProperty(value = "医院編碼", required = false, access = "response")

+ 2 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/gateway/vo/PatientModel.java

@ -1,6 +1,7 @@
package com.yihu.wlyy.web.gateway.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
@ -8,6 +9,7 @@ import java.util.Date;
/**
 * Created by chenweida on 2017/8/17.
 */
@ApiModel(description ="患者实体")
public class PatientModel {
    // 业务主键
    @ApiModelProperty(value = "业务主键", required = false, access = "response")

+ 21 - 6
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/gateway/vo/base/BaseResultModel.java

@ -30,18 +30,23 @@ public class BaseResultModel {
    }
    public enum codeEm {
        success(10000),//请求成功
        error_params(-10000),//请求失败 参数错误
        error_no_ip(-10010),//请求失败,获取IP失败
        token_outEffect(997),//token无效  包括过期
        token_no_power(999)// 没权限 包括未授权 或者uri错误
        success(10000, "请求成功"),//请求成功
        error_Appid(-9000, "appid不存在"),//appid不存在
        error_AppSecret(-9001, "AppSecret不存在"),//AppSecret不存在
        error_params(-10000, "请求失败 参数错误"),//请求失败 参数错误
        error_no_ip(-10010, "请求失败,获取IP失败"),//请求失败,获取IP失败
        token_out_effect(-9002, "无效的token"),//token无效
        token_no_power(-9003, "用户没权限"),// 没权限 包括未授权 或者uri错误
        token_out_time(-9004, "oken已过期")//token无效
        ;
        codeEm(Integer code) {
        codeEm(Integer code, String message) {
            this.code = code;
            this.message = message;
        }
        private Integer code;
        private String message;
        public Integer getCode() {
            return code;
@ -50,6 +55,14 @@ public class BaseResultModel {
        public void setCode(Integer code) {
            this.code = code;
        }
        public String getMessage() {
            return message;
        }
        public void setMessage(String message) {
            this.message = message;
        }
    }
    public BaseResultModel() {
@ -63,4 +76,6 @@ public class BaseResultModel {
        this.code = code;
        this.message = message;
    }
}