draft
This commit is contained in:
43
backend/internal/repository/wechat.go
Normal file
43
backend/internal/repository/wechat.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package repository
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"gorm.io/gorm"
|
||||
"pay-bridge/internal/model"
|
||||
)
|
||||
|
||||
// WechatRepository 微信通知数据访问
|
||||
type WechatRepository struct {
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
func NewWechatRepository(db *gorm.DB) *WechatRepository {
|
||||
return &WechatRepository{db: db}
|
||||
}
|
||||
|
||||
// GetBinding 查询应用微信绑定配置
|
||||
func (r *WechatRepository) GetBinding(ctx context.Context, appID string) (*model.WechatBinding, error) {
|
||||
var b model.WechatBinding
|
||||
err := r.db.WithContext(ctx).Where("app_id = ? AND status = 1", appID).First(&b).Error
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return nil, nil
|
||||
}
|
||||
return &b, err
|
||||
}
|
||||
|
||||
// UpsertBinding 创建或更新绑定
|
||||
func (r *WechatRepository) UpsertBinding(ctx context.Context, b *model.WechatBinding) error {
|
||||
return r.db.WithContext(ctx).Save(b).Error
|
||||
}
|
||||
|
||||
// CreateMessageLog 记录消息发送日志
|
||||
func (r *WechatRepository) CreateMessageLog(ctx context.Context, log *model.WechatMessageLog) error {
|
||||
return r.db.WithContext(ctx).Create(log).Error
|
||||
}
|
||||
|
||||
// UpdateMessageLog 更新消息日志状态
|
||||
func (r *WechatRepository) UpdateMessageLog(ctx context.Context, id uint64, updates map[string]any) error {
|
||||
return r.db.WithContext(ctx).Model(&model.WechatMessageLog{}).Where("id = ?", id).Updates(updates).Error
|
||||
}
|
||||
Reference in New Issue
Block a user