package notify import ( "encoding/json" "nCovTrack-Backend/global" "nCovTrack-Backend/models" "strconv" ) const ( NOTIFY_KEY = "notification_" NOTIFY_DEL_VALUE = "notify_del" ) func InsertNotification(userId int, notification models.BackNotification) { key := NOTIFY_KEY + strconv.Itoa(userId) valueStr, _ := json.Marshal(notification) global.Redis.RPush(key, valueStr) } func DeleteNotification(userId int, index int) { key := NOTIFY_KEY + strconv.Itoa(userId) pipe := global.Redis.TxPipeline() pipe.LSet(key, int64(index), NOTIFY_DEL_VALUE) pipe.LRem(key, 2, NOTIFY_DEL_VALUE) pipe.Exec() } func QueryNotificationLen(userId int) int { key := NOTIFY_KEY + strconv.Itoa(userId) return int(global.Redis.LLen(key).Val()) } func ListNotifycation(userId int, start, end int) []models.BackNotification { key := NOTIFY_KEY + strconv.Itoa(userId) var notifications []models.BackNotification notificationStrArr := global.Redis.LRange(key, int64(start), int64(end)).Val() for _, notificationStr := range notificationStrArr { var notification models.BackNotification json.Unmarshal([]byte(notificationStr), ¬ification) notifications = append(notifications, notification) } return notifications }