hospital-admin-api/api/dto/HealthPackage.go
2024-06-04 14:52:44 +08:00

69 lines
2.7 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package dto
import (
"fmt"
"hospital-admin-api/api/model"
)
type HealthPackageDto struct {
PackageId string `json:"package_id"` // 主键id
ServiceCount int `json:"service_count"` // 总服务次数
MonthlyFrequency int `json:"monthly_frequency"` // 每月次数
EffectiveDays string `json:"effective_days"` // 服务有效天数
ServiceRate string `json:"service_rate"` // 服务费率。100为满值表示1正常费率。
DiscountProductTotalAmount float64 `json:"discount_product_total_amount"` // 折扣商品总价格
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
HealthPackageProduct []*HealthPackageProductDto `json:"health_package_product"` // 健康包-关联商品
}
func GetHealthPackageDto(m *model.HealthPackage) *HealthPackageDto {
return &HealthPackageDto{
PackageId: fmt.Sprintf("%d", m.PackageId),
ServiceCount: m.ServiceCount,
MonthlyFrequency: m.MonthlyFrequency,
EffectiveDays: m.EffectiveDays,
ServiceRate: m.ServiceRate,
DiscountProductTotalAmount: m.DiscountProductTotalAmount,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
}
}
func GetHealthPackageListDto(m []*model.HealthPackage) []*HealthPackageDto {
// 处理返回值
responses := make([]*HealthPackageDto, len(m))
if len(m) > 0 {
for i, v := range m {
response := &HealthPackageDto{
PackageId: fmt.Sprintf("%d", v.PackageId),
ServiceCount: v.ServiceCount,
MonthlyFrequency: v.MonthlyFrequency,
EffectiveDays: v.EffectiveDays,
ServiceRate: v.ServiceRate,
DiscountProductTotalAmount: v.DiscountProductTotalAmount,
CreatedAt: v.CreatedAt,
UpdatedAt: v.UpdatedAt,
}
if len(v.HealthPackageProduct) > 0 {
response.LoadHealthPackageProduct(v.HealthPackageProduct)
}
// 将转换后的结构体添加到新切片中
responses[i] = response
}
}
return responses
}
// LoadHealthPackageProduct 加载健康包-关联商品
func (r *HealthPackageDto) LoadHealthPackageProduct(m []*model.HealthPackageProduct) *HealthPackageDto {
if len(m) > 0 {
r.HealthPackageProduct = GetHealthPackageProductListDto(m)
}
return r
}