List 集合,如何优雅地返回给前端?

1.业务背景


业务场景中,一个会话中存在多个场景,即一个session_id对应多个scene_id和scene_name

如果你写成如下的聚合模型类


public class SceneVO {
private String sessionId;
private String sceneId;
private String sceneName;
// 省略对应的getter和setter方法
}

返回的List形式如下,这个数据在data属性中


{
"data":[
  {
"sessionId": "jksadhjksd",
"sceneId":"NDJWKSDSJKDKED",
"sceneName":"场景1"
  },
  {
"sessionId": "jksadhjksd",
"sceneId":"KLJSDJKLSDFALK",
"sceneName":"场景2"
  },
  {
"sessionId": "jksadhjksd",
"sceneId":"KERFJKOVDJKDSS",
"sceneName":"场景3"
  }
 }
}

每个对象里面都带上了重复的一个sessionId数据,我想提出来该怎么办?


我想改为如下形式,sessionId提出到外层,更能体现出一个sessionId对应多个sceneId和sceneName的含义,这样也便于前端取数据,不然每个对象都要增加一个sessionId属性,太麻烦。


{
"data": {
"sessionId": "jksadhjksd",
"sceneList": [
   {
"sceneId":"NDJWKSDSJKDKED",
"sceneName":"场景1"
   },
   {
"sceneId":"KLJSDJKLSDFALK",
"sceneName":"场景2"
   },
   {
"sceneId":"KERFJKOVDJKDSS",
"sceneName":"场景3"
   }
  }
 }
}

2.实体类


方法如下,首先创建两个实体类。

public class SceneVO {
private String sessionId;
private List sceneList;
// 省略对应的getter和setter方法
}
public class SubSceneVO {
private String sceneId;
private String sceneName;
// 省略对应的getter和setter方法
}

3.自定义Mapper和xml文件

public interface BusinessScenesCustomMapper {
 SceneVO selectBySessionId(String sessionId);
}
<?xml version="1.0" encoding="UTF-8"?>













4.Service层


public interface SceneService {
/**
 * 获取场景信息
 */
 SceneVO getScenesInfo(String sessionId);
}
@Service
public class SceneServiceImpl {

@Resource
private BusinessScenesCustomMapper businessScenesCustomMapper;
 ......
public SceneVO getScenesInfo(String sessionId) {
return businessScenesCustomMapper.selectBySessionId(sessionId);
 }
}

5.Controller层

......
@Resource
private SceneService sceneService;

@GetMapping("/getScenesInfo")
public ResModel getScenesInfo(String sessionId) {
 SceneVO sceneVO = sceneService.getScenesInfo(sessionId);
return ResModel.ok(sceneVO);
}
展开阅读全文

页面更新:2024-03-30

标签:外层   变量   属性   场景   优雅   对象   形式   类型   业务   方法   数据

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top