| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- package entity
- import (
- "github.com/shopspring/decimal"
- "gorm.io/gorm"
- )
- type SysLevelConfig struct {
- Level int `json:"level" gorm:"unique;comment:用户等级"`
- Icon string `json:"icon" gorm:"type:VARCHAR(255);comment:等级图标"`
- LevelName string `json:"levelName" gorm:"comment:等级名称"`
- PersonAchievement decimal.Decimal `json:"personAchievement" gorm:"type:decimal(25,8);default:0;comment:个人业绩要求"`
- TeamAchievement decimal.Decimal `json:"teamAchievement" gorm:"type:decimal(25,8);default:0;comment:团队业绩要求"`
- FewTeamAchievement decimal.Decimal `json:"fewTeamAchievement" gorm:"type:decimal(25,8);default:0;comment:小团队业绩要求"`
- StaticRatio decimal.Decimal `json:"staticRatio" gorm:"type:decimal(25,8);default:0;comment:总静态收益占比"`
- AvgRatio decimal.Decimal `json:"avgRatio" gorm:"type:decimal(25,8);default:0;comment:均分占比"`
- WeightedRatio decimal.Decimal `json:"weightedRatio" gorm:"type:decimal(25,8);default:0;comment:加权占比"`
- GiftLargeRegionAchievement decimal.Decimal `json:"giftLargeRegionAchievement" gorm:"type:decimal(25,8);default:0;comment:赠送大区业绩"`
- }
- func (*SysLevelConfig) TableName() string {
- return SysModelPrefix + "level_config"
- }
- func (*SysLevelConfig) Comment() string {
- return "用户等级配置"
- }
- func NewSysLevelConfig() *SysLevelConfig {
- return &SysLevelConfig{}
- }
- func (c *SysLevelConfig) DataInit(db *gorm.DB) error {
- list := []SysLevelConfig{
- {
- Level: 1,
- Icon: "",
- LevelName: "V1",
- PersonAchievement: decimal.NewFromFloat(100),
- TeamAchievement: decimal.NewFromFloat(5000),
- FewTeamAchievement: decimal.NewFromFloat(5000),
- StaticRatio: decimal.NewFromFloat(0.1),
- AvgRatio: decimal.NewFromFloat(0.2),
- WeightedRatio: decimal.NewFromFloat(0.8),
- },
- {
- Level: 2,
- Icon: "",
- LevelName: "V2",
- PersonAchievement: decimal.NewFromFloat(500),
- TeamAchievement: decimal.NewFromFloat(20000),
- FewTeamAchievement: decimal.NewFromFloat(20000),
- StaticRatio: decimal.NewFromFloat(0.1),
- AvgRatio: decimal.NewFromFloat(0.2),
- WeightedRatio: decimal.NewFromFloat(0.8),
- },
- {
- Level: 3,
- Icon: "",
- LevelName: "V3",
- PersonAchievement: decimal.NewFromFloat(1000),
- TeamAchievement: decimal.NewFromFloat(100000),
- FewTeamAchievement: decimal.NewFromFloat(100000),
- StaticRatio: decimal.NewFromFloat(0.15),
- AvgRatio: decimal.NewFromFloat(0.2),
- WeightedRatio: decimal.NewFromFloat(0.8),
- },
- {
- Level: 4,
- Icon: "",
- LevelName: "V4",
- PersonAchievement: decimal.NewFromFloat(2000),
- TeamAchievement: decimal.NewFromFloat(500000),
- FewTeamAchievement: decimal.NewFromFloat(500000),
- StaticRatio: decimal.NewFromFloat(0.15),
- AvgRatio: decimal.NewFromFloat(0.2),
- WeightedRatio: decimal.NewFromFloat(0.8),
- },
- {
- Level: 5,
- Icon: "",
- LevelName: "V5",
- PersonAchievement: decimal.NewFromFloat(4000),
- TeamAchievement: decimal.NewFromFloat(2000000),
- FewTeamAchievement: decimal.NewFromFloat(2000000),
- StaticRatio: decimal.NewFromFloat(0.1),
- AvgRatio: decimal.NewFromFloat(0.2),
- WeightedRatio: decimal.NewFromFloat(0.8),
- },
- {
- Level: 6,
- Icon: "",
- LevelName: "V6",
- PersonAchievement: decimal.NewFromFloat(8000),
- TeamAchievement: decimal.NewFromFloat(6000000),
- FewTeamAchievement: decimal.NewFromFloat(6000000),
- StaticRatio: decimal.NewFromFloat(0.1),
- AvgRatio: decimal.NewFromFloat(0.2),
- WeightedRatio: decimal.NewFromFloat(0.8),
- },
- }
- for _, row := range list {
- find := &SysLevelConfig{}
- if stat := db.Model(&SysLevelConfig{}).Where("level = ?", row.Level).
- Find(&find).Statement; stat.RowsAffected == 0 {
- if err := db.Create(&row).Error; err != nil {
- return err
- }
- }
- }
- return nil
- }
|