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