This commit is contained in:
2024-10-21 17:07:25 +08:00
parent 2292d25d74
commit 6730204aa3
7 changed files with 26 additions and 25 deletions

View File

@@ -64,6 +64,7 @@ func (l *RechargeWalletLogic) RechargeWallet(in *user.RechargeWalletRequest) (*u
OutTradeNo: in.OutTradeNo,
UserId: in.UserId,
Amount: float64(in.Amount),
PaymentMethod: in.PaymentMethod,
}, session)
if err != nil {
return err

View File

@@ -33,8 +33,8 @@ func NewRechargeModel(conn sqlx.SqlConn, c cache.CacheConf, opts ...cache.Option
func (m *customRechargeModel) InsertRechargeTrans(ctx context.Context, data *Recharge, session sqlx.Session) (sql.Result, error) {
rechargeOutTradeNoKey := fmt.Sprintf("%s%v", cacheRechargeOutTradeNoPrefix, data.OutTradeNo)
rechargeTransactionIdKey := fmt.Sprintf("%s%v", cacheRechargeTransactionIdPrefix, data.TransactionId)
query := fmt.Sprintf("INSERT INTO %s (%s) VALUES (?, ?, ?, ?, ?)", m.table, rechargeRowsExpectAutoSet)
ret, err := session.ExecCtx(ctx, query, data.UserId, data.TransactionId, data.OutTradeNo, data.Amount, data.PaymentMethod)
query := fmt.Sprintf("INSERT INTO %s (%s) VALUES (?, ?, ?, ?, ?, ?)", m.table, rechargeRowsExpectAutoSet)
ret, err := session.ExecCtx(ctx, query, data.UserId, data.TransactionId, data.OutTradeNo, data.Amount, data.PaymentMethod, data.Remark)
if err != nil {
return nil, err
}

View File

@@ -48,8 +48,13 @@ func (m *customWalletsModel) TransCtx(ctx context.Context, fn func(ctx context.C
// 更新余额的方法
func (m *customWalletsModel) UpdateBalance(session sqlx.Session, ctx context.Context, userId int64, amount float64) error {
wallet, err := m.FindOneByUserId(ctx, userId)
if err != nil {
//wallet, err := m.FindOneByUserId(ctx, userId)
//if err != nil {
// return err
//}
var wallet Wallets
query := fmt.Sprintf("SELECT %s FROM %s WHERE `user_id` = ? limit 1", walletsRows, m.table)
if err := m.QueryRowNoCacheCtx(ctx, &wallet, query, userId); err != nil {
return err
}
@@ -73,12 +78,6 @@ func (m *customWalletsModel) UpdateBalance(session sqlx.Session, ctx context.Con
if rowsAffected == 0 {
return ErrVersionMismatch
}
walletsUserIdKey := fmt.Sprintf("%s%v", cacheWalletsUserIdPrefix, userId)
cacheErrors := m.DelCacheCtx(ctx, walletsUserIdKey)
if cacheErrors != nil {
return cacheErrors
}
return nil
}
func (m *customWalletsModel) InsertWalletsTrans(ctx context.Context, wallets *Wallets, session sqlx.Session) (sql.Result, error) {
@@ -96,7 +95,7 @@ func (m *customWalletsModel) FindWalletsByUserIds(ctx context.Context, userIds [
}
queryBuilder := strings.Builder{}
queryBuilder.WriteString(fmt.Sprintf("SELECT user_id, balance FROM %s WHERE user_id IN (", m.table))
queryBuilder.WriteString(fmt.Sprintf("SELECT %s FROM %s WHERE user_id IN (", walletsRows, m.table))
placeholders := make([]string, len(userIds))
args := make([]interface{}, len(userIds))
@@ -110,15 +109,16 @@ func (m *customWalletsModel) FindWalletsByUserIds(ctx context.Context, userIds [
query := queryBuilder.String()
var wallets []*Wallets
err := m.QueryRowNoCacheCtx(ctx, &wallets, query, args...)
var wallets []Wallets
err := m.QueryRowsNoCacheCtx(ctx, &wallets, query, args...)
if err != nil {
return nil, err
}
walletMap := make(map[int64]*Wallets)
for _, wallet := range wallets {
walletMap[wallet.UserId] = wallet
walletCopy := wallet // Create a copy to ensure the correct address is used
walletMap[wallet.UserId] = &walletCopy
}
return walletMap, nil