From d0abb08d5ba8b53edc3a699581be7f48dcf85f50 Mon Sep 17 00:00:00 2001 From: xinian Date: Thu, 9 Apr 2026 15:37:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=85=A8=E9=83=A8/=E6=96=87=E4=BB=B6=E8=AF=BB=E5=8F=96/ReqShop?= =?UTF-8?q?/ReqShopReqShop=20=E8=AF=B7=E6=B1=82=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/controller/admin/base_sys_user.go | 9 +++++-- modules/player/service/task.go | 26 +++++++------------ 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/modules/base/controller/admin/base_sys_user.go b/modules/base/controller/admin/base_sys_user.go index 404747d8d..b3a35bb9f 100644 --- a/modules/base/controller/admin/base_sys_user.go +++ b/modules/base/controller/admin/base_sys_user.go @@ -56,8 +56,13 @@ type ReqShopReq struct { 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 + user := service.NewBaseSysUserService().GetPerson(uint32(t.UserId)) + if user == nil || user.QQ == 0 { + return cool.Fail("请先绑定QQ"), nil + } + + if err := playerservice.NewTaskService(uint32(t.UserId)).ShopRequirementError(); err != nil { + return cool.Fail(err.Error()), nil } cool.DBM(&model.BaseSysUserRole{}).Data("roleId", "27", "userId", t.UserId).Save() res = cool.Ok(nil) diff --git a/modules/player/service/task.go b/modules/player/service/task.go index 49c0f274b..60a3347c8 100644 --- a/modules/player/service/task.go +++ b/modules/player/service/task.go @@ -4,36 +4,30 @@ import ( "blazing/cool" "blazing/modules/player/model" "context" + "errors" "github.com/pointernil/bitset32" ) func (s *TaskService) CanShop() bool { + return s.ShopRequirementError() == nil +} + +func (s *TaskService) ShopRequirementError() error { var gg *model.Task s.dbm(s.Model).Where("task_id", 500).Scan(&gg) - - if gg == nil { - return false + if gg == nil || !bitset32.From(gg.Data).Test(80) { + return errors.New("请先完成勇者任务80") } - r := bitset32.From(gg.Data) - // 分支未完成时,标记完成并发放奖励 - if !r.Test(70) { - return false - } var ggg *model.Task s.dbm(s.Model).Where("task_id", 600).Scan(&ggg) - if ggg == nil { - return false + if ggg == nil || !bitset32.From(ggg.Data).Test(50) { + return errors.New("请先完成试炼任务50") } - // 分支未完成时,标记完成并发放奖励 - if !bitset32.From(ggg.Data).Test(50) { - return false - } - - return true + return nil } // 获取任务信息