feat: add coupon risk review
This commit is contained in:
@@ -45,6 +45,22 @@ func (c *coupons) ListGrants(ctx fiber.Ctx, filter *dto.SuperCouponGrantListFilt
|
||||
return services.Super.ListCouponGrants(ctx, filter)
|
||||
}
|
||||
|
||||
// List coupon risks
|
||||
//
|
||||
// @Router /super/v1/coupon-risks [get]
|
||||
// @Summary List coupon risks
|
||||
// @Description List coupon risk records across tenants
|
||||
// @Tags Coupon
|
||||
// @Accept json
|
||||
// @Produce json
|
||||
// @Param page query int false "Page number"
|
||||
// @Param limit query int false "Page size"
|
||||
// @Success 200 {object} requests.Pager{items=[]dto.SuperCouponRiskItem}
|
||||
// @Bind filter query
|
||||
func (c *coupons) ListRisks(ctx fiber.Ctx, filter *dto.SuperCouponRiskListFilter) (*requests.Pager, error) {
|
||||
return services.Super.ListCouponRisks(ctx, filter)
|
||||
}
|
||||
|
||||
// Update coupon status
|
||||
//
|
||||
// @Router /super/v1/coupons/:id<int>/status [patch]
|
||||
|
||||
@@ -142,3 +142,82 @@ type SuperCouponGrantItem struct {
|
||||
// CreatedAt 领取时间(RFC3339)。
|
||||
CreatedAt string `json:"created_at"`
|
||||
}
|
||||
|
||||
// SuperCouponRiskListFilter 超管优惠券异常核查过滤条件。
|
||||
type SuperCouponRiskListFilter struct {
|
||||
requests.Pagination
|
||||
// RiskType 异常类型过滤(used_without_order/order_status_mismatch/used_outside_window/unused_has_order_or_used_at/duplicate_grant)。
|
||||
RiskType *string `query:"risk_type"`
|
||||
// CouponID 优惠券ID过滤(精确匹配)。
|
||||
CouponID *int64 `query:"coupon_id"`
|
||||
// TenantID 租户ID过滤(精确匹配)。
|
||||
TenantID *int64 `query:"tenant_id"`
|
||||
// TenantCode 租户编码过滤(模糊匹配)。
|
||||
TenantCode *string `query:"tenant_code"`
|
||||
// TenantName 租户名称过滤(模糊匹配)。
|
||||
TenantName *string `query:"tenant_name"`
|
||||
// Keyword 优惠券标题/描述关键词(模糊匹配)。
|
||||
Keyword *string `query:"keyword"`
|
||||
// UserID 用户ID过滤(精确匹配)。
|
||||
UserID *int64 `query:"user_id"`
|
||||
// Username 用户名过滤(模糊匹配)。
|
||||
Username *string `query:"username"`
|
||||
// Status 用户券状态过滤(unused/used/expired)。
|
||||
Status *consts.UserCouponStatus `query:"status"`
|
||||
// OrderStatus 订单状态过滤。
|
||||
OrderStatus *consts.OrderStatus `query:"order_status"`
|
||||
// CreatedAtFrom 领取时间起始(RFC3339)。
|
||||
CreatedAtFrom *string `query:"created_at_from"`
|
||||
// CreatedAtTo 领取时间结束(RFC3339)。
|
||||
CreatedAtTo *string `query:"created_at_to"`
|
||||
// UsedAtFrom 使用时间起始(RFC3339)。
|
||||
UsedAtFrom *string `query:"used_at_from"`
|
||||
// UsedAtTo 使用时间结束(RFC3339)。
|
||||
UsedAtTo *string `query:"used_at_to"`
|
||||
// Asc 升序字段(id/created_at/used_at)。
|
||||
Asc *string `query:"asc"`
|
||||
// Desc 降序字段(id/created_at/used_at)。
|
||||
Desc *string `query:"desc"`
|
||||
}
|
||||
|
||||
// SuperCouponRiskItem 超管优惠券异常核查记录。
|
||||
type SuperCouponRiskItem struct {
|
||||
// ID 用户券ID。
|
||||
ID int64 `json:"id"`
|
||||
// RiskType 异常类型。
|
||||
RiskType string `json:"risk_type"`
|
||||
// RiskReason 异常说明。
|
||||
RiskReason string `json:"risk_reason"`
|
||||
// CouponID 优惠券ID。
|
||||
CouponID int64 `json:"coupon_id"`
|
||||
// CouponTitle 优惠券标题。
|
||||
CouponTitle string `json:"coupon_title"`
|
||||
// TenantID 租户ID。
|
||||
TenantID int64 `json:"tenant_id"`
|
||||
// TenantCode 租户编码。
|
||||
TenantCode string `json:"tenant_code"`
|
||||
// TenantName 租户名称。
|
||||
TenantName string `json:"tenant_name"`
|
||||
// UserID 用户ID。
|
||||
UserID int64 `json:"user_id"`
|
||||
// Username 用户名。
|
||||
Username string `json:"username"`
|
||||
// Status 用户券状态。
|
||||
Status consts.UserCouponStatus `json:"status"`
|
||||
// StatusDescription 状态描述(用于展示)。
|
||||
StatusDescription string `json:"status_description"`
|
||||
// OrderID 使用订单ID。
|
||||
OrderID int64 `json:"order_id"`
|
||||
// OrderStatus 订单状态。
|
||||
OrderStatus consts.OrderStatus `json:"order_status"`
|
||||
// OrderStatusDescription 订单状态描述(用于展示)。
|
||||
OrderStatusDescription string `json:"order_status_description"`
|
||||
// OrderAmountPaid 订单实付金额(分)。
|
||||
OrderAmountPaid int64 `json:"order_amount_paid"`
|
||||
// PaidAt 订单支付时间(RFC3339)。
|
||||
PaidAt string `json:"paid_at"`
|
||||
// UsedAt 使用时间(RFC3339)。
|
||||
UsedAt string `json:"used_at"`
|
||||
// CreatedAt 领取时间(RFC3339)。
|
||||
CreatedAt string `json:"created_at"`
|
||||
}
|
||||
|
||||
@@ -114,6 +114,11 @@ func (r *Routes) Register(router fiber.Router) {
|
||||
r.coupons.ListGrants,
|
||||
Query[dto.SuperCouponGrantListFilter]("filter"),
|
||||
))
|
||||
r.log.Debugf("Registering route: Get /super/v1/coupon-risks -> coupons.ListRisks")
|
||||
router.Get("/super/v1/coupon-risks"[len(r.Path()):], DataFunc1(
|
||||
r.coupons.ListRisks,
|
||||
Query[dto.SuperCouponRiskListFilter]("filter"),
|
||||
))
|
||||
r.log.Debugf("Registering route: Get /super/v1/coupons -> coupons.List")
|
||||
router.Get("/super/v1/coupons"[len(r.Path()):], DataFunc1(
|
||||
r.coupons.List,
|
||||
|
||||
Reference in New Issue
Block a user