- 实现 EnsureListingConversation: 发布时建发布群,发欢迎语+二维码 - 实现 AddRenterToListingConversation: 付款后拉租客进群 - 实现 RemoveRenterFromListingConversation: 订单终态移出租客 - 实现消息可见性过滤: 租客只能看到 joined_at 之后的消息 - listing 模块注入 ListingChatCreator 接口,发布时建群 - ListingDTO 新增 listing_group_conversation_id 字段 - 付款流程改为拉租客进发布群(替代建订单群) - 订单完成和取消时自动移出租客 - 创建 chat 适配器实现接口解耦 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
25 lines
622 B
Go
25 lines
622 B
Go
package chat
|
|
|
|
import (
|
|
"gorm.io/gorm"
|
|
"hfb_sys/backend/internal/model"
|
|
)
|
|
|
|
// ListingChatCreatorAdapter 适配器,实现 listing.ListingChatCreator 接口
|
|
type ListingChatCreatorAdapter struct {
|
|
// 无需字段,直接调用包级函数
|
|
}
|
|
|
|
func NewListingChatCreatorAdapter() *ListingChatCreatorAdapter {
|
|
return &ListingChatCreatorAdapter{}
|
|
}
|
|
|
|
// EnsureListingConversation 实现接口
|
|
func (a *ListingChatCreatorAdapter) EnsureListingConversation(tx *gorm.DB, listing model.RentalListing) (uint64, error) {
|
|
conv, err := EnsureListingConversation(tx, listing)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return conv.ID, nil
|
|
}
|