Files
bl/modules/blazing/controller/app/login.go
昔念 aad1e2f44c feat(fight): 添加战斗前状态检查与经验获取限制判断
- 在挑战BOSS和野外怪物战斗前,增加 CanFight 状态检查,防止非法战斗
- 修复战斗胜利后经验与物品发放逻辑,增加 CanGetExp 判断避免重复获取
- 优化战斗中精灵切换逻辑与相关伤害效果处理,确保死亡标记正确设置
- 修正战斗轮次中被动切换行为及技能执行顺序问题
- 移除无用的管理员会话控制器和宠物融合模型代码
- 调整战斗输入结构体中的 Switch 类型为 Map 以提高查找效率
- 修复战斗中精灵存活判定条件,
2025-12-01 23:31:48 +08:00

86 lines
1.7 KiB
Go

package app
import (
"blazing/common/data/share"
"blazing/cool"
baseservice "blazing/modules/base/service"
"blazing/modules/blazing/service"
"context"
"fmt"
"github.com/gogf/gf/v2/frame/g"
)
type SessionReq struct {
g.Meta `path:"/getSessionByAuth" method:"GET"`
Email string `json:"email" v:"required|email"`
Password string `json:"password" v:"required"`
}
type SessionRes struct {
Msg string `json:"msg"`
Code int `json:"code"`
Session string `json:"session"`
}
type BlazingController struct {
*cool.Controller
}
var biazing_service = service.NewLoginServiceService()
func init() {
var blazing_controller = &BlazingController{
&cool.Controller{
Prefix: "/seer/game",
Api: []string{},
Service: biazing_service,
},
}
// 注册路由
cool.RegisterController(blazing_controller)
}
func (c *BlazingController) GetSession(ctx context.Context, req *SessionReq) (res *SessionRes, err error) {
res = &SessionRes{
Msg: "success",
Code: 200,
Session: ""}
if err := g.Validator().Data(req).Run(ctx); err != nil {
fmt.Println(err)
res.Code = 400
res.Msg = err.Error()
}
res1, err := baseservice.NewBaseSysUserService().GetSession(req.Email, req.Password)
if err != nil || res1 == nil {
res.Code = 400
res.Msg = err.Error()
return
}
accountID := res1.ID
retsid, sid, err := biazing_service.GetSessionId(accountID)
if err != nil {
res.Code = 400
res.Msg = err.Error()
}
res.Session = retsid
if err := share.ShareManager.SaveSession(sid, uint32(accountID)); err != nil {
res.Code = 400
res.Msg = err.Error()
}
return
}
type MockReq struct {
g.Meta `path:"/mock" method:"GET"`
Email string `json:"email" v:"required|email"`
Password string `json:"password" v:"required"`
}