```
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful

feat(player): 优化金币兑换功能

- 在ServiceUpdate方法中返回更新后的数据而不是nil
- 新增DuihuanGold方法用于处理金币兑换逻辑
- 修改黄金列表控制器中的兑换计算逻辑,区分费用和获得金币的计算
- 在添加操作前验证用户金币余额是否充足
- 修正了兑换比例计算和余额检查逻辑
```
This commit is contained in:
昔念
2026-03-19 18:36:34 +08:00
parent 91a20cb034
commit bd5cd9393a
4 changed files with 18 additions and 6 deletions

View File

@@ -2,11 +2,13 @@ package service
import (
"blazing/cool"
"blazing/modules/base/service"
"blazing/modules/player/model"
"context"
"fmt"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/util/gconv"
)
type GoldListService struct {
@@ -17,8 +19,10 @@ func (s *GoldListService) ModifyBefore(ctx context.Context, method string, param
admin := cool.GetAdmin(ctx)
userId := admin.UserId
g.RequestFromCtx(ctx).SetParam("player_id", userId)
if method == "Add" {
if service.NewBaseSysUserService().GetGold(userId) < gconv.Int64(param["exchange_num"])*100 {
return fmt.Errorf("金额不足")
}
t, _ := s.dbm_fix(s.Model).Where("player_id", userId).Where("status", 0).Count()
if t > 0 {