admin 发表于 前天 22:52

测试


源社区应用商店
一、版本记录

版本        日期        作者        说明       
v0.1        2025-09-9                ①全页面手机版视觉稿②后台完整布局③评论区管理+附件④UTF-8       

二、总体定位
- 产品名称:Official App Center(官方应用中心)
- 终端:PC(≥1200px)、Pad(768-1199px)、Mobile(≤767px)
- 技术:DZX3.5 插件;PHP7.4-8.x+MySQL5.7-8.x;
- 编码:插件所有代码文件强制 UTF-8 无 BOM(含模板、语言包、JS、CSS)

三、设计系统

3.1 品牌色
- Primary:#5270FF → #7A87FF 45°渐变
- 功能色:Success #10C961 / Error #FF3B30 / Warning #FFCC00
- 中性色:Title #141733 / Body #3C4054 / Line #EEF0F6 / Bg #FAFBFC

3.2 圆角 & 阴影
- 卡片圆角:PC 12px / Mobile 16px
- 按钮圆角:PC 8px / Mobile 12px
- 阴影:0 4 24px rgba(82,112,255,0.08)

3.3 字体
- PC:PingFang SC, HarmonyOS_Sans, 14px
- Mobile:系统字体,15px 基准

3.4 栅格
- PC:24 列,间隙 24px,最大宽 1200px
- Mobile:4 列,间隙 16px,左右安全距 16px

3.5 动效
- hover: y-4px + 阴影 50ms ease
- 路由切换:opacity 100ms + 微 blur
- 按钮点击:涟漪中心扩散 200ms

3.6 暗黑模式
- CSS 变量:跟随系统或顶部开关

四、技术与耦合策略

功能        复用论坛        插件自建       
用户权限        `$_G['group']` 原生权限体系        ❌       
附件大小        `$_G['group']['maxattachsize']`        ❌       
交易积分        后台【积分设置】已存在字段        ❌       
消息通知        `common_member_notice`        ❌       
缓存        `memory()->get/set` 跟随论坛配置        ❌       
文件存储        本地/COS/OSS/Kodo(插件自建驱动)        ✅       
网盘上传        白名单+HEAD检测(插件自建)        ✅       
评论区管理        后台设置管理组+附件权限        ✅       

五、文件存储策略(详细)

5.1 本地存储
- 路径:`data/attachment/appstore/`
- 命名:`{uid}_{md5}_{timestamp}.{ext}`
- 病毒扫描:ClamAV 实时扫描

5.2 云存储(COS/OSS/Kodo)
- 配置:后台填 Region、Bucket、SecretId、SecretKey、CDN域名
- 上传流程:文件→病毒扫描→本地上传→云存储驱动→成功删除本地→`remote=1`
- 下载流程:优先CDN→404时fallback本地→统计+1

5.3 迁移详细逻辑
- 后台按钮:「本地→云」「云→本地」
- 点击后弹窗:
- 单选:①仅改配置 ②迁移文件
- 输入:并发数(默认5)、失败重试(默认3)
- 队列表 `migration_queue`:

```
id, file_id, direction(cloud/local), status(wait/done/fail), retry, update_time
```

- 计划任务 `cron_migration.php`:
1. 消费 N 条队列
2. 下载源文件到临时目录
3. 上传到目标存储
4. 校验 MD5
5. 更新 `remote` 字段
6. 失败:retry+1;达到上限写日志+后台红点
- 站长通知:迁移完成发送 `common_member_notice`

六、缓存策略(跟随论坛)
- 介质:后台【性能->内存】所选 File/Redis/Memcached
- KEY 前缀:`appstore_{sid}_`
- 生命周期:与论坛主题列表一致(300s);详情页 60s;评论 30s
- 清理:应用状态变更时 `memory()->rm()`

七、信息架构 IA

