feat(user): 添加申请商店功能 - 新增ReqShop接口用于用户申请成为商店角色 - 验证用户是否满足申请条件(任务完成状态) - 将符合条件的用户分配到商店角色ID 27 feat(pet): 设置宠物价格最小值限制 - 为宠物价格设置最低5的限制 - 防止价格过低影响游戏平衡 feat(task): 实现商店申请条件检查 - 添加CanShop方法检查用户是否完成特定任务 - 使用位集验证任务ID 500
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
"blazing/cool"
|
||||
|
||||
"blazing/modules/base/model"
|
||||
"blazing/modules/base/service"
|
||||
|
||||
config "blazing/modules/config/service"
|
||||
@@ -47,6 +48,22 @@ func (c *BaseSysUserController) Move(ctx context.Context, req *UserMoveReq) (res
|
||||
return
|
||||
}
|
||||
|
||||
type ReqShopReq struct {
|
||||
g.Meta `path:"/reqshop" method:"POST"`
|
||||
Authorization string `json:"Authorization" in:"header"`
|
||||
}
|
||||
|
||||
func (c *BaseSysUserController) ReqShop(ctx context.Context, req *ReqShopReq) (res *cool.BaseRes, err error) {
|
||||
t := cool.GetAdmin(ctx)
|
||||
|
||||
if !playerservice.NewTaskService(uint32(t.UserId)).CanShop() {
|
||||
return cool.Fail("不满足申请条件"), nil
|
||||
}
|
||||
cool.DBM(&model.BaseSysUserRole{}).Data("roleId", "27", "userId", t.UserId).Save()
|
||||
res = cool.Ok(nil)
|
||||
return
|
||||
}
|
||||
|
||||
type SessionReq struct {
|
||||
g.Meta `path:"/getSession" method:"GET"`
|
||||
Authorization string `json:"Authorization" in:"header"`
|
||||
|
||||
@@ -94,6 +94,9 @@ func (c *PetBagController) ModPrise(ctx context.Context, req *PriseReq) (res *co
|
||||
admin := cool.GetAdmin(ctx)
|
||||
|
||||
res = &cool.BaseRes{}
|
||||
if req.Price < 5 {
|
||||
req.Price = 5
|
||||
}
|
||||
service.NewPetService(uint32(admin.UserId)).UPdatePrice(req.Ctime, req.Price)
|
||||
|
||||
return
|
||||
|
||||
@@ -6,8 +6,37 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/gogf/gf/v2/os/gtime"
|
||||
"github.com/pointernil/bitset32"
|
||||
)
|
||||
|
||||
func (s *TaskService) CanShop() bool {
|
||||
var gg *model.Task
|
||||
|
||||
s.dbm(s.Model).Where("task_id", 500).Scan(&gg)
|
||||
|
||||
if gg == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
r := bitset32.From(gg.Data)
|
||||
// 分支未完成时,标记完成并发放奖励
|
||||
if !r.Test(70) {
|
||||
return false
|
||||
}
|
||||
var ggg *model.Task
|
||||
s.dbm(s.Model).Where("task_id", 500).Scan(&ggg)
|
||||
if ggg == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
// 分支未完成时,标记完成并发放奖励
|
||||
if !bitset32.From(ggg.Data).Test(50) {
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// 获取任务信息
|
||||
func (s *TaskService) Exec(id uint32, t func(*model.Task) bool) {
|
||||
var gg model.Task
|
||||
|
||||
Reference in New Issue
Block a user