# 岁岁云商城

岁岁云商城（suisui-shop）是一套面向自营发卡、商品销售、代刷对接、分站代理、订单管理、财务流水和后台运营场景的 PHP 商城系统。

> ⚠️ **声明**: 本项目仅供学习、研究和二次开发参考。用于生产环境前，请自行完成安全审计、支付风控、数据备份和合规评估。

## 最近更新

- **v1.0.2.34 / 2026-05-31**：修复站点任务中连续签到进度停留在奖励上限、导致任务奖励无法自动发放的问题；连续签到任务现在会按签到日期重新计算当前连续天数。同步修复后台卡密列表搜索弹窗可能只显示黑色遮罩的问题。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。

- **v1.0.2.33 / 2026-05-26**：修复上一版本重复购买拦截误伤允许复购商品的问题；API 对接、普通下单、批量下单和卡密兑换入口不再按同商品同账号硬拦截正常复购。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.32 / 2026-05-25**：修复多级分站价格继承、密价生效和订单分润链路不一致的问题；分站用户下单后会按成交价、站长成本、下级拿货价逐级拆分利润，专业版分站、普及版分站、下级的下级和分站加价模板价格口径保持一致。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.31 / 2026-05-25**：修复分站站长自己登录前台购买商品时，被自己站点加价模板抬高拿货价的问题；站长本人自购按真实成本执行，模板继续影响下级专业价、下级普通价和销售价。同步修复后台用户列表搜索弹窗黑色遮罩问题。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.30 / 2026-05-25**：修复 HTTPS 站点手动同步任务创建后长期停留在“排队中 / 0%”的问题；后台退回 HTTP/HTTPS 触发同步接口时，会按当前站点协议访问本机同步入口，避免 80 端口 301 跳转被误判为成功。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.29 / 2026-05-25**：修复同系统对接 API 的密价输出口径；上游给下游设置密价后，`goodslist`、分类商品列表、商品详情和 API 下单扣款都会按下游账号自己的拿货成本执行，不再误返回下游专业价。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.28 / 2026-05-25**：补齐后台“推荐商品”左侧菜单入口；修复密价商品在后台密价列表、批量密价调整和分站商品保存中的成本口径，当前站长成本保持为密价基准，下级专业价继续由模板计算。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.27 / 2026-05-24**：新增商品控价金额，支持主站为商品设置下级最终售价最低限价；修复密价与分站加价模板优先级，密价作为站长成本基准后继续参与下级专业价、普通价和销售价计算。首页新增折叠式推荐商品入口，支持自定义分类标签切换。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.26 / 2026-05-24**：优化前台首页、用户中心在线下单和批量下单的商品搜索体验，搜索后自动隐藏无关分类，清空关键词后恢复默认分类和商品列表；后台分站列表、用户列表新增从属关系标签与弹窗查询，可查看上级链条、直接下级和间接下级。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.25 / 2026-05-24**：修复多级专业版分站价格、订单成本、收支统计和上级分润链路；新订单会按当前站点实际拿货价写入成本，并按下级专业站与上级专业站的差价拆分收益。卡密订单保留底部统一复制卡密信息按钮。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.24 / 2026-05-23**：修复上下级分站订单按模板底价计算上级收益的问题，新订单会优先按订单实际提卡价计算上级专业站收益，并在提成流水备注中补充成交价、拿货价和实际成本。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。

- **v1.0.2.23 / 2026-05-23**：修复同系统对接订单未记录上游实际扣款的问题；同系统 API 下单成功后会返回真实订单金额，下游对接插件会把该金额写入本地订单成本，避免 Q8/Q9 这类上下游运营站后台主站收入和利润统计虚高。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。

