qqwife新增好感度列表功能 (#504)

This commit is contained in:
方柳煜
2022-11-23 16:39:32 +08:00
committed by GitHub
parent fb4259b696
commit 8eef7718ee
3 changed files with 113 additions and 0 deletions

View File

@@ -2,7 +2,9 @@ package qqwife
import (
"errors"
"sort"
"strconv"
"strings"
"sync"
"time"
@@ -343,6 +345,44 @@ func (sql *婚姻登记) getFavorability(uid, target int64) (favor int, err erro
return
}
// 获取好感度数据组
type favorList []favorability
func (s favorList) Len() int {
return len(s)
}
func (s favorList) Swap(i, j int) {
s[i], s[j] = s[j], s[i]
}
func (s favorList) Less(i, j int) bool {
return s[i].Favor > s[j].Favor
}
func (sql *婚姻登记) getGroupFavorability(uid int64) (list favorList, err error) {
uidStr := strconv.FormatInt(uid, 10)
sql.RLock()
defer sql.RUnlock()
info := favorability{}
err = sql.db.FindFor("favorability", &info, "where Userinfo glob '*"+uidStr+"*'", func() error {
var target string
userList := strings.Split(info.Userinfo, "+")
switch {
case len(userList) == 0:
return errors.New("好感度系统数据存在错误")
case userList[0] == uidStr:
target = userList[1]
default:
target = userList[0]
}
list = append(list, favorability{
Userinfo: target,
Favor: info.Favor,
})
return nil
})
sort.Sort(list)
return
}
// 设置好感度 正增负减
func (sql *婚姻登记) setFavorability(uid, target int64, score int) (favor int, err error) {
sql.Lock()