yml
|
58e071d157
|
修正订单群聊与发布跳转
|
2026-06-18 09:45:36 +08:00 |
|
yml
|
f4361c9804
|
优化发布群租客清退与历史消息
|
2026-06-18 09:39:23 +08:00 |
|
yml
|
233920025e
|
增加客服分组管理
|
2026-06-18 02:09:02 +08:00 |
|
yml
|
7dc7368367
|
优化客服会话筛选
|
2026-06-18 01:08:54 +08:00 |
|
yml
|
272b2cb71e
|
优化客服群聊订单信息展示
|
2026-06-18 00:44:45 +08:00 |
|
yml
|
0add23dedb
|
修复预计 截止时间
|
2026-06-17 23:10:38 +08:00 |
|
yml
|
bd6e15179e
|
支持后台转移发布所有权
|
2026-06-17 22:31:46 +08:00 |
|
yml
|
342edad78b
|
修复比例默认选择和二维码预警崩溃
|
2026-06-17 21:58:29 +08:00 |
|
yml
|
0a42392d5e
|
优化发布群配置与二维码池界面
|
2026-06-17 20:59:24 +08:00 |
|
yml
|
ac98841992
|
修复二维码库存与过期时间编辑
|
2026-06-17 20:02:41 +08:00 |
|
yml
|
12f589f0df
|
二维码池批量上传与认证图片预览修复
- 后端新增批量创建二维码接口 POST /admin/chats/qrcodes/batch
- 前端二维码管理页支持多图拖拽批量上传
- 注册 qrcode 图片压缩场景(maxSide=2560, quality=0.95)
- 后端 normalizeScene 注册 qrcode scene
- 增强 AuthImage 组件支持 el-image 大图预览(previewSrcList)
- 修复 WithdrawalDetailDialog 提现凭证图片 401 问题
- 删除重复的 components/AuthImage.vue,统一使用共享组件
- 提交3剩余: 会话列表群类型图标、发布成功跳群、管理端路由等
|
2026-06-17 17:57:05 +08:00 |
|
 ymlandClaude Opus 4.8
|
54f550b8be
|
提交3: 体验完善 - 二维码库存预警
- 实现二维码库存预警逻辑: 库存低于阈值时给所有客服发站内信
- 查询 cs 角色客服并批量发送预警通知
- 预警消息包含剩余数量提示
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-17 15:57:10 +08:00 |
|
 ymlandClaude Opus 4.8
|
ad70b24fb6
|
提交2: 发布群核心功能实现
- 实现 EnsureListingConversation: 发布时建发布群,发欢迎语+二维码
- 实现 AddRenterToListingConversation: 付款后拉租客进群
- 实现 RemoveRenterFromListingConversation: 订单终态移出租客
- 实现消息可见性过滤: 租客只能看到 joined_at 之后的消息
- listing 模块注入 ListingChatCreator 接口,发布时建群
- ListingDTO 新增 listing_group_conversation_id 字段
- 付款流程改为拉租客进发布群(替代建订单群)
- 订单完成和取消时自动移出租客
- 创建 chat 适配器实现接口解耦
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-17 15:57:10 +08:00 |
|
 ymlandClaude Opus 4.8
|
423c142967
|
提交1: 数据层改造 - 发布群与企业微信群二维码
- 新增数据库迁移 000008: chat_conversations 增加 listing_id, 新建 chat_qrcode_pool 表
- 更新 GORM 模型: ChatConversation 新增 ListingID 字段, 新增 ChatQrCode 模型
- 实现二维码池管理后端 API: 创建/列表/统计/更新/删除
- 新增管理后台路由: /api/admin/chats/qrcodes
- 新增系统配置: chat.listing_group_welcome, chat.qrcode_low_stock_threshold
- 更新优化方案文档: 废弃双群方案, 采用单群方案
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-17 15:57:10 +08:00 |
|
 yml2213andClaude Opus 4.8
|
4d54f1b03a
|
后台增加撤销用户实名功能
实名姓名与收款账户不一致会导致收款码登记失败,新增后台撤销实名能力:
- 新增 user:revoke_realname 权限,授予超级管理员与运营角色
- 撤销时重置用户实名状态为未认证并删除实名记录,使其可重新认证,写入审计日志
- 用户管理页新增实名状态列与"撤销实名"操作(含原因弹窗)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-17 07:03:52 +08:00 |
|
 yml2213andClaude Opus 4.8
