|
@@ -11,7 +11,6 @@ import (
|
|
"strings"
|
|
"strings"
|
|
"time"
|
|
"time"
|
|
|
|
|
|
- "github.com/go-redis/redis/v8"
|
|
|
|
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
|
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
|
|
"github.com/shopspring/decimal"
|
|
"github.com/shopspring/decimal"
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/sirupsen/logrus"
|
|
@@ -20,8 +19,11 @@ import (
|
|
"gogs.daxia.dev/huanan/pkg.daxia.dev/encrypt"
|
|
"gogs.daxia.dev/huanan/pkg.daxia.dev/encrypt"
|
|
"gogs.daxia.dev/huanan/pkg.daxia.dev/event2"
|
|
"gogs.daxia.dev/huanan/pkg.daxia.dev/event2"
|
|
"gogs.daxia.dev/huanan/pkg.daxia.dev/guid"
|
|
"gogs.daxia.dev/huanan/pkg.daxia.dev/guid"
|
|
|
|
+ "gogs.daxia.dev/huanan/pkg.daxia.dev/parse"
|
|
"gogs.daxia.dev/huanan/pkg.daxia.dev/rdb"
|
|
"gogs.daxia.dev/huanan/pkg.daxia.dev/rdb"
|
|
"gogs.daxia.dev/huanan/pkg.daxia.dev/time_utils"
|
|
"gogs.daxia.dev/huanan/pkg.daxia.dev/time_utils"
|
|
|
|
+ "gogs.daxia.dev/huanan/pkg.daxia.dev/webutils"
|
|
|
|
+ "gorm.io/gorm/utils"
|
|
"nn.daxia.dev/gameproto"
|
|
"nn.daxia.dev/gameproto"
|
|
"nn.daxia.dev/handler/qznn"
|
|
"nn.daxia.dev/handler/qznn"
|
|
"nn.daxia.dev/model"
|
|
"nn.daxia.dev/model"
|
|
@@ -51,21 +53,30 @@ func onUpdate(e event2.Event[tgbotapi.Update]) error {
|
|
|
|
|
|
update := e.Data()
|
|
update := e.Data()
|
|
|
|
|
|
|
|
+ if update.InlineQuery != nil || update.ChosenInlineResult != nil {
|
|
|
|
+ handleInlineQuery(update)
|
|
|
|
+ }
|
|
|
|
+
|
|
if update.Message != nil {
|
|
if update.Message != nil {
|
|
handlerMsg(update)
|
|
handlerMsg(update)
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
- if update.InlineQuery != nil || update.ChosenInlineResult != nil {
|
|
|
|
- handleInlineQuery(update)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
if update.CallbackQuery == nil {
|
|
if update.CallbackQuery == nil {
|
|
logrus.Info("CallbackQuery is null")
|
|
logrus.Info("CallbackQuery is null")
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
fmt.Println("InlineMessageID", update.CallbackQuery.InlineMessageID)
|
|
fmt.Println("InlineMessageID", update.CallbackQuery.InlineMessageID)
|
|
|
|
+ pid := ""
|
|
|
|
+ if update.CallbackQuery.InlineMessageID != "" {
|
|
|
|
+ result, err := rdb.GetRDB().Get(context.Background(), "qznn_inline_msg_"+update.CallbackQuery.InlineMessageID).Result()
|
|
|
|
+ if err == nil {
|
|
|
|
+ pid = result
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ logrus.Infof("msgID:%s, pid:%s", update.CallbackQuery.InlineMessageID, pid)
|
|
|
|
+ }
|
|
|
|
|
|
tgID := update.CallbackQuery.From.ID
|
|
tgID := update.CallbackQuery.From.ID
|
|
gameUserMapModel := model.GameUserMap{}
|
|
gameUserMapModel := model.GameUserMap{}
|
|
@@ -78,6 +89,62 @@ func onUpdate(e event2.Event[tgbotapi.Update]) error {
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if pid != "" {
|
|
|
|
+ func() {
|
|
|
|
+ var err error
|
|
|
|
+
|
|
|
|
+ parentUserModel := model.User{}
|
|
|
|
+ err = parentUserModel.GetUserByID(uint32(parse.StringToInt(pid)))
|
|
|
|
+ if err != nil {
|
|
|
|
+ logrus.Error(err)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ subUserInfo := model.User{}
|
|
|
|
+ err = parentUserModel.GetUserByID(uint32(gameUserMapModel.UserID))
|
|
|
|
+ if err != nil {
|
|
|
|
+ logrus.Error(err)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if subUserInfo.Pid != 20 {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ fmt.Println(subUserInfo.Mobile)
|
|
|
|
+
|
|
|
|
+ //防止自己移动到自己
|
|
|
|
+ if subUserInfo.ID == parentUserModel.ID {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ pIDtreeList := strings.Split(parentUserModel.ParentTreeStr, "/")
|
|
|
|
+ if !utils.Contains(pIDtreeList, "taiyang") {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if utils.Contains(pIDtreeList, subUserInfo.Name) {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ fmt.Println(subUserInfo.Mobile, subUserInfo.Pid)
|
|
|
|
+
|
|
|
|
+ if gameUserMapModel.CreatedAt.After(time.Now().Add(-1*time.Hour)) && subUserInfo.Token != "" {
|
|
|
|
+ reqUrl := fmt.Sprintf("https://47.75.110.209:88/api/user/set_info?pid=%d&resetrate=1", parentUserModel.ID)
|
|
|
|
+ headers := map[string]string{
|
|
|
|
+ "authorization": "bearer " + subUserInfo.Token,
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ respData, err := webutils.PostWithHeader(reqUrl, "", headers, time.Second*5)
|
|
|
|
+ if err != nil {
|
|
|
|
+ logrus.Error(err, " token:", subUserInfo.Token)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ fmt.Println(string(respData), subUserInfo.Mobile, "==>", parentUserModel.ID, " toke:", subUserInfo.Token)
|
|
|
|
+ }
|
|
|
|
+ }()
|
|
|
|
+ }
|
|
|
|
+
|
|
token, err := RefreshTokenByUserID(gameUserMapModel.UserID)
|
|
token, err := RefreshTokenByUserID(gameUserMapModel.UserID)
|
|
if err != nil {
|
|
if err != nil {
|
|
logrus.Error(err)
|
|
logrus.Error(err)
|
|
@@ -105,11 +172,23 @@ func onUpdate(e event2.Event[tgbotapi.Update]) error {
|
|
|
|
|
|
func handleInlineQuery(update tgbotapi.Update) error {
|
|
func handleInlineQuery(update tgbotapi.Update) error {
|
|
if update.ChosenInlineResult != nil {
|
|
if update.ChosenInlineResult != nil {
|
|
- fmt.Println("InlineMessageID:", update.ChosenInlineResult.InlineMessageID)
|
|
|
|
|
|
+ logrus.Infof("handleInlineQuery:%s", update.ChosenInlineResult.InlineMessageID)
|
|
|
|
+
|
|
|
|
+ if update.ChosenInlineResult.From != nil {
|
|
|
|
+ fromIDStr := fmt.Sprintf("%d", update.ChosenInlineResult.From.ID)
|
|
|
|
+ logrus.Infof("handleInlineQuery, msgID:%s, userID:%s", update.ChosenInlineResult.InlineMessageID, fromIDStr)
|
|
|
|
+
|
|
|
|
+ _, err := rdb.GetRDB().Set(context.Background(), "qznn_inline_msg_"+update.ChosenInlineResult.InlineMessageID, fromIDStr, time.Hour*24*30).Result()
|
|
|
|
+ if err != nil {
|
|
|
|
+ logrus.Error(err)
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
- btnList := GetGameReplyMarkupSimple()
|
|
|
|
|
|
+ btnList := GetGameReplyMarkupShare("抢庄牛牛游戏")
|
|
|
|
|
|
queryStr := update.InlineQuery.Query
|
|
queryStr := update.InlineQuery.Query
|
|
|
|
|
|
@@ -161,7 +240,7 @@ func handlerMsg(update tgbotapi.Update) error {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if cmdMsg == "mylevel" || cmdMsg == "我的排行" || cmdMsg == "/wdph@fllqznnbot" || cmdMsg == "ye" || cmdMsg == "/ye@fllqznnbot" {
|
|
|
|
|
|
+ if cmdMsg == "mylevel" || cmdMsg == "我的排行" || cmdMsg == "/wdph@fllqznnbot" || cmdMsg == "🏅我的排行" || cmdMsg == "ye" || cmdMsg == "/ye@fllqznnbot" {
|
|
|
|
|
|
gameUserMapModel := model.GameUserMap{}
|
|
gameUserMapModel := model.GameUserMap{}
|
|
err = db.GetDB().Table("game_user_map").
|
|
err = db.GetDB().Table("game_user_map").
|
|
@@ -224,10 +303,17 @@ func handlerMsg(update tgbotapi.Update) error {
|
|
msg = myIndex
|
|
msg = myIndex
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ tdayExchangeMap, err := GetTodayExchangeMap()
|
|
|
|
+ if err != nil {
|
|
|
|
+ logrus.Error(err)
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
textMsg := `ID: ` + userModel.Mobile + `
|
|
textMsg := `ID: ` + userModel.Mobile + `
|
|
用户名: ` + userModel.Nickname + `
|
|
用户名: ` + userModel.Nickname + `
|
|
` + fieldName + `: ` + msg + "(" + data.MyCredistLeaderBoard.TotalAmount + ")" + `
|
|
` + fieldName + `: ` + msg + "(" + data.MyCredistLeaderBoard.TotalAmount + ")" + `
|
|
积分: ` + userModel.Credits.StringFixed(2) + `
|
|
积分: ` + userModel.Credits.StringFixed(2) + `
|
|
|
|
+今天已兑换: ` + tdayExchangeMap[int32(userModel.ID)].StringFixed(2) + "u" + `
|
|
余额: ` + fmt.Sprintf("%.2f", respData.Data.Balance) + `
|
|
余额: ` + fmt.Sprintf("%.2f", respData.Data.Balance) + `
|
|
今日流水: ` + fmt.Sprintf("%.2f", respData.Data.Amount) + `
|
|
今日流水: ` + fmt.Sprintf("%.2f", respData.Data.Amount) + `
|
|
今日输赢: ` + fmt.Sprintf("%.2f", respData.Data.LoseWin) + `
|
|
今日输赢: ` + fmt.Sprintf("%.2f", respData.Data.LoseWin) + `
|
|
@@ -262,7 +348,7 @@ func handlerMsg(update tgbotapi.Update) error {
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
- if cmdMsg == "phb" || cmdMsg == "排行榜" || cmdMsg == "/phb@fllqznnbot" {
|
|
|
|
|
|
+ if cmdMsg == "phb" || cmdMsg == "排行榜" || cmdMsg == "🏆排行榜" || cmdMsg == "/phb@fllqznnbot" {
|
|
gameUserMapModel := model.GameUserMap{}
|
|
gameUserMapModel := model.GameUserMap{}
|
|
err = db.GetDB().Table("game_user_map").
|
|
err = db.GetDB().Table("game_user_map").
|
|
Where("bot_user_id = ? and plat_id = 2", tgID).
|
|
Where("bot_user_id = ? and plat_id = 2", tgID).
|
|
@@ -283,6 +369,8 @@ func handlerMsg(update tgbotapi.Update) error {
|
|
timeNow := time.Now()
|
|
timeNow := time.Now()
|
|
timeTodayZero := time_utils.GetZeroTime(timeNow).Unix()
|
|
timeTodayZero := time_utils.GetZeroTime(timeNow).Unix()
|
|
|
|
|
|
|
|
+ var exchangeMap map[int32]decimal.Decimal
|
|
|
|
+
|
|
var data *gameproto.CredistLeaderBoardList
|
|
var data *gameproto.CredistLeaderBoardList
|
|
msg := "昨日游戏排行榜收入前50,请再接再厉\n\n"
|
|
msg := "昨日游戏排行榜收入前50,请再接再厉\n\n"
|
|
|
|
|
|
@@ -294,6 +382,12 @@ func handlerMsg(update tgbotapi.Update) error {
|
|
logrus.Error(err)
|
|
logrus.Error(err)
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ exchangeMap, err = GetYestedayExchangeMap()
|
|
|
|
+ if err != nil {
|
|
|
|
+ logrus.Error(err)
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
msg = "今日游戏排行榜收入前50,请再接再厉\n\n"
|
|
msg = "今日游戏排行榜收入前50,请再接再厉\n\n"
|
|
|
|
|
|
@@ -304,6 +398,12 @@ func handlerMsg(update tgbotapi.Update) error {
|
|
logrus.Error(err)
|
|
logrus.Error(err)
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ exchangeMap, err = GetTodayExchangeMap()
|
|
|
|
+ if err != nil {
|
|
|
|
+ logrus.Error(err)
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
myIndex := "-"
|
|
myIndex := "-"
|
|
@@ -311,9 +411,10 @@ func handlerMsg(update tgbotapi.Update) error {
|
|
userModel := model.User{}
|
|
userModel := model.User{}
|
|
err = userModel.GetUserByID(item.UserID)
|
|
err = userModel.GetUserByID(item.UserID)
|
|
if err == nil && strings.HasPrefix(userModel.Mobile, "FLL") {
|
|
if err == nil && strings.HasPrefix(userModel.Mobile, "FLL") {
|
|
- msg += fmt.Sprintf("%d: %s(%s) %vu\n", index+1, item.Name, userModel.Mobile, item.TotalAmount)
|
|
|
|
|
|
+ msg += fmt.Sprintf("%d: %s(%s) %vu(已兑换%su)\n",
|
|
|
|
+ index+1, item.Name, userModel.Mobile, item.TotalAmount, exchangeMap[int32(item.UserID)].StringFixed(2))
|
|
} else {
|
|
} else {
|
|
- msg += fmt.Sprintf("%d: %s %vu\n", index+1, item.Name, item.TotalAmount)
|
|
|
|
|
|
+ msg += fmt.Sprintf("%d: %s %vu(已兑换%su)\n", index+1, item.Name, item.TotalAmount, exchangeMap[int32(item.UserID)].StringFixed(2))
|
|
}
|
|
}
|
|
|
|
|
|
if data.MyCredistLeaderBoard.UserID == item.UserID {
|
|
if data.MyCredistLeaderBoard.UserID == item.UserID {
|
|
@@ -328,8 +429,8 @@ func handlerMsg(update tgbotapi.Update) error {
|
|
nameExt = fmt.Sprintf("(%s, %d)", tgUsername, tgID)
|
|
nameExt = fmt.Sprintf("(%s, %d)", tgUsername, tgID)
|
|
}
|
|
}
|
|
|
|
|
|
- msg += fmt.Sprintf("----------------------------\n%s: %s%s %vu\n", myIndex, data.MyCredistLeaderBoard.Name,
|
|
|
|
- nameExt, data.MyCredistLeaderBoard.TotalAmount)
|
|
|
|
|
|
+ msg += fmt.Sprintf("----------------------------\n%s: %s%s %vu(已兑换%su)\n", myIndex, data.MyCredistLeaderBoard.Name,
|
|
|
|
+ nameExt, data.MyCredistLeaderBoard.TotalAmount, exchangeMap[int32(data.MyCredistLeaderBoard.UserID)].StringFixed(2))
|
|
msg += `
|
|
msg += `
|
|
(一将功成万骨枯,你们的牌技战胜了90%的敌人。)
|
|
(一将功成万骨枯,你们的牌技战胜了90%的敌人。)
|
|
|
|
|
|
@@ -352,124 +453,49 @@ func handlerMsg(update tgbotapi.Update) error {
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
-func UpdateAppCredits() error {
|
|
|
|
- isSet, err := IsSetToday(567)
|
|
|
|
- if err != nil {
|
|
|
|
- logrus.Error(err)
|
|
|
|
- return nil
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if !isSet {
|
|
|
|
- err = SetIsRenew(567)
|
|
|
|
- if err != nil {
|
|
|
|
- logrus.Error(err)
|
|
|
|
- return nil
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- err = db.GetDB().Model(model.User{}).
|
|
|
|
- Where("id in (?)", db.GetDB().Model(model.GameUserMap{}).Where("plat_id = 2").Select("user_id")).Update("credits", "10000").Error
|
|
|
|
- if err != nil {
|
|
|
|
- logrus.Error(err)
|
|
|
|
- return nil
|
|
|
|
- }
|
|
|
|
|
|
+func GetTodayExchangeMap() (map[int32]decimal.Decimal, error) {
|
|
|
|
+ type InfoData struct {
|
|
|
|
+ UserID int32
|
|
|
|
+ TotalAmount decimal.Decimal
|
|
}
|
|
}
|
|
|
|
|
|
- return nil
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-func UpdateCredits(tgID int64, userID int64) error {
|
|
|
|
- isSet, err := IsSetToday(tgID)
|
|
|
|
|
|
+ infoList := make([]InfoData, 0)
|
|
|
|
+ err := db.GetDB().Model(model.UserMoneyLog{}).Select("sum(money) total_amount, user_id").Where("created_at > CURDATE() and type = ?",
|
|
|
|
+ model.ExchangeCreditToAmount).Group("user_id").Scan(&infoList).Error
|
|
if err != nil {
|
|
if err != nil {
|
|
logrus.Error(err)
|
|
logrus.Error(err)
|
|
- return nil
|
|
|
|
|
|
+ return nil, err
|
|
}
|
|
}
|
|
|
|
|
|
- if !isSet {
|
|
|
|
- err = SetIsRenew(tgID)
|
|
|
|
- if err != nil {
|
|
|
|
- logrus.Error(err)
|
|
|
|
- return nil
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- err = db.GetDB().Model(model.User{}).
|
|
|
|
- Where("id = ?", userID).Update("credits", "10000").Error
|
|
|
|
- if err != nil {
|
|
|
|
- logrus.Error(err)
|
|
|
|
- return nil
|
|
|
|
- }
|
|
|
|
|
|
+ resultMap := make(map[int32]decimal.Decimal)
|
|
|
|
+ for _, item := range infoList {
|
|
|
|
+ resultMap[item.UserID] = item.TotalAmount
|
|
}
|
|
}
|
|
|
|
|
|
- return nil
|
|
|
|
|
|
+ return resultMap, nil
|
|
}
|
|
}
|
|
|
|
|
|
-func UpdateBotCredits() error {
|
|
|
|
- isSet, err := IsSetToday(8888)
|
|
|
|
- if err != nil {
|
|
|
|
- logrus.Error(err)
|
|
|
|
- return nil
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if !isSet {
|
|
|
|
- err = SetIsRenew(8888)
|
|
|
|
- if err != nil {
|
|
|
|
- logrus.Error(err)
|
|
|
|
- return nil
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- tokenList := []string{
|
|
|
|
- "6348307e0ce0c7c10043d05dad0b24d2",
|
|
|
|
- "9f1eb722df23eef57368550487f33dff",
|
|
|
|
- "8f04dc970bbcc98ede99ef129a342228",
|
|
|
|
- "9ced6e7d4d336b46113235673465be74",
|
|
|
|
- "99a649ba48b00cb84adbb5e889b35e8b",
|
|
|
|
- "fa1a5e9b32a3bb3fd2995edc8efcaa8a",
|
|
|
|
- "92084b7b81fed253d816fc719db825db",
|
|
|
|
- "65fcc17eb6d00f12a95c8b31152b9ffa",
|
|
|
|
- "6b2c0b92ddaa8f7d5f0d8439ca6dd1ce",
|
|
|
|
- "7b22f1d4b590fda354cd62cb973c6216",
|
|
|
|
- }
|
|
|
|
- err = db.GetDB().Table("users").
|
|
|
|
- Where("token in (?)", tokenList).Updates(map[string]interface{}{
|
|
|
|
- "credits": "10000",
|
|
|
|
- }).Error
|
|
|
|
- if err != nil {
|
|
|
|
- logrus.Error(err)
|
|
|
|
- return nil
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return nil
|
|
|
|
-}
|
|
|
|
-func IsSetToday(tgID int64) (bool, error) {
|
|
|
|
- key := fmt.Sprintf("reset_credist_user_%d", tgID)
|
|
|
|
- result, err := rdb.GetRDB().Get(context.Background(), key).Result()
|
|
|
|
- if err == redis.Nil {
|
|
|
|
- return false, nil
|
|
|
|
|
|
+func GetYestedayExchangeMap() (map[int32]decimal.Decimal, error) {
|
|
|
|
+ type InfoData struct {
|
|
|
|
+ UserID int32
|
|
|
|
+ TotalAmount decimal.Decimal
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ infoList := make([]InfoData, 0)
|
|
|
|
+ err := db.GetDB().Model(model.UserMoneyLog{}).Select("sum(money) total_amount, user_id").
|
|
|
|
+ Where("created_at > DATE_SUB(curdate(),INTERVAL 1 DAY) and created_at < curdate() and type = ?",
|
|
|
|
+ model.ExchangeCreditToAmount).Group("user_id").Scan(&infoList).Error
|
|
if err != nil {
|
|
if err != nil {
|
|
logrus.Error(err)
|
|
logrus.Error(err)
|
|
- return false, err
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- todayDayStr := time_utils.GetFormatTime(time.Now())
|
|
|
|
- if todayDayStr != result {
|
|
|
|
- return false, nil
|
|
|
|
|
|
+ return nil, err
|
|
}
|
|
}
|
|
|
|
|
|
- return true, nil
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-func SetIsRenew(tgID int64) error {
|
|
|
|
- todayDayStr := time_utils.GetFormatTime(time.Now())
|
|
|
|
- key := fmt.Sprintf("reset_credist_user_%d", tgID)
|
|
|
|
- _, err := rdb.GetRDB().Set(context.Background(), key, todayDayStr, time.Hour*48).Result()
|
|
|
|
- if err != nil {
|
|
|
|
- logrus.Error(err)
|
|
|
|
- return err
|
|
|
|
|
|
+ resultMap := make(map[int32]decimal.Decimal)
|
|
|
|
+ for _, item := range infoList {
|
|
|
|
+ resultMap[item.UserID] = item.TotalAmount
|
|
}
|
|
}
|
|
|
|
|
|
- return nil
|
|
|
|
|
|
+ return resultMap, nil
|
|
}
|
|
}
|
|
|
|
|
|
func RefreshTokenByUserID(userID int) (string, error) {
|
|
func RefreshTokenByUserID(userID int) (string, error) {
|