3.3 KiB
Raw Blame History

name version description trigger_conditions tags
showcase-module 1.0.0 Sage展示平台模块 — 产品展示、社交互动、KTV付费下载的完整开发规范和部署指南。
用户要求开发或修改展示平台功能
涉及 showcase 模块的表结构、API、CRUD 修改
需要添加新的媒体类型或社交功能
sage
showcase
module
media
social

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加载、卡片渲染、类型筛选

核心设计决策

  1. 计数冗余like_count/comment_count/view_count 冗余在posts表Feed流不做COUNT
  2. 点赞防刷UNIQUE(post_id, user_id) + toggle模式
  3. 嵌套评论parent_id自引用创建时自动更新父评论reply_count
  4. 付费隔离price>0的作品需购买后is_purchased=True才返回content_url
  5. 媒体类型5种固定类型通过appcodes_kv编码管理

部署检查清单

  • pip install showcase
  • sage.py 添加 load_showcase()
  • build.sh 安装循环添加 showcase
  • wwwroot 软链接
  • scripts/load_path.py 执行
  • global_menu.ui 添加菜单项
  • json2ddl 建表
  • xls2crud 生成CRUD界面

扩展指南

添加新媒体类型

  1. models/showcase_posts.json 的 codes 中添加新类型
  2. init/data.json 的 appcodes 中添加新类型
  3. wwwroot/showcase.js 的 MEDIA_LABELS/MEDIA_ICONS 中添加
  4. wwwroot/index.ui 添加对应筛选按钮

添加收藏功能

  1. 新建 models/showcase_bookmarks.jsonpost_id + user_id + folder_id
  2. 新建 json/showcase_bookmarks_list.json
  3. 新建 wwwroot/api/showcase_bookmark_toggle.dspy
  4. 前端添加收藏按钮