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 }