|
8192344027
|
优化号主交接超时卡死问题
- 号主交接超时(owner_timeout)后允许补提交交接说明,避免临时延误导致订单卡死
- 后台新增"重置交接"动作,可将超时订单恢复为待号主交接并刷新计时
- 交接超时改以进入待交接时刻为基准计算,新增 handoff_started_at 字段
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-17 04:16:31 +08:00 |
|
 yml2213andClaude Opus 4.8
|
a88008f783
|
用户管理增加查找筛选
后台用户列表此前仅分页,数据量大时无法定位用户。
- 后端:List 新增 ListQuery(关键词 + 状态),抽出 applyUserFilter
对总数与列表查询统一加筛选;关键词为纯数字时同时按用户 ID 精确匹配,
否则按手机号/昵称模糊匹配
- 前端:AdminUsersView 新增筛选栏(关键词:手机号/昵称/用户ID,
状态:正常/已冻结/已禁用),回车/清空/选择即查,查询重置到第 1 页
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-17 00:58:14 +08:00 |
|
 yml2213andClaude Opus 4.8
|
e75a39b03a
|
新增消息已读状态
复用 chat_participants.last_read_at 推导已读,无需新表/迁移。
- 后端:MessageDTO 增加 is_read,toMessageDTOs 按「全部已读」语义计算
(所有其他参与者均已读才算已读,1对1 即对方已读);MarkRead 成功后
推送 conversation_read 事件(含 reader 与 read_at),NotifyConversation
与 NotifyAllAdmins 双通道通知,使发送方/客服实时刷新已读
- 前端:ChatMessage 增加 is_read,ChatView/AdminChatsView/MobileChatView
在自己的消息下渲染「已读/未读」;收到 conversation_read 且本端仍有
未获回执的自己消息时才重载,避免无谓请求
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-16 22:22:05 +08:00 |
|
 yml2213andClaude Opus 4.8
|
cc1c0d33de
|
修复客服后台聊天无实时刷新
后台 token 仅存 httpOnly cookie,localStorage 无 access token,
useChatSSE 在空 token 时提前 return,导致后台 SSE 从未建立连接,
只有手动刷新才出消息。
- 前端:后台 SSE 不再因空 token 返回,去掉 query token,
改用 withCredentials 依赖 cookie 鉴权
- 后端:新增 Hub.NotifyAllAdmins,新消息与新会话广播给所有在线客服,
使「未分配 / 全部」视图实时刷新(参与者客服重复收到由前端按 id 去重)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-16 19:57:58 +08:00 |
|
yml
|
9271f47553
|
增加公告图片编辑, 增加取消归档
|
2026-06-15 20:37:13 +08:00 |
|
yml
|
4a0d615926
|
修复支付网关地址空白字符
|
2026-06-15 00:53:05 +08:00 |
|
yml
|
a275a006eb
|
修复支付取消与成功统计
|
2026-06-14 23:58:39 +08:00 |
|
yml
|
3ff8c1de88
|
支持微信支付宝独立支付渠道
|
2026-06-14 23:38:03 +08:00 |
|
yml
|
8fef037be3
|
AES 字段加密迁配置并兼容旧密文
移除字段加密硬编码主密钥,改为 FIELD_ENCRYPTION_KEY 注入。
保留 FIELD_ENCRYPTION_LEGACY_KEY 透明回退旧密文,新写入统一使用主密钥;生产环境校验主密钥和 legacy 密钥长度、占位符及相等关系,并统一生产环境判断口径。
补充配置与旧密文兼容回归测试。
|
2026-06-14 17:53:24 +08:00 |
|
yml
|
6ff7692f3e
|
支付确认强一致化: 订单推进与标 paid 合并为单事务
confirmPaid 原为「先 ConfirmPaidFromChannel 独立事务推进订单, 再 Updates 标 paid」两步非原子, 崩溃在中间会出现订单已 pending_handoff 但 payment 仍 paying 的不一致窗口, 恢复依赖渠道回调重发而非事务闭环。
改造:
- 新增 ConfirmPaidFromChannelTx(tx, orderID) 让 order 模块共享 payment 模块的外部事务, 订单推进与 payment 标 paid 落进同一事务, 崩溃一致性窗口消除
- NotifyNewConversation 提到事务提交后触发, 避免事务回滚后误发会话通知
- payment_orders 加行锁后 Updates, 防并发回调覆盖写
- 删除未使用的 providerBizNo 死参数
锁顺序全局一致 (order→listing→account→payment), 与 payment_start/refund/Cancel 路径无反向加锁, 无死锁风险。
新增集成测试:
- 正向: 验证 confirmPaid 后 order/listing/account/payment 全部正确推进
- 回滚: payment 更新失败时 order 不残留 pending_handoff, 验证事务原子性
go build/vet/test 通过。
|
2026-06-14 09:42:26 +08:00 |
|
yml2213
|
fec8e37181
|
修复退款幂等与补偿重试
|
2026-06-14 07:55:02 +08:00 |
|
yml2213
|
c255c142c5
|
优化提现问题
|
2026-06-14 03:13:11 +08:00 |
|
 yml2213andClaude Opus 4.8
