原因:
公司规范规定 返回值仅传输当前页面需要的,不允许传输不需要的属性(例:用户对象一共20个字段,用户详情接口仅需6个)
先贴结果
再贴代码
公共返回对象
@ApiModel(value="ReQueryResult对象",description="公共返回对象ReQueryResult")
@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
public class ReQueryResult<T> {
/**
* 登录结果码,000表示成功,非000表示失败
*/
@ApiModelProperty(value = "返回码")
private String resultCode;
/**
* 登录结果码描述信息
*/
@ApiModelProperty(value = "描述")
private String resultDesc;
//业务数据
@ApiModelProperty(value = "数据")
private Object data;
@ApiModelProperty(value = "对象")
private T resultObj;
@ApiModelProperty(value = "总页数")
private Integer recordsTotal;
// @ApiModelProperty(value = "")
// private Integer recordsFiltered;
@ApiModelProperty(value = "是否需要更新")
private Integer isUpdateToken;
private String token;
public void success(String msg){
resultCode = TYPE_ZERO_ZERO_STR;
resultDesc = msg;
}
public void error(String msg){
resultCode = TYPE_ONE_HUNDRED_STR;
resultDesc=msg;
}
public void loginError(String msg){
resultCode = TYPE_ONE_HUNDRED_TWO_STR;
resultDesc=msg;
}
//结果码
public static final String TYPE_ZERO_ZERO_STR="000"; //成功
public static final String TYPE_ONE_HUNDRED_STR="100"; // 失败
public static final String TYPE_ONE_HUNDRED_ONE_STR="101";//
public static final String TYPE_ONE_HUNDRED_TWO_STR="102";//登录失败
public static final String TYPE_ONE_HUNDRED_THREE_STR="103";//未注册
public static final String TYPE_ONE_HUNDRED_FOUR_STR="104";//验证码登录 未注册
public static final String TYPE_ONE_HUNDRED_FIVE_STR="105";//是否确认发布项目
public static final String TYPE_ONE_HUNDRED_SIX_STR="106";//未设置支付密码
public static final String TYPE_ONE_HUNDRED_SEVEN_STR="107";//ios登录失败
}
其中 关键代码 @JsonInclude(JsonInclude.Include.NON_NULL)
ReQueryResult<T> private T resultObj;
controller层
@CoerceLoginAop
@ApiOperation(value = "获取会员信息")
@RequestMapping(value = "", method = RequestMethod.GET)
public ReQueryResult<OrderInfo> getInformation(HttpServletRequest request,@ApiIgnore()MemberInfo memberInfo){
result=new ReQueryResult();
MemberInfo info = mis.getById(memberInfo.getId());
info.setPassword("");
result.setData(info);
result.success(SUCCESS_DESC);
return result;
}
其中 关键代码 public ReQueryResult<OrderInfo>
jackson处理返回的序列化 参考: https://blog.csdn.net/qq_22771739/article/details/89949137
swagger2 参考 :java 泛型