From d151cfcaba9f045a5b3bec5550fc33b9a583169f Mon Sep 17 00:00:00 2001 From: jiangyong Date: Wed, 5 Mar 2025 11:42:29 +0800 Subject: [PATCH] corp --- common/config/config.go | 1 + common/dao/corp_order_data.go | 42 +++++++++++++++++++++++++++++++++++ common/dao/dao.go | 4 ++++ common/global/db.go | 12 ++++++++++ common/model/corp_data.go | 8 +++++++ conf/server.conf.dev | 8 +++++++ conf/server.conf.prod | 8 +++++++ 7 files changed, 83 insertions(+) create mode 100644 common/dao/corp_order_data.go create mode 100644 common/model/corp_data.go diff --git a/common/config/config.go b/common/config/config.go index 016c341..47b641d 100644 --- a/common/config/config.go +++ b/common/config/config.go @@ -58,6 +58,7 @@ type Config struct { Server *Server `toml:"server"` Mysql *Mysql `toml:"mysql"` UnifyMysql *Mysql `toml:"unify_mysql"` + CorpMysql *Mysql `toml:"corp_mysql"` Redis *Redis `toml:"redis"` QyWeixin *QyWeixin `toml:"qyweixin"` WxPay *WxPay `toml:"wxpay"` diff --git a/common/dao/corp_order_data.go b/common/dao/corp_order_data.go new file mode 100644 index 0000000..990c3ad --- /dev/null +++ b/common/dao/corp_order_data.go @@ -0,0 +1,42 @@ +package dao + +import ( + "enterprise/common/model" + "gorm.io/gorm" +) + +type CorpOrderData struct { +} + +func NewCorpOrderData() *CorpOrderData { + return &CorpOrderData{} +} + +func (d *CorpOrderData) TableName() string { + return "cp_order" +} + +func (d *CorpOrderData) QueryOwnerData(owner, startDay, endDay string) (*model.CorpOrderData, error) { + tx := corpDB.Table(d.TableName()) + + var o model.CorpOrderData + + tx = tx.Where("data_type = ?", "account_report") + tx = tx.Where("owner = ?", owner) + if startDay != "" { + tx = tx.Where("day >= ?", startDay) + } + if endDay != "" { + tx = tx.Where("day <= ?", endDay) + } + + tx = tx.First(&o) + if tx.Error == gorm.ErrRecordNotFound { + return &o, nil + } + + if tx.Error != nil { + return nil, tx.Error + } + return &o, nil +} diff --git a/common/dao/dao.go b/common/dao/dao.go index b49ce75..d64be87 100644 --- a/common/dao/dao.go +++ b/common/dao/dao.go @@ -5,6 +5,7 @@ import "gorm.io/gorm" var ( db *gorm.DB unifyDB *gorm.DB + corpDB *gorm.DB ) func SetDB(d *gorm.DB) { @@ -14,6 +15,9 @@ func SetDB(d *gorm.DB) { func SetUnifyDB(d *gorm.DB) { unifyDB = d } +func SetCorpDB(d *gorm.DB) { + corpDB = d +} func GetDB() *gorm.DB { return db diff --git a/common/global/db.go b/common/global/db.go index e86e2b9..c5840c3 100644 --- a/common/global/db.go +++ b/common/global/db.go @@ -70,6 +70,7 @@ func initDB() error { db.Logger = &DBLogger{threshold: int64(2000)} dao.SetDB(db) + //unify unifyDsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s", cfg.UnifyMysql.User, cfg.UnifyMysql.Pass, cfg.UnifyMysql.Host, cfg.UnifyMysql.Port, cfg.UnifyMysql.Db) db, err = gorm.Open(mysql.Open(unifyDsn), &gorm.Config{}) @@ -79,6 +80,17 @@ func initDB() error { } db.Logger = &DBLogger{threshold: int64(2000)} dao.SetUnifyDB(db) + + //corpy + corpDsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s", cfg.CorpMysql.User, + cfg.CorpMysql.Pass, cfg.CorpMysql.Host, cfg.CorpMysql.Port, cfg.CorpMysql.Db) + db, err = gorm.Open(mysql.Open(corpDsn), &gorm.Config{}) + if err != nil { + log.Errorf("open dsn[%s] error[%s]", dsn, err) + return err + } + db.Logger = &DBLogger{threshold: int64(2000)} + dao.SetCorpDB(db) return nil } diff --git a/common/model/corp_data.go b/common/model/corp_data.go new file mode 100644 index 0000000..ff7bd4a --- /dev/null +++ b/common/model/corp_data.go @@ -0,0 +1,8 @@ +package model + +type CorpOrderData struct { + PayCount int64 + PayAmount int64 + RefundCount int64 + RefundAmount int64 +} diff --git a/conf/server.conf.dev b/conf/server.conf.dev index 0ce2532..7ba87cd 100644 --- a/conf/server.conf.dev +++ b/conf/server.conf.dev @@ -18,6 +18,14 @@ pass = "MDE2LCJIYXNoSWQiOjY" db = "unify" threshold = 5000 +[corp_mysql] +host = "10.0.2.157" +port = 13307 +user = "corp" +pass = "UvFwai9N_Nx2zgny" +db = "corp" +threshold = 10000 + [redis] addr="192.168.2.50:6379" db=0 diff --git a/conf/server.conf.prod b/conf/server.conf.prod index 52e61f4..17771d2 100644 --- a/conf/server.conf.prod +++ b/conf/server.conf.prod @@ -18,6 +18,14 @@ pass = "MDE2LCJIYXNoSWQiOjY" db = "unify" threshold = 5000 +[corp_mysql] +host = "10.0.2.157" +port = 3307 +user = "corp" +pass = "UvFwai9N_Nx2zgny" +db = "corp" +threshold = 10000 + [redis] addr="127.0.0.1:6379" db=0