diff --git a/route/cp_r/anniversary.go b/route/cp_r/anniversary.go index e2f1febc971c3db0320b25b84828aade882d2701..5a147d50d35dfa525df1abc5a17a45d12c006ec0 100644 --- a/route/cp_r/anniversary.go +++ b/route/cp_r/anniversary.go @@ -13,6 +13,7 @@ import ( "hilo-user/req" "hilo-user/resp" "strconv" + "time" ) type PostPutAnniversaryReq struct { @@ -119,11 +120,15 @@ func PageAnniversary(c *gin.Context) (*mycontext.MyContext, error) { } anniversary := cp_m.GetAllCpAnniversary(model, userId) for _, v := range anniversary { + timestamp := v.Timestamp + if v.Type == cp_e.AnniversaryItemTypeAnniversary { + timestamp = calcNextAnniversary(timestamp) + } response = append(response, cp_cv.CvCpAnniversary{ Type: v.Type, Id: v.ID, Content: v.Content, - Timestamp: v.Timestamp, + Timestamp: timestamp, IsRemind: v.IsRemind, CanDel: true, IsTop: v.Sort > 0, @@ -133,6 +138,26 @@ func PageAnniversary(c *gin.Context) (*mycontext.MyContext, error) { return myCtx, nil } +// 计算下一个纪念日 +func calcNextAnniversary(timestamp int64) int64 { + now := time.Now() + birthday := time.Unix(timestamp, 0) + // 计算今年的生日日期 + thisYearBirthday := time.Date(now.Year(), birthday.Month(), birthday.Day(), 0, 0, 0, 0, time.Local) + + // 如果今年的生日还未到,则生日日期为今年的生日日期;否则为明年的生日日期 + var next time.Time + if thisYearBirthday.After(now) { + next = thisYearBirthday + } else { + next = thisYearBirthday.AddDate(1, 0, 0) + } + + // 计算时间戳 + nextTimestamp := next.Unix() + return nextTimestamp +} + // @Tags CP v2 // @Summary 获取纪念日 // @Param token header string true "token"