All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 4m42s
新增物联网卡独立管理模块,支持单卡查询、批量导入和状态管理。主要变更包括: 功能特性: - 新增物联网卡 CRUD 接口(查询、分页列表、删除) - 支持 CSV/Excel 批量导入物联网卡 - 实现异步导入任务处理和进度跟踪 - 新增 ICCID 号码格式校验器(支持 Luhn 算法) - 新增 CSV 文件解析工具(支持编码检测和错误处理) 数据库变更: - 移除 iot_card 和 device 表的 owner_id/owner_type 字段 - 新增 iot_card_import_task 导入任务表 - 为导入任务添加运营商类型字段 测试覆盖: - 新增 IoT 卡 Store 层单元测试 - 新增 IoT 卡导入任务单元测试 - 新增 IoT 卡集成测试(包含导入流程测试) - 新增 CSV 工具和 ICCID 校验器测试 文档更新: - 更新 OpenAPI 文档(新增 7 个 IoT 卡接口) - 归档 OpenSpec 变更提案 - 更新 API 文档规范和生成器指南 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
61 lines
4.0 KiB
Go
61 lines
4.0 KiB
Go
package bootstrap
|
|
|
|
import (
|
|
accountSvc "github.com/break/junhong_cmp_fiber/internal/service/account"
|
|
authSvc "github.com/break/junhong_cmp_fiber/internal/service/auth"
|
|
commissionWithdrawalSvc "github.com/break/junhong_cmp_fiber/internal/service/commission_withdrawal"
|
|
commissionWithdrawalSettingSvc "github.com/break/junhong_cmp_fiber/internal/service/commission_withdrawal_setting"
|
|
customerAccountSvc "github.com/break/junhong_cmp_fiber/internal/service/customer_account"
|
|
enterpriseSvc "github.com/break/junhong_cmp_fiber/internal/service/enterprise"
|
|
enterpriseCardSvc "github.com/break/junhong_cmp_fiber/internal/service/enterprise_card"
|
|
iotCardSvc "github.com/break/junhong_cmp_fiber/internal/service/iot_card"
|
|
iotCardImportSvc "github.com/break/junhong_cmp_fiber/internal/service/iot_card_import"
|
|
myCommissionSvc "github.com/break/junhong_cmp_fiber/internal/service/my_commission"
|
|
permissionSvc "github.com/break/junhong_cmp_fiber/internal/service/permission"
|
|
personalCustomerSvc "github.com/break/junhong_cmp_fiber/internal/service/personal_customer"
|
|
roleSvc "github.com/break/junhong_cmp_fiber/internal/service/role"
|
|
shopSvc "github.com/break/junhong_cmp_fiber/internal/service/shop"
|
|
shopAccountSvc "github.com/break/junhong_cmp_fiber/internal/service/shop_account"
|
|
shopCommissionSvc "github.com/break/junhong_cmp_fiber/internal/service/shop_commission"
|
|
)
|
|
|
|
type services struct {
|
|
Account *accountSvc.Service
|
|
Role *roleSvc.Service
|
|
Permission *permissionSvc.Service
|
|
PersonalCustomer *personalCustomerSvc.Service
|
|
Shop *shopSvc.Service
|
|
ShopAccount *shopAccountSvc.Service
|
|
Auth *authSvc.Service
|
|
ShopCommission *shopCommissionSvc.Service
|
|
CommissionWithdrawal *commissionWithdrawalSvc.Service
|
|
CommissionWithdrawalSetting *commissionWithdrawalSettingSvc.Service
|
|
Enterprise *enterpriseSvc.Service
|
|
EnterpriseCard *enterpriseCardSvc.Service
|
|
CustomerAccount *customerAccountSvc.Service
|
|
MyCommission *myCommissionSvc.Service
|
|
IotCard *iotCardSvc.Service
|
|
IotCardImport *iotCardImportSvc.Service
|
|
}
|
|
|
|
func initServices(s *stores, deps *Dependencies) *services {
|
|
return &services{
|
|
Account: accountSvc.New(s.Account, s.Role, s.AccountRole),
|
|
Role: roleSvc.New(s.Role, s.Permission, s.RolePermission),
|
|
Permission: permissionSvc.New(s.Permission, s.AccountRole, s.RolePermission, deps.Redis),
|
|
PersonalCustomer: personalCustomerSvc.NewService(s.PersonalCustomer, s.PersonalCustomerPhone, deps.VerificationService, deps.JWTManager, deps.Logger),
|
|
Shop: shopSvc.New(s.Shop, s.Account),
|
|
ShopAccount: shopAccountSvc.New(s.Account, s.Shop),
|
|
Auth: authSvc.New(s.Account, s.AccountRole, s.RolePermission, s.Permission, deps.TokenManager, deps.Logger),
|
|
ShopCommission: shopCommissionSvc.New(s.Shop, s.Account, s.Wallet, s.CommissionWithdrawalRequest, s.CommissionRecord),
|
|
CommissionWithdrawal: commissionWithdrawalSvc.New(deps.DB, s.Shop, s.Account, s.Wallet, s.WalletTransaction, s.CommissionWithdrawalRequest),
|
|
CommissionWithdrawalSetting: commissionWithdrawalSettingSvc.New(deps.DB, s.Account, s.CommissionWithdrawalSetting),
|
|
Enterprise: enterpriseSvc.New(deps.DB, s.Enterprise, s.Shop, s.Account),
|
|
EnterpriseCard: enterpriseCardSvc.New(deps.DB, s.Enterprise, s.EnterpriseCardAuthorization),
|
|
CustomerAccount: customerAccountSvc.New(deps.DB, s.Account, s.Shop, s.Enterprise),
|
|
MyCommission: myCommissionSvc.New(deps.DB, s.Shop, s.Wallet, s.CommissionWithdrawalRequest, s.CommissionWithdrawalSetting, s.CommissionRecord, s.WalletTransaction),
|
|
IotCard: iotCardSvc.New(deps.DB, s.IotCard),
|
|
IotCardImport: iotCardImportSvc.New(deps.DB, s.IotCardImportTask, deps.QueueClient),
|
|
}
|
|
}
|