2025-01-10 00:09:25 +08:00
|
|
|
|
package svc
|
|
|
|
|
|
|
|
|
|
import (
|
2025-06-09 12:34:52 +08:00
|
|
|
|
"qnc-server/app/main/api/internal/config"
|
|
|
|
|
"qnc-server/app/main/api/internal/middleware"
|
|
|
|
|
"qnc-server/app/main/api/internal/service"
|
|
|
|
|
"qnc-server/app/main/model"
|
2025-05-24 14:26:20 +08:00
|
|
|
|
"qnc-server/pkg/core/aliyun/cloudauth"
|
2025-03-15 01:33:31 +08:00
|
|
|
|
|
2025-01-10 00:09:25 +08:00
|
|
|
|
"github.com/hibiken/asynq"
|
|
|
|
|
"github.com/zeromicro/go-zero/core/logx"
|
2025-06-09 12:34:52 +08:00
|
|
|
|
"github.com/zeromicro/go-zero/core/stores/cache"
|
2025-01-10 00:09:25 +08:00
|
|
|
|
"github.com/zeromicro/go-zero/core/stores/redis"
|
|
|
|
|
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
|
|
|
|
"github.com/zeromicro/go-zero/rest"
|
|
|
|
|
)
|
|
|
|
|
|
2025-06-09 12:34:52 +08:00
|
|
|
|
// ServiceContext 服务上下文
|
2025-01-10 00:09:25 +08:00
|
|
|
|
type ServiceContext struct {
|
2025-06-09 12:34:52 +08:00
|
|
|
|
Config config.Config
|
|
|
|
|
Redis *redis.Redis
|
|
|
|
|
|
|
|
|
|
// 中间件
|
2025-06-17 23:46:37 +08:00
|
|
|
|
AuthInterceptor rest.Middleware
|
|
|
|
|
UserAuthInterceptor rest.Middleware
|
2025-06-09 12:34:52 +08:00
|
|
|
|
// 用户相关模型
|
|
|
|
|
UserModel model.UserModel
|
|
|
|
|
UserAuthModel model.UserAuthModel
|
2025-06-17 23:46:37 +08:00
|
|
|
|
UserTempModel model.UserTempModel
|
2025-06-09 12:34:52 +08:00
|
|
|
|
|
|
|
|
|
// 产品相关模型
|
|
|
|
|
ProductModel model.ProductModel
|
|
|
|
|
FeatureModel model.FeatureModel
|
|
|
|
|
ProductFeatureModel model.ProductFeatureModel
|
|
|
|
|
|
|
|
|
|
// 订单相关模型
|
|
|
|
|
OrderModel model.OrderModel
|
|
|
|
|
OrderRefundModel model.OrderRefundModel
|
|
|
|
|
AuthorizationModel model.AuthorizationModel
|
|
|
|
|
AuthorizationFaceModel model.AuthorizationFaceModel
|
|
|
|
|
QueryModel model.QueryModel
|
|
|
|
|
QueryCleanupLogModel model.QueryCleanupLogModel
|
|
|
|
|
QueryCleanupDetailModel model.QueryCleanupDetailModel
|
|
|
|
|
QueryCleanupConfigModel model.QueryCleanupConfigModel
|
|
|
|
|
|
|
|
|
|
// 代理相关模型
|
2025-03-07 03:48:59 +08:00
|
|
|
|
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-06-24 15:46:41 +08:00
|
|
|
|
AgentWithdrawalTaxModel model.AgentWithdrawalTaxModel
|
|
|
|
|
AgentWithdrawalTaxExemptionModel model.AgentWithdrawalTaxExemptionModel
|
2025-05-24 14:26:20 +08:00
|
|
|
|
AgentRealNameModel model.AgentRealNameModel
|
2025-06-09 12:34:52 +08:00
|
|
|
|
|
|
|
|
|
// 管理后台相关模型
|
|
|
|
|
AdminApiModel model.AdminApiModel
|
|
|
|
|
AdminMenuModel model.AdminMenuModel
|
|
|
|
|
AdminRoleModel model.AdminRoleModel
|
|
|
|
|
AdminRoleApiModel model.AdminRoleApiModel
|
|
|
|
|
AdminRoleMenuModel model.AdminRoleMenuModel
|
|
|
|
|
AdminUserModel model.AdminUserModel
|
|
|
|
|
AdminUserRoleModel model.AdminUserRoleModel
|
|
|
|
|
AdminDictDataModel model.AdminDictDataModel
|
|
|
|
|
AdminDictTypeModel model.AdminDictTypeModel
|
|
|
|
|
AdminPromotionLinkModel model.AdminPromotionLinkModel
|
|
|
|
|
AdminPromotionLinkStatsTotalModel model.AdminPromotionLinkStatsTotalModel
|
|
|
|
|
AdminPromotionLinkStatsHistoryModel model.AdminPromotionLinkStatsHistoryModel
|
|
|
|
|
AdminPromotionOrderModel model.AdminPromotionOrderModel
|
|
|
|
|
|
|
|
|
|
// 其他模型
|
|
|
|
|
ExampleModel model.ExampleModel
|
|
|
|
|
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
|
|
|
|
|
UserService *service.UserService
|
|
|
|
|
DictService *service.DictService
|
|
|
|
|
AdminPromotionLinkStatsService *service.AdminPromotionLinkStatsService
|
2025-06-17 23:46:37 +08:00
|
|
|
|
ImageService *service.ImageService
|
2025-05-24 14:26:20 +08:00
|
|
|
|
|
|
|
|
|
// core service
|
|
|
|
|
CloudAuthService *cloudauth.CloudAuthClient
|
2025-01-10 00:09:25 +08:00
|
|
|
|
}
|
|
|
|
|
|
2025-06-09 12:34:52 +08:00
|
|
|
|
// 用户相关模型初始化
|
|
|
|
|
type userModels struct {
|
|
|
|
|
UserModel model.UserModel
|
|
|
|
|
UserAuthModel model.UserAuthModel
|
2025-06-17 23:46:37 +08:00
|
|
|
|
UserTempModel model.UserTempModel
|
2025-06-09 12:34:52 +08:00
|
|
|
|
}
|
2025-03-07 03:48:59 +08:00
|
|
|
|
|
2025-06-09 12:34:52 +08:00
|
|
|
|
func initUserModels(db sqlx.SqlConn, redis cache.CacheConf) userModels {
|
|
|
|
|
return userModels{
|
|
|
|
|
UserModel: model.NewUserModel(db, redis),
|
|
|
|
|
UserAuthModel: model.NewUserAuthModel(db, redis),
|
2025-06-17 23:46:37 +08:00
|
|
|
|
UserTempModel: model.NewUserTempModel(db, redis),
|
2025-06-09 12:34:52 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 产品相关模型初始化
|
|
|
|
|
type productModels struct {
|
|
|
|
|
ProductModel model.ProductModel
|
|
|
|
|
FeatureModel model.FeatureModel
|
|
|
|
|
ProductFeatureModel model.ProductFeatureModel
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func initProductModels(db sqlx.SqlConn, redis cache.CacheConf) productModels {
|
|
|
|
|
return productModels{
|
|
|
|
|
ProductModel: model.NewProductModel(db, redis),
|
|
|
|
|
FeatureModel: model.NewFeatureModel(db, redis),
|
|
|
|
|
ProductFeatureModel: model.NewProductFeatureModel(db, redis),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 订单相关模型初始化
|
|
|
|
|
type orderModels struct {
|
|
|
|
|
OrderModel model.OrderModel
|
|
|
|
|
OrderRefundModel model.OrderRefundModel
|
|
|
|
|
AuthorizationModel model.AuthorizationModel
|
|
|
|
|
AuthorizationFaceModel model.AuthorizationFaceModel
|
|
|
|
|
QueryModel model.QueryModel
|
|
|
|
|
QueryCleanupLogModel model.QueryCleanupLogModel
|
|
|
|
|
QueryCleanupDetailModel model.QueryCleanupDetailModel
|
|
|
|
|
QueryCleanupConfigModel model.QueryCleanupConfigModel
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func initOrderModels(db sqlx.SqlConn, redis cache.CacheConf) orderModels {
|
|
|
|
|
return orderModels{
|
|
|
|
|
OrderModel: model.NewOrderModel(db, redis),
|
|
|
|
|
OrderRefundModel: model.NewOrderRefundModel(db, redis),
|
|
|
|
|
AuthorizationModel: model.NewAuthorizationModel(db, redis),
|
|
|
|
|
AuthorizationFaceModel: model.NewAuthorizationFaceModel(db, redis),
|
|
|
|
|
QueryModel: model.NewQueryModel(db, redis),
|
|
|
|
|
QueryCleanupLogModel: model.NewQueryCleanupLogModel(db, redis),
|
|
|
|
|
QueryCleanupDetailModel: model.NewQueryCleanupDetailModel(db, redis),
|
|
|
|
|
QueryCleanupConfigModel: model.NewQueryCleanupConfigModel(db, redis),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 代理相关模型初始化
|
|
|
|
|
type agentModels struct {
|
|
|
|
|
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-06-24 15:46:41 +08:00
|
|
|
|
AgentWithdrawalTaxModel model.AgentWithdrawalTaxModel
|
|
|
|
|
AgentWithdrawalTaxExemptionModel model.AgentWithdrawalTaxExemptionModel
|
2025-06-09 12:34:52 +08:00
|
|
|
|
AgentRealNameModel model.AgentRealNameModel
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func initAgentModels(db sqlx.SqlConn, redis cache.CacheConf) agentModels {
|
|
|
|
|
return agentModels{
|
|
|
|
|
AgentModel: model.NewAgentModel(db, redis),
|
|
|
|
|
AgentAuditModel: model.NewAgentAuditModel(db, redis),
|
|
|
|
|
AgentClosureModel: model.NewAgentClosureModel(db, redis),
|
|
|
|
|
AgentCommissionModel: model.NewAgentCommissionModel(db, redis),
|
|
|
|
|
AgentCommissionDeductionModel: model.NewAgentCommissionDeductionModel(db, redis),
|
|
|
|
|
AgentWalletModel: model.NewAgentWalletModel(db, redis),
|
|
|
|
|
AgentLinkModel: model.NewAgentLinkModel(db, redis),
|
|
|
|
|
AgentOrderModel: model.NewAgentOrderModel(db, redis),
|
|
|
|
|
AgentRewardsModel: model.NewAgentRewardsModel(db, redis),
|
|
|
|
|
AgentMembershipConfigModel: model.NewAgentMembershipConfigModel(db, redis),
|
|
|
|
|
AgentMembershipRechargeOrderModel: model.NewAgentMembershipRechargeOrderModel(db, redis),
|
|
|
|
|
AgentMembershipUserConfigModel: model.NewAgentMembershipUserConfigModel(db, redis),
|
|
|
|
|
AgentProductConfigModel: model.NewAgentProductConfigModel(db, redis),
|
|
|
|
|
AgentPlatformDeductionModel: model.NewAgentPlatformDeductionModel(db, redis),
|
|
|
|
|
AgentActiveStatModel: model.NewAgentActiveStatModel(db, redis),
|
|
|
|
|
AgentWithdrawalModel: model.NewAgentWithdrawalModel(db, redis),
|
2025-06-24 15:46:41 +08:00
|
|
|
|
AgentWithdrawalTaxModel: model.NewAgentWithdrawalTaxModel(db, redis),
|
|
|
|
|
AgentWithdrawalTaxExemptionModel: model.NewAgentWithdrawalTaxExemptionModel(db, redis),
|
2025-06-09 12:34:52 +08:00
|
|
|
|
AgentRealNameModel: model.NewAgentRealNameModel(db, redis),
|
2025-01-10 00:09:25 +08:00
|
|
|
|
}
|
2025-06-09 12:34:52 +08:00
|
|
|
|
}
|
2025-03-07 03:48:59 +08:00
|
|
|
|
|
2025-06-09 12:34:52 +08:00
|
|
|
|
// 管理后台相关模型初始化
|
|
|
|
|
type adminModels struct {
|
|
|
|
|
AdminApiModel model.AdminApiModel
|
|
|
|
|
AdminMenuModel model.AdminMenuModel
|
|
|
|
|
AdminRoleModel model.AdminRoleModel
|
|
|
|
|
AdminRoleApiModel model.AdminRoleApiModel
|
|
|
|
|
AdminRoleMenuModel model.AdminRoleMenuModel
|
|
|
|
|
AdminUserModel model.AdminUserModel
|
|
|
|
|
AdminUserRoleModel model.AdminUserRoleModel
|
|
|
|
|
AdminDictDataModel model.AdminDictDataModel
|
|
|
|
|
AdminDictTypeModel model.AdminDictTypeModel
|
|
|
|
|
AdminPromotionLinkModel model.AdminPromotionLinkModel
|
|
|
|
|
AdminPromotionLinkStatsTotalModel model.AdminPromotionLinkStatsTotalModel
|
|
|
|
|
AdminPromotionLinkStatsHistoryModel model.AdminPromotionLinkStatsHistoryModel
|
|
|
|
|
AdminPromotionOrderModel model.AdminPromotionOrderModel
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func initAdminModels(db sqlx.SqlConn, redis cache.CacheConf) adminModels {
|
|
|
|
|
return adminModels{
|
|
|
|
|
AdminApiModel: model.NewAdminApiModel(db, redis),
|
|
|
|
|
AdminMenuModel: model.NewAdminMenuModel(db, redis),
|
|
|
|
|
AdminRoleModel: model.NewAdminRoleModel(db, redis),
|
|
|
|
|
AdminRoleApiModel: model.NewAdminRoleApiModel(db, redis),
|
|
|
|
|
AdminRoleMenuModel: model.NewAdminRoleMenuModel(db, redis),
|
|
|
|
|
AdminUserModel: model.NewAdminUserModel(db, redis),
|
|
|
|
|
AdminUserRoleModel: model.NewAdminUserRoleModel(db, redis),
|
|
|
|
|
AdminDictDataModel: model.NewAdminDictDataModel(db, redis),
|
|
|
|
|
AdminDictTypeModel: model.NewAdminDictTypeModel(db, redis),
|
|
|
|
|
AdminPromotionLinkModel: model.NewAdminPromotionLinkModel(db, redis),
|
|
|
|
|
AdminPromotionLinkStatsTotalModel: model.NewAdminPromotionLinkStatsTotalModel(db, redis),
|
|
|
|
|
AdminPromotionLinkStatsHistoryModel: model.NewAdminPromotionLinkStatsHistoryModel(db, redis),
|
|
|
|
|
AdminPromotionOrderModel: model.NewAdminPromotionOrderModel(db, redis),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 其他模型初始化
|
|
|
|
|
type otherModels struct {
|
|
|
|
|
ExampleModel model.ExampleModel
|
|
|
|
|
GlobalNotificationsModel model.GlobalNotificationsModel
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func initOtherModels(db sqlx.SqlConn, redis cache.CacheConf) otherModels {
|
|
|
|
|
return otherModels{
|
|
|
|
|
ExampleModel: model.NewExampleModel(db, redis),
|
|
|
|
|
GlobalNotificationsModel: model.NewGlobalNotificationsModel(db, redis),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 服务初始化
|
|
|
|
|
type services struct {
|
|
|
|
|
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
|
|
|
|
|
UserService *service.UserService
|
|
|
|
|
DictService *service.DictService
|
|
|
|
|
AdminPromotionLinkStatsService *service.AdminPromotionLinkStatsService
|
2025-06-17 23:46:37 +08:00
|
|
|
|
ImageService *service.ImageService
|
|
|
|
|
CloudAuthService *cloudauth.CloudAuthClient
|
2025-06-09 12:34:52 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func initServices(c config.Config, userAuthModel model.UserAuthModel, westDexService *service.WestDexService,
|
|
|
|
|
yushanService *service.YushanService, featureModel model.FeatureModel,
|
|
|
|
|
productFeatureModel model.ProductFeatureModel, agentModels agentModels,
|
2025-06-17 23:46:37 +08:00
|
|
|
|
userModels userModels, adminModels adminModels, userTempModel model.UserTempModel) services {
|
2025-06-09 12:34:52 +08:00
|
|
|
|
|
|
|
|
|
alipayService := service.NewAliPayService(c)
|
|
|
|
|
wechatPayService := service.NewWechatPayService(c, userAuthModel, service.InitTypeWxPayPubKey)
|
|
|
|
|
applePayService := service.NewApplePayService(c)
|
|
|
|
|
apiRequestService := service.NewApiRequestService(c, westDexService, yushanService, featureModel, productFeatureModel)
|
|
|
|
|
verificationService := service.NewVerificationService(c, westDexService, apiRequestService)
|
|
|
|
|
asynqService := service.NewAsynqService(c)
|
|
|
|
|
agentService := service.NewAgentService(c, agentModels.AgentModel, agentModels.AgentAuditModel,
|
|
|
|
|
agentModels.AgentClosureModel, agentModels.AgentCommissionModel,
|
|
|
|
|
agentModels.AgentCommissionDeductionModel, agentModels.AgentWalletModel,
|
|
|
|
|
agentModels.AgentLinkModel, agentModels.AgentOrderModel, agentModels.AgentRewardsModel,
|
|
|
|
|
agentModels.AgentMembershipConfigModel, agentModels.AgentMembershipRechargeOrderModel,
|
|
|
|
|
agentModels.AgentMembershipUserConfigModel, agentModels.AgentProductConfigModel,
|
|
|
|
|
agentModels.AgentPlatformDeductionModel, agentModels.AgentActiveStatModel,
|
|
|
|
|
asynqService, agentModels.AgentWithdrawalModel)
|
2025-06-17 23:46:37 +08:00
|
|
|
|
userService := service.NewUserService(&c, userModels.UserModel, userModels.UserAuthModel, userTempModel, agentModels.AgentModel)
|
2025-06-09 12:34:52 +08:00
|
|
|
|
dictService := service.NewDictService(adminModels.AdminDictTypeModel, adminModels.AdminDictDataModel)
|
|
|
|
|
AdminPromotionLinkStatsService := service.NewAdminPromotionLinkStatsService(adminModels.AdminPromotionLinkModel, adminModels.AdminPromotionLinkStatsTotalModel, adminModels.AdminPromotionLinkStatsHistoryModel)
|
2025-06-17 23:46:37 +08:00
|
|
|
|
imageService := service.NewImageService()
|
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-06-09 12:34:52 +08:00
|
|
|
|
|
2025-05-24 14:26:20 +08:00
|
|
|
|
cloudAuthService, err := cloudauth.NewCloudAuthClient(cloudauth.CloudAuthConfig{
|
|
|
|
|
AccessKeyId: c.CloudAuth.AccessKeyId,
|
|
|
|
|
AccessKeySecret: c.CloudAuth.AccessKeySecret,
|
|
|
|
|
Endpoint: c.CloudAuth.Endpoint,
|
|
|
|
|
SceneId: c.CloudAuth.SceneId,
|
|
|
|
|
ReturnUrl: c.CloudAuth.ReturnUrl,
|
|
|
|
|
})
|
|
|
|
|
if err != nil {
|
|
|
|
|
logx.Errorf("初始化阿里云人脸认证服务失败: %+v", err)
|
|
|
|
|
panic(err)
|
|
|
|
|
}
|
2025-06-09 12:34:52 +08:00
|
|
|
|
|
|
|
|
|
return services{
|
|
|
|
|
AlipayService: alipayService,
|
|
|
|
|
WechatPayService: wechatPayService,
|
|
|
|
|
ApplePayService: applePayService,
|
|
|
|
|
WestDexService: westDexService,
|
|
|
|
|
YushanService: yushanService,
|
|
|
|
|
ApiRequestService: apiRequestService,
|
|
|
|
|
AsynqServer: asynqServer,
|
|
|
|
|
AsynqService: asynqService,
|
|
|
|
|
VerificationService: verificationService,
|
|
|
|
|
AgentService: agentService,
|
|
|
|
|
UserService: userService,
|
|
|
|
|
DictService: dictService,
|
|
|
|
|
AdminPromotionLinkStatsService: AdminPromotionLinkStatsService,
|
2025-06-17 23:46:37 +08:00
|
|
|
|
ImageService: imageService,
|
2025-06-09 12:34:52 +08:00
|
|
|
|
// core service
|
|
|
|
|
CloudAuthService: cloudAuthService,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// NewServiceContext 创建服务上下文
|
|
|
|
|
func NewServiceContext(c config.Config) *ServiceContext {
|
|
|
|
|
db := sqlx.NewMysql(c.DataSource)
|
|
|
|
|
|
|
|
|
|
// 使用配置中的CacheRedis配置
|
|
|
|
|
cacheConf := c.CacheRedis
|
|
|
|
|
|
|
|
|
|
// 初始化Redis客户端(用于异步任务等)
|
|
|
|
|
redisConf := redis.RedisConf{
|
|
|
|
|
Host: cacheConf[0].Host,
|
|
|
|
|
Pass: cacheConf[0].Pass,
|
|
|
|
|
Type: cacheConf[0].Type,
|
|
|
|
|
}
|
|
|
|
|
redisClient := redis.MustNewRedis(redisConf)
|
|
|
|
|
|
|
|
|
|
// 初始化各个模块的模型
|
|
|
|
|
userModels := initUserModels(db, cacheConf)
|
|
|
|
|
productModels := initProductModels(db, cacheConf)
|
|
|
|
|
orderModels := initOrderModels(db, cacheConf)
|
|
|
|
|
agentModels := initAgentModels(db, cacheConf)
|
|
|
|
|
adminModels := initAdminModels(db, cacheConf)
|
|
|
|
|
otherModels := initOtherModels(db, cacheConf)
|
|
|
|
|
|
|
|
|
|
// 初始化第三方服务
|
2025-01-10 00:09:25 +08:00
|
|
|
|
westDexService := service.NewWestDexService(c)
|
|
|
|
|
yushanService := service.NewYushanService(c)
|
2025-03-07 03:48:59 +08:00
|
|
|
|
|
2025-06-09 12:34:52 +08:00
|
|
|
|
// 初始化所有服务
|
|
|
|
|
services := initServices(c, userModels.UserAuthModel, westDexService, yushanService,
|
2025-06-17 23:46:37 +08:00
|
|
|
|
productModels.FeatureModel, productModels.ProductFeatureModel, agentModels, userModels, adminModels, userModels.UserTempModel)
|
2025-05-24 14:26:20 +08:00
|
|
|
|
|
2025-01-10 00:09:25 +08:00
|
|
|
|
return &ServiceContext{
|
2025-06-17 23:46:37 +08:00
|
|
|
|
Config: c,
|
|
|
|
|
Redis: redisClient,
|
|
|
|
|
AuthInterceptor: middleware.NewAuthInterceptorMiddleware(c).Handle,
|
|
|
|
|
UserAuthInterceptor: middleware.NewUserAuthInterceptorMiddleware().Handle,
|
2025-06-09 12:34:52 +08:00
|
|
|
|
// 用户相关模型
|
|
|
|
|
UserModel: userModels.UserModel,
|
|
|
|
|
UserAuthModel: userModels.UserAuthModel,
|
2025-06-17 23:46:37 +08:00
|
|
|
|
UserTempModel: userModels.UserTempModel,
|
2025-06-09 12:34:52 +08:00
|
|
|
|
// 产品相关模型
|
|
|
|
|
ProductModel: productModels.ProductModel,
|
|
|
|
|
FeatureModel: productModels.FeatureModel,
|
|
|
|
|
ProductFeatureModel: productModels.ProductFeatureModel,
|
|
|
|
|
|
|
|
|
|
// 订单相关模型
|
|
|
|
|
OrderModel: orderModels.OrderModel,
|
|
|
|
|
QueryModel: orderModels.QueryModel,
|
2025-06-09 14:10:40 +08:00
|
|
|
|
AuthorizationModel: orderModels.AuthorizationModel,
|
|
|
|
|
AuthorizationFaceModel: orderModels.AuthorizationFaceModel,
|
2025-06-09 12:34:52 +08:00
|
|
|
|
OrderRefundModel: orderModels.OrderRefundModel,
|
|
|
|
|
QueryCleanupLogModel: orderModels.QueryCleanupLogModel,
|
|
|
|
|
QueryCleanupDetailModel: orderModels.QueryCleanupDetailModel,
|
|
|
|
|
QueryCleanupConfigModel: orderModels.QueryCleanupConfigModel,
|
|
|
|
|
// 代理相关模型
|
|
|
|
|
AgentModel: agentModels.AgentModel,
|
|
|
|
|
AgentAuditModel: agentModels.AgentAuditModel,
|
|
|
|
|
AgentClosureModel: agentModels.AgentClosureModel,
|
|
|
|
|
AgentCommissionModel: agentModels.AgentCommissionModel,
|
|
|
|
|
AgentCommissionDeductionModel: agentModels.AgentCommissionDeductionModel,
|
|
|
|
|
AgentWalletModel: agentModels.AgentWalletModel,
|
|
|
|
|
AgentLinkModel: agentModels.AgentLinkModel,
|
|
|
|
|
AgentOrderModel: agentModels.AgentOrderModel,
|
|
|
|
|
AgentRewardsModel: agentModels.AgentRewardsModel,
|
|
|
|
|
AgentMembershipConfigModel: agentModels.AgentMembershipConfigModel,
|
|
|
|
|
AgentMembershipRechargeOrderModel: agentModels.AgentMembershipRechargeOrderModel,
|
|
|
|
|
AgentMembershipUserConfigModel: agentModels.AgentMembershipUserConfigModel,
|
|
|
|
|
AgentProductConfigModel: agentModels.AgentProductConfigModel,
|
|
|
|
|
AgentPlatformDeductionModel: agentModels.AgentPlatformDeductionModel,
|
|
|
|
|
AgentActiveStatModel: agentModels.AgentActiveStatModel,
|
|
|
|
|
AgentWithdrawalModel: agentModels.AgentWithdrawalModel,
|
2025-06-24 15:46:41 +08:00
|
|
|
|
AgentWithdrawalTaxModel: agentModels.AgentWithdrawalTaxModel,
|
|
|
|
|
AgentWithdrawalTaxExemptionModel: agentModels.AgentWithdrawalTaxExemptionModel,
|
2025-06-09 12:34:52 +08:00
|
|
|
|
AgentRealNameModel: agentModels.AgentRealNameModel,
|
|
|
|
|
|
|
|
|
|
// 管理后台相关模型
|
|
|
|
|
AdminApiModel: adminModels.AdminApiModel,
|
|
|
|
|
AdminMenuModel: adminModels.AdminMenuModel,
|
|
|
|
|
AdminRoleModel: adminModels.AdminRoleModel,
|
|
|
|
|
AdminRoleApiModel: adminModels.AdminRoleApiModel,
|
|
|
|
|
AdminRoleMenuModel: adminModels.AdminRoleMenuModel,
|
|
|
|
|
AdminUserModel: adminModels.AdminUserModel,
|
|
|
|
|
AdminUserRoleModel: adminModels.AdminUserRoleModel,
|
|
|
|
|
AdminDictDataModel: adminModels.AdminDictDataModel,
|
|
|
|
|
AdminDictTypeModel: adminModels.AdminDictTypeModel,
|
|
|
|
|
AdminPromotionLinkModel: adminModels.AdminPromotionLinkModel,
|
|
|
|
|
AdminPromotionLinkStatsTotalModel: adminModels.AdminPromotionLinkStatsTotalModel,
|
|
|
|
|
AdminPromotionLinkStatsHistoryModel: adminModels.AdminPromotionLinkStatsHistoryModel,
|
|
|
|
|
AdminPromotionOrderModel: adminModels.AdminPromotionOrderModel,
|
|
|
|
|
|
|
|
|
|
// 其他模型
|
|
|
|
|
ExampleModel: otherModels.ExampleModel,
|
|
|
|
|
GlobalNotificationsModel: otherModels.GlobalNotificationsModel,
|
|
|
|
|
|
|
|
|
|
// 服务
|
|
|
|
|
AlipayService: services.AlipayService,
|
|
|
|
|
WechatPayService: services.WechatPayService,
|
|
|
|
|
ApplePayService: services.ApplePayService,
|
|
|
|
|
WestDexService: services.WestDexService,
|
|
|
|
|
YushanService: services.YushanService,
|
|
|
|
|
ApiRequestService: services.ApiRequestService,
|
|
|
|
|
AsynqServer: services.AsynqServer,
|
|
|
|
|
AsynqService: services.AsynqService,
|
|
|
|
|
VerificationService: services.VerificationService,
|
|
|
|
|
AgentService: services.AgentService,
|
|
|
|
|
UserService: services.UserService,
|
|
|
|
|
DictService: services.DictService,
|
|
|
|
|
AdminPromotionLinkStatsService: services.AdminPromotionLinkStatsService,
|
2025-06-17 23:46:37 +08:00
|
|
|
|
ImageService: services.ImageService,
|
2025-06-09 12:34:52 +08:00
|
|
|
|
|
|
|
|
|
// core service
|
|
|
|
|
CloudAuthService: services.CloudAuthService,
|
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()
|
|
|
|
|
}
|
|
|
|
|
}
|