feat(rpc): 优化 RPC 客户端地址配置逻辑

- 将 RPC 地址从硬编码改为通过 service 动态获取
- 修改端口常量名称 rpcaddr 为 rpcport,提升语义清晰度
- 调整客户端连接逻辑以支持动态 IP 和端口拼接

fix(fight): 修复技能命中与闪避逻辑执行顺序

- 调整战斗中技能攻击流程,确保命中率和闪避计算正确应用
- 更新 effect 接口定义,增强技能使用前后的控制节点
- 增加伤害计算过程中的多阶段触发机制(加法、乘法、减法等)

feat(config): 更新数据库及 Redis 配置信息

- 修改 PostgreSQL 用户名、密码和数据库名
- 更新 Redis 访问密码
- 调整服务器 IP 获取方式,区分测试环境与生产环境

chore(vscode): 优化调试配置 console 输出设置

- 在 launch.json 中为调试配置增加 integratedTerminal 控制台选项
- 统一逻辑服务启动参数格式

chore(gitignore): 忽略特定平台编译产物

- 添加针对 Linux 平台的 logic 和 login 模块编译文件忽略规则
```
This commit is contained in:
2025-09-28 01:58:42 +08:00
parent d7712ef70f
commit 6eb244b73f
20 changed files with 3406 additions and 1682 deletions

4
.gitignore vendored
View File

@@ -28,4 +28,6 @@ data/redis/
go.work.sum go.work.sum
__debug_* __debug_*
frontend/ frontend/
*.exe *.exe
logic/logic_linux_amd64
login/login_linux_amd64

4
.vscode/launch.json vendored
View File

@@ -23,7 +23,7 @@
"mode": "auto", "mode": "auto",
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
"args": ["-port=1"," -race"], "args": ["-port=1"," -race"],
"program": "${workspaceFolder}/logic", "program": "${workspaceFolder}/logic", "console": "integratedTerminal"
}, { }, {
"name": "Launch logic2", "name": "Launch logic2",
@@ -33,7 +33,7 @@
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
"args": ["-port=2"], "args": ["-port=2"],
"program": "${workspaceFolder}/logic", "console": "integratedTerminal" "program": "${workspaceFolder}/logic",
}, },
{ {
"name": "Launch login-tcp", "name": "Launch login-tcp",

View File

@@ -3,6 +3,7 @@ package rpc
import ( import (
"blazing/common/data/share" "blazing/common/data/share"
"blazing/cool" "blazing/cool"
"blazing/modules/base/service"
"context" "context"
"fmt" "fmt"
"log" "log"
@@ -11,7 +12,7 @@ import (
"github.com/filecoin-project/go-jsonrpc" "github.com/filecoin-project/go-jsonrpc"
) )
const rpcaddr = "127.0.0.1:40000" const rpcport = ":40000"
var clientmap = make(map[uint16]*ClientHandler) //客户端map var clientmap = make(map[uint16]*ClientHandler) //客户端map
var clientidmap = make(map[uint16]uint16) //客户端map var clientidmap = make(map[uint16]uint16) //客户端map
@@ -76,7 +77,7 @@ func StartServer() {
// testjsonrpc() // testjsonrpc()
// }) // })
err := http.ListenAndServe(rpcaddr, rpcServer) err := http.ListenAndServe(rpcport, rpcServer)
cool.Loger.Debug(context.Background(), "jsonrpc server fail", err) cool.Loger.Debug(context.Background(), "jsonrpc server fail", err)
} }
@@ -88,18 +89,20 @@ func StartClient(id, port uint16, callback any) *struct {
RegisterLogic func(uint16, uint16) error RegisterLogic func(uint16, uint16) error
} { } {
var rpcaddr, _ = service.NewBaseSysParamService().DataByKey(context.Background(), "server_ip")
closer1, err := jsonrpc.NewMergeClient(context.Background(), closer1, err := jsonrpc.NewMergeClient(context.Background(),
"ws://"+rpcaddr, "", []interface{}{ "ws://"+rpcaddr+rpcport, "", []interface{}{
&RPCClient, &RPCClient,
}, nil, jsonrpc.WithClientHandler("", callback), }, nil, jsonrpc.WithClientHandler("", callback),
jsonrpc.WithReconnFun(func() { RPCClient.RegisterLogic(id, port) }),//TODO 这里会出现server0注册 jsonrpc.WithReconnFun(func() { RPCClient.RegisterLogic(id, port) }), //TODO 这里会出现server0注册
) )
if err != nil { if err != nil {
log.Fatalf("Failed to create client: %v", err) log.Fatalf("Failed to create client: %v", err)
} }
//if port != 0 { //注册logic //if port != 0 { //注册logic
RPCClient.RegisterLogic(id, port) RPCClient.RegisterLogic(id, port)
//} //}

View File

@@ -388,10 +388,10 @@ func (f *FightC) parseskill(attacker, defender *input.Input, id *SelectSkillActi
args := xmlres.EffectArgs[v] args := xmlres.EffectArgs[v]
if t.Effect.GetOwner() { //如果取反,说明是给对方添加的回合效果 if t.ID != 0 && t.Effect.GetOwner() { //如果取反,说明是给对方添加的回合效果
//实际上,owner永远为反,说明是对方给我添加的 //实际上,owner永远为反,说明是对方给我添加的
t.Effect.SetArgs(attacker, temparg[:args]...) //设置入参,施加方永远是我方 t.Effect.SetArgs(attacker, temparg[:args]...) //设置入参,施加方永远是我方
attacker.AddEffect(t) //给双方添加 //给双方添加
defender.AddEffect(t) defender.AddEffect(t)
} else { } else {
t.Effect.SetArgs(attacker, temparg[:args]...) //设置入参 t.Effect.SetArgs(attacker, temparg[:args]...) //设置入参
@@ -421,7 +421,14 @@ func (f *FightC) initAttackers(fattack BattleActionI) {
// 处理技能攻击逻辑 // 处理技能攻击逻辑
func (f *FightC) processSkillAttack(attacker, defender *input.Input, a *SelectSkillAction) { func (f *FightC) processSkillAttack(attacker, defender *input.Input, a *SelectSkillAction) {
skill.AttackTimeC(int(u.GetProp(5, true))) //计算命中
defender.Exec(func(t input.Effect) (bool { //计算闪避 ,然后修改对方命中),同时相当于计算属性无效这种
t.PreUseSkill(attacker, skill)
return true
})
f.parseskill(attacker, defender, a) //是否miss都应该施加解析effect
// 记录技能信息 // 记录技能信息
attacker.AttackValue.SkillID = uint32(a.Skill.ID) //获取技能ID attacker.AttackValue.SkillID = uint32(a.Skill.ID) //获取技能ID
@@ -431,17 +438,11 @@ func (f *FightC) processSkillAttack(attacker, defender *input.Input, a *SelectSk
return true return true
}) })
defender.Exec(func(t input.Effect) bool { //计算闪避
t.BeforeSkill(attacker, a.Skill)
return true
})
attacker.UseSkill(defender, a.Skill) //攻击方计算技能使用 attacker.UseSkill(defender, a.Skill) //攻击方计算技能使用
attacker.AttackValue.AttackTime = a.Skill.AttackTime attacker.AttackValue.AttackTime = a.Skill.AttackTime
f.parseskill(attacker, defender, a) //是否miss都应该施加解析effect
if attacker.AttackValue.AttackTime > 0 { //如果命中 if attacker.AttackValue.AttackTime > 0 { //如果命中
attacker.DamageZone.Attack = int(attacker.CalculatePower(defender, a.Skill).IntPart()) attacker.DamageZone.Attack = int(attacker.CalculatePower(defender, a.Skill).IntPart())
@@ -461,7 +462,7 @@ func (f *FightC) processSkillAttack(attacker, defender *input.Input, a *SelectSk
}) })
defender.Exec(func(t input.Effect) bool { defender.Exec(func(t input.Effect) bool {
if t.GetOwner() { //如果取反,说明是给对方添加的回合效果 if t.GetInput() == attacker { //如果取反,说明是给对方添加的回合效果
t.Hit(true) t.Hit(true)
} }
return true return true
@@ -476,7 +477,7 @@ func (f *FightC) processSkillAttack(attacker, defender *input.Input, a *SelectSk
return true return true
}) })
defender.Damage(attacker, info.DamageZone{ defender.Damage(attacker, a.Skill, info.DamageZone{
Type: info.DamageType.Red, Type: info.DamageType.Red,
Damage: decimal.NewFromInt(int64(attacker.DamageZone.Attack)), Damage: decimal.NewFromInt(int64(attacker.DamageZone.Attack)),
}) })
@@ -516,19 +517,24 @@ func (f *FightC) enterturn(fattack, sattack BattleActionI) {
return true return true
}) })
canuseskill := attacker.Exec(func(t input.Effect) bool { //这个是能否使用技能
//结算状态
return t.CanSkill(defender) //返回本身结算,如果false,说明不能使用技能了
})
skill, ok := attackeraction.(*SelectSkillAction) skill, ok := attackeraction.(*SelectSkillAction)
if !ok || attacker.CurrentPet.Info.Hp <= 0 { //还有系统选择放弃出手的 if !ok || attacker.CurrentPet.Info.Hp <= 0 { //还有系统选择放弃出手的
attacker.AttackValue.SkillID = 0 attacker.AttackValue.SkillID = 0
canuseskill = false canuseskill = false
} }
if canuseskill { //可以使用技能
oldskill, _ := deepcopy.Anything(skill.Skill) //备份技能 oldskill, _ := deepcopy.Anything(skill.Skill) //备份技能
canuseskillok := attacker.Exec(func(t input.Effect) bool { //这个是能否使用技能
//结算状态
//然后这里还可以处理自爆类
return t.CanSkill(defender,skill) //返回本身结算,如果false,说明不能使用技能了
})
if !canuseskill||!canuseskillok{ //可以使用技能
f.processSkillAttack(attacker, defender, skill) f.processSkillAttack(attacker, defender, skill)
skill.Skill = oldskill.(*info.SkillEntity) //还原技能效果 skill.Skill = oldskill.(*info.SkillEntity) //还原技能效果

View File

@@ -166,7 +166,7 @@ func getSkillName(move *SkillEntity) string {
// 计算是否命中 // 计算是否命中
func (s *SkillEntity) AttackTimeC(level int) { func (s *SkillEntity) AttackTimeC(level int) {
s.AttackTime = 0 //先重置上一次的 //s.AttackTime = 0 //先重置上一次的
if s.MustHit != 0 { if s.MustHit != 0 {
s.AttackTime = 2 s.AttackTime = 2
} }

View File

@@ -5,38 +5,37 @@ import (
) )
type Effect interface { type Effect interface {
OnBattleStart() bool //战斗开始 OnBattleStart() bool //战斗开始
OnTurnStart(opp *Input) //回合开始,注入特性 OnTurnStart(opp *Input) //回合开始,注入特性
PreActionStart() bool //行动开始前,注入视为等参数在这里实现
CanSkill(opp *Input) bool //使用技能 可以取消用技能节点 PreSkill(opp *Input, skill *info.SkillEntity) //对技能修改,比如变威力 行动开始前,注入视为等参数在这里实现
PreSkill(opp *Input, skill *info.SkillEntity) //技能修改,比如变威力 PreUseSkill(opp *Input, skill *info.SkillEntity) // 技能命中前触发//预处理受击技能 被攻击方效果,比如受击时无效技能这样
BeforeSkill(opp *Input, skill *info.SkillEntity) // 技能命中前触发//预处理受击技能 被攻击方效果
OnSkill(opp *Input, skill *info.SkillEntity) // 触发on miss onhit OnSkill(opp *Input, skill *info.SkillEntity) // 触发on miss onhit
BeferProp(in *Input, prop, level int8, ptype info.EnumAbilityOpType) bool //锁定属性 CanSkill(opp *Input, skill *info.SkillEntity) bool //使用技能 可以取消用技能节点 技能无效节点锁定伤害加上
Damage_ADD(opp *Input, skill *info.SkillEntity, id *info.DamageZone) bool // 攻击前触发 ,这时候就是+区间
Damage_Mul(opp *Input, skill *info.SkillEntity, id *info.DamageZone) bool // 攻击触发
SetArgs(input *Input, param ...int) Damage_Floor(opp *Input, skill *info.SkillEntity, id *info.DamageZone) bool // 保底伤害
Damage_DIV(opp *Input, skill *info.SkillEntity, id *info.DamageZone) bool //受击前触发 这时候就是百分比减伤区间
Damage_SUB(opp *Input, skill *info.SkillEntity, id *info.DamageZone) bool // 受击触发 这时候就是点数减伤
Damage_Lock(opp *Input, skill *info.SkillEntity, id *info.DamageZone) bool //锁定伤害
BeforeAttack(opp *Input, id *info.DamageZone) // 攻击前触发 ,这时候就是+区间 Damage_Post() bool // 伤害结算后触发(血量扣除后),
Attack(opp *Input, id *info.DamageZone) // 攻击触发
FloorDamage(opp *Input, id *info.DamageZone) // 保底伤害 Shield() bool // 护盾值变化时触发
BeforeAttacked(opp *Input, id *info.DamageZone) //受击前触发 这时候就是百分比减伤区间
Attacked(opp *Input, id *info.DamageZone) // 受击触发 这时候就是点数减伤
LockDamage(opp *Input, id *info.DamageZone) //锁定伤害
PostDamage() bool // 伤害结算后触发(血量扣除后),比如触发回神,反弹也在这里实现
Shield() bool // 护盾值变化时触发
OnSwitchIn() bool // 精灵出战 / 上场时触发 OnSwitchIn() bool // 精灵出战 / 上场时触发
OnSwitchOut() bool // 精灵下场时触发 OnSwitchOut() bool // 精灵下场时触发
OnOwnerSwitchIn() bool // 所属玩家精灵出战时触发 OnOwnerSwitchIn() bool // 所属玩家精灵出战时触发
OnOwnerSwitchOut() bool // 所属玩家精灵下场时触发 OnOwnerSwitchOut() bool // 所属玩家精灵下场时触发
OnActionEnd() bool //行动结束后
TurnEnd(opp *Input) //闪避率计算,,实际上是修改命中的判断
PreBattleEnd() bool //战斗结束前
OnBattleEnd() bool //战斗结束
TurnEnd(opp *Input) //闪避率计算,,实际上是修改命中的判断
PreBattleEnd() bool //战斗结束前
OnBattleEnd() bool //战斗结束
BeferProp(in *Input, prop, level int8, ptype info.EnumAbilityOpType) bool //锁定属性
SetArgs(input *Input, param ...int)
// OnSkillPP() bool //技能PP减少节点 // OnSkillPP() bool //技能PP减少节点
// // 治疗相关触发 // // 治疗相关触发
// OnBeforeHeal() bool // 治疗前触发 // OnBeforeHeal() bool // 治疗前触发
@@ -52,5 +51,6 @@ type Effect interface {
MaxStack(...int) int MaxStack(...int) int
NotALive() NotALive()
GetOwner() bool // 技能属主,比如寄生和镇魂歌,属主是对方) GetOwner() bool // 技能属主,比如寄生和镇魂歌,属主是对方)
GetInput() *Input
//GetSkill() *BattleSkillEntity //获得技能ctx //GetSkill() *BattleSkillEntity //获得技能ctx
} }

View File

@@ -10,7 +10,7 @@ import (
) )
func (u *Input) UseSkill(opp *Input, skill *info.SkillEntity) { func (u *Input) UseSkill(opp *Input, skill *info.SkillEntity) {
skill.AttackTimeC(int(u.GetProp(5, true))) //计算命中
skill.Crit = 0 skill.Crit = 0
if skill.Category() == info.Category.STATUS { //属性技能不用算暴击 if skill.Category() == info.Category.STATUS { //属性技能不用算暴击
return return
@@ -41,8 +41,9 @@ func (u *Input) UseSkill(opp *Input, skill *info.SkillEntity) {
} }
// 伤害落实 // 伤害落实 // 血量扣减节点比如触发回神,反弹也在这里实现
func (u *Input) Damage(attacker *Input, id info.DamageZone) { func (u *Input) Damage(attacker *Input, skill info.SkillEntity, id info.DamageZone) {
attacker.Exec(func(t Effect) bool { attacker.Exec(func(t Effect) bool {
t.BeforeAttack(u, &id) //红伤落实前,我方增伤 t.BeforeAttack(u, &id) //红伤落实前,我方增伤

View File

@@ -19,8 +19,13 @@ type Input struct {
// info.BattleActionI // info.BattleActionI
Effects *utils.OrderedMap[int, Effect] //effects 实际上全局就是effect无限回合 //effects容器 技能的 Effects *utils.OrderedMap[int, Effect] //effects 实际上全局就是effect无限回合 //effects容器 技能的
DamageZone struct { DamageZone struct {
Attack int //攻击伤害 Damage int //伤害
OldAttack int //攻击伤害被挡前伤害记录 BeforeADD int //攻击伤害
BeforeMul int
BeforeDiv int
BeforeSUB int
BeforeLock int //锁伤 先锁受击方,再锁攻击方 受击方免疫也是这么锁 免疫等于锁0
//OldAttack int //攻击伤害被挡前伤害记录
} //伤害容器 } //伤害容器
First bool //是否先手 First bool //是否先手
} }

View File

@@ -5,6 +5,7 @@ import (
"blazing/logic/service/player" "blazing/logic/service/player"
baseservice "blazing/modules/base/service" baseservice "blazing/modules/base/service"
"blazing/modules/blazing/model" "blazing/modules/blazing/model"
"context"
"github.com/butoften/array" "github.com/butoften/array"
) )
@@ -82,14 +83,17 @@ func GetServerInfoList() []ServerInfo {
t.Structs(&ret) t.Structs(&ret)
//fmt.Println(t) //fmt.Println(t)
var ret1 []ServerInfo var ret1 []ServerInfo
ip := baseservice.NewBaseSysConfService().GetValue("server_ip") ip, _ := baseservice.NewBaseSysParamService().DataByKey(context.Background(), "server_ip")
testip, _ := baseservice.NewBaseSysParamService().DataByKey(context.Background(), "test_ip")
for _, v := range ret { for _, v := range ret {
tt := newServerInfo() tt := newServerInfo()
tt.OnlineID = uint32(v.OnlineID) tt.OnlineID = uint32(v.OnlineID)
// tt.UserCnt = v.UserCnt // tt.UserCnt = v.UserCnt
//tt.IP = v.IP //tt.IP = v.IP
tt.IP = ip tt.IP = ip
if tt.OnlineID == 2 {
tt.IP = testip
}
tt.Port = v.Port tt.Port = v.Port
// tt.Friends = v.Friends // tt.Friends = v.Friends
ret1 = append(ret1, *tt) ret1 = append(ret1, *tt)

View File

@@ -18,9 +18,9 @@ database:
type: "pgsql" type: "pgsql"
host: "122.10.117.123" host: "122.10.117.123"
port: "5432" port: "5432"
user: "seer" user: "bl"
pass: "seer" pass: "WYrM5ZYFnX7Y8PRC"
name: "seer" name: "bl"
debug: true debug: true
timezone: "Asia/Shanghai" timezone: "Asia/Shanghai"
createdAt: "createTime" createdAt: "createTime"
@@ -52,7 +52,7 @@ redis:
cool: cool:
address: "122.10.117.123:6379" address: "122.10.117.123:6379"
db: 0 db: 0
pass: "redis_3zXPwf" pass: "redis_PPn5iT"
blazing: blazing:
autoMigrate: true autoMigrate: true

File diff suppressed because one or more lines are too long

View File

@@ -1,10 +1,10 @@
[ [
{ {
"id": 1, "id": 1,
"createTime": "2021-02-26 13:53:05.000000", "createTime": "2025-07-05 16:23:10.896559 +00:00",
"updateTime": "2021-03-03 17:50:04.000000", "updateTime": "2025-07-05 16:23:10.896559 +00:00",
"deleted_at": null,
"cKey": "server_ip", "cKey": "server_ip",
"cValue": "127.0.0.1" "cValue": "192.168.1.44"
} }
] ]

View File

@@ -1,34 +1,38 @@
[ [
{ {
"id": 1, "id": 1,
"createTime": "2021-02-24 21:17:11.971397", "createTime": "2025-07-05 11:18:43.560949 +00:00",
"updateTime": "2021-02-24 21:17:15.697917", "updateTime": "2025-07-05 11:18:43.560949 +00:00",
"deleted_at": null,
"name": "COOL", "name": "COOL",
"parentId": null, "parentId": null,
"orderNum": 0 "orderNum": 0
}, },
{ {
"id": 11, "id": 11,
"createTime": "2021-02-26 14:17:06.690613", "createTime": "2025-07-05 11:18:43.560949 +00:00",
"updateTime": "2021-02-26 14:17:06.690613", "updateTime": "2025-07-05 11:18:43.560949 +00:00",
"deleted_at": null,
"name": "开发", "name": "开发",
"parentId": "1", "parentId": 1,
"orderNum": 0 "orderNum": 0
}, },
{ {
"id": 12, "id": 12,
"createTime": "2021-02-26 14:17:11.576369", "createTime": "2025-07-05 11:18:43.560949 +00:00",
"updateTime": "2021-02-26 14:17:11.576369", "updateTime": "2025-07-05 11:18:43.560949 +00:00",
"deleted_at": null,
"name": "测试", "name": "测试",
"parentId": "1", "parentId": 1,
"orderNum": 0 "orderNum": 0
}, },
{ {
"id": 13, "id": 13,
"createTime": "2021-02-26 14:28:59.685177", "createTime": "2025-07-05 11:18:43.560949 +00:00",
"updateTime": "2021-02-26 14:28:59.685177", "updateTime": "2025-07-05 11:18:43.560949 +00:00",
"deleted_at": null,
"name": "游客", "name": "游客",
"parentId": "1", "parentId": 1,
"orderNum": 0 "orderNum": 0
} }
] ]

File diff suppressed because it is too large Load Diff

View File

@@ -1,22 +1,35 @@
[ [
{
"id": 1,
"createTime": "2021-02-26 13:53:05.000000",
"updateTime": "2021-03-03 17:50:04.000000",
"keyName": "text",
"name": "富文本参数",
"data": "<p><strong class=\"ql-size-huge\">111xxxxx2222<span class=\"ql-cursor\"></span></strong></p>",
"dataType": 0,
"remark": null
},
{ {
"id": 2, "id": 2,
"createTime": "2021-02-26 13:53:18.000000", "createTime": "2025-07-05 11:18:43.780757 +00:00",
"updateTime": "2021-02-26 13:53:18.000000", "updateTime": "2025-07-05 11:18:43.780757 +00:00",
"deleted_at": null,
"keyName": "json", "keyName": "json",
"name": "JSON参数", "name": "JSON参数",
"data": "{\n code: 111\n}", "data": "{\n code: 111\n}",
"dataType": 0, "dataType": 0,
"remark": null "remark": null
},
{
"id": 3,
"createTime": "2025-07-24 01:57:40.852696 +00:00",
"updateTime": "2025-07-24 01:57:40.852696 +00:00",
"deleted_at": "2025-07-24 01:58:08.256613 +00:00",
"keyName": "22222",
"name": "2222",
"data": "",
"dataType": 0,
"remark": null
},
{
"id": 1,
"createTime": "2025-07-05 11:18:43.000000 +00:00",
"updateTime": "2025-08-23 07:12:17.933214 +00:00",
"deleted_at": null,
"keyName": "text",
"name": "富文本参数",
"data": "<p><strong>111xxxxx2222 </strong></p>",
"dataType": 0,
"remark": null
} }
] ]

View File

@@ -1,9 +1,21 @@
[ [
{
"id": 12,
"createTime": "2025-07-05 11:18:43.280967 +00:00",
"updateTime": "2025-07-05 11:18:43.280967 +00:00",
"deleted_at": null,
"userId": "10001",
"name": "开发",
"label": "dev",
"remark": null,
"relevance": 0
},
{ {
"id": 1, "id": 1,
"createTime": "2021-02-24 21:18:39.682358", "createTime": "2025-07-05 11:18:43.280967 +00:00",
"updateTime": "2021-02-24 21:18:39.682358", "updateTime": "2025-07-05 11:18:43.280967 +00:00",
"userId": "1", "deleted_at": null,
"userId": "10001",
"name": "超管", "name": "超管",
"label": "admin", "label": "admin",
"remark": "最高权限的角色", "remark": "最高权限的角色",
@@ -11,9 +23,10 @@
}, },
{ {
"id": 10, "id": 10,
"createTime": "2021-02-26 14:15:38.000000", "createTime": "2025-07-05 11:18:43.280967 +00:00",
"updateTime": "2021-02-26 14:15:38.000000", "updateTime": "2025-07-05 11:18:43.280967 +00:00",
"userId": "1", "deleted_at": null,
"userId": "10001",
"name": "系统管理员", "name": "系统管理员",
"label": "admin-sys", "label": "admin-sys",
"remark": null, "remark": null,
@@ -21,29 +34,21 @@
}, },
{ {
"id": 11, "id": 11,
"createTime": "2021-02-26 14:16:49.044744", "createTime": "2025-07-05 11:18:43.280967 +00:00",
"updateTime": "2021-02-26 14:16:49.044744", "updateTime": "2025-07-05 11:18:43.280967 +00:00",
"userId": "1", "deleted_at": null,
"userId": "10001",
"name": "游客", "name": "游客",
"label": "visitor", "label": "visitor",
"remark": null, "remark": null,
"relevance": 0 "relevance": 0
}, },
{
"id": 12,
"createTime": "2021-02-26 14:26:51.000000",
"updateTime": "2021-02-26 14:32:35.000000",
"userId": "1",
"name": "开发",
"label": "dev",
"remark": null,
"relevance": 0
},
{ {
"id": 13, "id": 13,
"createTime": "2021-02-26 14:27:58.000000", "createTime": "2025-07-05 11:18:43.000000 +00:00",
"updateTime": "2021-02-26 14:33:49.000000", "updateTime": "2025-08-23 08:09:34.626121 +00:00",
"userId": "1", "deleted_at": null,
"userId": "10001",
"name": "测试", "name": "测试",
"label": "test", "label": "test",
"remark": null, "remark": null,

View File

@@ -1,65 +1,106 @@
[ [
{ {
"id": 1, "id": 1,
"createTime": "2021-02-26 12:00:23.787939", "createTime": "2025-08-23 05:43:53.849563 +00:00",
"updateTime": "2021-02-26 12:00:23.787939", "updateTime": "2025-08-23 05:43:53.849563 +00:00",
"roleId": "8", "deleted_at": null,
"departmentId": "4" "roleId": 8,
"departmentId": 4
}, },
{ {
"id": 2, "id": 2,
"createTime": "2021-02-26 12:01:11.525205", "createTime": "2025-08-23 05:43:53.849563 +00:00",
"updateTime": "2021-02-26 12:01:11.525205", "updateTime": "2025-08-23 05:43:53.849563 +00:00",
"roleId": "9", "deleted_at": null,
"departmentId": "1" "roleId": 9,
"departmentId": 1
}, },
{ {
"id": 3, "id": 3,
"createTime": "2021-02-26 12:01:11.624266", "createTime": "2025-08-23 05:43:53.849563 +00:00",
"updateTime": "2021-02-26 12:01:11.624266", "updateTime": "2025-08-23 05:43:53.849563 +00:00",
"roleId": "9", "deleted_at": null,
"departmentId": "4" "roleId": 9,
"departmentId": 4
}, },
{ {
"id": 4, "id": 4,
"createTime": "2021-02-26 12:01:11.721894", "createTime": "2025-08-23 05:43:53.849563 +00:00",
"updateTime": "2021-02-26 12:01:11.721894", "updateTime": "2025-08-23 05:43:53.849563 +00:00",
"roleId": "9", "deleted_at": null,
"departmentId": "5" "roleId": 9,
"departmentId": 5
}, },
{ {
"id": 5, "id": 5,
"createTime": "2021-02-26 12:01:11.823342", "createTime": "2025-08-23 05:43:53.849563 +00:00",
"updateTime": "2021-02-26 12:01:11.823342", "updateTime": "2025-08-23 05:43:53.849563 +00:00",
"roleId": "9", "deleted_at": null,
"departmentId": "8" "roleId": 9,
"departmentId": 8
}, },
{ {
"id": 6, "id": 6,
"createTime": "2021-02-26 12:01:11.922873", "createTime": "2025-08-23 05:43:53.849563 +00:00",
"updateTime": "2021-02-26 12:01:11.922873", "updateTime": "2025-08-23 05:43:53.849563 +00:00",
"roleId": "9", "deleted_at": null,
"departmentId": "9" "roleId": 9,
"departmentId": 9
}, },
{ {
"id": 23, "id": 23,
"createTime": "2021-02-26 14:32:40.354669", "createTime": "2025-08-23 05:43:53.849563 +00:00",
"updateTime": "2021-02-26 14:32:40.354669", "updateTime": "2025-08-23 05:43:53.849563 +00:00",
"roleId": "12", "deleted_at": null,
"departmentId": "11" "roleId": 12,
"departmentId": 11
}, },
{ {
"id": 25, "id": 25,
"createTime": "2021-02-26 14:32:59.726608", "createTime": "2025-08-23 05:43:53.849563 +00:00",
"updateTime": "2021-02-26 14:32:59.726608", "updateTime": "2025-08-23 05:43:53.849563 +00:00",
"roleId": "10", "deleted_at": null,
"departmentId": "1" "roleId": 10,
"departmentId": 1
}, },
{ {
"id": 27, "id": 27,
"createTime": "2021-02-26 14:33:54.579947", "createTime": "2025-08-23 05:43:53.849563 +00:00",
"updateTime": "2021-02-26 14:33:54.579947", "updateTime": "2025-08-23 05:43:53.849563 +00:00",
"roleId": "13", "deleted_at": "2025-08-23 07:42:11.081001 +00:00",
"departmentId": "12" "roleId": 13,
"departmentId": 12
},
{
"id": 28,
"createTime": "2025-08-23 07:42:11.118641 +00:00",
"updateTime": "2025-08-23 07:42:11.118641 +00:00",
"deleted_at": "2025-08-23 07:47:36.012774 +00:00",
"roleId": 13,
"departmentId": 12
},
{
"id": 29,
"createTime": "2025-08-23 07:47:36.056391 +00:00",
"updateTime": "2025-08-23 07:47:36.056391 +00:00",
"deleted_at": "2025-08-23 08:06:24.924177 +00:00",
"roleId": 13,
"departmentId": 12
},
{
"id": 30,
"createTime": "2025-08-23 08:06:24.956074 +00:00",
"updateTime": "2025-08-23 08:06:24.956074 +00:00",
"deleted_at": "2025-08-23 08:09:34.744853 +00:00",
"roleId": 13,
"departmentId": 12
},
{
"id": 31,
"createTime": "2025-08-23 08:09:34.783688 +00:00",
"updateTime": "2025-08-23 08:09:34.783688 +00:00",
"deleted_at": null,
"roleId": 13,
"departmentId": 12
} }
] ]

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +1,38 @@
[ [
{ {
"id": 10001, "id": 10001,
"createTime": "2021-02-24 21:16:41.525157", "createTime": "2025-07-05 11:18:43.064150 +00:00",
"updateTime": "2021-02-27 18:21:16.000000", "updateTime": "2025-07-05 11:18:43.064150 +00:00",
"departmentId": "1", "deleted_at": null,
"name": "超级管理员", "departmentId": 1,
"username": "admin", "username": "admin",
"password": "e10adc3949ba59abbe56e057f20f883e", "password": "e10adc3949ba59abbe56e057f20f883e",
"passwordV": 3, "passwordV": 3,
"nickName": "管理员", "nickName": "管理员",
"headImg": "", "headImg": " ",
"phone": "18000000000", "phone": "18000000000",
"email": "123456@123.com", "email": "123456@123.com",
"status": 1, "status": 1,
"remark": "拥有最高权限的用户", "remark": "拥有最高权限的用户",
"socketId": null "socketId": null,
"isNew": false
},
{
"id": 10002,
"createTime": "2025-08-15 16:21:02.000000 +00:00",
"updateTime": "2025-08-23 08:09:49.258343 +00:00",
"deleted_at": null,
"departmentId": 1,
"username": "test",
"password": "e10adc3949ba59abbe56e057f20f883e",
"passwordV": 1,
"nickName": "test",
"headImg": null,
"phone": null,
"email": null,
"status": 1,
"remark": null,
"socketId": null,
"isNew": false
} }
] ]

View File

@@ -1,205 +1,306 @@
[ [
{
"id": 1,
"createTime": "2021-02-24 22:03:11.665805",
"updateTime": "2021-02-24 22:03:11.665805",
"userId": "10001",
"roleId": "1"
},
{ {
"id": 2, "id": 2,
"createTime": "2021-02-25 11:03:55.325988", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 11:03:55.325988", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "2", "deleted_at": null,
"roleId": "1" "userId": 2,
"roleId": 1
}, },
{ {
"id": 3, "id": 3,
"createTime": "2021-02-25 14:30:57.295150", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 14:30:57.295150", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "3", "deleted_at": null,
"roleId": "1" "userId": 3,
"roleId": 1
}, },
{ {
"id": 4, "id": 4,
"createTime": "2021-02-25 14:39:32.975014", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 14:39:32.975014", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "4", "deleted_at": null,
"roleId": "1" "userId": 4,
"roleId": 1
}, },
{ {
"id": 5, "id": 5,
"createTime": "2021-02-25 14:40:56.812948", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 14:40:56.812948", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "5", "deleted_at": null,
"roleId": "1" "userId": 5,
"roleId": 1
}, },
{ {
"id": 6, "id": 6,
"createTime": "2021-02-25 14:44:08.436555", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 14:44:08.436555", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "6", "deleted_at": null,
"roleId": "1" "userId": 6,
"roleId": 1
}, },
{ {
"id": 7, "id": 7,
"createTime": "2021-02-25 14:46:17.409232", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 14:46:17.409232", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "7", "deleted_at": null,
"roleId": "1" "userId": 7,
"roleId": 1
}, },
{ {
"id": 8, "id": 8,
"createTime": "2021-02-25 14:47:47.211749", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 14:47:47.211749", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "8", "deleted_at": null,
"roleId": "1" "userId": 8,
"roleId": 1
}, },
{ {
"id": 9, "id": 9,
"createTime": "2021-02-25 14:48:11.734024", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 14:48:11.734024", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "9", "deleted_at": null,
"roleId": "1" "userId": 9,
"roleId": 1
}, },
{ {
"id": 10, "id": 10,
"createTime": "2021-02-25 14:50:48.288616", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 14:50:48.288616", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "10", "deleted_at": null,
"roleId": "1" "userId": 10,
"roleId": 1
}, },
{ {
"id": 11, "id": 11,
"createTime": "2021-02-25 14:51:32.123884", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 14:51:32.123884", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "11", "deleted_at": null,
"roleId": "1" "userId": 11,
"roleId": 1
}, },
{ {
"id": 12, "id": 12,
"createTime": "2021-02-25 15:46:26.356943", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 15:46:26.356943", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "12", "deleted_at": null,
"roleId": "1" "userId": 12,
"roleId": 1
}, },
{ {
"id": 13, "id": 13,
"createTime": "2021-02-25 15:56:43.475155", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 15:56:43.475155", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "13", "deleted_at": null,
"roleId": "1" "userId": 13,
"roleId": 1
}, },
{ {
"id": 14, "id": 14,
"createTime": "2021-02-25 16:03:14.417784", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 16:03:14.417784", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "14", "deleted_at": null,
"roleId": "1" "userId": 14,
"roleId": 1
}, },
{ {
"id": 16, "id": 16,
"createTime": "2021-02-25 16:22:11.200152", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 16:22:11.200152", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "16", "deleted_at": null,
"roleId": "1" "userId": 16,
"roleId": 1
}, },
{ {
"id": 17, "id": 17,
"createTime": "2021-02-25 17:44:37.635550", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 17:44:37.635550", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "15", "deleted_at": null,
"roleId": "1" "userId": 15,
"roleId": 1
}, },
{ {
"id": 19, "id": 19,
"createTime": "2021-02-25 17:51:00.554812", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 17:51:00.554812", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "18", "deleted_at": null,
"roleId": "1" "userId": 18,
"roleId": 1
}, },
{ {
"id": 21, "id": 21,
"createTime": "2021-02-25 17:54:41.375113", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 17:54:41.375113", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "17", "deleted_at": null,
"roleId": "1" "userId": 17,
"roleId": 1
}, },
{ {
"id": 22, "id": 22,
"createTime": "2021-02-25 17:55:49.385301", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 17:55:49.385301", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "20", "deleted_at": null,
"roleId": "1" "userId": 20,
"roleId": 1
}, },
{ {
"id": 24, "id": 24,
"createTime": "2021-02-25 17:58:35.452363", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 17:58:35.452363", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "22", "deleted_at": null,
"roleId": "1" "userId": 22,
"roleId": 1
}, },
{ {
"id": 27, "id": 27,
"createTime": "2021-02-25 21:25:55.005236", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-25 21:25:55.005236", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "19", "deleted_at": null,
"roleId": "1" "userId": 19,
"roleId": 1
}, },
{ {
"id": 28, "id": 28,
"createTime": "2021-02-26 13:50:05.633242", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-26 13:50:05.633242", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "21", "deleted_at": null,
"roleId": "8" "userId": 21,
"roleId": 8
}, },
{ {
"id": 29, "id": 29,
"createTime": "2021-02-26 13:50:17.836990", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-26 13:50:17.836990", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "23", "deleted_at": null,
"roleId": "8" "userId": 23,
"roleId": 8
}, },
{ {
"id": 38, "id": 38,
"createTime": "2021-02-26 14:36:08.899046", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-26 14:36:08.899046", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "26", "deleted_at": null,
"roleId": "13" "userId": 26,
"roleId": 13
}, },
{ {
"id": 39, "id": 39,
"createTime": "2021-02-26 14:36:13.149510", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-26 14:36:13.149510", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "25", "deleted_at": null,
"roleId": "13" "userId": 25,
"roleId": 13
}, },
{ {
"id": 40, "id": 40,
"createTime": "2021-02-26 14:36:20.737073", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-26 14:36:20.737073", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "27", "deleted_at": null,
"roleId": "11" "userId": 27,
"roleId": 11
}, },
{ {
"id": 42, "id": 42,
"createTime": "2021-02-26 14:36:53.481478", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-26 14:36:53.481478", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "24", "deleted_at": null,
"roleId": "12" "userId": 24,
"roleId": 12
}, },
{ {
"id": 43, "id": 43,
"createTime": "2021-02-26 14:36:58.477817", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-26 14:36:58.477817", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "28", "deleted_at": null,
"roleId": "12" "userId": 28,
"roleId": 12
}, },
{ {
"id": 44, "id": 44,
"createTime": "2021-02-26 14:36:58.577114", "createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2021-02-26 14:36:58.577114", "updateTime": "2025-07-05 11:18:43.184896 +00:00",
"userId": "28", "deleted_at": null,
"roleId": "10" "userId": 28,
"roleId": 10
},
{
"id": 1,
"createTime": "2025-07-05 11:18:43.184896 +00:00",
"updateTime": "2025-07-05 11:18:43.184896 +00:00",
"deleted_at": null,
"userId": 10001,
"roleId": 1
},
{
"id": 45,
"createTime": "2025-08-15 16:21:57.696585 +00:00",
"updateTime": "2025-08-15 16:21:57.696585 +00:00",
"deleted_at": "2025-08-23 05:22:24.765856 +00:00",
"userId": 10002,
"roleId": 11
},
{
"id": 46,
"createTime": "2025-08-15 16:21:57.696585 +00:00",
"updateTime": "2025-08-15 16:21:57.696585 +00:00",
"deleted_at": "2025-08-23 05:22:24.765856 +00:00",
"userId": 10002,
"roleId": 10
},
{
"id": 47,
"createTime": "2025-08-23 05:22:24.801744 +00:00",
"updateTime": "2025-08-23 05:22:24.801744 +00:00",
"deleted_at": "2025-08-23 07:51:40.635948 +00:00",
"userId": 10002,
"roleId": 11
},
{
"id": 48,
"createTime": "2025-08-23 05:22:24.801744 +00:00",
"updateTime": "2025-08-23 05:22:24.801744 +00:00",
"deleted_at": "2025-08-23 07:51:40.635948 +00:00",
"userId": 10002,
"roleId": 10
},
{
"id": 49,
"createTime": "2025-08-23 05:22:24.801744 +00:00",
"updateTime": "2025-08-23 05:22:24.801744 +00:00",
"deleted_at": "2025-08-23 07:51:40.635948 +00:00",
"userId": 10002,
"roleId": 12
},
{
"id": 50,
"createTime": "2025-08-23 07:51:40.670112 +00:00",
"updateTime": "2025-08-23 07:51:40.670112 +00:00",
"deleted_at": "2025-08-23 07:52:15.011567 +00:00",
"userId": 10002,
"roleId": 12
},
{
"id": 51,
"createTime": "2025-08-23 07:51:40.670112 +00:00",
"updateTime": "2025-08-23 07:51:40.670112 +00:00",
"deleted_at": "2025-08-23 07:52:15.011567 +00:00",
"userId": 10002,
"roleId": 13
},
{
"id": 52,
"createTime": "2025-08-23 07:51:40.670112 +00:00",
"updateTime": "2025-08-23 07:51:40.670112 +00:00",
"deleted_at": "2025-08-23 07:52:15.011567 +00:00",
"userId": 10002,
"roleId": 11
},
{
"id": 53,
"createTime": "2025-08-23 07:52:15.053358 +00:00",
"updateTime": "2025-08-23 07:52:15.053358 +00:00",
"deleted_at": null,
"userId": 10002,
"roleId": 13
} }
] ]