package user_m import ( "gorm.io/gorm" "hilo-user/_const/enum/match_e" "hilo-user/domain" "hilo-user/myerr" "hilo-user/resource/mysql" ) /** * 用户魅力分数 **/ type MatchCharmUserScore struct { mysql.Entity *domain.Model `gorm:"-"` UserId mysql.ID Score mysql.Num Grade mysql.Num } //获取魅力等级 func GetCharmGrade(model *domain.Model, userId mysql.ID) (uint32, uint32, error) { var charmUserScore MatchCharmUserScore if err := model.Db.Model(&MatchCharmUserScore{}).Where(&MatchCharmUserScore{ UserId: userId, }).First(&charmUserScore).Error; err != nil { if err == gorm.ErrRecordNotFound { return 0, 0, nil } else { return 0, 0, myerr.WrapErr(err) } } return charmUserScore.Grade, charmUserScore.Score, nil } type MatchCharmUserScoreDetail struct { mysql.Entity MatchCharmUserScoreId mysql.ID UserId mysql.ID BeforeScore mysql.Num Score mysql.Num AfterScore mysql.Num Type match_e.MatchCharmUserScoreDetailType OrginId mysql.ID } func addMatchCharmUserScoreDetail(model *domain.Model, matchCharmUserScoreId mysql.ID, userId mysql.ID, beforeScore mysql.Num, score mysql.Num, t match_e.MatchCharmUserScoreDetailType, orginId mysql.ID) error { if err := model.Db.Save(&MatchCharmUserScoreDetail{ MatchCharmUserScoreId: matchCharmUserScoreId, UserId: userId, BeforeScore: beforeScore, Score: score, AfterScore: beforeScore + score, Type: t, OrginId: orginId, }).Error; err != nil { return myerr.WrapErr(err) } return nil } /** * 获取的分数同等级关系 **/ type MatchCharmSetScoreGrade struct { mysql.Entity *domain.Model `gorm:"-"` MinNum mysql.Num MaxNum mysql.Num Grade mysql.Num }