Files
assets/consts/public/sync_platform.go
2026-03-18 10:18:03 +08:00

146 lines
5.0 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package public
import "fmt"
// SyncPlatform 同步渠道平台枚举
type SyncPlatform string
const (
SyncPlatformTaobao SyncPlatform = "taobao" // 淘宝
SyncPlatformJD SyncPlatform = "jd" // 京东
SyncPlatformKuaishou SyncPlatform = "kuaishou" // 快手
SyncPlatformDouyin SyncPlatform = "douyin" // 抖音
SyncPlatformXiaohongshu SyncPlatform = "xiaohongshu" // 小红书
SyncPlatformPinduoduo SyncPlatform = "pinduoduo" // 拼多多
SyncPlatformXianyu SyncPlatform = "xianyu" // 闲鱼
SyncPlatformBlockchain SyncPlatform = "blockchain" // 区块链平台
SyncPlatformInternal SyncPlatform = "internal" // 内部平台
)
// SyncStatus 同步状态枚举
type SyncStatus string
const (
SyncStatusPending SyncStatus = "pending" // 等待同步
SyncStatusSyncing SyncStatus = "syncing" // 同步中
SyncStatusSuccess SyncStatus = "success" // 同步成功
SyncStatusFailed SyncStatus = "failed" // 同步失败
)
// SyncType 同步类型
type SyncType string
const (
SyncTypeIncremental SyncType = "incremental" // 增量同步
)
// PlatformSyncConfig 平台同步配置结构
type PlatformSyncConfig struct {
Platform SyncPlatform // 平台名称
IsEnabled bool // 是否启用
SyncInterval int // 同步间隔(秒)
BatchSize int // 批量同步数量
MaxRetries int // 最大重试次数
APIEndpoint string // API端点地址
Description string // 平台描述
}
// GetPlatformSyncConfig 获取平台默认同步配置
func GetPlatformSyncConfig(platform SyncPlatform) (PlatformSyncConfig, error) {
switch platform {
case SyncPlatformTaobao:
return PlatformSyncConfig{
Platform: SyncPlatformTaobao,
IsEnabled: true,
SyncInterval: 300, // 5分钟
BatchSize: 50, // 淘宝API限制较严
MaxRetries: 3,
APIEndpoint: "https://eco.taobao.com/router/rest",
Description: "淘宝电商平台API限制严格",
}, nil
case SyncPlatformJD:
return PlatformSyncConfig{
Platform: SyncPlatformJD,
IsEnabled: true,
SyncInterval: 240, // 4分钟
BatchSize: 100, // 京东API支持较大批次
MaxRetries: 3,
APIEndpoint: "https://api.jd.com/routerjson",
Description: "京东电商平台API相对稳定",
}, nil
case SyncPlatformKuaishou:
return PlatformSyncConfig{
Platform: SyncPlatformKuaishou,
IsEnabled: true,
SyncInterval: 180, // 3分钟直播数据更新快
BatchSize: 80,
MaxRetries: 2, // 快手API相对不稳定
APIEndpoint: "https://open.kuaishou.com/api",
Description: "快手直播平台,数据更新频繁",
}, nil
case SyncPlatformDouyin:
return PlatformSyncConfig{
Platform: SyncPlatformDouyin,
IsEnabled: true,
SyncInterval: 120, // 2分钟内容更新非常频繁
BatchSize: 60,
MaxRetries: 3,
APIEndpoint: "https://open.douyin.com/api",
Description: "抖音短视频平台,实时性要求高",
}, nil
case SyncPlatformXiaohongshu:
return PlatformSyncConfig{
Platform: SyncPlatformXiaohongshu,
IsEnabled: true,
SyncInterval: 300, // 5分钟
BatchSize: 40, // 小红书API限制严格
MaxRetries: 2,
APIEndpoint: "https://open.xiaohongshu.com/api",
Description: "小红书内容平台API调用频率限制严格",
}, nil
case SyncPlatformPinduoduo:
return PlatformSyncConfig{
Platform: SyncPlatformPinduoduo,
IsEnabled: true,
SyncInterval: 360, // 6分钟避免频率限制
BatchSize: 120, // 拼多多支持大批次
MaxRetries: 3,
APIEndpoint: "https://open.pinduoduo.com/api",
Description: "拼多多电商平台,需要控制调用频率",
}, nil
case SyncPlatformXianyu:
return PlatformSyncConfig{
Platform: SyncPlatformXianyu,
IsEnabled: false, // 默认关闭
SyncInterval: 600, // 10分钟闲鱼更新较慢
BatchSize: 30,
MaxRetries: 1,
APIEndpoint: "https://api.xianyu.com/api",
Description: "闲鱼二手平台,数据更新较慢,谨慎使用",
}, nil
case SyncPlatformBlockchain:
return PlatformSyncConfig{
Platform: SyncPlatformBlockchain,
IsEnabled: true,
SyncInterval: 60, // 1分钟需要高实时性
BatchSize: 20, // 区块链数据复杂,减小批次
MaxRetries: 5, // 区块链网络可能不稳定
APIEndpoint: "https://api.blockchain.com/api",
Description: "区块链平台,数据需要高实时性和稳定性",
}, nil
case SyncPlatformInternal:
return PlatformSyncConfig{
Platform: SyncPlatformInternal,
IsEnabled: true,
SyncInterval: 30, // 30秒内部系统实时性高
BatchSize: 200, // 内部系统支持大批次
MaxRetries: 1, // 内部系统稳定
APIEndpoint: "http://localhost:3004/api",
Description: "内部系统平台,高实时性和大批次处理能力",
}, nil
default:
// 返回错误,未知平台
return PlatformSyncConfig{}, fmt.Errorf("unsupported sync platform: %s", platform)
}
}