【实际开发12】- 经验 experience

article/2024/3/1 14:51:18

目录

1. 经验 experience

1. 无多大价值 , 停留数据展示层面

2. 保证数据一致性问题

3. 新增时 , 可先关注核心基础数据 ( 复杂数据以修改形式完善 )

4. 新增 / 修改 ( 幂等性处理 )

5. 增 / 删 / 改 添加日志 , 查询无需日志

6. 需要对接多模块的通用字段设计 : String ( 推荐 )

7. 参数转换器

1. 资产结构数据边界 : tenantId , 但 tenantId=1系统租户查看所有

2. 多对象接受 [ ] 时 , query 无法传递 数组问题 : String 中转接收

8. 数据源关系维护

1. 主体 paret_relation 字段 , 存放 Json 数组 ( 解析 )

9. 中间表数据维护

1. 同步删除

2. 避免手动删除数据

10. 数据清洗 - ( 平台级别 : Dbus )

11. 前后端交互 : 入参数据结构演进 ( 单 转 多 ) ~ pic


1. 经验 experience


1. 无多大价值 , 停留数据展示层面


2. 保证数据一致性问题

保证数据一致性问题:

1、数据存 id

2、数据源唯一


3. 新增时 , 可先关注核心基础数据 ( 复杂数据以修改形式完善 )


4. 新增 / 修改 ( 幂等性处理 )


5. 增 / 删 / 改 添加日志 , 查询无需日志


6. 需要对接多模块的通用字段设计 : String ( 推荐 )

锚点模块 , MachineId

1、对接 设备;锚点 type = 0 时 , MachineId 是 设备ID

2、对接 摄像头;锚点 type = 1 时 , MachineId 是 摄像头ID (坑 , 仅此处ID是 极长的 String 类型)

3、对接 公司;锚点 type = 2 时 , MachineId 是 公司ID

导致:
    对接 摄像头数据 , 可能需要大量修改锚点基础数据 - 20.08.04 待处理


7. 参数转换器


1. 资产结构数据边界 : tenantId , 但 tenantId=1系统租户查看所有

    /*** 将 tenantId == 1 的系统租户 , 处理为无 tenantId 的情况 - 20.10.12* @param iotStructureDTO 入参* @return IotStructureDTO 处理后的入参*/private IotStructureDTO dealParam(IotStructureDTO iotStructureDTO) {if(iotStructureDTO.getTenantId() == 1){iotStructureDTO.setTenantId(null);return iotStructureDTO;}return iotStructureDTO;}


