feat(cache): 添加复合键缓存操作支持

添加了基于 uint32+string 组合键的缓存操作方法,包括
GetByCompoundKey、SetByCompoundKey、DelByCompoundKey 和
ContainsByCompoundKey 方法,用于处理用户ID和会话ID的组合缓存场景

fix(vscode): 添加 cSpell 配置支持 struc 词汇

refactor(session): 移除过时的会话管理方法

移除了基于单一字符串键的会话管理方法,因为已迁移到使用
复合键的缓存操作方式
```
This commit is contained in:
昔念
2026-01-19 18:51:56 +08:00
parent 08ebf849eb
commit 026689f3ed
120 changed files with 1428 additions and 629 deletions

View File

@@ -3,11 +3,11 @@ package controller
import (
"blazing/common/data"
"blazing/common/socket/errorcode"
"fmt"
"blazing/logic/service/player"
"blazing/logic/service/task"
"blazing/modules/blazing/model"
"blazing/modules/config/service"
"blazing/modules/player/model"
)
// AcceptTask 接受任务
@@ -16,13 +16,14 @@ func (h Controller) AcceptTask(data *task.AcceptTaskInboundInfo, c *player.Playe
// if data.Head.CMD != 2201 { //判断是每日任务
// //isdaliy = true
// }
if c.Info.GetTask(int(data.TaskId)) == model.Completed {
return result, 0
if c.Info.GetTask(int(data.TaskId)) != model.Unaccepted {
return nil, errorcode.ErrorCodes.ErrSystemError
}
if !service.NewTaskService().IsAcceptable(data.TaskId) {
return nil, errorcode.ErrorCodes.ErrSystemError
}
if c.Info.GetTask(int(data.TaskId)) == model.Unaccepted {
c.Info.SetTask(int(data.TaskId), model.Accepted)
}
c.Info.SetTask(int(data.TaskId), model.Accepted)
c.Service.Task.Exec(uint32(data.TaskId), func(t *model.TaskEX) bool {
t.Data = []uint32{}
@@ -39,6 +40,10 @@ func (h Controller) AcceptTask(data *task.AcceptTaskInboundInfo, c *player.Playe
// c: 当前玩家对象
// 返回: 空输出结果和错误码
func (h Controller) AddTaskBuf(data *task.AddTaskBufInboundInfo, c *player.Player) (result *task.AddTaskBufOutboundInfo, err errorcode.ErrorCode) {
if !service.NewTaskService().IsAcceptable(data.TaskId) {
return nil, errorcode.ErrorCodes.ErrSystemError
}
c.Service.Task.Exec(data.TaskId, func(taskEx *model.TaskEX) bool {
taskEx.Data = data.TaskList
return true
@@ -54,9 +59,12 @@ func (h Controller) CompleteTask(data1 *task.CompleteTaskInboundInfo, c *player.
if c.Info.GetTask(int(data1.TaskId)) != model.Accepted {
return result, errorcode.ErrorCodes.ErrAwardAlreadyClaimed
}
if data1.OutState > 10 {
fmt.Println("error", data1.OutState, c.Info.UserID, "分支溢出")
return result, 0
// if data1.OutState > 10 {
// fmt.Println("error", data1.OutState, c.Info.UserID, "分支溢出")
// return result, 0
// }
if !service.NewTaskService().IsAcceptable(data1.TaskId) {
return nil, errorcode.ErrorCodes.ErrSystemError
}
c.Info.SetTask(int(data1.TaskId), model.Completed)
@@ -65,7 +73,7 @@ func (h Controller) CompleteTask(data1 *task.CompleteTaskInboundInfo, c *player.
ItemList: make([]data.ItemInfo, 0),
}
taskInfo := task.GetTaskInfo(data1.TaskId, data1.OutState)
taskInfo := task.GetTaskInfo(int(data1.TaskId), int(data1.OutState))
if taskInfo == nil {
return result, 0
}
@@ -104,7 +112,9 @@ func (h Controller) GetTaskBuf(data *task.GetTaskBufInboundInfo, c *player.Playe
// DeleteTask 删除任务
func (h Controller) DeleteTask(data *task.DeleteTaskInboundInfo, c *player.Player) (result *task.DeleteTaskOutboundInfo, err errorcode.ErrorCode) {
if !service.NewTaskService().IsAcceptable(data.TaskId) {
return nil, errorcode.ErrorCodes.ErrSystemError
}
if c.Info.GetTask(int(data.TaskId)) == model.Accepted {
c.Info.SetTask(int(data.TaskId), model.Unaccepted)
return &task.DeleteTaskOutboundInfo{TaskId: data.TaskId}, 0