From c4866a2f2ecb2639441e83fda57102bf9238ed79 Mon Sep 17 00:00:00 2001 From: injoyai <1113655791@qq.com> Date: Thu, 16 Oct 2025 10:47:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0Manage=E5=AF=B9mysql=E7=9A=84?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manage.go | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/manage.go b/manage.go index 19f974e..9ec8aef 100644 --- a/manage.go +++ b/manage.go @@ -1,6 +1,7 @@ package tdx import ( + "errors" "github.com/injoyai/ios/client" "github.com/robfig/cron/v3" "time" @@ -10,6 +11,57 @@ const ( DefaultDatabaseDir = "./data/database" ) +func NewManageMysql(cfg *ManageConfig, op ...client.Option) (*Manage, error) { + //初始化配置 + if cfg == nil { + cfg = &ManageConfig{} + } + if cfg.CodesFilename == "" { + return nil, errors.New("未配置Codes的数据库") + } + if cfg.WorkdayFileName == "" { + return nil, errors.New("未配置Workday的数据库") + } + if cfg.Dial == nil { + cfg.Dial = DialDefault + } + + //通用客户端 + commonClient, err := cfg.Dial(op...) + if err != nil { + return nil, err + } + commonClient.Wait.SetTimeout(time.Second * 5) + + //代码管理 + codes, err := NewCodesMysql(commonClient, cfg.CodesFilename) + if err != nil { + return nil, err + } + + //工作日管理 + workday, err := NewWorkdayMysql(commonClient, cfg.WorkdayFileName) + if err != nil { + return nil, err + } + + //连接池 + p, err := NewPool(func() (*Client, error) { + return cfg.Dial(op...) + }, cfg.Number) + if err != nil { + return nil, err + } + + return &Manage{ + Pool: p, + Config: cfg, + Codes: codes, + Workday: workday, + Cron: cron.New(cron.WithSeconds()), + }, nil +} + func NewManage(cfg *ManageConfig, op ...client.Option) (*Manage, error) { //初始化配置 if cfg == nil {