|
e8621728fd
|
删除钱包充值功能并消除重复入账风险
钱包充值为开发态测试功能(生产环境本就禁用),且支付回调存在重复入账风险:入账与标记 paid 两步非原子、wallet_ledger 去重无唯一索引、幂等键使用了可变的 ProviderOrderID。直接删除该功能从根本上消除风险。
后端:
- payment 移除 StartWalletRecharge/QueryWalletRecharge 及相关 handler/DTO/常量;confirmPaid 增加 OrderID 守卫;解除对 wallet 仓库的依赖
- wallet 移除 Recharge/ConfirmRechargeFromChannel 及相关定义
- 移除三条充值路由;adminfinance 财务统计口径只统计 order_pay
- 清理充值相关测试用例
前端:
- 移除充值 API、WalletView 充值面板/弹窗、admin 充值标签与筛选
- 保留钱包余额、流水、提现等核心能力
go build/vet 与 vue-tsc typecheck 均通过。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-14 02:45:46 +08:00 |
|
yml2213
|
3ef7705776
|
优化申诉仲裁流程和证据展示
|
2026-06-13 21:26:38 +08:00 |
|
yml2213
|
9d7184ecde
|
优化了消息数量,筛选和顶部部分
|
2026-06-13 19:03:29 +08:00 |
|
yml2213
|
f1ae72cc7a
|
二次编辑商品
|
2026-06-12 21:43:02 +08:00 |
|
yml2213
|
7c2f5e34c3
|
详情页面kd 展示,发布时间必填
|
2026-06-12 21:24:13 +08:00 |
|
yml2213
|
f6ea3e29a6
|
移动端和 PC 端登录页都加了“图形验证码
|
2026-06-12 21:16:08 +08:00 |
|
yml2213
|
8cfb63a3e7
|
修复短信登录限流处理
|
2026-06-12 20:30:43 +08:00 |
|
yml2213
|
4344b1d07c
|
测试修复文件上传 bug
|
2026-06-12 19:48:38 +08:00 |
|
yml2213
|
a615100730
|
修复文件上传和下单支付流程
|
2026-06-12 19:42:24 +08:00 |
|
yml2213
|
7130135e23
|
兼容开放导入未签名请求
|
2026-06-11 07:32:11 +08:00 |
|
yml2213
|
88b1df64e7
|
加固后台管理安全
|
2026-06-11 07:23:00 +08:00 |
|
yml2213
|
df7d6a2675
|
添加 API 限流和支付渠道熔断
|
2026-06-10 15:48:04 +08:00 |
|
yml2213
|
28c4efc669
|
解耦订单和申诉模块外部依赖
|
2026-06-10 15:41:31 +08:00 |
|
yml2213
|
ca50b103ec
|
拆分系统配置 Service 文件职责
|
2026-06-10 15:10:13 +08:00 |
|
yml2213
|
5ecb1e1469
|
拆分后台财务 Repository 文件职责
|
2026-06-10 15:08:19 +08:00 |
|
yml2213
|
b8b7221df8
|
拆分聊天 Handler 文件职责
|
2026-06-10 15:03:58 +08:00 |
|
yml2213
|
70a4d8e9ff
|
拆分订单 Handler 文件职责
|
2026-06-10 15:02:23 +08:00 |
|
yml2213
|
8221544aca
|
拆分提现 Repository 文件职责
|
2026-06-10 14:54:39 +08:00 |
|
yml2213
|
f75174b1cf
|
拆分申诉 Repository 文件职责
|
2026-06-10 14:53:02 +08:00 |
|
yml2213
|
14d9601ef2
|
拆分商品模块服务和处理器职责
|
2026-06-10 14:50:25 +08:00 |
|
yml2213
|
78cb681bec
|
拆分支付配置 Repository 文件职责
|
2026-06-10 14:31:05 +08:00 |
|
yml2213
|
60ff513463
|
拆分大型 Repository 文件职责
|
2026-06-10 14:28:16 +08:00 |
|
yml2213
|
6ae8f0e830
|
完成剩余模块 Context 超时控制改造
|
2026-06-10 12:58:59 +08:00 |
|