Files
bd-server/app/main/model/agentConfigModel.go
2026-05-08 11:30:05 +08:00

58 lines
1.6 KiB
Go

package model
import (
"context"
"strconv"
"github.com/zeromicro/go-zero/core/stores/cache"
"github.com/zeromicro/go-zero/core/stores/sqlx"
)
var _ AgentConfigModel = (*customAgentConfigModel)(nil)
type (
// AgentConfigModel is an interface to be customized, add more methods here,
// and implement the added methods in customAgentConfigModel.
AgentConfigModel interface {
agentConfigModel
IsCommissionSafeMode(ctx context.Context) bool
SetCommissionSafeMode(ctx context.Context, enabled bool) error
}
customAgentConfigModel struct {
*defaultAgentConfigModel
}
)
// 配置键常量
const (
AgentConfigKeyCommissionSafeMode = "commission_safe_mode"
)
// NewAgentConfigModel returns a model for the database table.
func NewAgentConfigModel(conn sqlx.SqlConn, c cache.CacheConf) AgentConfigModel {
return &customAgentConfigModel{
defaultAgentConfigModel: newAgentConfigModel(conn, c),
}
}
// IsCommissionSafeMode 从数据库查询佣金安全防御模式是否开启
func (m *customAgentConfigModel) IsCommissionSafeMode(ctx context.Context) bool {
config, err := m.FindOneByConfigKey(ctx, AgentConfigKeyCommissionSafeMode)
if err != nil {
return false
}
enabled, _ := strconv.ParseBool(config.ConfigValue)
return enabled
}
// SetCommissionSafeMode 更新佣金安全防御模式开关
func (m *customAgentConfigModel) SetCommissionSafeMode(ctx context.Context, enabled bool) error {
config, err := m.FindOneByConfigKey(ctx, AgentConfigKeyCommissionSafeMode)
if err != nil {
return err
}
config.ConfigValue = strconv.FormatBool(enabled)
return m.UpdateWithVersion(ctx, nil, config)
}