package lzUtils import ( "database/sql" "time" ) // RenewMembership 延长会员有效期 // 规则:如果旧到期时间还没过,在旧到期时间上续1年;如果已过期或为空,从当前时间起算1年 func RenewMembership(expiry sql.NullTime) sql.NullTime { now := time.Now() var baseTime time.Time if expiry.Valid && expiry.Time.After(now) { // 未过期 → 在旧到期时间上续1年 baseTime = expiry.Time } else { // 已过期或为空 → 从现在开始算1年 baseTime = now } // 增加一年(自动处理闰年) newTime := baseTime.AddDate(1, 0, 0) return sql.NullTime{ Time: newTime, Valid: true, } }