3.3 KiB
3.3 KiB
| name | version | description | trigger_conditions | tags | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| showcase-module | 1.0.0 | Sage展示平台模块 — 产品展示、社交互动、KTV付费下载的完整开发规范和部署指南。 |
|
|
Showcase 展示平台模块
仓库
- 路径:
~/repos/showcase/ - 远端:
git@git.opencomputing.cn:yumoqing/showcase.git
数据表(sage 数据库)
| 表名 | 用途 | 关键字段 |
|---|---|---|
showcase_posts |
作品主表 (24字段) | media_type(music/mtv/short_video/long_video/ktv), price, like_count, view_count, comment_count |
showcase_comments |
评论 (12字段) | parent_id(嵌套), reply_to_user_id, reply_count |
showcase_likes |
点赞 (4字段) | UNIQUE(post_id, user_id) |
showcase_downloads |
KTV下载 (8字段) | payment_status, UNIQUE(post_id, user_id) |
API 端点(wwwroot/api/)
| 文件 | 功能 |
|---|---|
| showcase_feed.dspy | Feed列表(分页+media_type筛选) |
| showcase_post_detail.dspy | 详情(自动+view_count,返回is_liked/is_purchased) |
| showcase_post_create.dspy | 创建(自动填充author_id=get_user()) |
| showcase_post_update.dspy | 更新 |
| showcase_post_delete.dspy | 删除 |
| showcase_comment_create.dspy | 评论/回复(自动更新comment_count和reply_count) |
| showcase_comment_update.dspy | 更新评论 |
| showcase_comment_delete.dspy | 删除评论 |
| showcase_comments_list.dspy | 获取作品全部评论 |
| showcase_like_toggle.dspy | 切换点赞(返回liked:bool) |
| showcase_download_purchase.dspy | KTV购买(检查重复,模拟支付) |
CRUD 管理(json/)
- showcase_posts_list — 作品管理(data_filter: title/media_type/status)
- showcase_comments_list — 评论管理
- showcase_downloads_list — 下载记录
前端
- index.ui — Feed主页(卡片瀑布流 + 5个类型筛选按钮)
- detail.ui — 作品详情页
- showcase.css — 卡片样式、评论样式
- showcase.js — feed加载、卡片渲染、类型筛选
核心设计决策
- 计数冗余:like_count/comment_count/view_count 冗余在posts表,Feed流不做COUNT
- 点赞防刷:UNIQUE(post_id, user_id) + toggle模式
- 嵌套评论:parent_id自引用,创建时自动更新父评论reply_count
- 付费隔离:price>0的作品需购买后is_purchased=True才返回content_url
- 媒体类型:5种固定类型,通过appcodes_kv编码管理
部署检查清单
- pip install showcase
- sage.py 添加 load_showcase()
- build.sh 安装循环添加 showcase
- wwwroot 软链接
- scripts/load_path.py 执行
- global_menu.ui 添加菜单项
- json2ddl 建表
- xls2crud 生成CRUD界面
扩展指南
添加新媒体类型
- models/showcase_posts.json 的 codes 中添加新类型
- init/data.json 的 appcodes 中添加新类型
- wwwroot/showcase.js 的 MEDIA_LABELS/MEDIA_ICONS 中添加
- wwwroot/index.ui 添加对应筛选按钮
添加收藏功能
- 新建 models/showcase_bookmarks.json(post_id + user_id + folder_id)
- 新建 json/showcase_bookmarks_list.json
- 新建 wwwroot/api/showcase_bookmark_toggle.dspy
- 前端添加收藏按钮