linda
|
fbc6feee87
|
feat(merchant): 企业订单聚合列表与关联账号只读详情
- 新增 /merchant/orders,按主账号+关联账号聚合订单并支持状态筛选
- 新增企业订单页,展示订单归属账号(主账号/关联账号)
- 工作台企业订单入口改到聚合列表,近期订单可点击查看
- 订单详情允许同商家账号查看,非下单账号隐藏操作按钮
- 报价选择仅下单账号可操作,防止关联账号/主账号误操作
|
2026-10-28 19:27:51 +08:00 |
|
linda
|
5a34d87eee
|
feat(merchant): 商家关联账号绑定与数据同步
- 新增 fa_merchant_member 关联账号表,主账号可绑定/解绑已注册用户
- 关联账号可切换商家端,订单、账单、开票、批量归属按主账号+关联账号聚合
- 商家工作台新增关联账号列表、绑定弹层、解除入口与个人订单统计
- 关联账号在商家入驻页显示只读企业资料与同步说明
- 我的页面区分主账号/关联商家身份;修复 merchant 角色本地存储
- 绑定/解绑仅主账号可操作,关联账号操作返回 403
- 新增 schema_phase7.sql 迁移脚本
|
2026-10-28 19:21:54 +08:00 |
|
linda
|
e1bf139c5a
|
feat(order): 下单支持一口价/师傅报价竞价/用户自主定价三种方式
- 下单页新增计价方式选择;自主定价填写总价,师傅报价单进入报价大厅
- 用户订单详情展示师傅报价列表并可选定师傅;选定后同步师傅、金额与订单状态
- 师傅大厅新增用户定价筛选与按价接单;报价单禁止直接抢单
- 后端订单新增 custom 价态、金额口径统一由 calcAmount 输出
- 报价中状态纳入用户可取消范围;超时回流重新开放报价
- 新增 fa_order.price_type custom 枚举迁移脚本(schema_phase6)
|
2026-10-28 17:48:23 +08:00 |
|
linda
|
4e0c86ca06
|
feat(sync): 后端功能模块与前端模块数据同源 + 后台13个业务模块可管
前端不再写死运营数据:
- 首页 Banner/保障条/教程卡 改由 /api/home/index 下发(fa_banner + fa_config),
数据缺失或停用自动回落内置兜底文案
- 订单状态提示改由后端 OrderStatus::tip() 下发 status_tip,前后端一套口径
后台可管(FastAdmin 生成器):
- 新增 13 个业务后台模块:运营位/订单/师傅/商家/优惠券/评价/消息/服务/服务类目/申诉/开票/提现/结算单
(controller + model + view + fa_auth_rule 菜单 78 条)
修复:
- nginx /admin/* 改为 301 到 /admin.php/*,否则后台菜单点开全部 404
验证:tests/phase5_data_sync.js 新增 16 项联动断言;全量回归 202 项断言 0 失败
|
2026-10-28 17:06:55 +08:00 |
|
linda
|
4734724ed2
|
feat: 后端补齐前端所需模块 + 后台登录页品牌化重构
后端(补齐前端已入口但无接口的模块):
- Coupon 控制器:center 领券中心 / my 我的券(未使用·已使用·已过期+计数)/ receive 领取
含库存与过期校验、重复领取拦截、领券后自动发消息
- Message 控制器:index 列表(分类筛选)/ read 单条已读 / readAll 全部已读 / unread 角标
支持 user 与 master 两种归属
前端(对应页面,全部接真接口):
- pages/address/list 服务地址:列表 / 新增·编辑弹层 / 设为默认 / 删除
- pages/coupon/coupon 领券中心 + 我的券(双 Tab + 状态筛选 + 计数)
- pages/message/message 消息中心:分类 / 未读圆点 / 点开自动已读 / 全部已读 / 跳订单
- mine.vue 三个入口(地址·优惠券·消息)由「开发中」改为真实路由
- merchant/workbench 服务地址入口接真实路由
- 首页 TabBar「消息」接入消息中心
- api.js 新增 coupon/message 共 7 个接口
后台登录页(UI 与前端主色调统一):
- 左侧橙金渐变品牌区:logo 徽标 + 「优匠优服」立体字 + slogan + 460万+/99.9%/1762万 平台实力 + 保障条
- 右侧白色登录卡:橙色渐变按钮、圆角输入框、错误提示条
- 保留 FastAdmin 全部挂钩(token/验证码/keeplogin/@AdminLoginFormBegin 等 14 项)
验证:5 套用例 178 项断言全通过(47+65+27+24+15),配置自检 8/8
|
2026-10-28 16:51:45 +08:00 |
|
linda
|
485b66e28f
|
fix(admin): 修复后台 /admin 全站 404(缺失入口 + PHP8.5 编译期告警)
根因(两处叠加):
1) public/admin.php 缺失:FastAdmin 的 deny_module_list 含 admin,
后台必须通过 admin.php 以 BIND_MODULE=admin 访问 → 之前任何 /admin 都 404
2) PHP 8.5 将 (boolean) 列为编译期 E_DEPRECATED,TP5 Request.php:1159 命中
→ Error::appError 升级为 ErrorException,在 Request 类「自动加载」瞬间抛出,
早于任何模块级垫片,导致请求直接中断
修复:
- 新增 public/admin.php(标准 FastAdmin 入口,BIND_MODULE=admin)
- thinkphp/library/think/Request.php:1159 (boolean) → (bool),已备份
并固化为可复现脚本 scripts/patch_tp_php85.sh
- application/admin/common.php 与 application/index/common.php 增加 PHP8 兼容垫片
(application/common.php 不会被 TP5 自动加载,已还原为原样)
- nginx 伪静态新增 /admin、/admin/ → /admin.php(已备份 + nginx -t + 平滑 reload)
验证:/admin → 302 登录页、/admin.php/index/login → 200;
后台密码哈希与 DB 一致;验证码 /captcha 返回 PNG;163 项断言回归全通过
|
2026-10-28 16:37:16 +08:00 |
|
linda
|
ca998d0ef1
|
chore(config): 微信登录配置加固 + 配置自检脚本
配置:
- manifest.json mp-weixin.appid = wx40ca4b02d4d1cb58(构建产物已自动同步)
- .env 新增 [sms] 段:mock / mock_code,手机号登录验证码改为配置驱动
(Auth::login 不再硬编码 123456;mock=0 时返回 2010 提示接入短信)
- 服务端 .env [wechat] appid/secret 已就位并与小程序一致
加固:
- 新增 utils/wxlogin.js:微信登录单飞(防静默登录与手动登录抢同一个一次性 code)
+ 40029/40163 自动换新 code 重试一次
- Auth::wxlogin 失败时回传 wx_errcode,供客户端判断是否重试
- 登录失败自动展开手机号兜底通道
新增 tests/config_check.js:一键核对 appid 三处一致性 / 接口连通 / HTTPS 证书 / 短信开关
验证:config_check 8/8 + 163 项断言回归全通过
|
2026-10-28 16:25:07 +08:00 |
|
linda
|
4e73c8164a
|
fix(wxlogin): 修复微信登录 40029 + 新增商家(企业账号)全流程
微信登录修复:
- 根因:manifest.json 的 mp-weixin.appid 为空 → 开发者工具用测试号,code 与服务端 appid 不匹配
- 修复:填入 wx40ca4b02d4d1cb58
- WxLogin 增加错误码语义映射(40029 appid 不一致 / 40125 secret 错 / 45011 频繁 / 40226 风控)
- 登录页新增手机号登录兜底通道(微信不可用时业务不被卡住)
商家(企业账号):
- 新表 fa_merchant / fa_merchant_order / fa_invoice(纯新增,DB 40→45 表)
- Merchant 控制器:apply/info/update/bills/invoices/invoice/bindBatch
入驻含企业信息+营业执照+开票信息+结算方式(预付/月结)
账单按月汇总、开票额度按已付-已开票校验、批量下单按批次归属
- Auth::switchRole 支持 merchant(2001/2002/2003 语义码 + redirect)
- Auth::profile 增加 is_merchant / merchant
前端:
- 登录页角色扩为 业主/师傅/商家 三类
- pages/merchant/apply 企业入驻;workbench 商家工作台(经营数据+按月账单+近期订单+六宫格)
- pages/merchant/batch 批量下单(多地址×多数量)→ 逐单建单支付 → 绑定批次
- pages/merchant/invoice 开票申请与记录
- pages/mine 增加商家入驻/切换商家端入口;角色徽章三态
验证:163 项断言全通过(page_flow 47 + e2e 65 + phase2 27 + phase3 24)
|
2026-10-28 16:22:20 +08:00 |
|
linda
|
1d92202b1a
|
feat: 微信授权登录 + 我的中心角色切换 + 师傅工作台全模块 + 图标美化
登录与角色:
- Auth::wxlogin 微信 code → jscode2session → 落库发 token(appid/secret 走 .env)
- 新增 fa_user_wechat 表,openid 幂等建号(CLI 已验证 is_new 1→0 不重复建号)
- Auth::switchRole 角色切换(未入驻 2001 / 审核中 2002 / 未通过 2003)
- pages/login 改为微信一键授权;pages/mine 我的中心(师傅入口 + 切换师傅端)
师傅工作台(对齐需求文档):
- pages/master/workbench 工作台:接单开关 / 待处理待验收 / 可提现 / 六宫格入口 / 信用四指标 / 技能标签
- pages/master/hall 订单大厅:类型筛选(一口价/报价) + 4 种排序 + 抢单倒计时 + 报价入口
- pages/master/quote 报价竞标:金额/说明/有效期 + 报价记录
- pages/master/wallet 钱包:可提现/今日/累计 + 账单明细 + 提现校验
- pages/master/credit 信用与申诉:五项指标 + 规则 + 申诉提交/记录
- 新增 fa_appeal 表
视觉:
- 15 个类目图标重画为双色扁平 SVG,用无头 Chrome 渲染为 192px 透明 PNG
- 首页改用 <image src=static/icons/*.png>,移除 200 行 CSS 图标数据
验证:page_flow 47 + e2e_flow 65 + phase2_verify 27 = 139 项断言全通过
|
2026-10-28 16:10:34 +08:00 |
|
linda
|
78722b3912
|
feat(ui): 登录起全链路页面接通 + 逐页面验证(47 项)+ 修复订单列表越权泄漏
前端:
- utils/request.js 统一请求层(token/错误码/401 引导登录)
- utils/api.js 接口清单(与后端控制器一一对应)
- pages/login 登录(手机号+验证码+角色选择)
- pages/service/list|detail 服务列表/详情
- pages/order/create 下单(地址/预约/急单/费用试算/自动支付)
- pages/order/list|detail|review 订单列表/详情轨迹/评价
- pages/master/apply|hall|orders 师傅入驻/订单大厅/接单履约
- YJYF/YJYF 首页接 home/index 真实类目 + 路由跳转
后端 Bug 修复(严重):
- TP5 中 count() 会重置查询条件,导致 Order::index / Master::hall / Master::orders
在 select 时丢失 where 条件 → 泄漏全部用户订单/跨用户数据
- 改为闭包重建查询,已验证修复
|
2026-10-28 15:52:39 +08:00 |
|
linda
|
376ce7b5c9
|
feat(api): 全链路后端 + 数据库设计 + E2E 测试(65 项断言全通过)
数据库:
- db/schema_phase1.sql 16 张业务表(类目/服务/地址/师傅/订单/流水/取证/报价/评价/券/钱包/提现/结算/消息)
- db/seed_phase1.sql 15 类目 + 32 服务项目 + 新人券(幂等)
后端 API (application/api/controller):
- Base/Auth/Home/Address/Order/Master/Review
- app/common/library/OrderStatus 11 状态机 + 流转矩阵
- application/api/common.php PHP 8.5 兼容垫片(E_DEPRECATED 不再升级为异常)
测试:
- tests/e2e_flow.js 用户下单→支付→师傅抢单→履约→验收→结算→评价 全链路 65 项断言
- 含异常用例:越权/重复操作/非法状态流转/2h 未联系自动回流
|
2026-10-28 15:45:51 +08:00 |
|