diff --git a/internal/logic/carv/unlock_chapter_logic.go b/internal/logic/carv/unlock_chapter_logic.go index 74ffebf..73f19c8 100644 --- a/internal/logic/carv/unlock_chapter_logic.go +++ b/internal/logic/carv/unlock_chapter_logic.go @@ -59,13 +59,16 @@ func (l *UnlockChapterLogic) UnlockChapter(req *types.UnlockChapterReq) *types.C gp, err := l.svcCtx.GameReportModel.FindMaxByEmail(l.ctx, req.Email) if err != nil { - l.Errorw("find game report error", logx.Field("err", err), logx.Field("email", req.Email)) - return &types.CarvResult{ - Error: &types.Error{ - Code: int(errs.ErrDatabaseOperate), - Message: "system error", - }, + if !errors.Is(err, model.ErrNotFound) { + l.Errorw("find game report error", logx.Field("err", err), logx.Field("email", req.Email)) + return &types.CarvResult{ + Error: &types.Error{ + Code: int(errs.ErrDatabaseOperate), + Message: "system error", + }, + } } + return &types.CarvResult{Result: &types.Result{IsValid: false}} } if gp.Chapter >= req.Chapter { diff --git a/internal/model/nh_game_report_model.go b/internal/model/nh_game_report_model.go index 35fbac6..0818489 100755 --- a/internal/model/nh_game_report_model.go +++ b/internal/model/nh_game_report_model.go @@ -48,10 +48,14 @@ GROUP BY ` var resp GameReport err := m.conn.QueryRowCtx(ctx, &resp, query, email) - if err != nil && !errors.Is(err, sqlx.ErrNotFound) { + switch { + case err == nil: + return &resp, nil + case errors.Is(err, sqlx.ErrNotFound): + return nil, ErrNotFound + default: return nil, err } - return &resp, nil } // NewNhGameReportModel returns a model for the database table.