From ac74c0d59f724e42986c3958b104b27cf36118ce Mon Sep 17 00:00:00 2001 From: wucongxing8150 <815046773@qq.com> Date: Mon, 21 Oct 2024 17:01:16 +0800 Subject: [PATCH] 344 --- api/controller/Coupon.go | 29 +++++------ api/dto/Coupon.go | 105 ++++++++++++++++++++------------------- api/model/Coupon.go | 35 ++++++------- api/requests/Coupon.go | 27 +++++----- 4 files changed, 101 insertions(+), 95 deletions(-) diff --git a/api/controller/Coupon.go b/api/controller/Coupon.go index fc6ebeb..0dbf4c5 100644 --- a/api/controller/Coupon.go +++ b/api/controller/Coupon.go @@ -238,20 +238,21 @@ func (r *Coupon) AddSystemCoupon(c *gin.Context) { // 新增优惠卷表 coupon := &model.Coupon{ - CouponName: req.CouponName, - CouponType: req.CouponType, - CouponStatus: 1, - ApplicationScope: req.ApplicationScope, - IsMutex: req.IsMutex, - CouponCount: req.CouponCount, - CouponTakeCount: 0, - CouponUsedCount: 0, - CouponPrice: req.CouponPrice, - ValidType: req.ValidType, - ValidStartTime: nil, - ValidEndTime: nil, - CouponDesc: req.CouponDesc, - SystemMemberIds: strings.Join(systemMemberIds, ","), + CouponName: req.CouponName, + CouponType: req.CouponType, + CouponStatus: 1, + ApplicationScope: req.ApplicationScope, + DistributionObject: req.DistributionObject, + IsMutex: req.IsMutex, + CouponCount: req.CouponCount, + CouponTakeCount: 0, + CouponUsedCount: 0, + CouponPrice: req.CouponPrice, + ValidType: req.ValidType, + ValidStartTime: nil, + ValidEndTime: nil, + CouponDesc: req.CouponDesc, + SystemMemberIds: strings.Join(systemMemberIds, ","), } // 符合满减标准金额 diff --git a/api/dto/Coupon.go b/api/dto/Coupon.go index da401d7..9893af6 100644 --- a/api/dto/Coupon.go +++ b/api/dto/Coupon.go @@ -7,25 +7,26 @@ import ( ) 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"` // 更新时间 + 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:全场通用) + DistributionObject int `json:"distribution_object"` // 发放对象(1:全部用户 2:新注册用户 3:会员 4:完善资料) + 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"` // 更新时间 } // GetCouponListDto 列表 @@ -36,22 +37,23 @@ func GetCouponListDto(m []*model.Coupon) []*CouponDto { 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, + CouponId: fmt.Sprintf("%d", v.CouponId), + CouponName: v.CouponName, + CouponType: v.CouponType, + CouponStatus: v.CouponStatus, + ApplicationScope: v.ApplicationScope, + DistributionObject: v.DistributionObject, + 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 { @@ -78,22 +80,23 @@ func GetCouponListDto(m []*model.Coupon) []*CouponDto { // 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, + CouponId: fmt.Sprintf("%d", m.CouponId), + CouponName: m.CouponName, + CouponType: m.CouponType, + CouponStatus: m.CouponStatus, + ApplicationScope: m.ApplicationScope, + DistributionObject: m.DistributionObject, + 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 { diff --git a/api/model/Coupon.go b/api/model/Coupon.go index aeab2f3..30e5e55 100644 --- a/api/model/Coupon.go +++ b/api/model/Coupon.go @@ -7,23 +7,24 @@ import ( ) type Coupon struct { - CouponId int64 `gorm:"column:coupon_id;type:bigint(19);primary_key;comment:主键id" json:"coupon_id"` - CouponName string `gorm:"column:coupon_name;type:varchar(255);comment:优惠卷名称" json:"coupon_name"` - CouponType int `gorm:"column:coupon_type;type:varchar(255);comment:优惠卷类型(1:无门槛 2:满减)" json:"coupon_type"` - CouponStatus int `gorm:"column:coupon_status;type:tinyint(1);default:1;comment:状态(1:正常 2:强制失效 3:结束 4:删除)" json:"coupon_status"` - ApplicationScope int `gorm:"column:application_scope;type:tinyint(1);default:1;comment:适用范围(1:全场通用 2:单项 3:会员)" json:"application_scope"` - IsMutex int `gorm:"column:is_mutex;type:tinyint(1);default:1;comment:是否互斥(0:否 1:是)互斥情况下无法和其他优惠卷同时使用" json:"is_mutex"` - CouponCount int `gorm:"column:coupon_count;type:int(10);default:1;comment:发放数量;NOT NULL" json:"coupon_count"` - CouponTakeCount int `gorm:"column:coupon_take_count;type:int(10);comment:已领取数量" json:"coupon_take_count"` - CouponUsedCount int `gorm:"column:coupon_used_count;type:int(10);default:0;comment:已使用数量" json:"coupon_used_count"` - CouponPrice float64 `gorm:"column:coupon_price;type:decimal(10,2) unsigned;default:0.00;comment:优惠卷金额" json:"coupon_price"` - WithAmount *float64 `gorm:"column:with_amount;type:decimal(10,2);comment:符合满减标准金额(优惠卷类型为满减时使用)" json:"with_amount"` - ValidType int `gorm:"column:valid_type;type:tinyint(1);comment:有效类型(1:绝对时效,xxx-xxx时间段有效 2:相对时效 n天内有效);NOT NULL" json:"valid_type"` - ValidDays *int `gorm:"column:valid_days;type:int(3);comment:自领取之日起有效天数" json:"valid_days"` - ValidStartTime *LocalTime `gorm:"column:valid_start_time;type:datetime;comment:开始使用时间" json:"valid_start_time"` - ValidEndTime *LocalTime `gorm:"column:valid_end_time;type:datetime;comment:结束使用时间" json:"valid_end_time"` - SystemMemberIds string `gorm:"column:system_member_ids;type:bigint(19);comment:会员id(适用范围为会员时生效,如果此项为null,则表示所有会员通用)" json:"system_member_ids"` - CouponDesc string `gorm:"column:coupon_desc;type:varchar(200);comment:优惠卷描述" json:"coupon_desc"` + CouponId int64 `gorm:"column:coupon_id;type:bigint(19);primary_key;comment:主键id" json:"coupon_id"` + CouponName string `gorm:"column:coupon_name;type:varchar(255);comment:优惠卷名称" json:"coupon_name"` + CouponType int `gorm:"column:coupon_type;type:varchar(255);comment:优惠卷类型(1:无门槛 2:满减)" json:"coupon_type"` + CouponStatus int `gorm:"column:coupon_status;type:tinyint(1);default:1;comment:状态(1:正常 2:强制失效 3:结束 4:删除)" json:"coupon_status"` + ApplicationScope int `gorm:"column:application_scope;type:tinyint(1);default:1;comment:适用范围(1:全场通用 2:单项 3:会员)" json:"application_scope"` + DistributionObject int `gorm:"column:distribution_object;type:tinyint(1);default:1;comment:发放对象(1:全部用户 2:新注册用户 3:会员 4:完善资料)" json:"distribution_object"` + IsMutex int `gorm:"column:is_mutex;type:tinyint(1);default:1;comment:是否互斥(0:否 1:是)互斥情况下无法和其他优惠卷同时使用" json:"is_mutex"` + CouponCount int `gorm:"column:coupon_count;type:int(10);default:1;comment:发放数量;NOT NULL" json:"coupon_count"` + CouponTakeCount int `gorm:"column:coupon_take_count;type:int(10);comment:已领取数量" json:"coupon_take_count"` + CouponUsedCount int `gorm:"column:coupon_used_count;type:int(10);default:0;comment:已使用数量" json:"coupon_used_count"` + CouponPrice float64 `gorm:"column:coupon_price;type:decimal(10,2) unsigned;default:0.00;comment:优惠卷金额" json:"coupon_price"` + WithAmount *float64 `gorm:"column:with_amount;type:decimal(10,2);comment:符合满减标准金额(优惠卷类型为满减时使用)" json:"with_amount"` + ValidType int `gorm:"column:valid_type;type:tinyint(1);comment:有效类型(1:绝对时效,xxx-xxx时间段有效 2:相对时效 n天内有效);NOT NULL" json:"valid_type"` + ValidDays *int `gorm:"column:valid_days;type:int(3);comment:自领取之日起有效天数" json:"valid_days"` + ValidStartTime *LocalTime `gorm:"column:valid_start_time;type:datetime;comment:开始使用时间" json:"valid_start_time"` + ValidEndTime *LocalTime `gorm:"column:valid_end_time;type:datetime;comment:结束使用时间" json:"valid_end_time"` + SystemMemberIds string `gorm:"column:system_member_ids;type:bigint(19);comment:会员id(适用范围为会员时生效,如果此项为null,则表示所有会员通用)" json:"system_member_ids"` + CouponDesc string `gorm:"column:coupon_desc;type:varchar(200);comment:优惠卷描述" json:"coupon_desc"` Model } diff --git a/api/requests/Coupon.go b/api/requests/Coupon.go index 8839714..df8d7f7 100644 --- a/api/requests/Coupon.go +++ b/api/requests/Coupon.go @@ -26,17 +26,18 @@ type PutCouponStatus struct { // AddSystemCoupon 新增系统优惠卷 type AddSystemCoupon struct { - CouponName string `json:"coupon_name" form:"coupon_name" label:"优惠券名称" validate:"required"` - CouponType int `json:"coupon_type" form:"coupon_type" label:"优惠券类型" validate:"required,oneof=1 2"` // (1:无门槛 2:满减) - ApplicationScope int `json:"application_scope" form:"application_scope" label:"适用范围" validate:"required,oneof=1 2 3"` // 适用范围(1:全场通用 2:单项 3:会员) - IsMutex int `json:"is_mutex" form:"is_mutex" label:"是否互斥" validate:"required,oneof=0 1"` // (0:否 1:是) - CouponCount int `json:"coupon_count" form:"coupon_count" label:"发放数量" validate:"required,number,min=1"` - CouponPrice float64 `json:"coupon_price" form:"coupon_price" label:"优惠券金额" validate:"required,numeric,gt=0"` - WithAmount *float64 `json:"with_amount" form:"with_amount" label:"满减条件金额" validate:"omitempty,gt=1"` - ValidType int `json:"valid_type" form:"valid_type" label:"有效类型" validate:"required,oneof=1 2"` // (1:绝对时效,xxx-xxx时间段有效 2:相对时效 n天内有效) - ValidDays *int `json:"valid_days" form:"valid_days" label:"有效天数" validate:"omitempty,numeric,min=1"` - ValidStartTime *string `json:"valid_start_time" form:"valid_start_time" label:"开始使用时间"` // 假设转换为字符串格式 - ValidEndTime *string `json:"valid_end_time" form:"valid_end_time" label:"结束使用时间"` // 假设转换为字符串格式 - SystemMemberIds []*string `json:"system_member_ids" form:"system_member_ids" label:"会员id"` // 会员id - CouponDesc string `json:"coupon_desc" form:"coupon_desc" label:"优惠券描述"` + CouponName string `json:"coupon_name" form:"coupon_name" label:"优惠券名称" validate:"required"` + CouponType int `json:"coupon_type" form:"coupon_type" label:"优惠券类型" validate:"required,oneof=1 2"` // (1:无门槛 2:满减) + ApplicationScope int `json:"application_scope" form:"application_scope" label:"适用范围" validate:"required,oneof=1 2 3"` // 适用范围(1:全场通用 2:单项 3:会员) + DistributionObject int `json:"distribution_object" form:"distribution_object" label:"发放对象" validate:"required,oneof=1 2 3 4"` // 发放对象(1:全部用户 2:新注册用户 3:会员 4:完善资料) + IsMutex int `json:"is_mutex" form:"is_mutex" label:"是否互斥" validate:"required,oneof=0 1"` // (0:否 1:是) + CouponCount int `json:"coupon_count" form:"coupon_count" label:"发放数量" validate:"required,number,min=1"` + CouponPrice float64 `json:"coupon_price" form:"coupon_price" label:"优惠券金额" validate:"required,numeric,gt=0"` + WithAmount *float64 `json:"with_amount" form:"with_amount" label:"满减条件金额" validate:"omitempty,gt=1"` + ValidType int `json:"valid_type" form:"valid_type" label:"有效类型" validate:"required,oneof=1 2"` // (1:绝对时效,xxx-xxx时间段有效 2:相对时效 n天内有效) + ValidDays *int `json:"valid_days" form:"valid_days" label:"有效天数" validate:"omitempty,numeric,min=1"` + ValidStartTime *string `json:"valid_start_time" form:"valid_start_time" label:"开始使用时间"` // 假设转换为字符串格式 + ValidEndTime *string `json:"valid_end_time" form:"valid_end_time" label:"结束使用时间"` // 假设转换为字符串格式 + SystemMemberIds []*string `json:"system_member_ids" form:"system_member_ids" label:"会员id"` // 会员id + CouponDesc string `json:"coupon_desc" form:"coupon_desc" label:"优惠券描述"` }