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

View File

@ -154,8 +154,8 @@ service admin-api {
type ( type (
UserListRequest { UserListRequest {
Page int64 `json:"page"` // 分页页码 Page int64 `form:"page"` // 分页页码
PageSize int64 `json:"pageSize"` // 每页大小 PageSize int64 `form:"pageSize"` // 每页大小
} }
UserListResponse { UserListResponse {
List []UserItem `json:"list"` List []UserItem `json:"list"`
@ -172,8 +172,8 @@ type (
UpdatedAt string `json:"updatedAt"` // 更新时间 UpdatedAt string `json:"updatedAt"` // 更新时间
} }
rechargeRequest { rechargeRequest {
UserId int64 `json:userId` UserId int64 `json:"userId"`
Amount int64 `json:amount` Amount int64 `json:"amount"`
} }
) )
@ -184,7 +184,7 @@ type (
) )
service admin-api { service admin-api {
@handler getUserList @handler getUserList
post /user/list (UserListRequest) returns (UserListResponse) get /user/list (UserListRequest) returns (UserListResponse)
@handler recharge @handler recharge
post /user/recharge (rechargeRequest) post /user/recharge (rechargeRequest)

View File

@ -99,7 +99,7 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
[]rest.Middleware{serverCtx.AuthInterceptor}, []rest.Middleware{serverCtx.AuthInterceptor},
[]rest.Route{ []rest.Route{
{ {
Method: http.MethodPost, Method: http.MethodGet,
Path: "/user/list", Path: "/user/list",
Handler: user.GetUserListHandler(serverCtx), Handler: user.GetUserListHandler(serverCtx),
}, },

View File

@ -111,8 +111,8 @@ type UserItem struct {
} }
type UserListRequest struct { type UserListRequest struct {
Page int64 `json:"page"` // 分页页码 Page int64 `form:"page"` // 分页页码
PageSize int64 `json:"pageSize"` // 每页大小 PageSize int64 `form:"pageSize"` // 每页大小
} }
type UserListResponse struct { type UserListResponse struct {
@ -121,6 +121,6 @@ type UserListResponse struct {
} }
type RechargeRequest struct { type RechargeRequest struct {
UserId int64 `json:userId` UserId int64 `json:"userId"`
Amount int64 `json:amount` Amount int64 `json:"amount"`
} }

View File

@ -73,7 +73,7 @@ func (l *AliTopUpNotifyLogic) AliTopUpNotify(in *sentinel.AliTopUpNotifyRequest)
UserId: payOrder.UserId, UserId: payOrder.UserId,
OutTradeNo: payOrder.OutTradeNo, OutTradeNo: payOrder.OutTradeNo,
Amount: int64(payOrder.Amount), Amount: int64(payOrder.Amount),
PaymentMethod: 0, PaymentMethod: 1,
}) })
if rechargeWallet != nil { if rechargeWallet != nil {
return nil, globalErr return nil, globalErr

View File

@ -64,6 +64,7 @@ func (l *RechargeWalletLogic) RechargeWallet(in *user.RechargeWalletRequest) (*u
OutTradeNo: in.OutTradeNo, OutTradeNo: in.OutTradeNo,
UserId: in.UserId, UserId: in.UserId,
Amount: float64(in.Amount), Amount: float64(in.Amount),
PaymentMethod: in.PaymentMethod,
}, session) }, session)
if err != nil { if err != nil {
return err 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) { func (m *customRechargeModel) InsertRechargeTrans(ctx context.Context, data *Recharge, session sqlx.Session) (sql.Result, error) {
rechargeOutTradeNoKey := fmt.Sprintf("%s%v", cacheRechargeOutTradeNoPrefix, data.OutTradeNo) rechargeOutTradeNoKey := fmt.Sprintf("%s%v", cacheRechargeOutTradeNoPrefix, data.OutTradeNo)
rechargeTransactionIdKey := fmt.Sprintf("%s%v", cacheRechargeTransactionIdPrefix, data.TransactionId) rechargeTransactionIdKey := fmt.Sprintf("%s%v", cacheRechargeTransactionIdPrefix, data.TransactionId)
query := fmt.Sprintf("INSERT INTO %s (%s) VALUES (?, ?, ?, ?, ?)", m.table, rechargeRowsExpectAutoSet) 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) ret, err := session.ExecCtx(ctx, query, data.UserId, data.TransactionId, data.OutTradeNo, data.Amount, data.PaymentMethod, data.Remark)
if err != nil { if err != nil {
return nil, err 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 { func (m *customWalletsModel) UpdateBalance(session sqlx.Session, ctx context.Context, userId int64, amount float64) error {
wallet, err := m.FindOneByUserId(ctx, userId) //wallet, err := m.FindOneByUserId(ctx, userId)
if err != nil { //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 return err
} }
@ -73,12 +78,6 @@ func (m *customWalletsModel) UpdateBalance(session sqlx.Session, ctx context.Con
if rowsAffected == 0 { if rowsAffected == 0 {
return ErrVersionMismatch return ErrVersionMismatch
} }
walletsUserIdKey := fmt.Sprintf("%s%v", cacheWalletsUserIdPrefix, userId)
cacheErrors := m.DelCacheCtx(ctx, walletsUserIdKey)
if cacheErrors != nil {
return cacheErrors
}
return nil return nil
} }
func (m *customWalletsModel) InsertWalletsTrans(ctx context.Context, wallets *Wallets, session sqlx.Session) (sql.Result, error) { 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 := 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)) placeholders := make([]string, len(userIds))
args := make([]interface{}, len(userIds)) args := make([]interface{}, len(userIds))
@ -110,15 +109,16 @@ func (m *customWalletsModel) FindWalletsByUserIds(ctx context.Context, userIds [
query := queryBuilder.String() query := queryBuilder.String()
var wallets []*Wallets var wallets []Wallets
err := m.QueryRowNoCacheCtx(ctx, &wallets, query, args...) err := m.QueryRowsNoCacheCtx(ctx, &wallets, query, args...)
if err != nil { if err != nil {
return nil, err return nil, err
} }
walletMap := make(map[int64]*Wallets) walletMap := make(map[int64]*Wallets)
for _, wallet := range 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 return walletMap, nil