健身记录系统看起来简单,实则是一类典型的个人数据强隔离+多维指标分析+权限差异显著的业务场景。传统做法中,这种系统往往出现以下问题:
查询逻辑混乱:多张表JOIN、字段计算、分组聚合杂糅在一起;
❌权限控制分散:前端判断、后端拼if,难以维护;
❌数据接口冗余:新增一个统计维度就得写一组新接口;
❌逻辑高度耦合:页面、接口、模型解耦困难。
我们团队在实践中使用SnapDevelop,以模型为中心,从数据定义、权限控制、统计逻辑到前端可视化,构建了一套结构化、工程化、可复用的健身记录系统解决方案。
从需求出发到结构建模
| 功能点 | 说明 |
| 用户信息 | 包括昵称、性别、身高体重、生日等 |
| 跑步记录 | 日期、里程、时长、配速、卡路里 |
| 健身打卡 | 类型、完成值、满意度 |
| 数据统计 | 汇总公里数、训练时长、最高记录 |
| 权限控制 | 用户仅能查看/修改自己的数据,管理员查看全量数据 |
系统既有「事务数据」的记录处理,也有「指标数据」的表达式计算,更有「可视图表」的权限展示,是一类典型的“全栈数据驱动”系统。
SnapDevelop 的结构化实现路径
实体设计:将业务语义转化为模型资产
在SnapDevelop中,我们通过实体设计器定义以下数据模型:
-
UserInfo
-
Account:用户ID(绑定登录身份)
-
Nickname、Gender、Birthday、Height、Weight 等字段
-
RunRecord
-
Mileage:本次跑步公里数
-
ElapsedTime:本次跑步用时
-
KCal、Pace、Speed:表达式字段,自动计算
-
EqRecord
-
EqType:器械/训练类型
-
EqData1~3:训练维度(如重量、次数)
-
RecordDate:记录时间

实体设计完成后,一键生成后端接口和页面结构。SnapDevelop 将“数据结构”直接转化为“工程资产”。
权限控制:逻辑内嵌,数据隔离自动化
传统项目中,权限控制往往通过 Controller 判断逻辑,例如:
if (user.Role == "admin") { return AllData(); }
else { return Data.Where(d => d.UserId == user.Id); }
但这类写法易遗漏、难复用。我们在 SnapDevelop 中,统一通过数据上下文获取当前用户信息:
-
所有查询、更新、删除操作都可绑定 GetUserId() 的值
-
支持配置“守卫条件”,实现“只允许本人修改自己的数据”
-
UI 页面也可绑定角色字段,控制组件展示与否


效果:前后端统一的权限模型,不再写重复的 if 判断。
表达式字段:公式配置替代函数拼接
以跑步记录为例,我们要动态计算以下字段:
| 指标 | 计算公式 |
| 卡路里消耗 | KCal = Round(Weight * Mileage * 1.1, 2) |
| 平均速度 | Speed = Round(Mileage * 60 / ElapsedMinutes, 2) |
| 配速 | Pace = Round(ElapsedMinutes / Mileage, 1) |
以前要写在 Service或SQL中,现在直接通过表达式设计器实现,支持:
-
ROUND、DATEDIFF、IF 等函数
-
变量引用、模型字段调用
-
配合 UI 配置字段展示格式(单位、颜色、标签)

效果:让公式成为“模型内的一部分”,不再散落在代码角落。
数据统计接口:图形化构建聚合逻辑
我们定义了 RunRecord.GetStat 接口,统计当前用户跑步数据:
-
总公里数(MileageSum)
-
跑步总次数(TotalCount)
-
最长单次跑步(MileageMax)
-
总训练分钟(ElapsedMinutesSum)
实现方式:
-
获取当前用户 ID
-
使用GROUP BY + 聚合函数,查询结果保存至Result
-
使用表达式处理统计
-
返回统一结构对象

无需写 SQL,完全图形化配置完成。
视图层:组件化页面 + 数据源绑定
前端页面主要包括:
-
我的主页:展示基础信息 + 图表概况

-
跑步记录页:列表、详情、新增、编辑

-
健身记录页:训练打卡、图表趋势



-
图表页:折线图、饼图、柱状图组件,绑定统计接口

-
编辑页:数据双向绑定 + 输入校验
组件通过数据源直接绑定模型方法(如:GetList、GetPage、GetStat),统计图通过权限字段控制展示:
if (user.role === 'admin') { 显示图表 }
else { 隐藏图表 }
传统开发中,查询逻辑、权限控制、统计逻辑往往散落在多个层级中,难以追踪与复用。而 SnapDevelop 提供的逻辑设计器、表达式设计器、权限控制设计,让业务逻辑具备了“集中建模、统一表达、结构化复用”的能力。
这不仅是低代码,更是一次从“写逻辑”到“建模型”的工程跃迁。

被折叠的 条评论
为什么被折叠?



