package cp_m import ( "git.hilo.cn/hilo-common/domain" "git.hilo.cn/hilo-common/resource/mysql" "hilo-user/_const/enum/cp_e" "time" ) // CpAnniversary cp纪念日 type CpAnniversary struct { mysql.Entity CpId mysql.ID Type cp_e.AnniversaryItemType UserId1 mysql.ID UserId2 mysql.ID Content string Timestamp int64 IsRemind bool Reminded mysql.YesNo Sort int } // 添加cp纪念日 func AddCpAnniversary(model *domain.Model, cp CpRelationTmp, content string, ts int64, isRemind bool) error { return model.DB().Model(CpAnniversary{}).Create(&CpAnniversary{ CpId: cp.ID, UserId1: cp.UserId1, UserId2: cp.UserId2, Content: content, Timestamp: ts, IsRemind: isRemind, Reminded: mysql.NO, }).Error } // 更新cp纪念日 func UpdateCpAnniversary(model *domain.Model, id mysql.ID, content string, ts int64, isRemind bool) error { updates := map[string]interface{}{ "content": content, "timestamp": ts, "is_remind": isRemind, } return model.DB().Model(CpAnniversary{}).Where("id = ?", id).Updates(updates).Error } func DelCpAnniversary(model *domain.Model, id mysql.ID) error { return model.DB().Model(CpAnniversary{}).Where("id = ? ", id).Delete(&CpAnniversary{}).Error } // 根据用户id获取所有纪念日 func GetAllCpAnniversary(model *domain.Model, userId mysql.ID) []CpAnniversary { var res []CpAnniversary relation, exists := GetCpRelation(model, userId) if !exists { return res } if err := model.DB().Model(CpAnniversary{}).Where("cp_id = ?", relation.ID).Order("`sort` DESC,updated_time DESC").Find(&res).Error; err != nil { model.Log.Errorf("GetAllCpAnniversary fail:%v", err) } return res } // 获取所有需要提醒的纪念日 func GetNeedRemindCpAnniversary(model *domain.Model) []CpAnniversary { var res []CpAnniversary if err := model.DB().Model(CpAnniversary{}). Where("`timestamp` > ?", time.Now().Unix()). Where("is_remind = 1"). Where("reminded = ?", mysql.NO). Find(&res).Error; err != nil { model.Log.Errorf("GetNeedRemindCpAnniversary fail:%v", err) } return res } func UpdateCpAnniversaryReminded(model *domain.Model, id mysql.ID) error { return model.DB().Model(CpAnniversary{}).Where("id = ?", id).Update("reminded", mysql.YES).Error }