feat(service): 宠物添加功能增加销售计数参数并优化价格更新逻辑 - 修改PetAdd方法签名,增加salecount参数用于追踪宠物销售次数 - 在多个控制器中统一调用PetAdd方法时传入0作为初始销售次数 - 临时禁用寒流枪活动中的宠物发放功能 - 优化UPdatePrice方法,添加错误处理和价格范围验证逻辑 - 调整宠物购买逻辑,使用免费金币系统并计算递增购买
This commit is contained in:
@@ -168,3 +168,22 @@ func (c *BaseSysUserController) GoldAdd(ctx context.Context, req *UserGoldAddReq
|
||||
res = cool.Ok(nil)
|
||||
return
|
||||
}
|
||||
|
||||
type DuihuanGoldAddReq struct {
|
||||
g.Meta `path:"/duihuan" method:"POST"`
|
||||
Authorization string `json:"Authorization" in:"header"`
|
||||
|
||||
Gold float32 `json:"gold"`
|
||||
}
|
||||
|
||||
func (c *BaseSysUserController) DuihuanGold(ctx context.Context, req *DuihuanGoldAddReq) (res *cool.BaseRes, err error) {
|
||||
t := cool.GetAdmin(ctx)
|
||||
|
||||
if service.NewBaseSysUserService().GetGold(t.UserId) < int64(req.Gold*100) {
|
||||
res = cool.Fail("余额不足")
|
||||
return
|
||||
}
|
||||
service.NewBaseSysUserService().DuihuanFreeGold(uint32(t.UserId), int64(req.Gold*100))
|
||||
res = cool.Ok(nil)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -20,7 +20,8 @@ type BaseSysUser struct {
|
||||
Email *string `gorm:"column:email;type:varchar(255)" json:"email"` // 邮箱
|
||||
Status *int32 `gorm:"column:status;not null;default:1" json:"status"` // 状态 0:禁用 1:启用
|
||||
GoldBean int64 `gorm:"column:goldbean;type:bigint;default:0" json:"goldbean"`
|
||||
Remark *string `gorm:"column:remark;type:varchar(255)" json:"remark"` // 备注
|
||||
FreeGold int64 `gorm:"column:free_gold;type:bigint;default:0" json:"free_gold"` //集市金豆
|
||||
Remark *string `gorm:"column:remark;type:varchar(255)" json:"remark"` // 备注
|
||||
//Debug int32 `gorm:"column:debug;type:int;not null;default:0" json:"debug"` // 是否可以进入2服 测试服
|
||||
Maxts uint32 `gorm:"column:max_ts;type:int;not null;default:0" json:"max_ts"` //最后生成的时间记录表
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ import (
|
||||
|
||||
"blazing/modules/base/model"
|
||||
|
||||
"github.com/alpacahq/alpacadecimal"
|
||||
"github.com/gogf/gf/v2/container/garray"
|
||||
"github.com/gogf/gf/v2/container/gset"
|
||||
"github.com/gogf/gf/v2/crypto/gmd5"
|
||||
@@ -52,6 +51,20 @@ func (s *BaseSysUserService) SetdepartmentId(userId, departmentId uint32) (res *
|
||||
|
||||
return
|
||||
}
|
||||
func (s *BaseSysUserService) DuihuanFreeGold(userId uint32, free int64) {
|
||||
m := cool.DBM(s.Model).Where("id", userId)
|
||||
m.Data(g.Map{
|
||||
"goldbean": gdb.Raw("goldbean-" + gconv.String(free)),
|
||||
"free_gold": gdb.Raw("free_gold+" + gconv.String(free)),
|
||||
}).Update()
|
||||
|
||||
}
|
||||
func (s *BaseSysUserService) UpdateFreeGold(userId uint32, gold int64) {
|
||||
|
||||
m := cool.DBM(s.Model).Where("id", userId)
|
||||
m.Increment("free_gold", gold)
|
||||
|
||||
}
|
||||
|
||||
// 单位是分
|
||||
func (s *BaseSysUserService) UpdateGold(userId uint32, gold int64) {
|
||||
@@ -67,10 +80,16 @@ func (s *BaseSysUserService) UpdateGold(userId uint32, gold int64) {
|
||||
func (s *BaseSysUserService) GetGold(userId uint) (res int64) {
|
||||
var res1 model.BaseSysUser
|
||||
m := cool.DBM(s.Model)
|
||||
m.Where("id", userId).FieldsEx("password").Scan(&res1)
|
||||
m.Where("id", userId).Fields("goldbean").Scan(&res1)
|
||||
|
||||
r1 := alpacadecimal.NewFromInt(res1.GoldBean)
|
||||
return r1.IntPart()
|
||||
return res1.GoldBean
|
||||
}
|
||||
func (s *BaseSysUserService) GetFreeGold(userId uint) (res int64) {
|
||||
var res1 model.BaseSysUser
|
||||
m := cool.DBM(s.Model)
|
||||
m.Where("id", userId).Fields("free_gold").Scan(&res1)
|
||||
|
||||
return res1.GoldBean
|
||||
}
|
||||
func (s *BaseSysUserService) GetEamil(userId string) (res *model.BaseSysUser) {
|
||||
m := cool.DBM(s.Model)
|
||||
|
||||
Reference in New Issue
Block a user