```
根 /
├─ 首页(PC+Mobile)
├─ 分类列表
├─ 搜索页
├─ 排行榜
├─ 应用详情页(含评论区)
├─ 开发者主页
├─ 用户中心
├─ 上传应用
├─ 更新应用
├─ 审核跟踪
├─ 帮助&协议
└─ 后台管理(PC)
```

八、全局规则
- 路由:`plugin.php?id=appstore&mod={page}&ac={sub}`
- 伪静态:`/app/{id}.html` `/category/{catid}.html`
- 权限:继承 `$_G['group']`;新增「开发者」「审核员」
- 货币:使用论坛【积分设置】交易积分字段
- 上传大小:读 `maxattachsize`;后缀后台白名单
- 通知:插入 `common_member_notice`;跳论坛消息中心
- 缓存:跟随论坛内存设置;KEY 见第 5 节
- 评论:表结构复用 forum_thread/post;type='appstore_comment'
- SEO:伪静态 + TKD + 结构化数据 Product

九、页面级需求(PC & Mobile 双模板)

9.1 首页

Mobile 视觉稿(像素级)

```
┌─ 状态栏高 24px(系统)                  ┐
├─ 导航栏高 56px                        │
│分类图标(左)Logo 居中 发布+(右)      │
├─ Hero 轮播高 210px(16:9)               │
│指示器圆点 6px;手势滑动                │
├─ 分类宫格 8 个 72px 图标 + 12px 文字       │
├─ 搜索入口高 48px(圆角 12)               │
├─ 新品卡片单列                           │
│卡片高 120px;圆角 16;阴影 Y4         │
├─ 排行榜标签高 48px;指示线 2px            │
├─ 猜你喜欢瀑布流                         │
│卡片宽 = (屏幕-48)/2;高度自适应         │
└─ 悬浮发布按钮 56px;右下 16px 安全距      │
```

PC 视觉稿
- 导航通栏高 64px;轮播高 400px;三栏排行榜;瀑布流三列
- 其余元素同 Mobile 比例放大

实现逻辑
- 轮播/精选:后台「首页装修」拖拽排序;缓存 300s
- 瀑布流:前端 `column-count:2` + IntersectionObserver 懒加载
- 下拉加载:URL `plugin.php?id=appstore&mod=index&page=2` 返回 JSON

9.2 分类列表

Mobile
- 顶部 Tab 横向滑动(一级分类)
- 筛选抽屉:价格、评分、时间、排序
- 结果瀑布流;加载更多

PC
- 左侧树形分类+标签多选;右侧双列卡片;排序条;网格/列表切换

逻辑
- 分类树:读 `forum_forum` where type='appstore'
- 筛选缓存 KEY `appstore_cat_{catid}_{filter_md5}` 300s

9.3 搜索页

Mobile
- 搜索框吸顶;历史标签横向;即时建议下拉
- 结果双列;空态插图+热门关键词

PC
- 左侧高级筛选;右侧双列;支持语法 `tag:游戏 价格:免费`

逻辑
- 建议接口:`mod=suggest&q=关键词` 返回 JSON
- 结果缓存:`appstore_search_{md5(q+filter)}` 300s

9.4 排行榜
- 维度:下载/评分/新品/飙升/付费;时间日周月总
- Mobile:顶部标签;下拉加载
- PC:三栏并排 TOP100
- 缓存:每小时;KEY `appstore_rank_{type}_{time}` 3600s

9.5 应用详情页(含评论区)

Mobile 视觉稿

```
┌─ 返回+分享 │ 名称+收藏(右上)         ┐
├─ 媒体区轮播高 210px                     │
├─ 信息区吸顶(图标+名称+评分+下载按钮)    │
├─ Tab 横向滑动:详情 | 版本 | 评论 | 问答 │
├─ 评论区(见下独立章节)               │
└─ 底部悬浮下载按钮高 56px               │
```

PC 视觉稿
- 媒体区左 640px;信息区右 360px;评论区全宽;侧边栏相关推荐

