From 1025336d2a9ed77b757e3ccb8f4b941de5509cc1 Mon Sep 17 00:00:00 2001 From: chenlin Date: Mon, 23 Dec 2024 18:19:51 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=90=A5=E9=94=80=E7=AE=A1=E7=90=86-?= =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=8C=E4=BC=98=E6=83=A0=E5=88=B8=E9=87=91?= =?UTF-8?q?=E9=A2=9D/100=EF=BC=9B=202.=E5=A2=9E=E5=8A=A02=E4=B8=AA?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=EF=BC=8C=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7=E4=BC=98=E6=83=A0=E5=88=B8?= =?UTF-8?q?=E8=BF=87=E6=9C=9F=E6=97=B6=E9=97=B4=E5=92=8C=E4=BC=98=E6=83=A0?= =?UTF-8?q?=E5=88=B8=E6=B4=BB=E5=8A=A8=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/models/marketing.go | 40 +++++++++++++++++++++++++++++++++++ cmd/api/server.go | 12 +++++++++++ 2 files changed, 52 insertions(+) diff --git a/app/admin/models/marketing.go b/app/admin/models/marketing.go index 22c991d..da5d711 100644 --- a/app/admin/models/marketing.go +++ b/app/admin/models/marketing.go @@ -239,6 +239,10 @@ func (m *ErpMarketingCouponListReq) List() (*ErpMarketingCouponListResp, error) return resp, err } + for i, v := range couponList { + couponList[i].Amount = v.Amount / 100 + } + resp.List = couponList return resp, nil @@ -1047,3 +1051,39 @@ func WXGenerateScheme(req *GenerateSchemeReq) (*GenerateSchemeResp, error) { } 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") +} diff --git a/cmd/api/server.go b/cmd/api/server.go index 7625989..06847f1 100644 --- a/cmd/api/server.go +++ b/cmd/api/server.go @@ -195,6 +195,18 @@ func run() error { 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() }()