package svc import ( "git.i2edu.net/i2/i2-bill-erp/internal/config" "git.i2edu.net/i2/i2-bill-erp/model" "github.com/xormplus/xorm" "git.i2edu.net/i2/go-zero/core/stores/sqlx" ) type ServiceContext struct { Config config.Config SqlConn sqlx.SqlConn ErpUtil *ErpUtil StudentModel model.StudentModel MktResourceModel model.MktResourceModel SysUserModel model.SysUserModel MktPartTimeUser model.MktPartTimeUserModel ExcelExportLog model.ExcelExportLogModel MktStudentMarketActivityModel model.MktStudentMarketActivityModel DB *xorm.Engine } func NewServiceContext(c config.Config) *ServiceContext { db, err := xorm.NewEngine("mysql", c.DataSource) if err != nil { panic(err) } db.RegisterSqlMap(xorm.Xml("sqlconfig", ".xml")) db.RegisterSqlTemplate(xorm.Pongo2("sqlconfig", ".stpl")) db.RegisterSqlTemplate(xorm.Jet("sqlconfig", ".jet")) db.RegisterSqlTemplate(xorm.Default("sqlconfig", ".tpl")) db.ShowSQL(true) sc := ServiceContext{ Config: c, SqlConn: sqlx.NewMysql(c.DataSource), ErpUtil: &ErpUtil{}, DB: db, } sc.StudentModel = model.NewStudentModel(sc.SqlConn, c.Cache) sc.SysUserModel = model.NewSysUserModel(sc.SqlConn, c.Cache) sc.MktPartTimeUser = model.NewMktPartTimeUserModel(sc.SqlConn, c.Cache) sc.ExcelExportLog = model.NewExcelExportLogModel(sc.SqlConn, c.Cache) sc.MktResourceModel = model.NewMktResourceModel(sc.SqlConn, c.Cache) sc.MktStudentMarketActivityModel = model.NewMktStudentMarketActivityModel(sc.SqlConn, c.Cache) sc.ErpUtil.SqlConn = sc.SqlConn sc.ErpUtil.Config = sc.Config return &sc }