feat(player): 优化金币兑换功能 - 在ServiceUpdate方法中返回更新后的数据而不是nil - 新增DuihuanGold方法用于处理金币兑换逻辑 - 修改黄金列表控制器中的兑换计算逻辑,区分费用和获得金币的计算 - 在添加操作前验证用户金币余额是否充足 - 修正了兑换比例计算和余额检查逻辑 ```
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user