diff --git a/modules/base/controller/admin/base_sys_user.go b/modules/base/controller/admin/base_sys_user.go index b849ee97..2d3c9822 100644 --- a/modules/base/controller/admin/base_sys_user.go +++ b/modules/base/controller/admin/base_sys_user.go @@ -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"` diff --git a/modules/player/controller/admin/pet.go b/modules/player/controller/admin/pet.go index 97f273d3..35723efd 100644 --- a/modules/player/controller/admin/pet.go +++ b/modules/player/controller/admin/pet.go @@ -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 diff --git a/modules/player/service/task.go b/modules/player/service/task.go index 8e4932db..46cf4a27 100644 --- a/modules/player/service/task.go +++ b/modules/player/service/task.go @@ -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