123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- package service
- // 根据投准率计算投准系数
- func (s *Service) voteRightRatio(vr float64) (vf float64) {
- switch {
- case vr >= 0.9:
- vf = float64(1.2)
- case vr >= 0.8 && vr < 0.9:
- vf = float64(1.1)
- case vr >= 0.7 && vr < 0.8:
- vf = float64(0.9)
- case vr >= 0.6 && vr < 0.7:
- vf = float64(0.6)
- case vr >= 0.5 && vr < 0.6:
- vf = float64(0.3)
- case vr >= 0.4 && vr < 0.5:
- vf = float64(0.1)
- default:
- vf = float64(0)
- }
- return
- }
- // 根据活跃天数计算活跃系数
- func (s *Service) activeDaysRatio(activeDays int64) (af float64) {
- switch {
- case activeDays >= 26:
- af = float64(1.3)
- case activeDays >= 21 && activeDays <= 25:
- af = float64(1.2)
- case activeDays >= 16 && activeDays <= 20:
- af = float64(1.1)
- case activeDays >= 11 && activeDays <= 15:
- af = float64(1.0)
- case activeDays >= 6 && activeDays <= 10:
- af = float64(0.9)
- case activeDays >= 1 && activeDays <= 5:
- af = float64(0.7)
- default:
- af = float64(0)
- }
- return
- }
- // 根据观点数量计算观点数量系数
- func (s *Service) opinionNumsRatio(opinionNums int64) (of float64) {
- switch {
- case opinionNums >= 31:
- of = 1.3
- case opinionNums >= 16 && opinionNums <= 30:
- of = 1.2
- case opinionNums >= 6 && opinionNums <= 15:
- of = 1.1
- case opinionNums >= 1 && opinionNums <= 5:
- of = 1
- default:
- of = 0.8
- }
- return
- }
- // 根据观点(赞-踩)数计算观点质量系数
- func (s *Service) opinionQualityRatio(opinionQuality int64) (oqf float64) {
- switch {
- case opinionQuality >= 16:
- oqf = 1.3
- case opinionQuality >= 6 && opinionQuality <= 15:
- oqf = 1.2
- case opinionQuality >= 1 && opinionQuality <= 5:
- oqf = 1.1
- case opinionQuality == 0:
- oqf = 1
- case opinionQuality >= -10 && opinionQuality <= -1:
- oqf = 0.8
- case opinionQuality >= -20 && opinionQuality <= -11:
- oqf = 0.7
- case opinionQuality <= -21:
- oqf = 0.5
- }
- return
- }
|