package user_m import ( "gorm.io/gorm" "hilo-user/_const/enum/match_e" "hilo-user/domain" "hilo-user/myerr" "hilo-user/resource/mysql" ) /** * 用户财富分数 **/ type MatchWealthUserScore struct { mysql.Entity *domain.Model `gorm:"-"` UserId mysql.ID Score mysql.Num Grade mysql.Num } /** * 获取的分数同等级关系 **/ type MatchWealthSetScoreGrade struct { mysql.Entity *domain.Model `gorm:"-"` MinNum mysql.Num MaxNum mysql.Num Grade mysql.Num } type MatchWealthUserScoreDetail struct { mysql.Entity MatchWealthUserScoreId mysql.ID UserId mysql.ID BeforeScore mysql.Num Score mysql.Num AfterScore mysql.Num Type match_e.MatchWealthUserScoreDetailType OrginId mysql.ID } func addMatchWealthUserScoreDetail(model *domain.Model, matchWealthUserScoreId mysql.ID, userId mysql.ID, beforeScore mysql.Num, score mysql.Num, t match_e.MatchWealthUserScoreDetailType, orginId mysql.ID) error { if err := model.Db.Save(&MatchWealthUserScoreDetail{ MatchWealthUserScoreId: matchWealthUserScoreId, UserId: userId, BeforeScore: beforeScore, Score: score, AfterScore: beforeScore + score, Type: t, OrginId: orginId, }).Error; err != nil { return myerr.WrapErr(err) } return nil } //获取财富等级 func GetWealthGrade(model *domain.Model, userId mysql.ID) (uint32, uint32, error) { var wealthUserScore MatchWealthUserScore if err := model.Db.Model(&MatchWealthUserScore{}).Where(&MatchWealthUserScore{UserId: userId}).First(&wealthUserScore).Error; err != nil { if err == gorm.ErrRecordNotFound { return 0, 0, nil } else { return 0, 0, myerr.WrapErr(err) } } return wealthUserScore.Grade, wealthUserScore.Score, nil }