package tenant import ( "context" "fmt" "git.x2erp.com/qdy/go-base/ctx" "git.x2erp.com/qdy/go-base/logger" "git.x2erp.com/qdy/go-base/model/response" "git.x2erp.com/qdy/go-base/util" "git.x2erp.com/qdy/go-db/factory/database" "git.x2erp.com/qdy/go-svc-configure/internal/service/dao" "git.x2erp.com/qdy/go-svc-configure/internal/tables" ) // GetTenant 查询单个租户 func GetTenant(tenantID string, ctx context.Context, dbFactory *database.DBFactory, reqCtx *ctx.RequestContext) *response.QueryResult[tables.TenantDB] { logger.Debug("GetTenant-开始查询租户") if tenantID == "" { logger.ErrorC(reqCtx, "租户ID不能为空") return util.CreateErrorResult[tables.TenantDB]("租户ID不能为空", reqCtx) } // 获取数据库连接 db := dbFactory.GetDB() // 查询租户 tenant, err := dao.GetTenantByTenantID(ctx, db, tenantID) if err != nil { logger.ErrorC(reqCtx, fmt.Sprintf("查询租户失败: %v", err)) return util.CreateErrorResult[tables.TenantDB](fmt.Sprintf("查询租户失败: %v", err), reqCtx) } logger.Debug(fmt.Sprintf("成功查询租户: %s", tenantID)) return util.CreateSuccessResultData[tables.TenantDB](*tenant, reqCtx) } // ListTenants 查询租户列表 func ListTenants(ctx context.Context, dbFactory *database.DBFactory, reqCtx *ctx.RequestContext) *response.QueryResult[[]tables.TenantDB] { logger.Debug("ListTenants-开始查询租户列表") // 获取数据库连接 db := dbFactory.GetDB() // 查询租户列表 tenants, err := dao.ListTenants(ctx, db) if err != nil { logger.ErrorC(reqCtx, fmt.Sprintf("查询租户列表失败: %v", err)) return util.CreateErrorResult[[]tables.TenantDB](fmt.Sprintf("查询租户列表失败: %v", err), reqCtx) } result := util.CreateSuccessResultData[[]tables.TenantDB](tenants, reqCtx) result.Count = len(tenants) result.TotalCount = len(tenants) logger.Debug(fmt.Sprintf("成功查询租户列表, 共 %d 个租户", len(tenants))) return result }