2025-01-10 00:09:25 +08:00
|
|
|
package svc
|
|
|
|
|
|
|
|
import (
|
2025-03-15 01:33:31 +08:00
|
|
|
"tydata-server/app/user/cmd/api/internal/config"
|
|
|
|
"tydata-server/app/user/cmd/api/internal/middleware"
|
|
|
|
"tydata-server/app/user/cmd/api/internal/service"
|
|
|
|
"tydata-server/app/user/model"
|
|
|
|
|
2025-01-10 00:09:25 +08:00
|
|
|
"github.com/hibiken/asynq"
|
|
|
|
"github.com/zeromicro/go-zero/core/logx"
|
|
|
|
"github.com/zeromicro/go-zero/core/stores/redis"
|
|
|
|
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
|
|
|
"github.com/zeromicro/go-zero/rest"
|
|
|
|
)
|
|
|
|
|
|
|
|
type ServiceContext struct {
|
2025-03-07 03:48:59 +08:00
|
|
|
Config config.Config
|
|
|
|
Redis *redis.Redis
|
|
|
|
SourceInterceptor rest.Middleware
|
2025-05-11 20:45:48 +08:00
|
|
|
AuthInterceptor rest.Middleware
|
2025-03-07 03:48:59 +08:00
|
|
|
UserModel model.UserModel
|
|
|
|
UserAuthModel model.UserAuthModel
|
|
|
|
ProductModel model.ProductModel
|
|
|
|
FeatureModel model.FeatureModel
|
|
|
|
ProductFeatureModel model.ProductFeatureModel
|
|
|
|
OrderModel model.OrderModel
|
|
|
|
QueryModel model.QueryModel
|
|
|
|
AgentModel model.AgentModel
|
|
|
|
AgentAuditModel model.AgentAuditModel
|
|
|
|
AgentClosureModel model.AgentClosureModel
|
|
|
|
AgentCommissionModel model.AgentCommissionModel
|
|
|
|
AgentCommissionDeductionModel model.AgentCommissionDeductionModel
|
|
|
|
AgentWalletModel model.AgentWalletModel
|
|
|
|
AgentLinkModel model.AgentLinkModel
|
|
|
|
AgentOrderModel model.AgentOrderModel
|
|
|
|
AgentRewardsModel model.AgentRewardsModel
|
|
|
|
AgentMembershipConfigModel model.AgentMembershipConfigModel
|
|
|
|
AgentMembershipRechargeOrderModel model.AgentMembershipRechargeOrderModel
|
|
|
|
AgentMembershipUserConfigModel model.AgentMembershipUserConfigModel
|
|
|
|
AgentProductConfigModel model.AgentProductConfigModel
|
|
|
|
AgentPlatformDeductionModel model.AgentPlatformDeductionModel
|
|
|
|
AgentActiveStatModel model.AgentActiveStatModel
|
|
|
|
AgentWithdrawalModel model.AgentWithdrawalModel
|
2025-04-23 02:03:31 +08:00
|
|
|
ExampleModel model.ExampleModel
|
2025-03-07 03:48:59 +08:00
|
|
|
GlobalNotificationsModel model.GlobalNotificationsModel
|
|
|
|
AlipayService *service.AliPayService
|
|
|
|
WechatPayService *service.WechatPayService
|
|
|
|
ApplePayService *service.ApplePayService
|
|
|
|
WestDexService *service.WestDexService
|
|
|
|
YushanService *service.YushanService
|
|
|
|
ApiRequestService *service.ApiRequestService
|
|
|
|
AsynqServer *asynq.Server // 服务端
|
|
|
|
AsynqService *service.AsynqService // 客户端
|
|
|
|
VerificationService *service.VerificationService
|
|
|
|
AgentService *service.AgentService
|
2025-05-11 20:45:48 +08:00
|
|
|
UserService *service.UserService
|
2025-01-10 00:09:25 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
func NewServiceContext(c config.Config) *ServiceContext {
|
|
|
|
db := sqlx.NewMysql(c.DataSource)
|
2025-03-07 03:48:59 +08:00
|
|
|
|
2025-01-10 00:09:25 +08:00
|
|
|
redisConf := redis.RedisConf{
|
|
|
|
Host: c.CacheRedis[0].Host,
|
|
|
|
Pass: c.CacheRedis[0].Pass,
|
|
|
|
Type: c.CacheRedis[0].Type,
|
|
|
|
}
|
2025-03-07 03:48:59 +08:00
|
|
|
|
2025-01-10 00:09:25 +08:00
|
|
|
asynqServer := asynq.NewServer(
|
|
|
|
asynq.RedisClientOpt{Addr: c.CacheRedis[0].Host, Password: c.CacheRedis[0].Pass},
|
|
|
|
asynq.Config{
|
|
|
|
IsFailure: func(err error) bool {
|
|
|
|
logx.Errorf("异步任务失败: %+v \n", err)
|
|
|
|
return true
|
|
|
|
},
|
|
|
|
Concurrency: 10,
|
|
|
|
},
|
|
|
|
)
|
2025-03-07 03:48:59 +08:00
|
|
|
|
2025-01-10 00:09:25 +08:00
|
|
|
westDexService := service.NewWestDexService(c)
|
|
|
|
yushanService := service.NewYushanService(c)
|
|
|
|
productFeatureModel := model.NewProductFeatureModel(db, c.CacheRedis)
|
|
|
|
featureModel := model.NewFeatureModel(db, c.CacheRedis)
|
2025-01-21 20:00:18 +08:00
|
|
|
userAuthModel := model.NewUserAuthModel(db, c.CacheRedis)
|
2025-03-07 03:48:59 +08:00
|
|
|
|
|
|
|
userModel := model.NewUserModel(db, c.CacheRedis)
|
|
|
|
productModel := model.NewProductModel(db, c.CacheRedis)
|
|
|
|
orderModel := model.NewOrderModel(db, c.CacheRedis)
|
|
|
|
queryModel := model.NewQueryModel(db, c.CacheRedis)
|
|
|
|
globalNotificationsModel := model.NewGlobalNotificationsModel(db, c.CacheRedis)
|
|
|
|
|
|
|
|
agentModel := model.NewAgentModel(db, c.CacheRedis)
|
|
|
|
agentAuditModel := model.NewAgentAuditModel(db, c.CacheRedis)
|
|
|
|
agentCommissionModel := model.NewAgentCommissionModel(db, c.CacheRedis)
|
|
|
|
agentCommissionDeductionModel := model.NewAgentCommissionDeductionModel(db, c.CacheRedis)
|
|
|
|
agentWalletModel := model.NewAgentWalletModel(db, c.CacheRedis)
|
|
|
|
agentClosureModel := model.NewAgentClosureModel(db, c.CacheRedis)
|
|
|
|
agentLinkModel := model.NewAgentLinkModel(db, c.CacheRedis)
|
|
|
|
agentOrderModel := model.NewAgentOrderModel(db, c.CacheRedis)
|
|
|
|
agentRewardsModel := model.NewAgentRewardsModel(db, c.CacheRedis)
|
|
|
|
agentMembershipConfigModel := model.NewAgentMembershipConfigModel(db, c.CacheRedis)
|
|
|
|
agentMembershipRechargeOrderModel := model.NewAgentMembershipRechargeOrderModel(db, c.CacheRedis)
|
|
|
|
agentMembershipUserConfigModel := model.NewAgentMembershipUserConfigModel(db, c.CacheRedis)
|
|
|
|
agentProductConfigModel := model.NewAgentProductConfigModel(db, c.CacheRedis)
|
|
|
|
agentPlatformDeductionModel := model.NewAgentPlatformDeductionModel(db, c.CacheRedis)
|
|
|
|
agentActiveStatModel := model.NewAgentActiveStatModel(db, c.CacheRedis)
|
|
|
|
agentWithdrawalModel := model.NewAgentWithdrawalModel(db, c.CacheRedis)
|
2025-04-23 02:03:31 +08:00
|
|
|
exampleModel := model.NewExampleModel(db, c.CacheRedis)
|
2025-05-11 01:22:25 +08:00
|
|
|
|
2025-03-07 03:48:59 +08:00
|
|
|
alipayService := service.NewAliPayService(c)
|
2025-05-11 01:22:25 +08:00
|
|
|
wechatPayService := service.NewWechatPayService(c, userAuthModel, service.InitTypeWxPayPubKey)
|
2025-03-07 03:48:59 +08:00
|
|
|
applePayService := service.NewApplePayService(c)
|
|
|
|
apiRequestService := service.NewApiRequestService(c, westDexService, yushanService, featureModel, productFeatureModel)
|
2025-03-12 22:35:46 +08:00
|
|
|
verificationService := service.NewVerificationService(c, westDexService, apiRequestService)
|
2025-03-07 03:48:59 +08:00
|
|
|
asynqService := service.NewAsynqService(c)
|
|
|
|
agentService := service.NewAgentService(c, agentModel, agentAuditModel, agentClosureModel, agentCommissionModel,
|
|
|
|
agentCommissionDeductionModel, agentWalletModel, agentLinkModel, agentOrderModel, agentRewardsModel,
|
|
|
|
agentMembershipConfigModel, agentMembershipRechargeOrderModel, agentMembershipUserConfigModel,
|
|
|
|
agentProductConfigModel, agentPlatformDeductionModel, agentActiveStatModel, agentWithdrawalModel)
|
2025-05-11 20:45:48 +08:00
|
|
|
userService := service.NewUserService(userModel, userAuthModel)
|
2025-01-10 00:09:25 +08:00
|
|
|
return &ServiceContext{
|
2025-03-07 03:48:59 +08:00
|
|
|
Config: c,
|
|
|
|
Redis: redis.MustNewRedis(redisConf),
|
|
|
|
SourceInterceptor: middleware.NewSourceInterceptorMiddleware().Handle,
|
2025-05-11 20:45:48 +08:00
|
|
|
AuthInterceptor: middleware.NewAuthInterceptorMiddleware(c).Handle,
|
2025-03-07 03:48:59 +08:00
|
|
|
AlipayService: alipayService,
|
|
|
|
WechatPayService: wechatPayService,
|
|
|
|
ApplePayService: applePayService,
|
|
|
|
WestDexService: westDexService,
|
|
|
|
YushanService: yushanService,
|
|
|
|
VerificationService: verificationService,
|
|
|
|
AsynqServer: asynqServer,
|
|
|
|
ApiRequestService: apiRequestService,
|
|
|
|
AsynqService: asynqService,
|
|
|
|
AgentService: agentService,
|
|
|
|
UserModel: userModel,
|
|
|
|
UserAuthModel: userAuthModel,
|
|
|
|
ProductModel: productModel,
|
|
|
|
OrderModel: orderModel,
|
|
|
|
QueryModel: queryModel,
|
|
|
|
GlobalNotificationsModel: globalNotificationsModel,
|
|
|
|
FeatureModel: featureModel,
|
|
|
|
ProductFeatureModel: productFeatureModel,
|
|
|
|
AgentModel: agentModel,
|
|
|
|
AgentAuditModel: agentAuditModel,
|
|
|
|
AgentCommissionModel: agentCommissionModel,
|
|
|
|
AgentCommissionDeductionModel: agentCommissionDeductionModel,
|
|
|
|
AgentWalletModel: agentWalletModel,
|
|
|
|
AgentClosureModel: agentClosureModel,
|
|
|
|
AgentLinkModel: agentLinkModel,
|
|
|
|
AgentOrderModel: agentOrderModel,
|
|
|
|
AgentRewardsModel: agentRewardsModel,
|
|
|
|
AgentMembershipConfigModel: agentMembershipConfigModel,
|
|
|
|
AgentMembershipRechargeOrderModel: agentMembershipRechargeOrderModel,
|
|
|
|
AgentMembershipUserConfigModel: agentMembershipUserConfigModel,
|
|
|
|
AgentProductConfigModel: agentProductConfigModel,
|
|
|
|
AgentPlatformDeductionModel: agentPlatformDeductionModel,
|
|
|
|
AgentActiveStatModel: agentActiveStatModel,
|
|
|
|
AgentWithdrawalModel: agentWithdrawalModel,
|
2025-04-23 02:03:31 +08:00
|
|
|
ExampleModel: exampleModel,
|
2025-05-11 20:45:48 +08:00
|
|
|
UserService: userService,
|
2025-01-10 00:09:25 +08:00
|
|
|
}
|
|
|
|
}
|
2025-03-07 03:48:59 +08:00
|
|
|
|
2025-01-10 00:09:25 +08:00
|
|
|
func (s *ServiceContext) Close() {
|
|
|
|
if s.AsynqService != nil {
|
|
|
|
s.AsynqService.Close()
|
|
|
|
}
|
|
|
|
}
|