anniversary.go 2.18 KB
Newer Older
hujiebin's avatar
hujiebin committed
1 2 3 4 5
package cp_m

import (
	"git.hilo.cn/hilo-common/domain"
	"git.hilo.cn/hilo-common/resource/mysql"
hujiebin's avatar
hujiebin committed
6
	"time"
hujiebin's avatar
hujiebin committed
7 8 9 10 11 12 13 14 15 16 17 18
)

// CpAnniversary  cp纪念日
type CpAnniversary struct {
	mysql.Entity
	CpId     mysql.ID
	UserId1  mysql.ID
	UserId2  mysql.ID
	Content  string
	Date     string
	Timezone string
	IsRemind bool
hujiebin's avatar
hujiebin committed
19
	Reminded mysql.YesNo
hujiebin's avatar
hujiebin committed
20 21 22 23 24 25 26 27 28 29 30 31
}

// 添加cp纪念日
func AddCpAnniversary(model *domain.Model, cp CpRelationTmp, content, date, tz string, isRemind bool) error {
	return model.DB().Model(CpAnniversary{}).Create(&CpAnniversary{
		CpId:     cp.ID,
		UserId1:  cp.UserId1,
		UserId2:  cp.UserId2,
		Content:  content,
		Date:     date,
		Timezone: tz,
		IsRemind: isRemind,
hujiebin's avatar
hujiebin committed
32
		Reminded: mysql.NO,
hujiebin's avatar
hujiebin committed
33 34 35 36 37 38 39 40
	}).Error
}

// 更新cp纪念日
func UpdateCpAnniversary(model *domain.Model, id mysql.ID, content, date, tz string, isRemind bool) error {
	updates := map[string]interface{}{
		"content":   content,
		"date":      date,
hujiebin's avatar
hujiebin committed
41
		"timezone":  tz,
hujiebin's avatar
hujiebin committed
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
		"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("id").Find(&res).Error; err != nil {
		model.Log.Errorf("GetAllCpAnniversary fail:%v", err)
	}
	return res
}
hujiebin's avatar
hujiebin committed
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80

// 获取所有需要提醒的纪念日
func GetNeedRemindCpAnniversary(model *domain.Model) []CpAnniversary {
	var res []CpAnniversary
	date := time.Now().Format("2006-01-02")
	if err := model.DB().Model(CpAnniversary{}).
		Where("`date` = ?", date).
		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
}