up: Redemption Code
This commit is contained in:
parent
518595b058
commit
3f3b0ae6ad
@ -24,6 +24,11 @@ type (
|
||||
SubscribePlan int64 `json:"subscribe_plan,omitempty"`
|
||||
UnitTime string `json:"unit_time,omitempty" validate:"omitempty,oneof=day month quarter half_year year"`
|
||||
Quantity int64 `json:"quantity,omitempty"`
|
||||
Status int64 `json:"status,omitempty" validate:"omitempty,oneof=0 1"`
|
||||
}
|
||||
ToggleRedemptionCodeStatusRequest {
|
||||
Id int64 `json:"id" validate:"required"`
|
||||
Status int64 `json:"status" validate:"oneof=0 1"`
|
||||
}
|
||||
DeleteRedemptionCodeRequest {
|
||||
Id int64 `json:"id" validate:"required"`
|
||||
@ -68,6 +73,10 @@ service ppanel {
|
||||
@handler UpdateRedemptionCode
|
||||
put /code (UpdateRedemptionCodeRequest)
|
||||
|
||||
@doc "Toggle redemption code status"
|
||||
@handler ToggleRedemptionCodeStatus
|
||||
put /code/status (ToggleRedemptionCodeStatusRequest)
|
||||
|
||||
@doc "Delete redemption code"
|
||||
@handler DeleteRedemptionCode
|
||||
delete /code (DeleteRedemptionCodeRequest)
|
||||
|
||||
@ -319,6 +319,9 @@ func RegisterHandlers(router *gin.Engine, serverCtx *svc.ServiceContext) {
|
||||
// Get redemption code list
|
||||
adminRedemptionGroupRouter.GET("/code/list", adminRedemption.GetRedemptionCodeListHandler(serverCtx))
|
||||
|
||||
// Toggle redemption code status
|
||||
adminRedemptionGroupRouter.PUT("/code/status", adminRedemption.ToggleRedemptionCodeStatusHandler(serverCtx))
|
||||
|
||||
// Get redemption record list
|
||||
adminRedemptionGroupRouter.GET("/record/list", adminRedemption.GetRedemptionRecordListHandler(serverCtx))
|
||||
}
|
||||
|
||||
@ -100,6 +100,7 @@ func (l *CreateRedemptionCodeLogic) CreateRedemptionCode(req *types.CreateRedemp
|
||||
SubscribePlan: req.SubscribePlan,
|
||||
UnitTime: req.UnitTime,
|
||||
Quantity: req.Quantity,
|
||||
Status: 1, // Default to enabled
|
||||
}
|
||||
|
||||
err = l.svcCtx.RedemptionCodeModel.Insert(l.ctx, redemptionCode)
|
||||
|
||||
@ -49,6 +49,7 @@ func (l *GetRedemptionCodeListLogic) GetRedemptionCodeList(req *types.GetRedempt
|
||||
SubscribePlan: item.SubscribePlan,
|
||||
UnitTime: item.UnitTime,
|
||||
Quantity: item.Quantity,
|
||||
Status: item.Status,
|
||||
CreatedAt: item.CreatedAt.Unix(),
|
||||
UpdatedAt: item.UpdatedAt.Unix(),
|
||||
})
|
||||
|
||||
@ -54,6 +54,14 @@ func (l *RedeemCodeLogic) RedeemCode(req *types.RedeemCodeRequest) (resp *types.
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "find redemption code error: %v", err.Error())
|
||||
}
|
||||
|
||||
// Check if redemption code is enabled
|
||||
if redemptionCode.Status != 1 {
|
||||
l.Errorw("[RedeemCode] Redemption code is disabled",
|
||||
logger.Field("code", req.Code),
|
||||
logger.Field("status", redemptionCode.Status))
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.InvalidParams), "redemption code is disabled")
|
||||
}
|
||||
|
||||
// Check if redemption code has remaining count
|
||||
if redemptionCode.TotalCount > 0 && redemptionCode.UsedCount >= redemptionCode.TotalCount {
|
||||
l.Errorw("[RedeemCode] Redemption code has been fully used",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user