service_context.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. MktResourceModel model.MktResourceModel
  14. SysUserModel model.SysUserModel
  15. MktPartTimeUser model.MktPartTimeUserModel
  16. ExcelExportLog model.ExcelExportLogModel
  17. MktStudentMarketActivityModel model.MktStudentMarketActivityModel
  18. DB *xorm.Engine
  19. }
  20. func NewServiceContext(c config.Config) *ServiceContext {
  21. db, err := xorm.NewEngine("mysql", c.DataSource)
  22. if err != nil {
  23. panic(err)
  24. }
  25. db.RegisterSqlMap(xorm.Xml("sqlconfig", ".xml"))
  26. db.RegisterSqlTemplate(xorm.Pongo2("sqlconfig", ".stpl"))
  27. db.RegisterSqlTemplate(xorm.Jet("sqlconfig", ".jet"))
  28. db.RegisterSqlTemplate(xorm.Default("sqlconfig", ".tpl"))
  29. db.ShowSQL(true)
  30. sc := ServiceContext{
  31. Config: c,
  32. SqlConn: sqlx.NewMysql(c.DataSource),
  33. ErpUtil: &ErpUtil{},
  34. DB: db,
  35. }
  36. sc.StudentModel = model.NewStudentModel(sc.SqlConn, c.Cache)
  37. sc.SysUserModel = model.NewSysUserModel(sc.SqlConn, c.Cache)
  38. sc.MktPartTimeUser = model.NewMktPartTimeUserModel(sc.SqlConn, c.Cache)
  39. sc.ExcelExportLog = model.NewExcelExportLogModel(sc.SqlConn, c.Cache)
  40. sc.MktResourceModel = model.NewMktResourceModel(sc.SqlConn, c.Cache)
  41. sc.MktStudentMarketActivityModel = model.NewMktStudentMarketActivityModel(sc.SqlConn, c.Cache)
  42. sc.ErpUtil.SqlConn = sc.SqlConn
  43. sc.ErpUtil.Config = sc.Config
  44. return &sc
  45. }