package user import ( "github.com/golangkit/formatime" "live/app/lib/db" ) type UserTrendPraise struct { db.BaseModel Id uint `gorm:"column:id" json:"id"` UserId uint `gorm:"column:user_id" json:"userId"` TrendId uint `gorm:"column:trend_id" json:"trendId"` IsDel int `gorm:"column:is_del" json:"isDel"` CreatedAt formatime.Second `gorm:"column:created_at" json:"createdAt"` UpdatedAt formatime.Second `gorm:"column:updated_at" json:"updatedAt"` } // 插入 func (u *UserTrendPraise) Create(userTrendPraise *UserTrendPraise) uint { u.GetDb().Create(userTrendPraise) if userTrendPraise.Id > 0 { return userTrendPraise.Id } return 0 } // @Title 会员新增赞 func (u *UserTrendPraise) AddPraise(userId, trendId uint) uint { if userId <= 0 || trendId <= 0 { return 0 } result := &UserTrendPraise{ UserId: userId, TrendId: trendId, } u.GetDb().Create(result) return result.Id } // @Title 会员取消赞 func (u *UserTrendPraise) CancelPraise(userId, trendId uint) int64 { if userId <= 0 || trendId <= 0 { return 0 } return u.GetDb().Model(u).Where(&UserTrendPraise{UserId: userId, TrendId: trendId}).Update("is_del", 1).RowsAffected } // @Title 重新点赞 func (u *UserTrendPraise) RenewPraise(userId, trendId uint) int64 { if userId <= 0 || trendId <= 0 { return 0 } return u.GetDb().Model(u).Where(&UserTrendPraise{UserId: userId, TrendId: trendId}). Where("is_del = ?", 1).Update("is_Del", 0).RowsAffected } // @Title 根据TrendIds批量获取数据 func (u *UserTrendPraise) GetPraiseByTrendIds(trendIds []uint) (result []UserTrendPraise) { if len(trendIds) == 0 { return } u.GetDb().Model(u).Find(&result, "trend_id in (?) and is_del = ? ", trendIds, 0) return } // @Title 根据trendIds批量获取会员数据 func (u *UserTrendPraise) GetPraiseByUserIdAndTrendIds(userId uint, trendIds []uint) (result []UserTrendPraise) { if userId <= 0 || len(trendIds) == 0 { return } u.GetDb().Model(u).Find(&result, "user_id = ? and trend_id in (?) and is_del = ? ", userId, trendIds, 0) return } // @Title 根据trendId获取会员数据 func (u *UserTrendPraise) GetPraiseByUserIdAndTrendId(userId uint, trendId uint) (result UserTrendPraise) { if userId <= 0 || trendId <= 0 { return } u.GetDb().Model(u).Find(&result, "user_id = ? and trend_id = ?", userId, trendId, 0) return }