diff --git a/app/admin/models/marketing.go b/app/admin/models/marketing.go index 9d23fa5..31555c4 100644 --- a/app/admin/models/marketing.go +++ b/app/admin/models/marketing.go @@ -458,7 +458,7 @@ func StartCouponIssuanceTask(req *ErpMarketingCouponStartReq, taskList []CouponI } // 发放优惠券 - err = issueCouponsToUsers(users, req.ErpCouponId) + count, err := issueCouponsToUsers(users, req.ErpCouponId) if err != nil { log.Printf("发放优惠券失败: %v", err) return err @@ -466,7 +466,7 @@ func StartCouponIssuanceTask(req *ErpMarketingCouponStartReq, taskList []CouponI // 更新任务进度:记录处理到的最后一个用户ID lastUserID = users[len(users)-1].ID - nTotalCount += len(users) + nTotalCount += count //err = updateTaskProgress(req.ErpCouponId, lastUserID, err.Error()) //if err != nil { // log.Printf("更新任务进度失败: %v", err) @@ -626,14 +626,15 @@ func isEligibleForCoupon(user UserInfo, erpCoupon ErpCoupon) bool { } } -func issueCouponsToUsers(users []UserInfo, erpCouponId []uint32) error { +func issueCouponsToUsers(users []UserInfo, erpCouponId []uint32) (int, error) { var erpCoupon []ErpCoupon err := orm.Eloquent.Table("erp_coupon").Where("id in ?", erpCouponId).Find(&erpCoupon).Error if err != nil || err == RecordNotFound { logger.Error("query erp_coupon err:", logger.Field("err", err)) - return err + return 0, err } + var nSendCount int for _, user := range users { // 根据条件发放优惠券 if isEligibleForCoupon(user, erpCoupon[0]) { @@ -642,7 +643,7 @@ func issueCouponsToUsers(users []UserInfo, erpCouponId []uint32) error { err = orm.Eloquent.Table("coupon").Where("erp_coupon_id in ?", erpCouponId).Find(&coupons).Error if err != nil { logger.Error("query coupon err:", logger.Field("err", err)) - return err + return 0, err } for _, coupon := range coupons { @@ -669,7 +670,7 @@ func issueCouponsToUsers(users []UserInfo, erpCouponId []uint32) error { if err != nil { log.Printf("更新任务进度失败: %v", err) } - return err + return 0, err } } @@ -708,9 +709,11 @@ func issueCouponsToUsers(users []UserInfo, erpCouponId []uint32) error { logger.Error(err.Error()) } } + + nSendCount++ } } - return nil + return nSendCount, nil } func ComposeSMSContent(content string) string {