西藏巴青项目

数据资产服务中心技术方案.md 6.9KB

数据资产服务中心 — 技术方案

依据:同目录 数据资产服务中心功能需求.md。数据发送记录 CRUD + 逻辑删除;本期无对外真实发送、无附件。


1. 技术架构

说明
后端 RuoYi v3.9.2springboot2 分支):JDK 8、Spring Boot 2.x、Spring MVC、MyBatis、Druid
数据库 MySQL 5.7.39,InnoDB,utf8mb4
前端 若依 Vue2(本方案不展开页面实现)

分层ControllerServiceDataSendRecordValidation 校验)→ Mapper/XML → domain

代码位置(建议)baqing-admincom.ruoyi.web.modules.datahubBizDataSendRecord、Mapper、Service、Controller)。

业务摘要

场景 行为
新增/修改 校验必填与长度;del_flag='0'
列表/详情 del_flag='0';排序 send_time DESC, id DESC
列表筛选 send_time 日期部分闭区间;receiver_name 精确匹配(不区分大小写
删除 逻辑删除del_flag'2'

2. 数据库设计

2.1 表 biz_data_send_record(数据发送记录)

字段 类型 非空 说明
id bigint(20) Y 主键
send_time datetime Y 发送时间
send_content varchar(2000) Y 发送内容
receiver_name varchar(128) Y 接收方名称
receiver_address varchar(512) Y 接收方地址
del_flag char(1) Y 0 存在 2 删除
create_by / create_time / update_by / update_time 若依惯例 审计
remark varchar(500) N 备注(可选)

索引PRIMARY KEY (id)KEY idx_send_time (send_time)KEY idx_receiver_name (receiver_name)KEY idx_del_flag (del_flag)

DDL(MySQL 5.7)

CREATE TABLE `biz_data_send_record` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `send_time` datetime NOT NULL COMMENT '发送时间',
  `send_content` varchar(2000) NOT NULL COMMENT '发送内容',
  `receiver_name` varchar(128) NOT NULL COMMENT '接收方名称',
  `receiver_address` varchar(512) NOT NULL COMMENT '接收方地址',
  `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '0存在 2删除',
  `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`),
  KEY `idx_send_time` (`send_time`),
  KEY `idx_receiver_name` (`receiver_name`),
  KEY `idx_del_flag` (`del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据发送记录';

2.2 枚举

字段 含义
del_flag 0 正常
2 已逻辑删除

3. 接口设计

统一响应AjaxResultcode / msg / data)或分页 TableDataInforowstotal)。

权限标识dataHub:dataSendRecord:list|query|add|edit|remove

Base Path/dataHub/dataSendRecord

# 说明 Method URI 权限
3.1 分页列表 GET /dataHub/dataSendRecord/list list
3.2 详情 GET /dataHub/dataSendRecord/{id} query
3.3 新增 POST /dataHub/dataSendRecord add
3.4 修改 PUT /dataHub/dataSendRecord edit
3.5 删除 DELETE /dataHub/dataSendRecord/{ids} remove

删除接口沿用若依 {ids} 形式;本期前端仅单条删除,传单个 id 即可。

3.1.1 列表 Query

参数 类型 必填 说明
pageNum / pageSize int N 默认 1 / 20
startDate string N 发送日期起 yyyy-MM-dd(界面 daterange 起)
endDate string N 发送日期止 yyyy-MM-ddDATE(send_time) 闭区间
receiverName string N 接收方名称精确匹配;比较时 不区分大小写LOWERutf8mb4_general_ci

区间校验startDateendDate 均非空且 startDate > endDate 时抛业务异常。

3.2.1 详情响应 data(驼峰)

字段 说明
id 主键
sendTime yyyy-MM-dd HH:mm:ss
sendContent 发送内容
receiverName 接收方名称
receiverAddress 接收方地址
createBy / createTime / updateBy / updateTime 审计
remark 备注

3.3.1 新增 / 修改 Body(驼峰)

字段 必填 说明
id 修改 Y 主键
sendTime Y yyyy-MM-dd HH:mm:ss
sendContent Y 去首尾空白后非空;≤ 2000 字
receiverName Y 1~128 字
receiverAddress Y 1~512 字
remark N ≤ 500 字

3.5.1 删除

  • DELETE /dataHub/dataSendRecord/{ids}ids 逗号分隔。
  • 逻辑删除:del_flag='2',仅更新 del_flag='0' 的记录。
  • 详情/修改前须校验记录存在且未删除。

3.3 Mapper 约定

  • 列表、详情、更新条件均带 del_flag = '0'
  • 列表排序:ORDER BY send_time DESC, id DESC
  • 发送日期筛选:DATE(send_time) >= #{startDate} AND DATE(send_time) <= #{endDate}(参数非空时生效)。
  • 接收方名称:LOWER(receiver_name) = LOWER(#{receiverName})(参数非空时)。

3.4 服务端校验(DataSendRecordValidation

规则
sendTime 非空
sendContent trim 后非空;长度 ≤ 2000
receiverName trim 后非空;长度 1~128
receiverAddress trim 后非空;长度 1~512
列表日期区间 startDate ≤ endDate(均填时)
修改/删除 id 对应记录存在且 del_flag='0'

常量类建议:DataSendRecordRules(长度上限、del_flag 取值)。


4. 菜单与权限(示例)

类型 名称 权限标识
菜单 数据资产服务中心 dataHub:dataSendRecord:list
按钮 查询 dataHub:dataSendRecord:query
按钮 新增 dataHub:dataSendRecord:add
按钮 修改 dataHub:dataSendRecord:edit
按钮 删除 dataHub:dataSendRecord:remove

组件路径:dataHub/dataSendRecord/index(挂载「牧业产业数据中枢」目录下)。


5. 交付清单

  • sql/biz_data_send_record.sql、菜单与按钮权限 SQL
  • BizDataSendRecord Domain / Mapper / Service / Controller
  • DataSendRecordRulesDataSendRecordValidation
  • 逻辑删除;列表日期区间与接收方精确匹配
  • 单元测试 / MockMvc(list 筛选、CRUD、校验失败)

6. 修订记录

版本 说明
1.0 初稿:biz_data_send_record;CRUD + 逻辑删除;发送日期按 send_time 日期筛选;接收方名称不区分大小写精确匹配