service_context.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package svc
  2. import (
  3. "git.i2edu.net/i2/i2-bill-erp/internal/config"
  4. "git.i2edu.net/i2/i2-bill-erp/model"
  5. "github.com/xormplus/xorm"
  6. "git.i2edu.net/i2/go-zero/core/stores/sqlx"
  7. )
  8. type ServiceContext struct {
  9. Config config.Config
  10. SqlConn sqlx.SqlConn
  11. ErpUtil *ErpUtil
  12. StudentModel model.StudentModel
  13. SysUserModel model.SysUserModel
  14. MktPartTimeUser model.MktPartTimeUserModel
  15. ExcelExportLog model.ExcelExportLogModel
  16. DB *xorm.Engine
  17. }
  18. func NewServiceContext(c config.Config) *ServiceContext {
  19. db, err := xorm.NewEngine("mysql", c.DataSource)
  20. if err != nil {
  21. panic(err)
  22. }
  23. db.RegisterSqlMap(xorm.Xml("sqlconfig", ".xml"))
  24. db.RegisterSqlTemplate(xorm.Pongo2("sqlconfig", ".stpl"))
  25. db.RegisterSqlTemplate(xorm.Jet("sqlconfig", ".jet"))
  26. db.RegisterSqlTemplate(xorm.Default("sqlconfig", ".tpl"))
  27. db.ShowSQL(true)
  28. sc := ServiceContext{
  29. Config: c,
  30. SqlConn: sqlx.NewMysql(c.DataSource),
  31. ErpUtil: &ErpUtil{},
  32. DB: db,
  33. }
  34. sc.StudentModel = model.NewStudentModel(sc.SqlConn, c.Cache)
  35. sc.SysUserModel = model.NewSysUserModel(sc.SqlConn, c.Cache)
  36. sc.MktPartTimeUser = model.NewMktPartTimeUserModel(sc.SqlConn, c.Cache)
  37. sc.ExcelExportLog = model.NewExcelExportLogModel(sc.SqlConn, c.Cache)
  38. sc.ErpUtil.SqlConn = sc.SqlConn
  39. sc.ErpUtil.Config = sc.Config
  40. return &sc
  41. }