2026-08-07 双端邀请关系与返佣拆分
- 邀请关系拆为
user(用户邀请用户)与merchant(商户邀请商户),同一账号可分别绑定一个邀请人;数据库升级脚本为sql/2026-08-07-split-user-merchant-spread.sql。 - 用户返佣按“订单平台手续费 × 用户返佣比例”生成待结算记录,退款期结束后由
spread:user-rebate-settle转入用户余额;退款取消、投诉处理中暂缓。 - 用户端与商户端分别解析
user_spread_{ID}、merchant_spread_{ID},仅首次注册登录对应平台时自动绑定。 - 管理端“推广记录”增加双关系查询与手工绑定;网站费率配置增加独立的用户邀请开关和用户返佣比例。
- 接口、上线顺序和定时任务见 双端邀请返佣开发文档,用户端接口见 用户邀请返佣。
2026-8-3
新增平台轮播配置,管理员可在“配置中心 → 网站配置 → 轮播配置”中分别配置用户端轮播和商户端轮播;每端最多 5 张图片,支持可选跳转链接和独立排序。
新增公开接口
POST /home/index/platformBanners,通过必填参数scene=user|merchant区分用户端和商户端;两端分别缓存 1 小时,管理员保存某一端配置后只清除对应缓存。新增管理端接口
POST /adminapi/config/platformBanner/getConfig和POST /adminapi/config/platformBanner/saveConfig。接口参数、响应字段和缓存策略见doc/docs/平台轮播开发文档.md。
2026-8-2
- 修复货源店铺详情错误读取普通店铺公告和客服资料的问题。
/merchantapi/distribution/hall/goodsList返回的hall.shop_notice、hall.shop_contact、hall.contact已恢复为货源名片user_hall中的配置;hall.shop_notice_show根据货源名片公告是否为空生成。商户端 Mini App、后端附带 Vue 页面均继续使用该公开名片响应。
2026-8-1
货源大厅新增按分类计算的商户排名。
getSetting新增hall_category_id请求参数,并返回hall_rank、rank_total、hall_category_id;refreshRank支持传入hall_category_id,刷新成功后同步返回剩余刷新点和最新排名。排名范围与大厅列表一致:仅统计当前分类下至少存在一件可代理上架商品、名片正常展示且未被平台关闭的商户;空店铺不展示也不参与排名。排序统一为名片等级倒序、刷新时间倒序(未刷新使用创建时间)、名片ID倒序。
同步调整 Mini App 和后端附带 Vue 商户页面:底部排名圆标显示当前名次,刷新后立即更新;Vue 的大厅设置页支持切换“排名大厅”,刷新名片抽屉新增当前排名、参与排名商户数和刷新点展示。
修复货源大厅店铺详情错误复用
/merchantapi/distribution/userhall/getSetting的问题。该接口只读取当前登录商户自己的名片,不能用于查看其他货源商。/merchantapi/distribution/hall/goodsList响应新增hall公开店铺资料,包含名片名称、简介、公告、客服联系方式、评分、商品数、当前主题和标签;只返回页面展示所需字段。货源店铺页联系客服逻辑与用户端店铺页统一:只接受 Telegram 用户名或
https://t.me/username,Telegram 环境优先使用WebApp.openTelegramLink(),普通浏览器使用安全的新窗口跳转。店铺公告支持点击查看详情弹窗,并移除无公告时的演示占位文案;同时修复店铺商品搜索栏点击区域过窄、搜索图标无法可靠唤起输入和页面层级遮挡的问题。
/merchantapi/distribution/hall/goodsList与/merchantapi/distribution/hall/searchGoods新增agent_goods_id,返回当前商户由该货源商品生成的代理商品 ID;未对接时为0。商户端商品搜索卡片支持已对接商品继续编辑配置或取消对接;新增
/merchantapi/distribution/goods/undock,取消时商品软删除进入回收站并移除对接关系,后续可重新对接。/merchantapi/distribution/hall/goodsList的hall新增shop_notice_show、shop_contact,旧contact字段作为兼容别名保留。公告和客服数据源曾在本次调整中改为普通店铺资料,已于 2026-8-2 恢复为货源名片资料。
2026-7-31
货源大厅名片主题由旧版“单一付费主题”升级为“多主题独立权益”。免费普通主题永久可用;铂金、钛金、黑金可分别购买并同时持有;商户可在免费主题和有效期内已购主题之间随时切换,不会因切换而重复扣费或覆盖其他主题的到期时间。
调整名片主题接口:
buyCardStyle负责购买并启用主题;新增POST /merchantapi/distribution/userhall/useCardStyle切换当前主题;新增POST /merchantapi/distribution/userhall/setCardStyleAutoRenew独立设置各主题自动续费。主题列表新增is_owned、is_active、expire_time、expire_time_text、remaining_days、auto_renew、buy_time_type字段。新增自动续费和到期处理:到期时按最近购买的月付或年付周期从运营钱包扣款;余额不足时不续费并自动关闭该主题续费状态;未开启自动续费的主题从剩余 3 天起每天发送一次站内提醒;当前启用主题过期且续费失败时自动降级为免费普通主题。
新增数据表
user_hall_card_subscription,并为user_hall补充当前主题字段card_id。上线前执行sql/2026-07-31-add-user-hall-card-subscriptions.sql,该脚本会兼容迁移仍在有效期内的旧版主题权益。新增 Webman 命令
hall-card:subscriptions。生产环境需在项目service目录配置每分钟执行:php webman hall-card:subscriptions。接口、字段和业务规则见doc/docs/商户端手册/10.货源大厅/2.我的名片.md,部署方式见doc/docs/定时任务说明.md。同步调整后端附带的 Vue 商户页面:已购主题显示有效期和启用状态,可直接切换;未购买主题才显示支付入口;已购付费主题可独立开启或关闭自动续费。
2026-7-11
用户表新增
nickname昵称字段,SQL 更新文件:sql/2026-07-11-add-user-nickname.sql。商户端与用户端个人信息详情接口均返回nickname,为空时后端按username生成默认昵称。新增昵称修改接口:商户端
POST /merchantapi/user/user/setNickname、用户端POST /home/user/setNickname。Telegram MiniApp 登录会在首次创建用户或用户昵称为空时使用first_name、last_name写入昵称。已同步接口文档:
doc/docs/商户端手册/14.个人中心/1.用户信息.md、doc/docs/用户端/4.用户接入与注销.md、doc/docs/用户端/5.个人中心.md。
2026-7-6
售后投诉消息语义调整:买家提交投诉时的投诉说明改为
from_type=buyer的第一条会话消息,投诉详情消息按正序返回;用户端和商户端详情接口均兼容历史system初始投诉说明。已同步doc\docs\商户端手册\12.售后\投诉.md、doc\docs\用户端\10.投诉管理.md。修复管理员在后台投诉详情发送消息后不实时显示的问题:
/adminapi/order/complaint/send入库成功后会向private-group-complaint-{投诉ID}推送message事件;同步修正文档中的投诉 WebSocket 频道名。
2026-7-4
核对商户端开发手册中已有接口与
service/app/merchantapi/controller的实际参数、响应和特殊规则,修正分销、货源大厅、代理商品、店铺设置、运营钱包、消息推送等文档中已过期或遗漏的描述。重点同步:克隆任务接口由
getCloneProgress更正为/merchantapi/distribution/goods/getCloneTaskStatus,补充/cancelCloneTask;补充货源大厅分类只在当前商户已开通分类中生效的回退规则;补充uCoinRate、消息推送测试/日报推送、店铺扩展配置接口;修正对接码状态、代理等级删除、我的下级统计、代理商品编辑等特殊行为。
2026-7-3
USDT TRC20 收银台
/pay/{trade_no}增加支付校验结果通知:校验成功或失败时通过postMessage向 iframe 父页面或新窗口打开方发送结果;校验成功时支持读取redirect_url参数并自动跳转。已同步充值支付接入文档:
doc\docs\商户端手册\13.钱包\5.运营钱包.md、doc\docs\用户端\9.钱包管理.md,补充redirect_url、postMessage消息格式和开放重定向安全备注。
2026-6-29
修复商户端货源大厅分类树接口
/merchantapi/distribution/hall/getCategoryTree报错:后端在关联查询商品时不再使用不存在的 SQL 表别名Goods.hall_price,改为在商品关联查询上下文中使用hall_price、status、id字段过滤。已同步接口文档:
doc\docs\商户端手册\10.货源大厅\1.货源大厅.md。商户核销货源大厅邀请码且信誉分达到 80 分开通访问权限时,自动创建或补齐默认货源名片名称,默认规则为“店铺名+货源”,无店铺名时依次使用商户用户名、商户ID兜底;同步更新
doc\docs\商户端手册\10.货源大厅\2.我的名片.md、doc\docs\商户端手册\10.货源大厅\3.大厅邀请码.md。
2026-6.1- 6.5
商户端分销黑名单列表接口
/merchantapi/distribution/blacklist/list中blacklist_username、blacklist_shop_name未正常返回的问题。增加用户下单黑名单中用户名返回 以接口为准商户端消息推送改为平台统一配置 Telegram Bot。后台站点设置新增 Telegram 通知分组,商户端仅保留 Telegram 授权与通知开关。
doc\docs\商户端手册\8.商家助手\2.消息推送设置.md
- 商户端 Telegram 授权增加绑定账号展示、授权时间展示、解除绑定与重新绑定能力;补充对应数据库字段和 SQL 迁移文件。
2026-6-5
用户端新增 MiniApp 用户登录接口:
POST /home/base/miniAppUserLogin,文档位置:用户端/4.用户接入与注销。商户端新增 MiniApp 商户登录接口:
POST /merchantapi/user/user/miniAppMerchantLogin,登录后会开通或确认商户身份,并初始化店铺、默认角色、信誉分、推广关系和登录日志。文档位置:商户端手册/14.个人中心/1.用户信息。商户端新增开发环境测试账号登录接口:
POST /merchantapi/user/user/generateUserToken,参数与用户端测试接口一致:username、sub;仅DEVELOPMENT=1可用。文档位置:商户端手册/14.个人中心/1.用户信息。修复Link表relation字段类型 sql\2026-06-05-fix-link-relation-id-bigint.sql
2026-6-1 - 6-5
商户端分销黑名单列表接口
/merchantapi/distribution/blacklist/list中blacklist_username、blacklist_shop_name未正常返回的问题。增加用户下单黑名单中用户名返回 以接口为准商户端消息推送改为平台统一配置 Telegram Bot。后台站点设置新增 Telegram 通知分组,商户端仅保留 Telegram 授权与通知开关。
doc\docs\商户端手册\8.商家助手\2.消息推送设置.md
- 商户端 Telegram 授权增加绑定账号展示、授权时间展示、解除绑定与重新绑定能力;补充对应数据库字段和 SQL 迁移文件。
sql\2026-06-05-add-notify-settings.sql 其余的投递上去了了
2026-5-19 - 5-20
- 后台 :新增货源大厅分类,管理员新增大厅邀请码等功能
==前端需要适配内容开始==
- 商户后台:
a0. 新增接口 获取 商户的货源大厅分类
a. 变更接口 doc\docs\商户端手册\4.商品管理\2.商品管理.md 【2. 添加商品 、3. 获取商品详情、4. 编辑商品】
b. 变更接口 doc\docs\商户端手册\4.商品管理\4.我代理的商品.md 【3. 编辑代理商品 、2.详情】
c. 变更接口 doc\docs\商户端手册\10.货源大厅\3.大厅邀请码.md 【1. 我购买的邀请码列表、3. 购买邀请码、4. 核销邀请码(响应示例变更)】
d. 2026-5-18 要求前端 写固定的: ( 货源名片里的审核模式去掉,并设置为自动通过)。(移除前端货源大厅里 审核模式 筛选,使用免审的条件)。(移除前端 商家审核下级通过的一些方法,因为前两项要求免审)。前端适配即可。
==前端需要适配内容结束==
- 其余内容变更 已经提交至git仓库
2026-2-5
更新 商户登录 openShop 会检查后台风控设置,其中 禁止登录、冻结商户、关闭账户 会限制登录。
用户端 收藏功能 增加接口: 强制删除收藏数据接口-> ,参数 ID (当前行的收藏ID)。在当前行的is_close为1时前端需要 使用此接口对当前行进行删除。 其余变更项:
收藏的商品列表 新增字段 :goods_is_freeze 商品冻结 1=冻结 0=正常;is_lose 商品失效 1=失效 0=正常;is_lose_text 商品丢失文案;
收藏的店铺列表 新增字段 :is_lose 店铺失效 1=失效 0=正常;is_lose_text 店铺丢失文案;
商户端 风控管理 - 查询用户近期消费 新增字段 has_paid_order 买家成交订单数、total_paid 买家总付费金额;当存在买家ID buyer_user_id时,则只统计买家ID的订单数据。
商户端 商品卡密库存列表 增加字段 unsold_count 未售数量、sold_count 已售数量。
商户端 商户资料userDetail接口 has_hall值修复
商户端 对接商品接口 dockGoods 新增参数 goods_name 对接后的商品名称
商户端 货源大厅排序修正
商户端 我的上级列表 接口地址-> 增加参数 status : 状态:0=待审核,1=已通过,-1=已拒绝, -2全部;新增参数 keywords 用于搜索上级店铺名/货源店铺名(自动识别) 或 上级用户ID; source 来源:0=全部,1=上级货源(对接码),2=大厅货源
商户端 修正 销售走势
用户端 / 商户端
- /home/money/getCollect 接口 新增字段 u_coin_rate 汇率
- /home/money/getRechargeChannel 接口 新增字段 u_coin_rate 汇率、min_recharge 最小充值金额、u_channel_id 随机一个存在收款账号的 USDT 充值渠道 ID
- /merchantapi/wallet/operational/getRechargeChannel 接口 说明同上一行
- 商户端 投诉列表接口:
/merchantapi/order/complaint/list新增参数order_type订单类型:own=自营订单,proxy=下级订单,空=全部
2026-2-4
商户端 merchantapi/distribution/agentrelation/goodslistbyparentid 新增字段 goods_id、content、cate_name。对接商品时使用 goods_id。代理等级和货源大厅两种类型返回的内容 (因一个调用数据模型不同) 请注意。
用户端 新增 手册用户端消息通知 用户端/11.用户消息.md
变更:
商户端只显示商户端消息;用户端只显示用户端消息。注意 后台批量发送的消息是发送给商户的,所以用户端官方公告列表一定无内容。
ws消息订阅 private-group-user-message-用户id 、private-group-merchant-message-商户id
商户端 下单黑名单功能允许 搜索买家ID 参数 buyer_user_id。增加验证 添加/编辑黑名单验证是否已经添加过。
商户端 修复 对接商品 如果开启自动创建同名分类,根据商品名称创建分类(更改为 创建同名 父级商品的商品分类)。参数 auto_create_category = 1 时 后端自行创建,前端只要传正确即可。
商户端 货源名片设置 联系方式必填
商户端 商品新增、编辑、代理商品编辑 商品描述和使用说明必填。
商户端 商品回收站排序 改为按删除时间排序
商户端 增长概览(看板) 增加 在售商品数
online_goods_count、首页显示商品数index_goods_count
2026-2-3
利润统计: 移除 self_day_profit (暂时设置为了空 后面会移除)。 其余各个字段标识:
- 自营自售 不扣除自己成本的 daily_cash
- 自营自售 扣除自己成本的 self_goods_by_self_profit
- 代理帮售 self_goods_by_agent_profit
- 自己代理别人商品的收益 agent_goods_profit
- 推广收益 promote_profit
- 总收益 total_profit
说明受历史错误对接自己的数据影响: 总收益 为最终准确值,其余值不准确时 测试和前端无需关注 也不必关注相加后结果不一致。
我代理的商品列表:新增
has_error参数筛选异常商品(包括价格亏损、上级删除、上级下架);返回数据新增parent_goods_status(上级商品状态:-1=已删除 0=已下架 1=正常)和parent_goods_status_text(状态文本);异常商品统计price_offline_count现包含所有异常类型;前端优化异常状态显示优先级(上级删除 > 上级下架 > 价格亏损)。我的商品收藏 增加字段 shop_name 店铺名称 、shop_no 店铺号 (看到演示站有直接购买,需要这个店铺号作为token调用商品详情的)、shop_close 营业状态
解除代理关系功能:新增下级主动解除上级代理关系功能;解除前检查限制条件(40天内未支付订单、待处理售后、冻结资金);已对接商品统一软删除(移入回收站),软删除的商品在订单中仍能正常显示;使用队列异步处理商品,递归处理所有下级代理商品(A→B→C,B解除时C的商品也会下架);解除后通知上级商户;解除后可立即重新对接。接口:
/merchantapi/distribution/agentrelation/removeRelation。
2026-2-2
货源名片商品搜索。移除对商品内容的搜索:目前仅搜索的商品名。
用户端,shop/index 初始接口新增字段 show_score 是否显示信誉分, 1=显示,0=隐藏 ;隐藏时 credit_score 字段值为0 。前端需适配是否显示
我的订单页面,新增字段 shop 店铺信息:shop_name 店铺名称,shop_logo 店铺logo,shop_notice 店铺公告,shop_intro 店铺简介,shop_no 店铺号。前端需适配。
用户端 商品列表 shop/getGoodsList 增加 关键词搜索 字段 keyword 。加强初始验证。遵循 错误前置:店铺不存在、店铺已被封禁、店铺已被平台关闭等错误信息
修补:移除配置缓存,方便搬家时实时获取配置;增补user_money_recharge 资金操作字典
merchantapi/user/workbench/dashboard 增加 today.daily_cash 表示当日收益(平台需要结算的);yesterday.daily_cash 表示昨日收益(平台需要结算的)。
2026-1-31 2-1
增加获取U费率接口:/merchantapi/wallet/operational/uCoinRate /home/money/uCoinRate
修复 商户后台 商品分类中商品数量 只统计 上架中的商品数量。前端无需关注。
修复 货源大厅自己能代理到自己的情况。。前端无需关注。
增加 货源大厅 一键克隆 价格优化的输入参数 : optimize_price_type 1=无小数 向上取整;2= 保留1位小数 ;0= 不使用价格优化
对接商品时(单个商品对接时) 校验分类是否是自己的。前端注意:创建同名分类的要求是 auto_create_category 为1 cate_id 为0 不要直接传接口中的cate_id它是上级用户的商品分类。2-1号后会校验最终生成的分类id是否是自己的,不是/不存在则返回的 分类不存在。
控制台首页利润统计/统计收益分析里 收益算法变更(甲方要求。自己的商品 如果没有设置成本价,则不计算收益)。前端无需关注。
我代理的商品中的店铺名:等级代理则显示成了上级商户的店铺名、货源代理 则显示成上级的货源大厅名称。前端无需关注。
数据库所有关于用户ID的字段更为bigint类型。
售后逻辑更新。新增接口 家申请平台介入:
/home/complaint/appealPlatform收益统计更新
2026-1-29 30
双端用户充值,显示充值费率字段 u_coin_rate 。接口:/merchantapi/wallet/operational/doRecharge /home/money/doRecharge 【u_coin_rate 字段加这里不合适 可使用 1-31 2-1 中 1】
增加后台配置 :配置中心-价格费率 :最低充值费用和U币汇率;移除 店铺配置中的关于店铺联系方式的配置。前端在获取最小充值费用时,可暂时与后端管理员口头约定(建议50元起充)。
搜索店铺接口 /home/index 移除字段 show_contact;所有关于店铺联系方式的 shop_contact 字段已更新为文本,建议商户端使用富文本输入框和用户端使用v-html
home/shop/index 新增字段 信誉分 credit_score、已上架商品总数量 goods_count、 已上架且在首页中展示的商品总数量 on_home_goods_count
home/shop/getGoodsList 分类id cate_id 改为非必传
用户端 店铺页面 部分接口需要的 店铺联系方式 shop_intro 商品发货方式字段 delivery_type 已经补充。show_contact 字段已经移除
用户端用户详情接口 。接口:/home/user/userDetail 新增字段 has_user_collect ,表示用户是否设置过收款方式。用户时效性的字段已经更正为 user_data_cycle
用户端 未登录的状态码是 401, 用户不存在的状态码为 403
查看上级可代理商品接口修复为 只显示上级 上架中的商品
修复 我代理的商品页面 异常显示 上级商品已下架。(已下架的商品也能调用其供货价,用于对比商品下架的状态是成本还是下架)
商品卡密新增 更新为 对每一行进行验证分割符 (历史为 使用了第一行的分割符)。另外新增 分割符 “、”
移除 所有关于店铺联系方式的前置检测项
商户 资料详情里 新增字段 hall_access :货源大厅访问权限 ; has_hall:是否已经开通货源大厅
其他关于 腾讯文档中的问题 已回复。
2025-12-15 到 12-22
货源大厅:列表新增关键词搜索、名片等级筛选;返回数据新增店铺评分、名片样式信息、标签信息;商品列表新增关键词搜索,库存改为真实库存;搜索商品新增等级筛选、代理状态、名片样式等返回字段,按名片等级降序排列。
货源名片:获取设置新增用户ID、店铺公告、联系方式、评分、商品数量、选中标签;设置名片新增店铺公告、联系方式、标签选择参数及验证;获取名片等级列表返回新增普通等级和标签列表;新增获取可用标签列表接口;购买名片支持同时选择标签。
代理等级:列表返回新增对接码列表、代理数量、商品数量统计;新增获取等级下商品列表接口;新增获取等级下代理列表接口。
对接码管理:列表新增等级ID筛选、代理数量统计、字段别名兼容;创建对接码改为每等级最多3个;编辑对接码移除等级ID修改,支持字段别名。
对接商品:新增自动创建同名分类、补货自动上架、涨价自动下架参数;一键克隆改为异步任务模式,支持同步源头分类;新增克隆任务进度查询接口。
我的下级分销:新增关键词搜索、等级筛选、标签页、排序功能;返回数据新增黑名单状态、近7日供货额/订单量/收益、今日订单数;移除代理类型字段。
名片等级自动降级:过期名片自动降级为普通等级并发送通知。
商品价格变动:改为异步检查下级代理商品价格是否合适,只下架价格不合适的商品。
总后台-名片等级管理:新增年付折扣、标签配置字段;新增标签管理抽屉组件。
总后台-店铺管理:列表新增店铺号字段;新增修改店铺号功能。
总后台-缓存管理:优化表格列宽显示。
商户端-代理等级页面:重构为卡片式布局,直接展示对接码列表、代理数量、商品数量;支持快捷添加/编辑/删除对接码;新增查看等级下代理和商品的抽屉。
商户端-我的代理页面:重构为移动端友好的卡片式布局;新增Tab切换(全部/等级代理/货源大厅);新增搜索、筛选、排序功能;展示近7日供货额、订单量、收益、今日订单等统计数据;支持封禁/解封代理。
商户端-货源大厅页面:名片列表新增关键词搜索和等级筛选;名片卡片改用统一的名片预览组件展示样式;商品搜索抽离为独立组件。
商户端-我的名片页面:重构页面布局;新增店铺公告、联系方式设置;新增标签选择功能;名片等级商城展示标签列表和锁定状态;新增名片预览组件。
商户端-代理商品页面:重构为移动端友好的卡片式布局;新增Tab切换(全部/上架中/已下架/异常);优化搜索和筛选交互。
商户端-管理员快捷登录:修复接口路径和参数类型问题。
2025-11-21 4H 周 6
修复部分错误,优化部分代码。后面不在记录微刀开发日志,所有操作动作都已被提交至 git 记录
开始正式整理 api 手册
2025-11-21 0H 周 5
2025-11-20 4H 周 4
项目分析与优化:漏洞分析(代码漏洞)和性能分析(redis 队列、协程、thinkorm 缓存)-只分析,并不进行优化(数据量太小,且增删改查微秒级别或多关联自定义查询无必要)
构建手册 vitepress 项目
移除性能不佳且不正确的自定义定时任务集合文件
商品统计:商品销售额-当前店铺订单量排行的商品。分销商品收益-我的商品被分销的收益排行榜 2H
2025-11-19 7.5H 周 3
分销为当日新增数
代理等级编辑变更、上传配置变更
push 推送
商户消息外放:每日报表更新,售出通知,结算通知测试通过 待测试 库存预警通知 售后通知
[安全] 接口请求频率限制。
信誉分:取消低于 60 分禁止销售功能,取消月评分,周扣分如果上个周期被扣分则固定扣 2。
2025-11-15->18 44+
安装手册、常见问题、模版渲染机制修改。
后台/商户日志记录插入数据使用 Redis 队列。
大厅邀请码功能变更:商户自发购买。
平台后台:信誉分管理、推广记录、大厅名片管理。
信誉分记录时间搜索、签到日志时间搜索。信誉分日志类型字段。
[安全] 跨域设置。
消息通知检测完成。
销售分润检测完成。
售后检测完成。
销售统计-商品统计:应是统计的 自己的商品收益前 5,和自己代理别人的商品收益前 5[⭐ 功能再次沟通待办]
移除不在使用的扩展配置项,避免 composer 后的启动错误。
重构 公告发送,支持发送给所有商户或按角色发送。
完善用户注销功能,只检测是否有店铺和账户余额,不满足则不可注销。
重构店铺收藏和商品收藏接口,不在使用关联查询。
订单查询时,如果商品已经被删除,则显示商品快照信息。
完善商品详情页和详情页面接口,路由。
完善定时任务多,手工配置繁琐,配置 workerman/crontab 定时任务组件使用的方法。
jwt 密钥配置及账号等基础。
统一开店流程。
风控管理 - 代理近期销售:接口同 下级代理订单(区别是 在我的订单页面是展示我的收益。在这里应该展示用户付款金额。含 23 级别代理)
风控管理 - 查询用户近期消费:应该是只统计用户在自己店铺里的消费,不统计下级分销的。(根据历史使用此功能一般是为了统计用户在自己店铺消费情况,然后做私域活动)
上级价格改动后,下级商品下架,直接上架时也更新成本价;+ 分销黑名单检测。
分销黑名单:关联位置
a. 商品上架
b. 我的上级-商品列表
c. 货源大厅-商品列表
d. 对接商品时,检查是否在黑名单中(一般来说 b c 的操作按钮应该已经是无权限)
e. 添加时,按需下架(不发通知)
d. 商户注销时,不清理该模型。持久保存。
所有表清理关系统计。
定时任务:清理 40 天以上数据。
总后台 删除用户功能表结构所有统计。
总后台注销记录。
总后台改用户店铺号。
总后台签到日志记录。
总后台信誉分日志记录。
用户注销账号的功能 、 注销次数关键性信息统计:注销检测通过后立即注销,数据删除将在队列中执行,所以设置 1 小时内无法重新注册商户。
消息通知外放 库存预警 交易通知 售后通知 提现通知 每日报表:使用推送队列,避免影响阻塞主流程。完善商户通知设置。
扩容已售库存模型:记录售出者及所属关系、购买者、创建时间(为 40 天清理使用)。也用于可能后期需要扩展成单独展示赠送的和购买的区分开(可前端自行判断)。
搜索限流:按需求做(渐进式累计封禁机制,非窗口)。
sql 表规范注释和字段规范注释。
用户端数据时效性。
更新资金模型操作字典,新增管理员对用户余额的操作,更新用户端资金明细列表。
商品新功能:
a. 售完下架-出货后如果库存为 0,使用异步队列下架自己和可能被代理的商品-不影响主体下单流程;
b. 发货方式 (风险项: 手动出货 有超售风险 及 售出后商品源被删\下架等 无法查询问题,暂时使用无论自动 手动 都自动出货);
c. 店铺中显示是否
2025-11-12->14 32H 周三->周五
@ 时效性: 以当前时间往前推n天,并不在从n天前的凌晨计时。比如此时 2025-11-24 1:36 往前推 7 天,则从 2025-11-17 1:36 开始计时。快捷操作 api 确认;平台消息 确认
商品管理 确认
店铺管理 确认(店铺装修除外)
a. 移除店铺链接关闭功能(功能梳理:系统是使用以店铺号搜索店铺属于自带流量平台,所以只有唯一的店铺入口链接,所以不应该关闭此链接,此处功能应该独属于店铺状态功能)
b. 确定使用 shop_status 作为店铺状态,表示为平台允许的店铺状态,并在我的店铺页面做显示。close_status 为商户自由控制开关打样状态。
c. 信誉分:信誉分日志列表 增加时效性(⭐ 待办记录:因为要计算上个月记录,此模型不遵守用户设置的清理周期,而固定为平台的设计项:40 天)
风控管理
a. 区分是自己直属代理(只可拒绝直属代理)还是三级代理
销售统计 完成
a. 利润统计 ,应使用同一接口:展示最近 7 或 14 日(应遵循数据周期)数据:自己商品收(含下级分销商品收益)、自己代理别人的收益、推广收益。及对应当日的综合收益(自己的商品 或许 有成本价 考虑需要多一个参数)
b. 商品统计 ,应使用同一接口:展示最近 7 或 14 日(应遵循数据周期)数据:自己商品的收益排行前 5,代理商品的收益排行前 5。推理:存在分销关系 无法在收益表中查询每一笔交易,应该扩容自动解冻模型。
c. 销售走势
商家助手 a. 推广 完成
b.
推送 待办移除待办c. 数据时效性 完成
我的订单 确认
a. 订单完成方法 用户余额扣款前加锁,防止并发未减余额。
b. 我的订单 按用户名搜索用户购买信息;增加买家用户 ID。移除不必要的关联模型展示;增加时效性
c. 推广:返佣明细从资金日志中获取并增加时效性;邀请记录列表不在使用时效性(永久关系,除非上级账号删除);推广统计数据使用资金冻结模型记录并增加时效性
货源分销
a. soure(source)拼写错误造成的 bug->代理价格变动时未及时下架->用户下单提交 45->代理分佣 5->上级分佣 50->源分佣->25,45 < 15+50+25 严重漏洞修复。(梳理:只要变动价格,下级必然下架。用户确认支付时,必检查商品状态)
货源大厅
a. 货源名片签到日志数据->日历展示;取消名片与系统名片关联,使用 card_level 表示当前名片等级用于快速排序(梳理:后台增加名片等级后-一旦被使用,不可更改与删除。建议提前做好规划)
b. 货源名片排序功能更新,准确的信誉分值, 货源名片是否为优质商家标识
c. 拆分购买邀请码功能,更新邀请码功能列表(添加状态 0:可售 1:已售 2:已使用 用于各种记录计算);增加我已经购买过的接口。更新总后台邀请码页面。
钱包 整理完成
a. 缺失补全:运营钱包支出明细,可使用 merchantapi/wallet/platform/log ( business_type = 'deposit_money',signed = 0) ,signed 含义 - 0 为负数 1 为正数
b. 功能补全: 待解冻订单 -> 使用待解冻列表(功能梳理:剖析商户可能需要知道这笔订单是否已经解冻,订单因被投诉被冻结等)
c. 提现记录 增加时效性
d. 充值记录 增加时效性
e. 资金日志列表 增加时效性
f. 冻结资金列表 增加时效性
售后 更新中
a. 并放到订单菜单中查看 (功能梳理:仅商品源用户和商品直售用户显示,如果存在中间层代理 不扣分 也 不记录在下级投诉中,因为中间层不参与扣分和投诉问答及投诉处理)
b. 增加列表数据 时效性
c. 合并自己的订单投诉和下级代理的订单投诉为统一接口 统一列表。
d. 增加 平台判定时 买家责任逻辑;商户责任时的 信誉分扣除逻辑
个人中心
a. 注册时间,使用开通店铺的时间
b. 二级密码:首次设置时不需要邮箱验证。更改时需要邮箱验证码的验证,并判断是否已经绑定了邮箱
c. 消息列表 增加时效性
用户下单确认
a. 检查商品状态(检查商品状态、店铺、卖家状态)
总后台 a. 订单列表:展示平台收益 变更为 减去被推广分走的平台收益后的最终利润
全部检查:商品删除时,影响到的列表的调用情况,并使用 null 合并运算,及模型默认值处理。
用户端
a. 更新店铺演示页面, 为手机端
b. 添加收藏店铺和收藏商品的原始属性数据
c. 显示下单的手续费
d. 完善资金账单:资金日志、 用户充值记录列表、
e. 订单投诉页面:参考淘宝投诉设计,平台 24 小时后按需介入。增加 投诉时展示卡密信息。
f. 订单撤诉时,资金冻结时间恢复至冻结时间+24 小时;接口返回数据字段处理,隐藏不必要的字段
2025-11-11 9H 周二
- 售后二版
- 开始按原型脑图制定菜单及整理代码
- 数据概览、交易概览、增长概览
- 待解冻列表
- 代码整理。。。
2025-11-9 10H 周一
商品订单退款时的各种计算 验证通过 = 销售统计通过。移除待办项 商品订单退款。只需展示即得收益
检查修正 拒绝下级代理的逻辑不通过。原因: 三级可能还正常代理了上级的自有商品 应该查所有代理商品 然后从商品循环下架
完成 买家黑名单功能
生成店铺时 自动生成信誉分资料
merchantapi/distribution/agentrelation/myagentlist 不可操作三级代理 应该给出标识 ✔
⭐ 待办 探查后期是否需要直接在商品代理关系表中记录相关的销售记录2025-11-13 取消待办:我代理的商品中,不在显示出售的卡密数量(没有啥意义,收益才是要关心的);订单量按订单模型走;收益按冻结模型走;粗略整体销售收益按商户收益分析模型走。梳理功能:商户店铺信誉分 周 月 重计加分项 - 如果订单评优已经够 10 分了,然后如果在历史周期内(比如上周不达标,周不达标 月必然不达标)存在扣分,则把 10 分额外分 2/5 分,直至扣完这 10 分(其中订单量不够,不扣分) ⭐ 但是逻辑依旧不太对,比如月不够 2 周为 4,月扣 5 则又没了 thinking
所有解冻流程:自动解冻表数据 状态更新为 2 表示已经解冻操作过。此数据表不在做删除行处理,
只在平台定时(⭐ 待办 40 天)清理数据时清理2025-11-13 后要求不删除,用于记录订单收益关系
2025-11-9 9H 周日
- 代码整理。。。
- 收益统计;订单删除时删除对应的用户收益统计(注意,不删除资金冻结关系)
- 商品订单退款时的各种计算,最终目的结果:商家余额已扣除,买家退款已原路退回
- 取消待办 分销黑名单 -》它的功能指向 拒绝直属下级代理
2025-11-8 6H 周六
- 增加 用户扩展配置模型 用于存储用户可自由修改的项目 用于数据外放 数据时效性 等不需要随用户生成的信息
- 代理商品编辑中,检测是否是三级代理,是则需要不可被继续设置代理 can_proxy = 0
- ⭐ 待办项 考虑一种逻辑,当一个商家 从不同的上家代理了同一个源头商品,那么查询关系,必须携带上级代理用户关系(功能梳理:找上级商品时,必须携带上级用户 id,上级商品 ID)
- 店铺详情增加信誉分过低店铺不可用逻辑
- 确认: 库存量 商品列表中库存使用同步库存(用于告警查询);代理商品列表中库存剩余量 使用库存表计算库存(准确库存)、已售出库存使用订单中售出量(此数据需要受时效性影响 商户 最大 14 天)。代理商品一旦被删除到回收站,则不可被恢复,因为一旦删除,商品的代理关系将需要被删除,这样才可以允许重新接入。但是要保留回收数据,用于订单等关联查询。
- 移除 商品的 inventory_notify_type 库存预警通知方式选项,梳理要求:站内信必开,然后还要发送商户可能设置的 webhook 通知 ⭐ 待办项 通知
2025-11-7 9H
- 为商品编辑中 代理等级价格可单独关闭 功能梳理:图要求,先对接,上级设置价格后在来编辑代理商品 -> 新需求 -> 添加 代理等级价格可自由在商品中开关。 变动:当代理等级删除时,删除代理等级时会自动下架所有下级商品,代理商品下架(不移除代理关系,方便变更转换) 当代理等级变动时,变更每个直属代理商品的代理关系,下架三级代理的商品
- 三级代理部分功能重构;部分敏感数据使用事务;三级商品数据查询部分更新,如列表从订单表查销售卡密量;功能梳理:
- 代理分销-我的上级列表 -新增 按上级用户 id 查看可被代理的商品方法以及在抽屉列表的快捷对接
- 移除 对接码对接时必须使用对接码:逻辑更改为 先成为其代理,在通过商品 ID 对接;抽离代理商品价格方法;可对接商品列表功能变更
2025-11-6 14H
制作 thinkorm SQL 监听 为 sql 索引做准备 (⭐ 售后阶段待办项:数据表索引)
商户提现、用户提现 、后台提现用户类型 提现类型、定额提现任务(备注:php webman auto:cash_ration 每隔 10 分钟执行一次,每日不限制次数、提现手续费跟随手动提现手续费设置;);绑定收款/提现 二级密码是否存在及是否正确的验证;商户默认手动提现;
标准确认:后端关于资金类的计算统一使用 小数点后三位。前端展示时请使用四舍五入取小数点后两位(即用户看到的是精确到分)
jwt 加密方式确定为双向对称加密:传客户的 token 过来后解析验证,成为商户后,获取新的商户 token(另外设计要求 playload 中 使用 sub 作为用户 id,username 作为商户名)
信誉分使用规则 扣分至低于 80 关闭货源大厅且下架货源大厅商品 功能梳理:信誉分 >= 80 且 开通货源大厅,才显示货源大厅(核销邀请码时 符合的开通) 信誉分 低于 70 ,货源名片配置 代理等级和代理等级对接码功能列表不可用 及取消其货源对接功能(扣分至低于 70 时自动下架其所有下级商品 - 需要关联变动项 商品上架 版本 4) 信誉分 低于 60, 下单时 无法被下单
⭐ 待办项: 周 月 重计加分项 - 如果满足条件会一直加下去 - 需要梳理逻辑做成:上个周期内如果有扣分,则做减法运算?有没有最高分 100,会超过 100
信誉分日志记录接口
重新规划总后台 用户列表 商户和用户放在统一列表中使用
下级代理订单
风控 买家黑名单
风控管理功能梳理: 查询代理近期销售 -> 下级代理订单 ✔ 查询用户最近消费 统计搜索时的总消费 ✔ 待办项 分销黑名单管理 -> 分销代理-我的代理 拒绝 (但只能拒绝直属代理)(✔) 用户黑名单管理 -> 下单黑名单 ✔
2025-11-5 12H
- 投诉与售后功能 版 1
- 设计思路出错,多级代理时 无法准确定位下级代理订单列表。开始重构
- 用户端 收款方式设置
- 用户端和商户端 cash 所有方法抽离合并
- 重构对接,梳理商品表 订单表 投诉表 使用三级代理
- 制作交易概览看板数据接口,增长概览数据看板
- 后台 买家列表管理
- 店铺收藏和商品收藏用户端演示(暂不具备点击跳转,仅支持查看收藏信息)
2025-11-4 9H
- 商户推广 商户推广注册店铺,返佣逻辑,推广关系,返佣日志(使用资金明细中关于返佣的标识),功能梳理,此功能自己开关,并关联到推广页面,友好的展示可能受益的资金。
- 开通店铺时 允许传入店铺名+推广 ID(演示站使用本地存入推广 id),功能梳理,应该根据后台设置 自由的显示是否有邀请框/使用静默的本地缓存仓。
- 商家推广功能 佣金从交易手续费里抽成,后台可控功能开关(每笔交易 永久分成)
- 冻结商品订单时 冻结所有层级及推广收益
2025-11-3 11H
- 商品编辑功能:货源大厅价格变动、代理状态变动、代理等级价格变动等所有受到影响的 对下级的商品进行下架,并支持精准的某个代理等级的价格变动且下级上架的商品通知和对其下架
- 商品删除功能:Redis 队列下架所有被代理的状态可用的商品链路
- 商品上下架:检测是否绑定了分类,成本价对比,代理关系对比,商品被冻结检测,链路下架
- 库存同步,添加、删除、出货、批量导出时删除。【※售后时库存同步待办】
- 库存告警商品列表
- 货源名片所有逻辑二次确认,新增刷新点购买价格,完成每日刷新计算
- 商品上架时,如果是对接码代理,需要检测上级的设置的代理等级是否还存在以及是否已经被关闭
- 代理商品 同步限购 内容 售卡顺序逻辑;代理商品的代理逻辑与自有商品的上下架 价格逻辑抽里,严格区分代理商品类型是大厅还是对接码;代理商品严格检测货源大厅价格 和每一项代理等级的价格、双向计算新旧价格组
- 强制删除代理等级(会删除 代理等级对应的对接码、删除商品对接关系,删除代理等级设置过的商品价格,设置代理关系为拒绝-因为此时已经不存在这个代理等级)
- api 请求域名 及 静态资源绝对路径返回
- 查询订单使用订单号查询当前用户订单(功能梳理,下单产生时输出的是订单号,用户订单中心中继续用订单号查询,保持一致性)
- 充值订单超时配置 超时逻辑;
- 对接订单不支持查看卡密
- 万能第三方短网址功能,使用 json 配置
2025-11-1 -> 2 2H
统计所有 sql
私事休息
2025-10-31 6H
2025-10-31 周五
- 需要提交 git
- ⭐ 核心 分佣
- 上级的收益即本级的成本价
- 源商品的成本价是为了方便统计,真实收益是给下级的成本价
- 每层的收益都应该被冻结
- 每层的收益都应该有日志
- 每层的收益都应该有被统计
- 每层商品代理的关系 应统计(给上级的) 卡密销售总数 总销售额 利润
- 每层的代理关系 应统计订单数(其余的资金类的可以用 6 相加)
sql 表及含义统计,为资料定时清理准备
2025-10-30 12
重构商品变更状态流程
- 当上级商品未上架时,下级一定不可自己上架。只要保障下架的时候 整个链路下架即可。可大幅度降低逻辑。
- 商品通过链路下架后,购买商品时只需要检测自己的商品状态即可。
- 对接商品时 拿货价统一从(货源对接关系表 goods_agent_relation)中获取,不再经过代理等级(货源价格表 goods_agent_price)。
- 前提:要保障(以后的 goods_agent_relation 总是最新)-制作中
- 风险点-买家-下货-价格已经计算完毕-此时商品更新了价格-价格统计各种链路将有被攻破风险 🙅(需要只要一旦更改了代理关系 商品代理关系变更,就让商品下架 不可继续余额支付 √)
商户充值、用户充值
商户提现、用户提现
提现任务
前台页面(所有)基础版本
时间字段创建统一到各个模型
====== 要求标识统一 user_type 1 商户 2 买家
2025-10-29 13
检测商品链路状态(防止中间代理层不存在)✔
商品变更状态时 ✔
测试环境部署,演示账号到商户账号的申请页面(需要关联角色、自动生成店铺)
测试下单,制作分佣流程,制作资金日志
功能梳理:用户账号到商户账号属于同一个账号,相关记录应该关联,并使用 user_type 做区分(从 20251026 日已确定此开发思路)。所有相同功能应做统一抽离【重点】
⭐ 核心 下单流程梳理:
- 用户输入数量 和 商品 id 下单
- 检测用户下单权限
- 2.1 检测黑名单配置
- 2.2 检测商家状态
- 2.3 检测商家店铺歇业 冻结状态
- 检测商品源库存
- 3.1 检测下单库存
- 检测商品链路状态(防止中间代理层不存在)【todo 集成】【x 取消】
- 检测买家余额
- 统计原始单价 最终单价 最终成交价 购买数量 下单时间 手续费 订单自动关闭时间
⭐ 核心 商品下架功能
- 商品修改价格时
- 商品变更状态时
- 商品代理价格修改时
- 已存在的代理 代理状态被拒绝时
- 应该会被应该当前商品下的所有的无限级代理的商品
2025-10-28 12
- 货源大厅:后台大厅邀请码 商户货源大厅 商户大厅名片 名片分类 购买 刷新等 所有内容
- 清理原始数据,植入演示测试账号环境。制作清理数据脚本
- 开始下单流程
===== 已完成:货源大厅、代理关系、代理等级、商品代理关系、商品代理价格关系、对接码、对接名片 我的代理 我代理的商品 我的上级代理等功能已完成 ======
===== 未完成:货源大厅、代理关系、代理等级、商品代理关系、商品代理价格关系、对接码 功能校验,1. 被删除时后续链路的关键问题 2.销售数据统计到代理关系中(需 下单 分佣功能完善后 来做此未完成内容)======
2025-10-27 10
- 代理关系表 agent_relation
- 新增字段 can_proxy 是否允许下级代理 1 允许 0 不允许(代理关系不存对接码,与对接码解耦,需要存 can_proxy)
- 商品服务类
- 库存服务类
- 货源大厅后端
2025-10-26 8
- 代理等级、对接
- 重构 搜索码 三级代理
- 我的上级列表
- 功能继续梳理
- 通过对接码搜索 上级,搜到后
- 可能已经对接 但对接码跟已经对接的对接码等级不同 需要一个更换等级的功能
- 如果上级操作过这个代理成了 状态-1 还得提示友好
- 还有可能没有对接关系 需要申请,申请的方法 becomeAgentByBindCode 方法
- 上级可用的商品列表 goodsListByBindCode
2025-10-25 10
- 库存查询,商户自定义快捷菜单
- 搜索码 三级代理基础构架
- 核心表及核心字段
- 关键表结构
- 代理等级表: agent_level ✔
- 对接码表: agent_bind_code
- agent_level_id 对应代理等级 id
- can_proxy 是否允许下级代理 1 允许 0 不允许
- 代理关系表: agent_relation
- parent_id 上级用户 id
- user_id 代理用户 id
- top_user_id 总属于用户 id
- agent_level_id 对应代理等级 id
- status 状态:0=待审核,1=已通过,-1=已拒绝
- apply_time 申请时间
- audit_time 审核时间
- source 代理类型 代理类型:1 对接码代理,2 货源大厅代理
- can_proxy 是否允许下级代理 1 允许 0 不允许(代理关系不存对接码,与对接码解耦,需要存 can_proxy)
- 货源价格表: goods_agent_price
- user_id 商家 id
- goods_id 商品 id
- agent_level_id 对应代理等级 id
- agent_price 价格
- 货源对接关系表: goods_agent_relation
- relation_id 代理关系表 ID
- source_user_id 顶级商家 id
- parent_user_id 对接上家商家 id
- agent_user_id 对接者商家 id
- source_goods_id 顶级货源商品 id
- parent_goods_id 上家商家商品 id
- agent_goods_id 对接者商品 id
- source 代理类型 代理类型:1 对接码代理,2 货源大厅代理 20251030 增加
- status 对接状态 20251030 移除
2025-10-24 11
- 基础架构:选型确认,表结构,基础模型
- 功能:消息通知分类,商品相关,用户相关,店铺相关,充值,前端基础演示,库存监控(数据版)
- todo 多级商品收益,库存获取
(所有功能可能会被推倒重构,请暂时不要使用目前接口和演示站做页面)