- **v1.0.2.22 / 2026-05-23**：修复自动同步商品价格未正确应用主站加价模板的问题，统一同步落库口径并补齐专业版成本兜底；新增后台价格诊断页，帮助排查模板绑定、分站默认模板、密价和售价低于成本等风险。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.21 / 2026-05-23**：修复直属分站单独密价被默认加价模板二次计算的问题，单独密价现在会作为分站最终进货成本；密价用户界面新增“查看当前密价商品”，后台余额加款/扣款支持备注和手动赠送比例。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.20 / 2026-05-23**：修复后台收支明细在线商品支付成本固定显示为 0 的问题；新订单成本写入增加 `cost2 -> cost -> price` 兜底，避免商品专业版成本为空时毛利和主站收入被高估。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.19 / 2026-05-23**：优化后台系统数据清理反馈，清理完成后会显示本次删除条数；修复分站记录自定义清理后优化错表的问题，并将自定义金额条件明确为“金额不超过 / 上限金额 / 元（含）”。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.18 / 2026-05-23**：修复后台加价模板批量应用到分类时多选分类被误判为空的问题；“应用到全站商品”现在会走独立全站作用域，不再要求先选择分类；分类下无商品或商品已是当前模板时会正常返回 0 个变更。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.17 / 2026-05-23**：优化后台收支明细页，新增可点击经营卡片和“所属明细”面板；点击订单流水、充值入账、分站提成、站点福利、退款、提现等卡片，可在下方直接查看对应订单、支付、余额流水或提现明细。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.16 / 2026-05-23**：细化后台首页、利润统计和收支明细的财务统计口径，新增主站收入、充值入账、福利赠送、退款明细、站点余额和分站提成拆分；修正退款负数流水方向，避免订单流水、充值和福利混算。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.15 / 2026-05-23**：修复自动同步开启删除规则时可能误清理手动商品的问题，新增 `pre_sync_goods_map` 同步来源映射表，删除/下架只作用于自动同步确认过来源的商品；同步修复后台商品价格展示与专业版利润计算，让加价模板和自设成本展示更准确。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.14 / 2026-05-22**：修复同系统商品同步时购买限制字段丢失的问题，`goodslist` 接口现在会输出 `goods_type`、`multi`、`min/max` 等字段；同系统插件和自动同步会保留并更新这些字段，避免下游商品被错误同步成“限购 1 份”。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.13 / 2026-05-22**：修复对接上游订单延迟发货、完成但未返回卡密时的本地状态同步问题；修复分站密价未优先生效和价格监控立即同步黑色遮罩问题；后台订单列表新增手动发卡入口，支持上游失败且本地无卡密时由管理员人工录入卡密完成发货。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.12 / 2026-05-22**：稳定自动同步立即执行任务链路，新增后台任务进度与结果记录；修复用户中心站点加价模板不生效、商品批量改价保存异常和分站价格低于成本的问题。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.12-beta / 2026-05-22**：测试版修复自动同步立即执行的长任务触发链路，避免浏览器等待超时或重复触发；增强对接商品 ID/商品名字段兼容，跳过空商品名写入。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.11 / 2026-05-22**：修复后台分类列表批量删除一级/二级分类时选中项丢失和下级分类残留的问题；修复工单详情、网盘失效详情弹窗误跳登录页并提示“您已登陆！”的问题。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.10 / 2026-05-22**：修复 XHY-01 首页公告与首页弹出公告字段混用的问题，恢复顶部快捷入口第一排 3 个、第二排 2 个的布局，并修复计时脚本控制台错误。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.9 / 2026-05-21**：优化首页长时间停留后的下单验证体验，验证失效时自动刷新下单令牌并重试一次；XHY-01 客服弹窗标题统一为“客服中心”。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.8 / 2026-05-21**：修复分站用户中心商品列表明细不显示、搜索结果数量与明细不一致、调价相关按钮无响应的问题；优化收款图和客服二维码上传保存与预览。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.7 / 2026-05-21**：修复在线更新确认弹窗可重复点击的问题，环境预检失败时新增具体原因和小白处理建议；更新包新增根目录 `cache/` 占位目录。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.6 / 2026-05-21**：新增后台在线更新中心，支持一键更新、流程进度提示、环境预检、更新包下载校验、自动备份、流程演练和最终自检；未配置 `update.json` 时会使用 GitHub Release 源码包作为兜底。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.2.5 / 2026-05-21**：修复后台充值返利设置入口空白的问题，新增独立返利规则配置页；修复用户列表和分站列表点击余额时只出现黑色遮罩的问题。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。

- **v1.0.2.4 / 2026-05-21**：修复后台商品列表点击库存提示服务器请求失败的问题，商品列表库存列新增“加卡”快捷入口，可直接进入对应商品添加卡密页面；库存列适配 PC 和手机端布局。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。

- **v1.0.2.3 / 2026-05-21**：新增全站浮动客服配置，支持跳转链接、QQ 对话、Chatwoot 和自定义代码；可配置按钮文字、FontAwesome 图标、颜色、位置、边距和手机端显示，并移除旧内置客服窗口入口。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。

- **v1.0.2.2 / 2026-05-21**：修复对接商品本地卡密库存与对接库存展示不一致的问题，库存统一显示本地卡密 + 对接站库存；下单时优先使用本地卡密，本地不足时继续走原有对接流程。后台新增用户列表筛选，并修复分站分类查看遮罩和加载动画错位。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。

- **v1.0.2.1 / 2026-05-20**：优化 `XHY-01` 首页顶部模块和快捷入口结构，减少旧 Bootstrap 布局约束，统一圆角、阴影和移动端按钮表现。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。

- **v1.0.2.0 / 2026-05-20**：重构 `XHY-01` 模板首页结构，保留原 XHY-01 视觉和模块，不复用 `suisui` 模板；将旧内联 CSS/JS 拆分到 `xhy01.css` 和 `xhy01.js`，清理首页内联样式并更新缓存版本。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。

