提交 ca8f39ab authored 作者: zhoushaopan's avatar zhoushaopan

feat[浙里办]: 修改返回的包装类

[修改返回的包装类]
上级 e34c9295
package com.tykj.zlbapp.util;
package com.tykj.zlbapp.base;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tykj.zlbapp.base.ResultObj;
import lombok.SneakyThrows;
import org.springframework.context.annotation.Configuration;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
......@@ -14,52 +11,36 @@ import org.springframework.http.server.ServerHttpResponse;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
import java.util.Objects;
/**
* UnifiedReturnConfig.
*
* @author zsp <xhyrzldf@gmail.com>
* @since 2020/10/9 at 3:17 下午
* @author zsp@gmail.com
* @date 2022/9/28
*/
@Configuration
@RestControllerAdvice("com.tykj.zlbapp")
public class UnifiedReturnConfig implements ResponseBodyAdvice<Object> {
@RestControllerAdvice(basePackages = "com.tykj.zlbapp")
@Slf4j
public class AdviceResponse implements ResponseBodyAdvice<Object> {
private ObjectMapper objectMapper = new ObjectMapper();
@Override
public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
public boolean supports(MethodParameter methodParameter, Class<? extends HttpMessageConverter<?>> aClass) {
return true;
}
@SneakyThrows
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,
Class<? extends HttpMessageConverter<?>> selectedConverterType,
ServerHttpRequest request, ServerHttpResponse response) {
boolean isVoid = Objects.isNull(body);
boolean isResultObj = body instanceof ResultObj;
boolean isStream = selectedContentType.includes(MediaType.APPLICATION_OCTET_STREAM);
boolean isJson = body instanceof JSONObject;
if (isVoid || isResultObj || isStream) {
return body;
}else {
return objectMapper.writeValueAsString(new ResultObj<>(body));
public Object beforeBodyWrite(Object data, MethodParameter methodParameter, MediaType mediaType,
Class<? extends HttpMessageConverter<?>> aClass, ServerHttpRequest serverHttpRequest,
ServerHttpResponse serverHttpResponse) {
// String类型不能直接包装
if (methodParameter.getGenericParameterType().equals(String.class)) {
ObjectMapper objectMapper = new ObjectMapper();
try {
// 将数据包装在ResultVo里后转换为json串进行返回
return objectMapper.writeValueAsString(new ResponseObj(data));
} catch (JsonProcessingException e) {
log.info("异常信息:{}",e.getMessage());
}
}
// // String类型不能直接返回
// if (returnType.getGenericParameterType().equals(String.class)) {
// try {
// // 将数据包装在ResultObj里后转换为json串进行返回
// return
// } catch (JsonProcessingException e) {
// e.getMessage();
// }
// }
// 否则直接包装成ResultVo返回
// return new ResultObj<>(body);
return new ResponseObj(data,"成功");
}
}
}
package com.tykj.zlbapp.base;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author zsp@gmail.com
* @date 2022/9/28
*/
@Data
@NoArgsConstructor
public class ResponseObj {
public Object data;
private String code;
private String message;
public ResponseObj(Object object, String code, String message) {
this.data = object;
this.code = code;
this.message = message;
}
public ResponseObj(Object object, String message) {
this.data = object;
this.message = message;
}
public ResponseObj(Object object) {
this.data = object;
}
}
......@@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Map;
/**
* @author zsp
......@@ -26,7 +27,7 @@ public class ZlbAppController {
@GetMapping("/getAppTokenByTicketId")
@ApiOperation(value = "根据票据换取token", notes = "根据票据换取token")
public ResponseEntity getAppTokenByTicketId(String ticketId) {
public Map<String, Object> getAppTokenByTicketId(String ticketId) {
// HttpSession session = request.getSession();
//1. 通过ticketId 换取 accessToken
......@@ -37,14 +38,14 @@ public class ZlbAppController {
//// //4. 缓存用户信息
//// session.setAttribute(USER_INFO_KEY, userInfo);
// log.info("session:{}",session);
return ResponseEntity.ok(zlbAppAuthService.getTokenByTicket(ticketId));
return zlbAppAuthService.getTokenByTicket(ticketId);
}
@GetMapping("/getAppUserInfoByToken")
@ApiOperation(value = "根据token获取当前登录的用户信息", notes = "根据token获取当前登录的用户信息")
public ResponseEntity getAppUserInfoByToken(String token) {
public Map<String, Object> getAppUserInfoByToken(String token) {
return ResponseEntity.ok(zlbAppAuthService.getUserInfoByToken(token));
return zlbAppAuthService.getUserInfoByToken(token);
}
}
......@@ -31,7 +31,7 @@ public class ZlbWeChatController {
@GetMapping("/getWeChatTokenByTicketId")
@ApiOperation(value = "根据票据换取token", notes = "根据票据换取token")
public ResponseEntity getTokenByTicketId(String ticketId) {
public String getTokenByTicketId(String ticketId) {
// HttpSession session = request.getSession();
// //1. 通过ticketId 换取 accessToken
String token = zlbWeChatAuthService.getTokenByTicketId(ticketId);
......@@ -42,12 +42,12 @@ public class ZlbWeChatController {
// //4. 缓存用户信息
// session.setAttribute(WECHAT_USER_INFO_KEY, userInfo);
// log.info("session:{}",session);
return ResponseEntity.ok(token);
return token;
}
@GetMapping("/getWeChatCurrentUser")
@ApiOperation(value = "获取当前登录的用户信息", notes = "获取当前登录的用户信息")
public ResponseEntity getCurrentUser(String token) {
public JSONObject getCurrentUser(String token) {
// HttpSession session = request.getSession();
// Object attribute = session.getAttribute(WECHAT_USER_INFO_KEY);
// if(attribute!= null){
......@@ -57,7 +57,32 @@ public class ZlbWeChatController {
// throw new RuntimeException("未登录");
// }
JSONObject userInfoByToken = zlbWeChatAuthService.getUserInfoByToken(token);
return ResponseEntity.ok(userInfoByToken.getJSONObject("personInfo"));
if (userInfoByToken != null){
JSONObject jsonObject = new JSONObject();
JSONObject personInfo = userInfoByToken.getJSONObject("personInfo");
String birthday = personInfo.getString("birthday");
String userNameEnc = personInfo.getString("userNameEnc");
String idtype = personInfo.getString("idtype");
String gender = personInfo.getString("gender");
String nation = personInfo.getString("nation");
String userId = personInfo.getString("userId");
String idNoEnc = personInfo.getString("idNoEnc");
String email = personInfo.getString("email");
String phoneEnc = personInfo.getString("phoneEnc");
JSONObject attributes = personInfo.getJSONObject("attributes");
jsonObject.put("birthday",birthday);
jsonObject.put("userNameEnc",userNameEnc);
jsonObject.put("idtype",idtype);
jsonObject.put("gender",gender);
jsonObject.put("nation",nation);
jsonObject.put("userId",userId);
jsonObject.put("email",email);
jsonObject.put("phoneEnc",phoneEnc);
jsonObject.put("idNoEnc",idNoEnc);
jsonObject.put("attributes",attributes);
return jsonObject;
}
return new JSONObject();
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论