package project 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" ) // GetProject 查询单个项目 func GetProject(projectID string, ctx context.Context, dbFactory *database.DBFactory, reqCtx *ctx.RequestContext) *response.QueryResult[tables.ProjectDB] { logger.Debug("GetProject-开始查询项目") if projectID == "" { logger.ErrorC(reqCtx, "项目ID不能为空") return util.CreateErrorResult[tables.ProjectDB]("项目ID不能为空", reqCtx) } // 获取数据库连接 db := dbFactory.GetDB() // 查询项目 project, err := dao.GetProjectByProjectID(ctx, db, projectID) if err != nil { logger.ErrorC(reqCtx, fmt.Sprintf("查询项目失败: %v", err)) return util.CreateErrorResult[tables.ProjectDB](fmt.Sprintf("查询项目失败: %v", err), reqCtx) } logger.Debug(fmt.Sprintf("成功查询项目: %s", projectID)) return util.CreateSuccessResultData[tables.ProjectDB](*project, reqCtx) } // ListProjects 查询项目列表 func ListProjects(ctx context.Context, dbFactory *database.DBFactory, reqCtx *ctx.RequestContext) *response.QueryResult[[]tables.ProjectDB] { logger.Debug("ListProjects-开始查询项目列表") // 获取数据库连接 db := dbFactory.GetDB() // 查询项目列表 projects, err := dao.ListProjects(ctx, db) if err != nil { logger.ErrorC(reqCtx, fmt.Sprintf("查询项目列表失败: %v", err)) return util.CreateErrorResult[[]tables.ProjectDB](fmt.Sprintf("查询项目列表失败: %v", err), reqCtx) } result := util.CreateSuccessResultData[[]tables.ProjectDB](projects, reqCtx) result.Count = len(projects) result.TotalCount = len(projects) logger.Debug(fmt.Sprintf("成功查询项目列表, 共 %d 个项目", len(projects))) return result }