From 8aa9a4ef1b4d16e049a5280a195f281e1e9d7e14 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Mon, 20 Mar 2023 23:43:22 +0800 Subject: [PATCH] optimize data service for web --- internal/core/core.go | 4 ++-- internal/dao/dao.go | 20 ++++++++++---------- internal/dao/jinzhu/jinzhu.go | 16 +++++++--------- internal/dao/sakila/sakila.go | 2 +- internal/dao/slonik/slonik.go | 2 +- internal/servants/base/base.go | 4 ++-- internal/servants/web/priv.go | 4 ++-- 7 files changed, 25 insertions(+), 27 deletions(-) diff --git a/internal/core/core.go b/internal/core/core.go index 888b404b..ab0ba620 100644 --- a/internal/core/core.go +++ b/internal/core/core.go @@ -36,8 +36,8 @@ type DataService interface { AttachmentCheckService } -// DataServantA 数据服务集成(版本A) -type DataServantA interface { +// WebDataServantA Web数据服务集成(版本A) +type WebDataServantA interface { // 话题服务 TopicServantA diff --git a/internal/dao/dao.go b/internal/dao/dao.go index 8238cdc6..1a47d7c6 100644 --- a/internal/dao/dao.go +++ b/internal/dao/dao.go @@ -18,10 +18,10 @@ import ( ) var ( - ts core.TweetSearchService - ds core.DataService - dsa core.DataServantA - oss core.ObjectStorageService + ts core.TweetSearchService + ds core.DataService + oss core.ObjectStorageService + webDsa core.WebDataServantA _onceInitial sync.Once ) @@ -31,9 +31,9 @@ func DataService() core.DataService { return ds } -func DataServantA() core.DataServantA { +func WebDataServantA() core.WebDataServantA { lazyInitial() - return dsa + return webDsa } func ObjectStorageService() core.ObjectStorageService { @@ -72,17 +72,17 @@ func initDsX() { var dsVer, dsaVer core.VersionInfo if cfg.If("Gorm") { ds, dsVer = jinzhu.NewDataService() - dsa, dsaVer = jinzhu.NewDataServantA() + webDsa, dsaVer = jinzhu.NewWebDataServantA() } else if cfg.If("Sqlx") { ds, dsVer = sakila.NewDataService() - dsa, dsaVer = sakila.NewDataServantA() + webDsa, dsaVer = sakila.NewWebDataServantA() } else if cfg.If("Sqlc") && (cfg.If("Postgres") || cfg.If("PostgreSQL")) { ds, dsVer = slonik.NewDataService() - dsa, dsaVer = slonik.NewDataServantA() + webDsa, dsaVer = slonik.NewWebDataServantA() } else { // default use gorm as orm for sql database ds, dsVer = jinzhu.NewDataService() - dsa, dsaVer = jinzhu.NewDataServantA() + webDsa, dsaVer = jinzhu.NewWebDataServantA() } logrus.Infof("use %s as core.DataService with version %s", dsVer.Name(), dsVer.Version()) logrus.Infof("use %s as core.ServantA with version %s", dsaVer.Name(), dsaVer.Version()) diff --git a/internal/dao/jinzhu/jinzhu.go b/internal/dao/jinzhu/jinzhu.go index d2267046..7fd9aea0 100644 --- a/internal/dao/jinzhu/jinzhu.go +++ b/internal/dao/jinzhu/jinzhu.go @@ -24,8 +24,8 @@ var ( _ core.DataService = (*dataSrv)(nil) _ core.VersionInfo = (*dataSrv)(nil) - _ core.DataServantA = (*dataSrvA)(nil) - _ core.VersionInfo = (*dataSrvA)(nil) + _ core.WebDataServantA = (*webDataSrvA)(nil) + _ core.VersionInfo = (*webDataSrvA)(nil) _onceInitial sync.Once ) @@ -46,7 +46,7 @@ type dataSrv struct { core.AttachmentCheckService } -type dataSrvA struct { +type webDataSrvA struct { core.TopicServantA core.TweetServantA core.TweetManageServantA @@ -109,12 +109,10 @@ func NewDataService() (core.DataService, core.VersionInfo) { return ds, ds } -func NewDataServantA() (core.DataServantA, core.VersionInfo) { +func NewWebDataServantA() (core.WebDataServantA, core.VersionInfo) { lazyInitial() - db := conf.MustGormDB() - - ds := &dataSrvA{ + ds := &webDataSrvA{ TopicServantA: newTopicServantA(db), TweetServantA: newTweetServantA(db), TweetManageServantA: newTweetManageServantA(db), @@ -135,11 +133,11 @@ func (s *dataSrv) Version() *semver.Version { return semver.MustParse("v0.2.0") } -func (s *dataSrvA) Name() string { +func (s *webDataSrvA) Name() string { return "Gorm" } -func (s *dataSrvA) Version() *semver.Version { +func (s *webDataSrvA) Version() *semver.Version { return semver.MustParse("v0.1.0") } diff --git a/internal/dao/sakila/sakila.go b/internal/dao/sakila/sakila.go index 6ca43bcf..0a605bf8 100644 --- a/internal/dao/sakila/sakila.go +++ b/internal/dao/sakila/sakila.go @@ -17,7 +17,7 @@ func NewDataService() (core.DataService, core.VersionInfo) { return nil, nil } -func NewDataServantA() (core.DataServantA, core.VersionInfo) { +func NewWebDataServantA() (core.WebDataServantA, core.VersionInfo) { logrus.Fatal("not support now") return nil, nil } diff --git a/internal/dao/slonik/slonik.go b/internal/dao/slonik/slonik.go index f217c6d1..705c5bbf 100644 --- a/internal/dao/slonik/slonik.go +++ b/internal/dao/slonik/slonik.go @@ -17,7 +17,7 @@ func NewDataService() (core.DataService, core.VersionInfo) { return nil, nil } -func NewDataServantA() (core.DataServantA, core.VersionInfo) { +func NewWebDataServantA() (core.WebDataServantA, core.VersionInfo) { logrus.Fatal("not support now") return nil, nil } diff --git a/internal/servants/base/base.go b/internal/servants/base/base.go index 5fe7afb7..8e10df5a 100644 --- a/internal/servants/base/base.go +++ b/internal/servants/base/base.go @@ -26,7 +26,7 @@ type BaseServant types.Empty type DaoServant struct { Redis *redis.Client - Dsa core.DataServantA + Dsa core.WebDataServantA Ds core.DataService Ts core.TweetSearchService } @@ -119,7 +119,7 @@ func RenderAny(c *gin.Context, data any, err mir.Error) { func NewDaoServant() *DaoServant { return &DaoServant{ Redis: conf.MustRedis(), - Dsa: dao.DataServantA(), + Dsa: dao.WebDataServantA(), Ds: dao.DataService(), Ts: dao.TweetSearchService(), } diff --git a/internal/servants/web/priv.go b/internal/servants/web/priv.go index f072cb21..baa94d35 100644 --- a/internal/servants/web/priv.go +++ b/internal/servants/web/priv.go @@ -170,9 +170,9 @@ func (s *privSrv) UploadAttachment(req *web.UploadAttachmentReq) (*web.UploadAtt attachment.ImgWidth, attachment.ImgHeight = getImageSize(src.Bounds()) } } - attachment.ID, err = s.Ds.CreateAttachment(attachment) + attachment.ID, err = s.Dsa.CreateAttachment(attachment) if err != nil { - logrus.Errorf("Ds.CreateAttachment err: %s", err) + logrus.Errorf("Dsa.CreateAttachment err: %s", err) return nil, _errFileUploadFailed }