package admin import ( "github.com/gofiber/fiber/v2" "github.com/break/junhong_cmp_fiber/internal/handler/validation" "github.com/break/junhong_cmp_fiber/internal/model/dto" "github.com/break/junhong_cmp_fiber/pkg/errors" "github.com/break/junhong_cmp_fiber/pkg/response" ) // AdjustPackageTraffic 人工冲正套餐流量 // POST /api/admin/assets/:identifier/packages/:package_usage_id/traffic-adjustments func (h *AssetHandler) AdjustPackageTraffic(c *fiber.Ctx) error { if err := rejectEnterpriseAssetAdmin(c); err != nil { return err } asset, packageUsageID, err := h.resolveAssetPackageUsagePath(c) if err != nil { return err } var req dto.AdjustAssetPackageTrafficRequest if err := c.BodyParser(&req); err != nil { return errors.New(errors.CodeInvalidParam, "请求参数格式不正确") } req.PackageUsageID = packageUsageID if err := h.validator.Struct(&req); err != nil { return errors.New(errors.CodeInvalidParam, validation.Message("冲正参数不合法", &req, err)) } result, err := h.assetService.AdjustPackageTraffic(c.UserContext(), asset.AssetType, asset.AssetID, assetIdentifierForAudit(asset), &req) if err != nil { return err } return response.Success(c, result) } // ListPackageTrafficAdjustments 查询套餐冲正流水 // GET /api/admin/assets/:identifier/packages/:package_usage_id/traffic-adjustments func (h *AssetHandler) ListPackageTrafficAdjustments(c *fiber.Ctx) error { if err := rejectEnterpriseAssetAdmin(c); err != nil { return err } asset, packageUsageID, err := h.resolveAssetPackageUsagePath(c) if err != nil { return err } var req dto.PackageTrafficAdjustmentListRequest if err := c.QueryParser(&req); err != nil { return errors.New(errors.CodeInvalidParam, "请求参数格式不正确") } req.PackageUsageID = packageUsageID if err := h.validator.Struct(&req); err != nil { return errors.New(errors.CodeInvalidParam, validation.Message("冲正流水查询参数不合法", &req, err)) } result, err := h.assetService.ListPackageTrafficAdjustments(c.UserContext(), asset.AssetType, asset.AssetID, &req) if err != nil { return err } return response.Success(c, result) } // ListTrafficCollections 查询卡流量采集记录 // GET /api/admin/assets/:identifier/traffic-collections func (h *AssetHandler) ListTrafficCollections(c *fiber.Ctx) error { if err := rejectEnterpriseAssetAdmin(c); err != nil { return err } asset, err := h.resolveByIdentifier(c) if err != nil { return err } if asset.AssetType != "card" { return errors.New(errors.CodeInvalidParam, "采集记录只支持按卡查询") } var req dto.CardTrafficCollectionListRequest if err := c.QueryParser(&req); err != nil { return errors.New(errors.CodeInvalidParam, "请求参数格式不正确") } if err := h.validator.Struct(&req); err != nil { return errors.New(errors.CodeInvalidParam, validation.Message("采集记录查询参数不合法", &req, err)) } result, err := h.assetService.ListCardTrafficCollections(c.UserContext(), asset.AssetID, &req) if err != nil { return err } return response.Success(c, result) }