service_context.go 1.4 KB

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