1.营销管理-优惠券列表接口优化,优惠券金额/100;

2.增加2个定时任务,检测更新用户优惠券过期时间和优惠券活动结束时间;
This commit is contained in:
chenlin 2024-12-23 18:19:51 +08:00
parent 6725fc0a1f
commit 1025336d2a
2 changed files with 52 additions and 0 deletions

View File

@ -239,6 +239,10 @@ func (m *ErpMarketingCouponListReq) List() (*ErpMarketingCouponListResp, error)
return resp, err return resp, err
} }
for i, v := range couponList {
couponList[i].Amount = v.Amount / 100
}
resp.List = couponList resp.List = couponList
return resp, nil return resp, nil
@ -1047,3 +1051,39 @@ func WXGenerateScheme(req *GenerateSchemeReq) (*GenerateSchemeResp, error) {
} }
return &resp, nil return &resp, nil
} }
// UpdateErpCouponState 每天凌晨00:45更新营销管理优惠券发放状态
func UpdateErpCouponState() {
now := time.Now()
// 更新符合条件的优惠券的状态
err := orm.Eloquent.Table("erp_coupon").
Where("state = ? AND start_time IS NOT NULL AND DATE_ADD(start_time, INTERVAL active_date DAY) < ?", 3, now).
Updates(map[string]interface{}{
"state": 4,
"updated_at": now,
}).Error
if err != nil {
logger.Errorf("Failed to update ErpCoupon state: %v", err)
return
}
logger.Info("Successfully updated ErpCoupon state")
}
// UpdateUserCoupon 每天凌晨00:30更新用户优惠券
func UpdateUserCoupon() {
now := time.Now()
// 直接更新过期的优惠券状态
err := orm.Eloquent.Table("user_coupon").Where("state = ? AND active_end < ?", 1, now).
Updates(map[string]interface{}{
"state": 3,
"updated_at": now,
}).Error
if err != nil {
logger.Errorf("Failed to update expired user coupons: %v", err)
return
}
logger.Info("Successfully updated expired user coupons")
}

View File

@ -195,6 +195,18 @@ func run() error {
fmt.Println("err:", err) fmt.Println("err:", err)
} }
// 每天凌晨00:30更新用户优惠券
err = s.Every(1).Day().At("00:30").Do(models.UpdateUserCoupon)
if err != nil {
fmt.Println("err:", err)
}
// 每天凌晨00:45更新营销管理优惠券发放状态
err = s.Every(1).Day().At("00:45").Do(models.UpdateErpCouponState)
if err != nil {
fmt.Println("err:", err)
}
<-s.Start() <-s.Start()
}() }()