跳到主要内容

大屏项目:report_go_view_project

本表每行代表一个 GoView 大屏项目,保存项目 JSON、展示信息、发布状态和可访问角色列表。实体继承 BaseDO,不声明租户字段。

业务流程是创建项目并绑定可见角色,编辑时保存大屏配置到 content,通过 status 区分发布与未发布,再按角色范围列出和读取项目。图片 URL 与内容 JSON 是项目展示资料;角色关系决定能否访问,发布状态本身不代替角色授权。更新和删除项目时需要同时满足项目角色范围与操作权限,删除走继承的逻辑删除字段。

实体来源:ik_project/yudao-cloud/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/dal/dataobject/goview/GoViewProjectDO.java:20。

完整字段​

下表列名按实体驼峰转下划线映射;Java 类型为源码事实。2026-09-18 的实测 SQL 类型见后文,role_ids 已确认为 JSON 列。

数据库列Java 字段 / 类型语义与转换声明行
idid / Long项目主键,@TableId;注释声明数据库自增33
namename / String项目名称37
pic_urlpicUrl / String预览图片 URL41
contentcontent / String大屏完整 JSON 配置,以字符串保存47
statusstatus / Integer0 已发布、1 未发布56
remarkremark / String项目备注60
role_idsroleIds / List<Long>JacksonTypeHandler;非 null 时才更新64
create_timecreateTime / LocalDateTime创建时自动填充BaseDO:30
update_timeupdateTime / LocalDateTime创建/更新时自动填充BaseDO:35
creatorcreator / String创建者 ID,保留字符串拓展能力BaseDO:42
updaterupdater / String更新者 IDBaseDO:49
deleteddeleted / Boolean@TableLogic 逻辑删除字段BaseDO:54

继承来源:ik_project/yudao-cloud/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/dataobject/BaseDO.java:24。transMap 是框架转换附加属性,不是该基类声明的数据库列。

角色关系与查询方式​

角色 ID 逻辑关联 system 服务角色。当前用户及有效角色由 AdminUserApi、PermissionApi、RoleApi 获取;受信 system 返回的 admin 用户或有效固定角色 ID 1 拥有特权。普通用户需要有效角色与项目 role_ids 有交集,并具备对应操作权限。

历史 NULL 和空数组不默认向普通用户开放。修改角色时,省略或 null 保持旧绑定,[] 才是清空;因此不能在文档中把 NULL 和 [] 描述为“公开项目”。角色列表会去重、排序,并限制最多 200 个正整数 ID。

分页在 SQL 层以参数绑定执行 JSON_CONTAINS(role_ids, ...),按 id 倒序;写入事务通过 SELECT ... FOR UPDATE 锁定项目,避免并发撤权后仍用旧角色关系写入。实测本表只有 PRIMARY(id),没有角色 JSON 索引或外键。

来源:

  • ik_project/yudao-cloud/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/dal/mysql/goview/GoViewProjectMapper.java:19:角色过滤和分页。
  • ik_project/yudao-cloud/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/dal/mysql/goview/GoViewProjectMapper.java:36:行锁。
  • ik_project/yudao-cloud/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/service/goview/GoViewProjectAccessService.java:31:用户与角色来源。
  • ik_project/yudao-cloud/yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/service/goview/GoViewProjectAccessService.java:99:角色更新规则。

实测物理结构与差异​

采集时间:2026-09-18 20:51,库 ik_yudao_report,MySQL 8.0.35;引擎 InnoDB,表排序规则 utf8mb4_unicode_ci。以下 — 表示未声明默认值;可空列以 NULL 表示其默认空值。

列实际 SQL 类型可空默认/额外行为
idbigint否—;auto_increment;PRIMARY
namevarchar(255)否—
pic_urlvarchar(1024)是NULL
contentlongtext是NULL
statustinyint否—
remarkvarchar(255)是NULL
creatorvarchar(64)是空字符串
create_timedatetime否CURRENT_TIMESTAMP
updatervarchar(64)是空字符串
update_timedatetime否CURRENT_TIMESTAMP;更新时自动刷新
deletedbit(1)否b'0'
tenant_idbigint否0;数据库额外列,DO 未声明
role_idsjson是NULL

12 个 Java 持久化字段都在数据库中存在,另有 tenant_id。源码未声明该字段不意味着物理表没有它;本轮只采集结构,未验证租户插件实际生成的 SQL 或历史数据租户归属。实体 @TableName 尾部提及 system_user/system_users 的注释与本表无关,表名以注解值和实测为准。

原始结构汇总见 Report 主库物理字典。

用户文档
AI 助手
Agent 列表
请选择一个 Agent 开始对话
AI 问答