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