实现逻辑
- 媒体:图片懒加载;视频自动播放静音
- 价格:限时免费倒计时 JS;到期 cron 改回积分
- 下载:按钮触发 `gateway.php?id=xx→302→CDN/本地`

9.6 评论区(手机版独立模板)

Mobile 视觉稿

```
├─ 评论输入框吸底高 88px                  │
│左侧头像 32px;中间输入;右侧发送      │
│支持图+语音+表情                         │
├─ 排序 Tab:最新/最热/最早(下拉菜单)      │
├─ 单条卡片:                               │
│├─ 头像 40px + 昵称 + 等级徽章         │
│├─ 内容区(图片宽度=屏幕-32px)          │
│├─ 底部:点赞 | 回复 | 举报 | 时间      │
│└─ 楼中楼默认 2 条;点「展开 3 条」       │
└─ 加载更多:论坛原生分页 20                │
```

PC 视觉稿
- 输入框右侧;楼中楼完整显示;分页页码

逻辑
- 发帖:调用 `forum_post.php?action=reply` with `type='appstore_comment'`
- 点赞:调用 `home.php?mod=spacecp&ac=praise`
- 缓存:与帖子回帖一致 30s;KEY `appstore_comments_{appid}_{page}`

9.7 开发者主页

Mobile
- 封面图 180px;头像 80px 居中;认证标
- Tab:应用 | 动态 | 关于
- 应用卡片双列瀑布流

PC
- 封面 1440×320;左侧统计;右侧公告;应用三列

逻辑
- 统计 SQL:应用数、下载数、积分收益(读 `common_credit_log`)

9.8 用户中心

Mobile
- 底部 Tab:首页/搜索/发布/消息/我的
- 「我的」页面:用户卡片+宫格+动态时间轴
- 点击「消息」→ 跳 `home.php?mod=space&do=notice`

PC
- 左侧导航树;右侧 Dashboard 图表(Chart.js)
- 积分图表:读 `common_credit_log`

逻辑
- 所有数据读论坛原生表;不再自建

9.9 上传应用(首次)

Mobile 视觉稿(单页折叠)

```
┌─ 进度条(0%-100%)高 4px                  ┐
├─ 基础信息折叠块                         │
│名称* / 分类* / 标签 / 简介*            │
├─ 文件折叠块                           │
│选择文件按钮高 48px                  │
│自动解析 config.xml→版本号             │
├─ 图文折叠块                           │
│封面图拖拽裁剪                         │
│截图≥3(拖拽排序)                     │
│详情描述富文本+Markdown 切换            │
├─ 定价折叠块                           │
│免费/积分/限时免费单选               │
│限时免费→日期时间选择器                │
└─ 底部保存草稿 + 提交按钮                │
```

PC 视觉稿
- 4 步向导;左侧步骤指示;右侧内容区
- 封面图裁剪弹窗(Cropper.js)

逻辑
- 文件大小:实时读 `<!--{eval echo $_G['group']['maxattachsize']}-->`
- 后缀:本地允许 = 论坛 `attachextensions`;网盘允许 = 后台白名单
- 云存储:选择 COS/OSS/Kodo→后台填密钥→文件流上传→`remote=1`

9.10 更新应用(版本)

Mobile
- 顶部提示「当前版本 1.2.3」
- 表单块:
- 版本号 / 更新日志(富文本)
- 文件(可选,不选则只更新日志)
- 截图(可选,可替换)
- 提交→进入审核→原版本状态=历史

PC
- 版本时间轴左+表单右
- 支持「版本对比」diff 弹窗

逻辑
- 写入 `appstore_version` 新记录;状态=待审核
- 审核通过后旧版本 `status=history`

9.11 审核跟踪

Mobile
- 时间轴垂直;图标+状态+时间+审核员留言
- 底部「重新提交」按钮(如被拒绝)

PC
- 横向时间轴+留言卡片

逻辑
- 状态机:待审核→初审→复审→通过/拒绝→已上架/需修改
- 每次变更:插入 `common_member_notice` + 邮件(跟随论坛)

