102 lines
3.6 KiB
Go
102 lines
3.6 KiB
Go
package dto
|
||
|
||
import (
|
||
"fmt"
|
||
"hepa-calc-admin-api/api/model"
|
||
)
|
||
|
||
type CouponDto struct {
|
||
CouponId string `json:"coupon_id"` // 主键id
|
||
CouponName string `json:"coupon_name"` // 优惠券名称
|
||
CouponType int `json:"coupon_type"` // 优惠券类型(1:无门槛 2:满减)
|
||
CouponStatus int `json:"coupon_status"` // 状态(1:正常 2:强制失效 3:结束 4:删除)
|
||
ApplicationScope int `json:"application_scope"` // 适用范围(1:全场通用)
|
||
IsMutex int `json:"is_mutex"` // 是否互斥(0:否 1:是)
|
||
CouponCount int `json:"coupon_count"` // 发放数量
|
||
CouponTakeCount int `json:"coupon_take_count"` // 已领取数量
|
||
CouponUsedCount int `json:"coupon_used_count"` // 已使用数量
|
||
CouponPrice float64 `json:"coupon_price"` // 优惠券金额
|
||
WithAmount float64 `json:"with_amount"` // 符合满减标准金额(优惠券类型为满减时使用)
|
||
ValidType int `json:"valid_type"` // 有效类型(1:绝对时效,xxx-xxx时间段有效 2:相对时效 n天内有效)
|
||
ValidDays int `json:"valid_days"` // 自领取之日起有效天数
|
||
ValidStartTime *model.LocalTime `json:"valid_start_time"` // 开始使用时间
|
||
ValidEndTime *model.LocalTime `json:"valid_end_time"` // 结束使用时间
|
||
CouponDesc string `json:"coupon_desc"` // 优惠券描述
|
||
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
||
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
|
||
}
|
||
|
||
// GetCouponListDto 列表
|
||
func GetCouponListDto(m []*model.Coupon) []*CouponDto {
|
||
// 处理返回值
|
||
responses := make([]*CouponDto, len(m))
|
||
|
||
if len(m) > 0 {
|
||
for i, v := range m {
|
||
response := &CouponDto{
|
||
CouponId: fmt.Sprintf("%d", v.CouponId),
|
||
CouponName: v.CouponName,
|
||
CouponType: v.CouponType,
|
||
CouponStatus: v.CouponStatus,
|
||
ApplicationScope: v.ApplicationScope,
|
||
IsMutex: v.IsMutex,
|
||
CouponCount: v.CouponCount,
|
||
CouponTakeCount: v.CouponTakeCount,
|
||
CouponUsedCount: v.CouponUsedCount,
|
||
CouponPrice: v.CouponPrice,
|
||
ValidType: v.ValidType,
|
||
ValidStartTime: v.ValidStartTime,
|
||
ValidEndTime: v.ValidEndTime,
|
||
CouponDesc: v.CouponDesc,
|
||
CreatedAt: v.CreatedAt,
|
||
UpdatedAt: v.UpdatedAt,
|
||
}
|
||
|
||
if v.WithAmount != nil {
|
||
response.WithAmount = *v.WithAmount
|
||
}
|
||
|
||
if v.ValidDays != nil {
|
||
response.ValidDays = *v.ValidDays
|
||
}
|
||
|
||
// 将转换后的结构体添加到新切片中
|
||
responses[i] = response
|
||
}
|
||
}
|
||
|
||
return responses
|
||
}
|
||
|
||
// GetCouponDto 优惠卷详情
|
||
func GetCouponDto(m *model.Coupon) *CouponDto {
|
||
response := &CouponDto{
|
||
CouponId: fmt.Sprintf("%d", m.CouponId),
|
||
CouponName: m.CouponName,
|
||
CouponType: m.CouponType,
|
||
CouponStatus: m.CouponStatus,
|
||
ApplicationScope: m.ApplicationScope,
|
||
IsMutex: m.IsMutex,
|
||
CouponCount: m.CouponCount,
|
||
CouponTakeCount: m.CouponTakeCount,
|
||
CouponUsedCount: m.CouponUsedCount,
|
||
CouponPrice: m.CouponPrice,
|
||
ValidType: m.ValidType,
|
||
ValidStartTime: m.ValidStartTime,
|
||
ValidEndTime: m.ValidEndTime,
|
||
CouponDesc: m.CouponDesc,
|
||
CreatedAt: m.CreatedAt,
|
||
UpdatedAt: m.UpdatedAt,
|
||
}
|
||
|
||
if m.WithAmount != nil {
|
||
response.WithAmount = *m.WithAmount
|
||
}
|
||
|
||
if m.ValidDays != nil {
|
||
response.ValidDays = *m.ValidDays
|
||
}
|
||
|
||
return response
|
||
}
|