package dto import ( "fmt" "hepa-calc-api/api/model" "strings" ) 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"` // 结束使用时间 SystemMemberIds []*string `json:"system_member_ids"` // 会员id(适用范围为会员时生效,如果此项为null,则表示所有会员通用) CouponDesc string `json:"coupon_desc"` // 优惠券描述 CreatedAt model.LocalTime `json:"created_at"` // 创建时间 UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 } // GetCouponDto 优惠卷详情 func GetCouponDto(m *model.Coupon) *CouponDto { return &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, WithAmount: m.WithAmount, ValidType: m.ValidType, ValidDays: m.ValidDays, ValidStartTime: m.ValidStartTime, ValidEndTime: m.ValidEndTime, CouponDesc: m.CouponDesc, CreatedAt: m.CreatedAt, UpdatedAt: m.UpdatedAt, } } // LoadSystemMemberIds 加载会员id func (r *CouponDto) LoadSystemMemberIds(systemMemberIds string) *CouponDto { if systemMemberIds != "" { s := strings.Split(systemMemberIds, ",") response := make([]*string, len(s)) for i, v := range s { h := fmt.Sprintf("%v", v) response[i] = &h } r.SystemMemberIds = response } return r }