9.12 帮助&协议

Mobile
- 折叠面板 FAQ;顶部搜索关键词高亮
- 底部「提交工单」→跳论坛工单插件

PC
- 左侧树形帮助分类;右侧内容区

逻辑
- 后台「帮助管理」富文本编辑;缓存 1 天

9.13 后台管理(PC 仅)

布局

```
┌─ 顶部导航:Logo | 消息 | 头像                     ┐
├─ 左侧菜单树(可折叠)                           │
│├─ 仪表盘
│├─ 应用管理
│├─ 评论管理
│├─ 云存储迁移
│├─ 首页装修
│├─ 营销工具
│├─ 财务
│└─ 系统设置
├─ 右侧内容区(卡片式)                           │
└─ 底部:版本号 + 返回站点                         │
```

关键页面
1. 仪表盘
   - 实时 PV、待审核、迁移进度(进度条+百分比)
   - 图表:7 日上传/下载趋势(Chart.js)
2. 应用管理
   - 表格:ID、名称、作者、版本、状态、操作(审核/下架/删除)
   - 批量操作:审核、移动分类、生成兑换码
   - 版本对比弹窗:截图、日志、文件大小 diff
3. 云存储迁移
   - 进度条+实时日志(WebSocket)
   - 按钮:暂停/继续/重试失败
4. 首页装修
   - 拖拽排序轮播、精选位
   - 定时上线/下线
5. 系统设置
   - 后缀白名单输入框
   - 交易积分下拉选择
   - 云存储密钥表单(测试按钮)
   - 暗黑模式开关

十、业务逻辑流

```
上传:
用户→JS校验→forum_attachment→云存储驱动→成功删除本地→写入appstore_apps→审核
下载:
用户→gateway.php→统计+1→302→CDN/本地→失败fallback本地
评论:
用户→forum_post.php→type='appstore_comment'→缓存30s→返回JSON
通知:
审核变更→common_member_notice→home.php?mod=space&do=notice
```

十一、数据库表 & 字段

表名        核心字段       
appstore_apps        id, name, catid, price_type, price, credit_type, status, uid, create_time       
appstore_version        id, app_id, version, log, file_url, size, md5, status       
appstore_netdisk        id, app_id, url, password, status, check_time       
appstore_download_log        id, app_id, uid, ip, create_time       
migration_queue        id, file_id, direction, status, retry, update_time       
forum_attachment        沿用+ remote字段       
forum_thread/post        沿用+ type='appstore_comment'       

十二、安全 & 合规
- 上传:后缀白名单+大小+病毒扫描(ClamAV)
- 网盘:HEAD 限 5s;内网 IP 黑名单;SSRF 过滤
- 下载:gateway 302;IP 限速 60/小时
- 评论:敏感词;举报≥3 自动隐藏
- 数据:HTTPS;云存储私有读+CDN 签名
- 合规:GDDR 浮层;DMCA 投诉

十三、SEO & 结构化数据
- 伪静态:`/app/{id}.html`
- TKD:后台填;标题模板「{app_name} - 官方应用中心」
- Schema:Product / AggregateRating / Offer / BreadcrumbList
- Sitemap:自动生成;每日更新

十四、交付清单
- 安装包:plugin.xml + 脚本(UTF-8)
- 模板:所有页面 PC+Mobile 独立 .htm(UTF-8)
- 后台:admin 模板 + 迁移 CLI(UTF-8)
- 语言:lang/zh-cn.php、en.php(UTF-8)
- 组件:轮播、瀑布流、评论、上传、富文本(UTF-8)
- 文档:本文档 + 接口swagger + 测试用例(UTF-8)

十五、上线检查单
- 论坛 cron 已开启
- 内存缓存已配置(Redis/File)
- 伪静态规则已写入 Nginx
- 云存储密钥已测(一键测试通过)
- 病毒扫描服务已启动
- 评论敏感词库已同步
- 数据库备份完成

---
页: [1]
查看完整版本: 测试