1、新增自定义用户私人价格2、优化api服务鉴权缓存3、新增管理员端对公充值

This commit is contained in:
2024-10-21 16:01:20 +08:00
parent 8896fd6b30
commit 2292d25d74
37 changed files with 1903 additions and 907 deletions

View File

@@ -7,6 +7,7 @@ import (
"fmt"
"github.com/zeromicro/go-zero/core/stores/cache"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"strings"
)
var _ WalletsModel = (*customWalletsModel)(nil)
@@ -19,6 +20,7 @@ type (
InsertWalletsTrans(ctx context.Context, wallets *Wallets, session sqlx.Session) (sql.Result, error)
UpdateBalance(session sqlx.Session, ctx context.Context, userId int64, amount float64) error
TransCtx(ctx context.Context, fn func(ctx context.Context, session sqlx.Session) error) error
FindWalletsByUserIds(ctx context.Context, userIds []int64) (map[int64]*Wallets, error)
}
customWalletsModel struct {
@@ -88,3 +90,36 @@ func (m *customWalletsModel) InsertWalletsTrans(ctx context.Context, wallets *Wa
return ret, err
}
func (m *customWalletsModel) FindWalletsByUserIds(ctx context.Context, userIds []int64) (map[int64]*Wallets, error) {
if len(userIds) == 0 {
return make(map[int64]*Wallets), nil
}
queryBuilder := strings.Builder{}
queryBuilder.WriteString(fmt.Sprintf("SELECT user_id, balance FROM %s WHERE user_id IN (", m.table))
placeholders := make([]string, len(userIds))
args := make([]interface{}, len(userIds))
for i, userId := range userIds {
placeholders[i] = "?"
args[i] = userId
}
queryBuilder.WriteString(strings.Join(placeholders, ","))
queryBuilder.WriteString(")")
query := queryBuilder.String()
var wallets []*Wallets
err := m.QueryRowNoCacheCtx(ctx, &wallets, query, args...)
if err != nil {
return nil, err
}
walletMap := make(map[int64]*Wallets)
for _, wallet := range wallets {
walletMap[wallet.UserId] = wallet
}
return walletMap, nil
}