diff --git a/api/controller/SystemMember.go b/api/controller/SystemMember.go index a8010ca..8054760 100644 --- a/api/controller/SystemMember.go +++ b/api/controller/SystemMember.go @@ -157,6 +157,21 @@ func (b *SystemMember) PutSystemMember(c *gin.Context) { } } + // 首单优惠价格 + if req.FirstTimePrice != nil { + if systemMember.FirstTimePrice == nil { + systemMemberData["first_time_price"] = req.FirstTimePrice + } else { + if *req.FirstTimePrice != *systemMember.FirstTimePrice { + systemMemberData["first_time_price"] = req.FirstTimePrice + } + } + } else { + if systemMember.FirstTimePrice != nil { + systemMemberData["first_time_price"] = nil + } + } + // 开始事务 tx := global.Db.Begin() defer func() { @@ -214,9 +229,10 @@ func (b *SystemMember) AddSystemMember(c *gin.Context) { }() systemMember := &model.SystemMember{ - MemberDays: req.MemberDays, - Price: req.Price, - DiscountPrice: req.DiscountPrice, + MemberDays: req.MemberDays, + Price: req.Price, + DiscountPrice: req.DiscountPrice, + FirstTimePrice: req.FirstTimePrice, } // 处理优惠截止时间 diff --git a/api/dto/SystemMember.go b/api/dto/SystemMember.go index c0989bb..191fce4 100644 --- a/api/dto/SystemMember.go +++ b/api/dto/SystemMember.go @@ -12,6 +12,7 @@ type SystemMemberDto struct { Price float64 `json:"price"` // 价格(原价) DiscountPrice *float64 `json:"discount_price"` // 优惠价格 DiscountEndTime *model.LocalTime `json:"discount_end_time"` // 优惠截止时间 + FirstTimePrice *float64 `json:"first_time_price"` // 首次购买价格 CreatedAt model.LocalTime `json:"created_at"` // 创建时间 UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 } @@ -29,6 +30,7 @@ func GetSystemMemberListDto(m []*model.SystemMember) []*SystemMemberDto { Price: v.Price, DiscountPrice: v.DiscountPrice, DiscountEndTime: v.DiscountEndTime, + FirstTimePrice: v.FirstTimePrice, CreatedAt: v.CreatedAt, UpdatedAt: v.UpdatedAt, } @@ -49,6 +51,7 @@ func GetSystemMemberDto(m *model.SystemMember) *SystemMemberDto { Price: m.Price, DiscountPrice: m.DiscountPrice, DiscountEndTime: m.DiscountEndTime, + FirstTimePrice: m.FirstTimePrice, CreatedAt: m.CreatedAt, UpdatedAt: m.UpdatedAt, } diff --git a/api/model/SystemMember.go b/api/model/SystemMember.go index 6718c04..50d017c 100644 --- a/api/model/SystemMember.go +++ b/api/model/SystemMember.go @@ -13,6 +13,7 @@ type SystemMember struct { Price float64 `gorm:"column:price;type:decimal(10,2);default:0.00;comment:价格(原价)" json:"price"` DiscountPrice *float64 `gorm:"column:discount_price;type:decimal(10,2);comment:优惠价格" json:"discount_price"` DiscountEndTime *LocalTime `gorm:"column:discount_end_time;type:datetime;comment:优惠截止时间" json:"discount_end_time"` + FirstTimePrice *float64 `gorm:"column:first_time_price;type:decimal(10,2);comment:首次购买价格" json:"first_time_price"` Model } diff --git a/api/requests/SystemMember.go b/api/requests/SystemMember.go index a4ec719..24b727b 100644 --- a/api/requests/SystemMember.go +++ b/api/requests/SystemMember.go @@ -11,6 +11,7 @@ type PutSystemMember struct { Price float64 `json:"price" form:"price" label:"价格(原价)" validate:"required,numeric,min=0"` DiscountPrice *float64 `json:"discount_price" form:"discount_price" label:"优惠价格" validate:"omitempty,numeric,min=0"` DiscountEndTime *string `json:"discount_end_time" form:"discount_end_time" label:"优惠截止时间"` + FirstTimePrice *float64 `json:"first_time_price" form:"first_time_price" label:"首次购买价格"` } // AddSystemMember 新增会员配置 @@ -19,4 +20,5 @@ type AddSystemMember struct { Price float64 `json:"price" form:"price" label:"价格(原价)" validate:"required,numeric,min=0"` DiscountPrice *float64 `json:"discount_price" form:"discount_price" label:"优惠价格" validate:"omitempty,numeric,min=0"` DiscountEndTime *string `json:"discount_end_time" form:"discount_end_time" label:"优惠截止时间"` + FirstTimePrice *float64 `json:"first_time_price" form:"first_time_price" label:"首次购买价格"` }