2. 多对象接受 [ ] 时 , query 无法传递 数组问题 : String 中转接收

    @Overridepublic IPage<IotResourcesVO> queryIotResourcesByLabel(Page page ,  IotResourcesDTO iotResourcesDTO) {String labelIdList = iotResourcesDTO.getLabelIdList();List<Integer> list = Arrays.asList(labelIdList.split(" , ")).stream().map(s -> Integer.parseInt(s))  //.map(Integer::valueOf).collect(Collectors.toList());iotResourcesDTO.setLabelId(list);IPage<IotResourcesVO> iotResourcesVOIPage = iotResourcesMapper.queryIotResourcesByLabel(page ,  iotResourcesDTO);return iotResourcesVOIPage;}


8. 数据源关系维护


1. 主体 paret_relation 字段 , 存放 Json 数组 ( 解析 )


9. 中间表数据维护


1. 同步删除


2. 避免手动删除数据


10. 数据清洗 - ( 平台级别 : Dbus )


11. 前后端交互 : 入参数据结构演进 ( 单 转 多 ) ~ pic

情景 :

1、原始设计,虚拟点位对应 单个设备,多个属性,设备由产品限制维度(取 1),属性由产品限制维度(取 > 1)

2、新需求,虚拟点位对应多个产品维度的属性,则最新虚拟点位设计:

    1、虚拟点位对应 多个设备,多个属性

    2、设备由产品限制维度(取 >1),属性由产品限制维度(取 > 1)

最终版:

1、方便数据回显

2、利于业务逻辑处理

前端 :

1、数据以 proId、machineId 为维度,一组一组的构建

2、+ 号按钮,触发新一组数据

 


http://www.ngui.cc/article/show-861319.html

相关文章

值得拥有并收藏的 3个安卓/鸿蒙手机解锁软件

手机无论支持哪种操作系统&#xff0c;都占据了每个人口袋里的空间。随着大量移动设备的使用&#xff0c;搜索引擎上也出现了同样数量的查询&#xff0c;其中最常见的是提供安卓/鸿蒙屏幕锁定删除工具。由于安卓是当今最畅销的设备&#xff0c;我们的首要任务是为您提供最好的安…

并发编程学习案例-ReentrantReadWriteLock非公平的情况下读锁插队和写锁插队场景复现

文章目录一、前言二、源码三、 代码案例&#xff08;一&#xff09;复现写的时候插队场景参考执行结果&#xff08;二&#xff09;复现读的时候插队参考执行结果参考资料一、前言 Java ReentrantReadWriteLock 是 ReadWriteLock 的实现类&#xff0c;可以分出2把锁&#xff0c;…

2023年深圳CPDA数据分析师认证将于2/25正式开班,快来报名

CPDA数据分析师认证是中国大数据领域有一定权威度的中高端人才认证&#xff0c;它不仅是中国较早大数据专业技术人才认证、更是中国大数据时代先行者&#xff0c;具有广泛的社会认知度和权威性。 无论是地方政府引进人才、公务员报考、各大企业选聘人才&#xff0c;还是招投标加…

2023年关于redis,常常靠常常忘的知识点

一.使用过 Redis 分布式锁么&#xff0c;它是怎么实现的&#xff1f;先拿 setnx 来争抢锁&#xff0c;抢到之后&#xff0c;再用 expire 给锁加一个过期时间防止锁忘记了释放。如果在 setnx 之后执行 expire 之前进程意外 crash 或者要重启维护了&#xff0c;那会怎么样&#x…

RDC 2022纪念版开发板-D1S在RT-Smart运行

开发环境 软件 ubuntu20.04VMware Workstation 硬件 RDC2022纪念版开发板全志D1s芯片 材料下载 首先打开虚拟机&#xff0c;创建一个目录存放本次测试的代码&#xff0c;然后克隆RT-Smart用户态代码。 git clone https://github.com/RT-Thread/userapps.git在userapps目…

Navicat Monitor 3.0 现已上市 | 欢迎下载试用

Navicat Monitor 3.0 现已上市Navicat Montior 3.0 现已发布&#xff01;一经发布&#xff0c;受到广大专业运维人员的关注与选择! 五大新亮点带给运维团队最为实用且有效地提升监控能力。其具备 PostgreSQL 服务器监控能力、支持优化慢查询、构建自定义指标、性能分析工具优化…

计算机视觉和图像处理简介:PIL (Python Image Library) 的基本使用

文章大纲 Image Files and PathsLoad Images in PythonPlotting an ImageGrayscale Images, Quantization and Color ChannelsGrayscale ImagesQuantizationColor ChannelsPIL Images into NumPy ArraysIndexingQuestion 1:ReferencesPillow Library (PIL) Estimated time need…

第5章 Linux平台安装MongoDB教程

Linux平台install MongoDB MongoDB 提供了 linux 各个发行版本 64 位的install 包&#xff0c;帅哥可以在官网download install 包。 install 前咱们需要install 各个 Linux 平台依赖包。 Red Hat/CentOS&#xff1a; sudo yum install libcurl opensslUbuntu 18.04 LTS (“…

Qt 开发环境搭建

一、Qt下载与安装 1、qt下载网站https://download.qt.io/ 其中各个目录含义如下&#xff1a; 目录说明snapshots/预览版&#xff0c;最新开发测试的Qt库和开发工具online/在线安装源official_releases/正式发布版&#xff0c;是与开发版相对应的稳定版Qt库和开发工具&#x…

Linux: command: traceroute traceroute6

文章目录 参考昨天遇到一个问题命令功能描述UDP方式ICMP 方式TCP方式traceroute --help解决参考 https://en.wikipedia.org/wiki/Traceroute https://linux.die.net/man/8/traceroute 昨天遇到一个问题 说这个traceroute显示的全是 星花,没有路由信息。根据多年的经验,这种…