From 278606b5e7e6f3af1548710ee5bb3d528c59e147 Mon Sep 17 00:00:00 2001 From: "jiaji.H" Date: Tue, 20 Jan 2026 15:05:19 +0800 Subject: [PATCH] =?UTF-8?q?Updata=EF=BC=9A=E4=BF=AE=E6=94=B9=E5=AD=A3?= =?UTF-8?q?=E5=BA=A6=E5=8F=91=E6=94=BE=E4=BD=99=E9=87=8F=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/dao/bundleExtend.go | 9 ++------- internal/dao/bundleMetrics.go | 9 ++------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/internal/dao/bundleExtend.go b/internal/dao/bundleExtend.go index 5626473..fd9001b 100644 --- a/internal/dao/bundleExtend.go +++ b/internal/dao/bundleExtend.go @@ -697,19 +697,14 @@ inner join ( qua := func(total, limit int) int { var released int // 已释放的次数 if v.StartAt.Month() == now.Month() && v.StartAt.Year() == now.Year() { - } else if v.StartAt.Day() >= 16 { //第一个月释放的 - released += (limit + 1) / 2 } else { released += limit } interval := max((now.Year()*12+int(now.Month())-(v.StartAt.Year()*12+int(v.StartAt.Month())))/3, 1) // 释放了多少个季度 released += max(interval-1, 0) * limit // 已经释放的数量 remaining := max(total-released, 0) // 还剩余多少次没有发放 - if v.StartAt.Month() == now.Month() && v.StartAt.Year() == now.Year() && v.StartAt.Day() >= 16 { // 本月为第一个月并且16号后购买只给一半(向上取整) - return min((limit+1)/2, remaining) - } - if v.ExpiredAt.Month() == now.Month() && v.ExpiredAt.Year() == now.Year() && v.ExpiredAt.Day() < 16 { // 本月为最后一个季度第一个月并且16号前到期只给一半(向下取整) - return min(limit/2, remaining) + if v.StartAt.Month() == now.Month() && v.StartAt.Year() == now.Year() { // 本月为第一个月后购买 + return min(limit, remaining) } monthDiff := now.Year()*12 + int(now.Month()) - (v.StartAt.Year()*12 + int(v.StartAt.Month())) if monthDiff%3 == 0 && v.ExpiredAt.Month() != now.Month() { diff --git a/internal/dao/bundleMetrics.go b/internal/dao/bundleMetrics.go index 4a6ffc7..8724243 100644 --- a/internal/dao/bundleMetrics.go +++ b/internal/dao/bundleMetrics.go @@ -1727,19 +1727,14 @@ func cal(data model.BundleBalance, total, limit int, date time.Time) int { func qua(data model.BundleBalance, total, limit int, date time.Time) int { var released int // 已释放的次数 if data.StartAt.Month() == date.Month() && data.StartAt.Year() == date.Year() { - } else if data.StartAt.Day() >= 16 { //第一个月释放的 - released += (limit + 1) / 2 } else { released += limit } interval := max((date.Year()*12+int(date.Month())-(data.StartAt.Year()*12+int(data.StartAt.Month())))/3, 1) // 释放了多少个季度 released += max(interval-1, 0) * limit // 已经释放的数量 remaining := max(total-released, 0) // 还剩余多少次没有发放 - if data.StartAt.Month() == date.Month() && data.StartAt.Year() == date.Year() && data.StartAt.Day() >= 16 { // 本月为第一个月并且16号后购买只给一半(向上取整) - return min((limit+1)/2, remaining) - } - if data.ExpiredAt.Month() == date.Month() && data.ExpiredAt.Year() == date.Year() && data.ExpiredAt.Day() < 16 { // 本月为最后一个季度第一个月并且16号前到期只给一半(向下取整) - return min(limit/2, remaining) + if data.StartAt.Month() == date.Month() && data.StartAt.Year() == date.Year() { // 本月为第一个月购买 + return min(limit, remaining) } monthDiff := date.Year()*12 + int(date.Month()) - (data.StartAt.Year()*12 + int(data.StartAt.Month())) if monthDiff%3 == 0 && data.ExpiredAt.Month() != date.Month() {