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

@@ -6,6 +6,7 @@ import (
"errors"
"github.com/zeromicro/go-zero/core/stores/sqlx"
"tianyuan-api/apps/sentinel/client/product"
"tianyuan-api/apps/sentinel/sentinel"
"tianyuan-api/apps/user/internal/model"
"time"
@@ -40,7 +41,13 @@ func (l *UpdateWalletLogic) UpdateWallet(in *user.UpdateWalletRequest) (*user.Up
if getProductByCodeErr != nil {
return nil, getProductByCodeErr
}
userProduct, getUserProductErr := l.svcCtx.UserProductRpc.GetUserProduct(l.ctx, &sentinel.UserProuctRequest{
UserId: in.UserId,
ProductId: consumeProduct.Id,
})
if getUserProductErr != nil {
return nil, getUserProductErr
}
// 检查是否已经扣款
deduction, FindOneByTransactionIdErr := l.svcCtx.DeductionsModel.FindOneByTransactionId(l.ctx, in.TransactionId)
if FindOneByTransactionIdErr != nil {
@@ -59,7 +66,7 @@ func (l *UpdateWalletLogic) UpdateWallet(in *user.UpdateWalletRequest) (*user.Up
var err error
// 尝试多次更新余额(用于乐观锁)
for i := 0; i < maxRetries; i++ {
err = l.svcCtx.WalletsModel.UpdateBalance(session, l.ctx, in.UserId, -consumeProduct.ProductPrice)
err = l.svcCtx.WalletsModel.UpdateBalance(session, l.ctx, in.UserId, -userProduct.ProductPrice)
if err == nil {
// 成功,退出循环
break
@@ -82,7 +89,7 @@ func (l *UpdateWalletLogic) UpdateWallet(in *user.UpdateWalletRequest) (*user.Up
_, err = l.svcCtx.DeductionsModel.InsertDeductionsTrans(ctx, &model.Deductions{
TransactionId: in.TransactionId,
UserId: in.UserId,
Amount: consumeProduct.ProductPrice,
Amount: userProduct.ProductPrice,
}, session)
if err != nil {
return err