fix(realname): DTO 更新 expiry_base 替换 enable_realname_activation REALNAME-05
- package_dto.go: CreatePackageRequest/UpdatePackageRequest/PackageResponse 三处替换 - service.go: 同步更新 DTO 映射逻辑使用 ExpiryBase
This commit is contained in:
@@ -15,7 +15,7 @@ type CreatePackageRequest struct {
|
|||||||
CalendarType *string `json:"calendar_type" validate:"omitempty,oneof=natural_month by_day" description:"套餐周期类型 (natural_month:自然月, by_day:按天)"`
|
CalendarType *string `json:"calendar_type" validate:"omitempty,oneof=natural_month by_day" description:"套餐周期类型 (natural_month:自然月, by_day:按天)"`
|
||||||
DurationDays *int `json:"duration_days" validate:"omitempty,min=1,max=3650" minimum:"1" maximum:"3650" description:"套餐天数(calendar_type=by_day时必填)"`
|
DurationDays *int `json:"duration_days" validate:"omitempty,min=1,max=3650" minimum:"1" maximum:"3650" description:"套餐天数(calendar_type=by_day时必填)"`
|
||||||
DataResetCycle *string `json:"data_reset_cycle" validate:"omitempty,oneof=daily monthly yearly none" description:"流量重置周期 (daily:每日, monthly:每月, yearly:每年, none:不重置)"`
|
DataResetCycle *string `json:"data_reset_cycle" validate:"omitempty,oneof=daily monthly yearly none" description:"流量重置周期 (daily:每日, monthly:每月, yearly:每年, none:不重置)"`
|
||||||
EnableRealnameActivation *bool `json:"enable_realname_activation" description:"是否启用实名激活 (true:需实名后激活, false:立即激活)"`
|
ExpiryBase string `json:"expiry_base" validate:"omitempty,oneof=from_activation from_purchase" description:"到期时间基准 (from_activation:实名激活时起算, from_purchase:购买时起算)" example:"from_activation"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdatePackageRequest 更新套餐请求
|
// UpdatePackageRequest 更新套餐请求
|
||||||
@@ -32,7 +32,7 @@ type UpdatePackageRequest struct {
|
|||||||
CalendarType *string `json:"calendar_type" validate:"omitempty,oneof=natural_month by_day" description:"套餐周期类型 (natural_month:自然月, by_day:按天)"`
|
CalendarType *string `json:"calendar_type" validate:"omitempty,oneof=natural_month by_day" description:"套餐周期类型 (natural_month:自然月, by_day:按天)"`
|
||||||
DurationDays *int `json:"duration_days" validate:"omitempty,min=1,max=3650" minimum:"1" maximum:"3650" description:"套餐天数(calendar_type=by_day时必填)"`
|
DurationDays *int `json:"duration_days" validate:"omitempty,min=1,max=3650" minimum:"1" maximum:"3650" description:"套餐天数(calendar_type=by_day时必填)"`
|
||||||
DataResetCycle *string `json:"data_reset_cycle" validate:"omitempty,oneof=daily monthly yearly none" description:"流量重置周期 (daily:每日, monthly:每月, yearly:每年, none:不重置)"`
|
DataResetCycle *string `json:"data_reset_cycle" validate:"omitempty,oneof=daily monthly yearly none" description:"流量重置周期 (daily:每日, monthly:每月, yearly:每年, none:不重置)"`
|
||||||
EnableRealnameActivation *bool `json:"enable_realname_activation" description:"是否启用实名激活 (true:需实名后激活, false:立即激活)"`
|
ExpiryBase *string `json:"expiry_base" validate:"omitempty,oneof=from_activation from_purchase" description:"到期时间基准 (from_activation:实名激活时起算, from_purchase:购买时起算)"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// PackageListRequest 套餐列表请求
|
// PackageListRequest 套餐列表请求
|
||||||
@@ -95,7 +95,7 @@ type PackageResponse struct {
|
|||||||
CalendarType string `json:"calendar_type" description:"套餐周期类型 (natural_month:自然月, by_day:按天)"`
|
CalendarType string `json:"calendar_type" description:"套餐周期类型 (natural_month:自然月, by_day:按天)"`
|
||||||
DurationDays *int `json:"duration_days,omitempty" description:"套餐天数(calendar_type=by_day时有值)"`
|
DurationDays *int `json:"duration_days,omitempty" description:"套餐天数(calendar_type=by_day时有值)"`
|
||||||
DataResetCycle string `json:"data_reset_cycle" description:"流量重置周期 (daily:每日, monthly:每月, yearly:每年, none:不重置)"`
|
DataResetCycle string `json:"data_reset_cycle" description:"流量重置周期 (daily:每日, monthly:每月, yearly:每年, none:不重置)"`
|
||||||
EnableRealnameActivation bool `json:"enable_realname_activation" description:"是否启用实名激活 (true:需实名后激活, false:立即激活)"`
|
ExpiryBase string `json:"expiry_base" description:"到期时间基准 (from_activation:实名激活时起算, from_purchase:购买时起算)"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdatePackageParams 更新套餐聚合参数
|
// UpdatePackageParams 更新套餐聚合参数
|
||||||
|
|||||||
@@ -123,10 +123,10 @@ func (s *Service) Create(ctx context.Context, req *dto.CreatePackageRequest) (*d
|
|||||||
// 默认月重置
|
// 默认月重置
|
||||||
pkg.DataResetCycle = constants.PackageDataResetMonthly
|
pkg.DataResetCycle = constants.PackageDataResetMonthly
|
||||||
}
|
}
|
||||||
if req.EnableRealnameActivation != nil {
|
if req.ExpiryBase != "" {
|
||||||
pkg.EnableRealnameActivation = *req.EnableRealnameActivation
|
pkg.ExpiryBase = req.ExpiryBase
|
||||||
} else {
|
} else {
|
||||||
pkg.EnableRealnameActivation = true
|
pkg.ExpiryBase = "from_activation"
|
||||||
}
|
}
|
||||||
pkg.VirtualRatio = calculateVirtualRatio(pkg.EnableVirtualData, pkg.RealDataMB, pkg.VirtualDataMB)
|
pkg.VirtualRatio = calculateVirtualRatio(pkg.EnableVirtualData, pkg.RealDataMB, pkg.VirtualDataMB)
|
||||||
pkg.Creator = currentUserID
|
pkg.Creator = currentUserID
|
||||||
@@ -225,8 +225,8 @@ func (s *Service) Update(ctx context.Context, id uint, req *dto.UpdatePackageReq
|
|||||||
if req.DataResetCycle != nil {
|
if req.DataResetCycle != nil {
|
||||||
pkg.DataResetCycle = *req.DataResetCycle
|
pkg.DataResetCycle = *req.DataResetCycle
|
||||||
}
|
}
|
||||||
if req.EnableRealnameActivation != nil {
|
if req.ExpiryBase != nil {
|
||||||
pkg.EnableRealnameActivation = *req.EnableRealnameActivation
|
pkg.ExpiryBase = *req.ExpiryBase
|
||||||
}
|
}
|
||||||
|
|
||||||
// 校验套餐周期类型和时长配置
|
// 校验套餐周期类型和时长配置
|
||||||
@@ -556,7 +556,7 @@ func (s *Service) toResponse(ctx context.Context, pkg *model.Package) *dto.Packa
|
|||||||
CalendarType: pkg.CalendarType,
|
CalendarType: pkg.CalendarType,
|
||||||
DurationDays: durationDays,
|
DurationDays: durationDays,
|
||||||
DataResetCycle: pkg.DataResetCycle,
|
DataResetCycle: pkg.DataResetCycle,
|
||||||
EnableRealnameActivation: pkg.EnableRealnameActivation,
|
ExpiryBase: pkg.ExpiryBase,
|
||||||
Status: pkg.Status,
|
Status: pkg.Status,
|
||||||
ShelfStatus: pkg.ShelfStatus,
|
ShelfStatus: pkg.ShelfStatus,
|
||||||
CreatedAt: pkg.CreatedAt.Format(time.RFC3339),
|
CreatedAt: pkg.CreatedAt.Format(time.RFC3339),
|
||||||
@@ -621,7 +621,7 @@ func (s *Service) toResponseWithAllocation(_ context.Context, pkg *model.Package
|
|||||||
CalendarType: pkg.CalendarType,
|
CalendarType: pkg.CalendarType,
|
||||||
DurationDays: durationDays,
|
DurationDays: durationDays,
|
||||||
DataResetCycle: pkg.DataResetCycle,
|
DataResetCycle: pkg.DataResetCycle,
|
||||||
EnableRealnameActivation: pkg.EnableRealnameActivation,
|
ExpiryBase: pkg.ExpiryBase,
|
||||||
Status: pkg.Status,
|
Status: pkg.Status,
|
||||||
ShelfStatus: pkg.ShelfStatus,
|
ShelfStatus: pkg.ShelfStatus,
|
||||||
CreatedAt: pkg.CreatedAt.Format(time.RFC3339),
|
CreatedAt: pkg.CreatedAt.Format(time.RFC3339),
|
||||||
|
|||||||
Reference in New Issue
Block a user