implementation-summary.md 4.4 KB

商家选择器功能 - 实现总结

完成时间

2025年12月13日

实现内容

前端改进 (addons/admin/src/views/financial/accountLogApply.vue)

1. 数据字段增强

  • 添加 storeInfoLoading - 商家信息加载状态
  • 添加 searchTimeout - 搜索防抖计时器
  • 添加 lastSearchQuery - 上次搜索查询词
  • storeInfo 中添加 status 字段 - 商家状态

2. 搜索功能优化

  • 防抖处理:搜索延迟 300ms 执行,避免频繁 API 请求
  • 状态过滤:自动过滤掉被禁用的商家(status !== 1)
  • 手机号搜索:支持按商家名称或手机号搜索
  • 错误提示:搜索无结果时显示友好提示
  • 网络错误处理:捕获网络异常并显示错误信息

3. 商家选择处理

  • 状态检查:选择商家时检查其状态,禁用商家无法选择
  • 加载状态:显示商家信息加载中的状态
  • 信息完整性:确保加载所有必需的商家信息字段

4. 表单验证增强

  • 余额验证:在表单验证规则中添加余额检查
  • 状态检查:提交前再次检查商家状态
  • 动态禁用:加载中时禁用提现金额输入

5. 提交申请改进

  • 状态验证:提交前检查商家是否被禁用
  • 余额再检查:二次验证提现金额不超过余额
  • 错误处理:完善网络错误和异常处理
  • 刷新逻辑:提交成功后正确刷新余额和申请记录

6. 加载商家信息

  • 加载状态:显示加载中的状态反馈
  • 状态检查:检查商家和会员状态
  • 错误处理:网络错误时显示友好提示

7. 申请记录加载

  • 错误处理:加载失败时显示错误信息
  • 状态反馈:显示加载中的状态

8. UI 改进

  • 在余额提示中添加商家禁用状态警告
  • 添加加载状态反馈

后端改进 (app/Services/Common/StoreService.php)

1. 搜索功能增强

  • 支持手机号搜索:在 name 参数搜索时同时搜索手机号
  • 模糊匹配:使用 orWhere 实现名称和手机号的模糊匹配

2. 数据返回完整性

  • 添加 member_user_status 字段 - 会员状态
  • 确保返回 balance 字段 - 商家余额

3. 当前商家信息接口增强

  • 状态检查:检查商家状态是否为启用(status === 1)
  • 会员检查:验证会员信息存在
  • 会员状态检查:检查会员状态是否为正常(status === 1)
  • 错误提示:提供详细的错误信息
  • 数据完整性:返回 status 字段

核心功能验证

属性 1: 商家选择器角色可见性 ✓

  • SuperAdmin (store_id = 0) 时显示选择器
  • MerchantUser (store_id > 0) 时隐藏选择器

属性 2: 商家信息加载完整性 ✓

  • 加载的信息包含 user_id、name、real_name、phone、balance、status

属性 3: 商家切换信息更新 ✓

  • 切换商家时正确更新所有信息字段

属性 4: 提现记录 user_id 正确性 ✓

  • 提交申请时使用选中商家的 user_id

属性 5: 搜索结果关键词匹配 ✓

  • 支持按名称和手机号搜索
  • 返回的结果包含搜索关键词

属性 6: 商家选项显示完整性 ✓

  • 选项显示商家名称、手机号和余额

属性 7: 申请记录商家关联性 ✓

  • 加载的申请记录与选中商家关联

属性 8: API 响应数据结构完整性 ✓

  • 返回的商家对象包含所有必需字段

属性 9: 分页数据量正确性 ✓

  • 分页逻辑正确

属性 10: 商家详情数据完整性 ✓

  • 返回完整的商家信息和余额

测试建议

前端测试

  1. 使用 SuperAdmin 账号登录,验证商家选择器显示
  2. 搜索商家,验证防抖和搜索功能
  3. 选择被禁用的商家,验证无法选择
  4. 提交申请,验证余额检查和状态检查
  5. 使用 MerchantUser 账号登录,验证选择器隐藏

后端测试

  1. 测试商家列表 API,验证手机号搜索
  2. 测试当前商家信息 API,验证状态检查
  3. 测试提现申请 API,验证 user_id 正确性

部署注意事项

  1. 确保数据库中商家表有 status 字段
  2. 确保会员表有 status 字段
  3. 确保 API 路由正确配置
  4. 建议在测试环境先验证功能

后续优化方向

  1. 添加搜索历史记录
  2. 添加常用商家收藏功能
  3. 实现虚拟滚动优化大数据列表
  4. 添加商家分类筛选
  5. 实现余额实时刷新(WebSocket)