比如一个站点类型,是通过系统上的字典绑定的,比如 1 对应类型 a ,2 对应类型 b 这样。页面上显示的肯定是类型 a,b,c 。数据库里存的是 1/2/3 。现在涉及到导出数据的话,应该怎么导出的时候做处理呢?
1
evan1 3 天前
找下数据库到页面显示时相关的转换代码,导出的时候复用下。
|
![]() |
2
ChovyChu 3 天前
写个注解,导出时转换
|
![]() |
4
YJi 3 天前
之前需要导出表格,用的 easyexcel ,然后可以根据属性自定义 converter 。
|
![]() |
6
L0L 3 天前
哈哈哈,我见过直接 case 转换的,在 sql 里直接转换,出结果
|
7
Plutooo 3 天前
用最笨的方法,后端也存一套枚举,然后 forEach 操作
|
9
iyiluo 3 天前
懒得写代码可以直接复制一份表,直接用 sql 把枚举字段替换掉,导出复制表
|
![]() |
10
Cestbonmmm 3 天前
用最笨的方法,后端也存一套枚举,然后 forEach 操作 +1
不用怕字典变动,有 gpt 生成。导出 Excel 的需求变得也快,不要过度设计 |
12
shen13176101 3 天前
听你的描述,sql 关联字典表,就能实现了。那里还会有问题呢
|
![]() |
13
FawkesV 3 天前
维护专门的字典表。
然后写一个反序列化的注解 DictTranslate 然后写一个反序列化实现:class DictSerializer extends JsonSerializer<String> implements ContextualSerializer 返回的时候直接在原本的 type 增加 typeName 字段做展示 。 |
14
yinmin 3 天前 via iPhone
如果编码固定基本不变(不是部署后可维护的字典表),就让前端写一个 class method ,输入编码输出文字 switch case 写死在代码里。就是有几个 class 下面有一堆的 method 专门将编码转换成文字(硬编码)。如果前端比较糙,或者不想让用户获取到完整字典表,class method 硬编码写在后端也行。
如果是部署后可维护的字典表,数据库 join 后,编号和对应文字同时传给前端。 |
15
yinmin 3 天前 via iPhone
@t298 #5 字典表查询接口给前端,前端要疯掉了,假设服务器在北京,用户在海南,延时 50ms ,前端调一次接口 50ms ,界面可能有几十上百个编码转换文字,如果调用几十上百次光延时就够呛,一个界面调用字典表查询接口的次数像是 ddos 攻击了。
要么 api 同时将编码和文字发给前端,要么就把编码文字对照表 json 一次性发给前端,或者给前端一个 word/excel 让前端硬编码。 |
16
yinmin 3 天前 via iPhone
后端程序与数据库交互一次 5ms-30ms (数据汇总可能更长时间);前端与后端交互一次 10ms-100ms ,每 100kb 数据再加 100ms-1 秒。 一个界面会有几次前端-后端-数据库交互,大致能方案算出行不行。
|
17
Sum0l 2 天前
数据翻译框架,国内有开源项目。https://easy-trans.dromara.org/
|
18
tangxueming13 2 天前
1.sql case (看场景是否适用)
2. 服务端 converter (很优雅) 3. 数据库直接加一列 (以前 leader 说过, 要学会冗余,别整天范式) |