This commit is contained in:
wucongxing8150 2024-10-21 17:01:16 +08:00
parent 6a0aa360f3
commit ac74c0d59f
4 changed files with 101 additions and 95 deletions

View File

@ -238,20 +238,21 @@ func (r *Coupon) AddSystemCoupon(c *gin.Context) {
// 新增优惠卷表 // 新增优惠卷表
coupon := &model.Coupon{ coupon := &model.Coupon{
CouponName: req.CouponName, CouponName: req.CouponName,
CouponType: req.CouponType, CouponType: req.CouponType,
CouponStatus: 1, CouponStatus: 1,
ApplicationScope: req.ApplicationScope, ApplicationScope: req.ApplicationScope,
IsMutex: req.IsMutex, DistributionObject: req.DistributionObject,
CouponCount: req.CouponCount, IsMutex: req.IsMutex,
CouponTakeCount: 0, CouponCount: req.CouponCount,
CouponUsedCount: 0, CouponTakeCount: 0,
CouponPrice: req.CouponPrice, CouponUsedCount: 0,
ValidType: req.ValidType, CouponPrice: req.CouponPrice,
ValidStartTime: nil, ValidType: req.ValidType,
ValidEndTime: nil, ValidStartTime: nil,
CouponDesc: req.CouponDesc, ValidEndTime: nil,
SystemMemberIds: strings.Join(systemMemberIds, ","), CouponDesc: req.CouponDesc,
SystemMemberIds: strings.Join(systemMemberIds, ","),
} }
// 符合满减标准金额 // 符合满减标准金额

View File

@ -7,25 +7,26 @@ import (
) )
type CouponDto struct { type CouponDto struct {
CouponId string `json:"coupon_id"` // 主键id CouponId string `json:"coupon_id"` // 主键id
CouponName string `json:"coupon_name"` // 优惠券名称 CouponName string `json:"coupon_name"` // 优惠券名称
CouponType int `json:"coupon_type"` // 优惠券类型1:无门槛 2:满减) CouponType int `json:"coupon_type"` // 优惠券类型1:无门槛 2:满减)
CouponStatus int `json:"coupon_status"` // 状态1:正常 2:强制失效 3:结束 4:删除) CouponStatus int `json:"coupon_status"` // 状态1:正常 2:强制失效 3:结束 4:删除)
ApplicationScope int `json:"application_scope"` // 适用范围1:全场通用) ApplicationScope int `json:"application_scope"` // 适用范围1:全场通用)
IsMutex int `json:"is_mutex"` // 是否互斥0:否 1:是) DistributionObject int `json:"distribution_object"` // 发放对象1:全部用户 2:新注册用户 3:会员 4:完善资料)
CouponCount int `json:"coupon_count"` // 发放数量 IsMutex int `json:"is_mutex"` // 是否互斥0:否 1:是)
CouponTakeCount int `json:"coupon_take_count"` // 已领取数量 CouponCount int `json:"coupon_count"` // 发放数量
CouponUsedCount int `json:"coupon_used_count"` // 已使用数量 CouponTakeCount int `json:"coupon_take_count"` // 已领取数量
CouponPrice float64 `json:"coupon_price"` // 优惠券金额 CouponUsedCount int `json:"coupon_used_count"` // 已使用数量
WithAmount float64 `json:"with_amount"` // 符合满减标准金额(优惠券类型为满减时使用) CouponPrice float64 `json:"coupon_price"` // 优惠券金额
ValidType int `json:"valid_type"` // 有效类型1:绝对时效xxx-xxx时间段有效 2:相对时效 n天内有效 WithAmount float64 `json:"with_amount"` // 符合满减标准金额(优惠券类型为满减时使用)
ValidDays int `json:"valid_days"` // 自领取之日起有效天数 ValidType int `json:"valid_type"` // 有效类型1:绝对时效xxx-xxx时间段有效 2:相对时效 n天内有效
ValidStartTime *model.LocalTime `json:"valid_start_time"` // 开始使用时间 ValidDays int `json:"valid_days"` // 自领取之日起有效天数
ValidEndTime *model.LocalTime `json:"valid_end_time"` // 结束使用时间 ValidStartTime *model.LocalTime `json:"valid_start_time"` // 开始使用时间
SystemMemberIds []*string `json:"system_member_ids"` // 会员id适用范围为会员时生效如果此项为null则表示所有会员通用 ValidEndTime *model.LocalTime `json:"valid_end_time"` // 结束使用时间
CouponDesc string `json:"coupon_desc"` // 优惠券描述 SystemMemberIds []*string `json:"system_member_ids"` // 会员id适用范围为会员时生效如果此项为null则表示所有会员通用
CreatedAt model.LocalTime `json:"created_at"` // 创建时间 CouponDesc string `json:"coupon_desc"` // 优惠券描述
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 CreatedAt model.LocalTime `json:"created_at"` // 创建时间
UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间
} }
// GetCouponListDto 列表 // GetCouponListDto 列表
@ -36,22 +37,23 @@ func GetCouponListDto(m []*model.Coupon) []*CouponDto {
if len(m) > 0 { if len(m) > 0 {
for i, v := range m { for i, v := range m {
response := &CouponDto{ response := &CouponDto{
CouponId: fmt.Sprintf("%d", v.CouponId), CouponId: fmt.Sprintf("%d", v.CouponId),
CouponName: v.CouponName, CouponName: v.CouponName,
CouponType: v.CouponType, CouponType: v.CouponType,
CouponStatus: v.CouponStatus, CouponStatus: v.CouponStatus,
ApplicationScope: v.ApplicationScope, ApplicationScope: v.ApplicationScope,
IsMutex: v.IsMutex, DistributionObject: v.DistributionObject,
CouponCount: v.CouponCount, IsMutex: v.IsMutex,
CouponTakeCount: v.CouponTakeCount, CouponCount: v.CouponCount,
CouponUsedCount: v.CouponUsedCount, CouponTakeCount: v.CouponTakeCount,
CouponPrice: v.CouponPrice, CouponUsedCount: v.CouponUsedCount,
ValidType: v.ValidType, CouponPrice: v.CouponPrice,
ValidStartTime: v.ValidStartTime, ValidType: v.ValidType,
ValidEndTime: v.ValidEndTime, ValidStartTime: v.ValidStartTime,
CouponDesc: v.CouponDesc, ValidEndTime: v.ValidEndTime,
CreatedAt: v.CreatedAt, CouponDesc: v.CouponDesc,
UpdatedAt: v.UpdatedAt, CreatedAt: v.CreatedAt,
UpdatedAt: v.UpdatedAt,
} }
if v.WithAmount != nil { if v.WithAmount != nil {
@ -78,22 +80,23 @@ func GetCouponListDto(m []*model.Coupon) []*CouponDto {
// GetCouponDto 优惠卷详情 // GetCouponDto 优惠卷详情
func GetCouponDto(m *model.Coupon) *CouponDto { func GetCouponDto(m *model.Coupon) *CouponDto {
response := &CouponDto{ response := &CouponDto{
CouponId: fmt.Sprintf("%d", m.CouponId), CouponId: fmt.Sprintf("%d", m.CouponId),
CouponName: m.CouponName, CouponName: m.CouponName,
CouponType: m.CouponType, CouponType: m.CouponType,
CouponStatus: m.CouponStatus, CouponStatus: m.CouponStatus,
ApplicationScope: m.ApplicationScope, ApplicationScope: m.ApplicationScope,
IsMutex: m.IsMutex, DistributionObject: m.DistributionObject,
CouponCount: m.CouponCount, IsMutex: m.IsMutex,
CouponTakeCount: m.CouponTakeCount, CouponCount: m.CouponCount,
CouponUsedCount: m.CouponUsedCount, CouponTakeCount: m.CouponTakeCount,
CouponPrice: m.CouponPrice, CouponUsedCount: m.CouponUsedCount,
ValidType: m.ValidType, CouponPrice: m.CouponPrice,
ValidStartTime: m.ValidStartTime, ValidType: m.ValidType,
ValidEndTime: m.ValidEndTime, ValidStartTime: m.ValidStartTime,
CouponDesc: m.CouponDesc, ValidEndTime: m.ValidEndTime,
CreatedAt: m.CreatedAt, CouponDesc: m.CouponDesc,
UpdatedAt: m.UpdatedAt, CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
} }
if m.WithAmount != nil { if m.WithAmount != nil {

View File

@ -7,23 +7,24 @@ import (
) )
type Coupon struct { type Coupon struct {
CouponId int64 `gorm:"column:coupon_id;type:bigint(19);primary_key;comment:主键id" json:"coupon_id"` 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"` 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"` 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"` 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"` 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"` DistributionObject int `gorm:"column:distribution_object;type:tinyint(1);default:1;comment:发放对象1:全部用户 2:新注册用户 3:会员 4:完善资料)" json:"distribution_object"`
CouponCount int `gorm:"column:coupon_count;type:int(10);default:1;comment:发放数量;NOT NULL" json:"coupon_count"` IsMutex int `gorm:"column:is_mutex;type:tinyint(1);default:1;comment:是否互斥0:否 1:是)互斥情况下无法和其他优惠卷同时使用" json:"is_mutex"`
CouponTakeCount int `gorm:"column:coupon_take_count;type:int(10);comment:已领取数量" json:"coupon_take_count"` CouponCount int `gorm:"column:coupon_count;type:int(10);default:1;comment:发放数量;NOT NULL" json:"coupon_count"`
CouponUsedCount int `gorm:"column:coupon_used_count;type:int(10);default:0;comment:已使用数量" json:"coupon_used_count"` CouponTakeCount int `gorm:"column:coupon_take_count;type:int(10);comment:已领取数量" json:"coupon_take_count"`
CouponPrice float64 `gorm:"column:coupon_price;type:decimal(10,2) unsigned;default:0.00;comment:优惠卷金额" json:"coupon_price"` CouponUsedCount int `gorm:"column:coupon_used_count;type:int(10);default:0;comment:已使用数量" json:"coupon_used_count"`
WithAmount *float64 `gorm:"column:with_amount;type:decimal(10,2);comment:符合满减标准金额(优惠卷类型为满减时使用)" json:"with_amount"` CouponPrice float64 `gorm:"column:coupon_price;type:decimal(10,2) unsigned;default:0.00;comment:优惠卷金额" json:"coupon_price"`
ValidType int `gorm:"column:valid_type;type:tinyint(1);comment:有效类型1:绝对时效xxx-xxx时间段有效 2:相对时效 n天内有效;NOT NULL" json:"valid_type"` WithAmount *float64 `gorm:"column:with_amount;type:decimal(10,2);comment:符合满减标准金额(优惠卷类型为满减时使用)" json:"with_amount"`
ValidDays *int `gorm:"column:valid_days;type:int(3);comment:自领取之日起有效天数" json:"valid_days"` ValidType int `gorm:"column:valid_type;type:tinyint(1);comment:有效类型1:绝对时效xxx-xxx时间段有效 2:相对时效 n天内有效;NOT NULL" json:"valid_type"`
ValidStartTime *LocalTime `gorm:"column:valid_start_time;type:datetime;comment:开始使用时间" json:"valid_start_time"` ValidDays *int `gorm:"column:valid_days;type:int(3);comment:自领取之日起有效天数" json:"valid_days"`
ValidEndTime *LocalTime `gorm:"column:valid_end_time;type:datetime;comment:结束使用时间" json:"valid_end_time"` ValidStartTime *LocalTime `gorm:"column:valid_start_time;type:datetime;comment:开始使用时间" json:"valid_start_time"`
SystemMemberIds string `gorm:"column:system_member_ids;type:bigint(19);comment:会员id适用范围为会员时生效如果此项为null则表示所有会员通用" json:"system_member_ids"` ValidEndTime *LocalTime `gorm:"column:valid_end_time;type:datetime;comment:结束使用时间" json:"valid_end_time"`
CouponDesc string `gorm:"column:coupon_desc;type:varchar(200);comment:优惠卷描述" json:"coupon_desc"` 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 Model
} }

View File

@ -26,17 +26,18 @@ type PutCouponStatus struct {
// AddSystemCoupon 新增系统优惠卷 // AddSystemCoupon 新增系统优惠卷
type AddSystemCoupon struct { type AddSystemCoupon struct {
CouponName string `json:"coupon_name" form:"coupon_name" label:"优惠券名称" validate:"required"` 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:满减) 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:会员) 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:是) DistributionObject int `json:"distribution_object" form:"distribution_object" label:"发放对象" validate:"required,oneof=1 2 3 4"` // 发放对象1:全部用户 2:新注册用户 3:会员 4:完善资料)
CouponCount int `json:"coupon_count" form:"coupon_count" label:"发放数量" validate:"required,number,min=1"` IsMutex int `json:"is_mutex" form:"is_mutex" label:"是否互斥" validate:"required,oneof=0 1"` // 0:否 1:是)
CouponPrice float64 `json:"coupon_price" form:"coupon_price" label:"优惠券金额" validate:"required,numeric,gt=0"` CouponCount int `json:"coupon_count" form:"coupon_count" label:"发放数量" validate:"required,number,min=1"`
WithAmount *float64 `json:"with_amount" form:"with_amount" label:"满减条件金额" validate:"omitempty,gt=1"` CouponPrice float64 `json:"coupon_price" form:"coupon_price" label:"优惠券金额" validate:"required,numeric,gt=0"`
ValidType int `json:"valid_type" form:"valid_type" label:"有效类型" validate:"required,oneof=1 2"` // 1:绝对时效xxx-xxx时间段有效 2:相对时效 n天内有效 WithAmount *float64 `json:"with_amount" form:"with_amount" label:"满减条件金额" validate:"omitempty,gt=1"`
ValidDays *int `json:"valid_days" form:"valid_days" label:"有效天数" validate:"omitempty,numeric,min=1"` ValidType int `json:"valid_type" form:"valid_type" label:"有效类型" validate:"required,oneof=1 2"` // 1:绝对时效xxx-xxx时间段有效 2:相对时效 n天内有效
ValidStartTime *string `json:"valid_start_time" form:"valid_start_time" label:"开始使用时间"` // 假设转换为字符串格式 ValidDays *int `json:"valid_days" form:"valid_days" label:"有效天数" validate:"omitempty,numeric,min=1"`
ValidEndTime *string `json:"valid_end_time" form:"valid_end_time" label:"结束使用时间"` // 假设转换为字符串格式 ValidStartTime *string `json:"valid_start_time" form:"valid_start_time" label:"开始使用时间"` // 假设转换为字符串格式
SystemMemberIds []*string `json:"system_member_ids" form:"system_member_ids" label:"会员id"` // 会员id ValidEndTime *string `json:"valid_end_time" form:"valid_end_time" label:"结束使用时间"` // 假设转换为字符串格式
CouponDesc string `json:"coupon_desc" form:"coupon_desc" label:"优惠券描述"` SystemMemberIds []*string `json:"system_member_ids" form:"system_member_ids" label:"会员id"` // 会员id
CouponDesc string `json:"coupon_desc" form:"coupon_desc" label:"优惠券描述"`
} }