- **v1.0.1.9 / 2026-05-20**：修复 `suisui` 前台模板分类图被公共 `main.js` 覆盖导致破图闪烁的问题，优化无二级分类展示、下单提示位置和流程步骤状态；补充商品简介同步与历史回填逻辑，并恢复 `XHY-01` 独立模板入口。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。

- **v1.0.1.8 / 2026-05-20**：修复 `suisui` 前台模板首页弹出公告不自动弹出的问题，移除公共 JS 对模板弹窗开关的旧覆盖，并让自动弹窗读取后台“首页弹出公告”字段。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.1.7 / 2026-05-20**：数据迁移中心新增迁移表清单，为常见彩虹发卡 / 岁岁云商城同系表补充中文功能说明、建议类型、行数、目标库状态和处理建议。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.1.6 / 2026-05-20**：修正数据迁移中心后台标题实体显示问题，将预检结果状态标签中文化，并为表差异、字段差异补充建议动作。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.1.5 / 2026-05-20**：后台数据迁移入口升级为通用只读预检中心，面向彩虹发卡同系站点、岁岁云商城旧版本和同系统二开站点，先检查表结构、字段差异和核心业务风险，不执行写入或清空操作。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.1.4 / 2026-05-20**：项目公开仓库迁移为 `suisui-shop`，同步 README、搭建教程、后台版本入口和维护联系方式，统一作者、交流群组、通知频道和项目地址。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.1.3 / 2026-05-20**：返修工单/网盘失效详情按钮排版、客服微信二维码上传入口、更新日志左侧竖线，并将 `suisui` 模板缩略图更新为当前前台真实截图。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.1.2 / 2026-05-20**：重构 XHY-01 前台首页下单份数控件，改为 FontAwesome 图标按钮并修复移动端加减按钮错位；不支持多份下单的商品新增固定 1 份提示。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.1.1 / 2026-05-20**：更新 README 联系入口，交流群组改为 [https://t.me/suisuishop](https://t.me/suisuishop)，通知频道改为 [https://t.me/suisuifaka](https://t.me/suisuifaka)。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.1.0 / 2026-05-20**：修复自动补单统计图标、订单列表批量操作、分站排行入口、用户列表按钮、收支/结算/版本/更新日志标题实体、工单弹窗、客服微信上传和对接插件遮罩等后台界面问题；加款卡密支持一键复制与每张卡可使用次数；联系赞助页新增广告位，模板缩略图更新为当前前台风格。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。
- **v1.0.0.0 / 2026-05-19**：岁岁云商城首个可运营重构版本。统一本地 Q8 favicon/logo 资源，后台登录页改为右侧图片展示；重构商品销量排行、发卡库存、商品介绍批量替换、秒杀商品管理、加款卡密、联系赞助和更新日志等页面到新后台 shell 风格；同步修复多处乱码、旧远程接口和中文 JS 转义问题。完整记录见 [CHANGELOG.md](./CHANGELOG.md)。

## ✨ 功能特性

- **商品商城** — 支持普通商品、发卡商品、分类展示、库存、价格、成本和排序管理。
- **自动对接同步** — 支持同系统/代刷对接，自动同步分类、商品、价格、描述、库存和上下架状态。
- **同步去重修复** — 对接商品按供应商商品 ID 去重，避免同一商品重复入库导致数量膨胀。
- **商品动态** — 前台 `/toollogs.php` 展示新上架和下架日志，后台可管理商品动态。
- **分站体系** — 支持普通用户、普及版分站、专业版分站，用户列表统一展示所有用户，分站列表专注分站管理。
- **站点任务** — 支持充值、下单、销售额、邀请、签到、推广商品等任务，达标后可自动派发奖励。
- **充值返利** — 支持满额返利、阶梯比例、在线充值返利、加款卡返利和后台手动加款返利。
- **财务流水** — 收支明细按用户、类型、时间、关键词筛选，并展示收入/支出汇总。
- **每日签到** — 支持签到奖励、连续签到，并在后台查看最近签到用户记录。
- **模板与自定义样式** — 首页模板统一适配站点数据，支持前台自定义 CSS 注入。
- **后台运营 UI** — 商品、分类、订单、价格、消息、工单、更新日志、联系赞助等后台页面持续优化。

## 🧱 技术架构

```text
岁岁云商城
┌──────────────────────────────────────────────┐
│                Web Entry Layer               │
│  ┌────────────┐ ┌────────────┐ ┌──────────┐ │
│  │ Front Site │ │ User Panel │ │ Admin UI │ │
│  └─────┬──────┘ └─────┬──────┘ └────┬─────┘ │
├────────┼──────────────┼─────────────┼───────┤
│              Business Service Layer          │
│  商品/订单/发卡/分站/财务/任务/签到/模板配置  │
├──────────────────────────────────────────────┤
│              Sync & Integration Layer        │
│  供应商 API / 支付接口 / 自动同步 / 商品动态  │
├──────────────────────────────────────────────┤
│              Infrastructure Layer            │
│  PHP Runtime / MySQL or MariaDB / Web Server │
└──────────────────────────────────────────────┘
```

## 🛠️ 技术栈

| 组件 | 技术 |
|------|------|
| 后端语言 | PHP 7.4+ |
| 数据库 | MySQL 5.7+ / MariaDB |
| 前端基础 | Bootstrap / jQuery / Layer |
| 图标 | FontAwesome |
| Web 服务 | Nginx / Apache |
| 部署环境 | 宝塔面板或常规 PHP 虚拟主机 |
| 定时任务 | Cron / 宝塔计划任务 |

## 🚀 快速开始

### 环境要求

- PHP 7.4 或更高版本
- MySQL 5.7+ 或 MariaDB
- Nginx / Apache
- PHP 扩展: `pdo_mysql`、`curl`、`mbstring`、`json`

### 1. 克隆项目

```bash
git clone https://github.com/Guyi888/suisui-shop.git
cd suisui-shop
```

### 2. 上传到站点目录

将项目文件上传到 Web 根目录，例如:

```text
/www/wwwroot/example.com
```

确保运行目录具有写入缓存、配置和上传文件的权限。

### 3. 执行安装

浏览器访问:

```text
https://你的域名/install/
```

按安装向导填写数据库地址、数据库名、用户名、密码和表前缀。

安装脚本会自动创建基础表和运行时功能表，包括:

- `sitetask_log`
- `toollogs_offline`
- `sync_category_map`
- `sync_goods_map`
- 商品、订单、用户、分类、配置等核心业务表

### 4. 配置站点

安装完成后进入后台:

```text
https://你的域名/admin/
```

建议优先配置:

- 网站基础信息
- 支付接口
- 商品分类与商品
- 自动同步设置
- 充值返利设置
- 首页模板与自定义样式

### 5. 配置自动同步

在后台添加对接站点后，配置自动同步规则。同步入口会自动完成:

- 分类父子关系映射
- 商品新增和更新
- 重复商品去重
- 上架/下架动态写入
- 下架商品处理

建议通过计划任务定时访问同步入口，并保管好监控密钥。

## 📁 项目结构

```text
suisui-shop/
├── admin/              # 后台管理入口和业务页面
├── user/               # 用户中心和分站后台
├── includes/           # 公共函数、核心业务、运行时辅助逻辑
├── template/           # 前台首页和发卡模板
├── assets/             # 公共静态资源
├── install/            # 安装和升级脚本
├── config/             # 配置目录
├── config.php.example  # 数据库配置示例，安装后生成 config.php
├── ajax.php            # 前台接口入口
├── api.php             # API 接口入口
├── cron.php            # 计划任务入口
├── index.php           # 前台模板入口
├── toollogs.php        # 商品动态公开页
├── CHANGELOG.md        # 仓库更新日志
└── UPDATE.md           # 更新说明
```

## 💎 打赏榜单

感谢以下用户的支持与赞助！

| 排名 | 用户 | 金额 |
|------|------|------|
| 1 | 岁岁云商城维护者 | 持续维护 |
| - | — | — |
| - | — | — |

赞助地址:

```text
USDT TRC20: TLzcw5ydRjHCM6KKAprjD8yzf2Dddddddd
```

## 💬 技术交流 / 意见反馈

如有问题或建议，欢迎提交 [Issue](https://github.com/Guyi888/suisui-shop/issues)。

- 作者: [@qqfaka](https://t.me/qqfaka)
- 交流群组: [https://t.me/suisuishop](https://t.me/suisuishop)
- 通知频道: [https://t.me/suisuifaka](https://t.me/suisuifaka)
- 项目地址: [https://github.com/Guyi888/suisui-shop](https://github.com/Guyi888/suisui-shop)

## 🔧 私有定制

如需定制商城功能、对接接口、后台 UI、分站体系或部署维护，请加入 [交流群组](https://t.me/suisuishop) 或关注 [通知频道](https://t.me/suisuifaka)。

## 📜 License

本仓库暂未声明标准开源许可证。使用、二次开发或商业部署前，请联系维护者确认授权范围。

## 🤝 Contributing

欢迎提交 Issue 和 Pull Request。提交代码前请确保:

1. 修改过的 PHP 文件通过 `php -l`。
2. 关键页面返回 HTTP 200。
3. 前台页面引用的 CSS/JS/图片资源无 404。
4. 涉及 CSS/JS 的改动同步更新缓存版本号。
5. 涉及数据库表结构的改动同步更新 `install/database/install.sql` 和升级 SQL。
6. 涉及功能变更的改动同步维护 `CHANGELOG.md` 和 `admin/changelog.php`。
