servicecontext.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package svc
  2. import (
  3. "callback/internal/config"
  4. "callback/model"
  5. "callback/pkg/wxwork/wxapi"
  6. "callback/pkg/wxwork/wxbizjsonmsgcrypt"
  7. "github.com/zeromicro/go-zero/core/stores/redis"
  8. "github.com/zeromicro/go-zero/core/stores/sqlx"
  9. )
  10. type ServiceContext struct {
  11. Config config.Config
  12. Wxcpt *wxbizjsonmsgcrypt.WXBizMsgCrypt
  13. WxApi *wxapi.WxApi
  14. Redis *redis.Redis
  15. CbCustomerModel model.CbCustomerModel
  16. CbMsgModel model.CbMsgModel
  17. CbServicerModel model.CbServicerModel
  18. CbServiceModel model.CbServiceModel
  19. CbStaffModel model.CbStaffModel
  20. }
  21. func NewServiceContext(c config.Config) *ServiceContext {
  22. sqlConn := sqlx.NewMysql(c.Mysql.Datasource)
  23. newRedis, _ := redis.NewRedis(c.Redis)
  24. return &ServiceContext{
  25. Config: c,
  26. Wxcpt: wxbizjsonmsgcrypt.NewWXBizMsgCrypt(c.Wxwork.Token, c.Wxwork.EncodingAeskey, c.Wxwork.ReceiverId, wxbizjsonmsgcrypt.JsonType),
  27. WxApi: wxapi.NewWxApi(c.Wxwork.Corpid, c.Wxwork.Corpsecret),
  28. Redis: newRedis,
  29. CbCustomerModel: model.NewCbCustomerModel(sqlConn),
  30. CbMsgModel: model.NewCbMsgModel(sqlConn),
  31. CbServicerModel: model.NewCbServicerModel(sqlConn),
  32. CbServiceModel: model.NewCbServiceModel(sqlConn),
  33. CbStaffModel: model.NewCbStaffModel(sqlConn),
  34. }
  35. }