package admin import ( distributionapp "github.com/break/junhong_cmp_fiber/internal/application/distributionwithdrawal" "github.com/break/junhong_cmp_fiber/internal/model/dto" distributionquery "github.com/break/junhong_cmp_fiber/internal/query/distributionwithdrawal" "github.com/break/junhong_cmp_fiber/pkg/errors" "github.com/break/junhong_cmp_fiber/pkg/response" "github.com/go-playground/validator/v10" "github.com/gofiber/fiber/v2" "strconv" ) // AgentDistributionRegistrationHandler 提供代理注册申请后台查询与原审批恢复。 type AgentDistributionRegistrationHandler struct { service *distributionapp.RegistrationService query *distributionquery.Query validator *validator.Validate } // NewAgentDistributionRegistrationHandler 创建代理注册申请后台 Handler。 func NewAgentDistributionRegistrationHandler(service *distributionapp.RegistrationService, query *distributionquery.Query, validate *validator.Validate) *AgentDistributionRegistrationHandler { return &AgentDistributionRegistrationHandler{service: service, query: query, validator: validate} } // List 查询代理注册申请列表。 // GET /api/admin/agent-distribution-registrations func (h *AgentDistributionRegistrationHandler) List(c *fiber.Ctx) error { var req dto.AgentDistributionRegistrationListReq if err := c.QueryParser(&req); err != nil { return errors.New(errors.CodeInvalidParam, "请求参数解析失败") } if h.validator != nil { if err := h.validator.Struct(&req); err != nil { return errors.New(errors.CodeInvalidParam, "代理注册申请查询参数不合法") } } result, err := h.query.ListAgentDistributionRegistrations(c.UserContext(), &req) if err != nil { return err } return response.SuccessWithPagination(c, result.Items, result.Total, result.Page, result.Size) } // Get 查询代理注册申请详情。 // GET /api/admin/agent-distribution-registrations/:id func (h *AgentDistributionRegistrationHandler) Get(c *fiber.Ctx) error { id, err := strconv.ParseUint(c.Params("id"), 10, 64) if err != nil || id == 0 { return errors.New(errors.CodeInvalidParam, "无效的注册申请 ID") } result, err := h.query.AgentDistributionRegistrationDetail(c.UserContext(), uint(id)) if err != nil { return err } return response.Success(c, result) } // RecoverApproval 恢复代理注册原审批提交。 // POST /api/admin/agent-distribution-registrations/:id/recover-approval func (h *AgentDistributionRegistrationHandler) RecoverApproval(c *fiber.Ctx) error { id, err := strconv.ParseUint(c.Params("id"), 10, 64) if err != nil || id == 0 { return errors.New(errors.CodeInvalidParam, "无效的注册申请 ID") } if err := h.service.RecoverApproval(c.UserContext(), uint(id)); err != nil { return err } return response.Success(c, &dto.RecoverAgentDistributionRegistrationResp{ID: uint(id), Message: "已受理原审批恢复"}) }