# gm后端 ## 项目介绍 - 为游戏提供GM指令、玩家信息查询和修改 - 为策划提供运营数据统计分析,数据报表 - 为游戏服务器提供数据库修改工具和一些后台相关的定时任务 - 和游戏版本保持跟进,保证GM指令和数据统计能够正常稳定使用 ## 项目入口说明 - 后台主服务直接通过go run main.go启动即可,以下是相关的子服务 ``` cmd ├── cron.go // 定时任务 ├── generate.go // gen生成model和query代码 ├── queue.go // 队列服务 ├── jsonc.go // json转换工具 └── root.go ``` ## 主要的定时任务 ``` go run cmd.go last // 执行上次的定时任务 go run cmd.go cron redis // 执行redis历史key删除,并记录数据日志 go run cmd.go cron downloadBackup // 执行下载备份数据到obs go run cmd.go cron order // 同步订单列表 go run cmd.go cron rolesCount // 统计各个角色等级 go run cmd.go cron haveRoles // 统计拥有角色数据 go run cmd.go cron chapter // 同步章节进度 go run cmd.go cron email // 备份email.db go run cmd.go cron notice // 备份notices.json go run cmd.go cron changed // 统计玩家消费 go run cmd.go cron still // 返还所有玩家装备材料 go run cmd.go cron roleStill // 转换角色结构体 go run cmd.go cron channel // 同步渠道玩家 go run cmd.go cron oldGuide // 更新老玩家新手引导屏蔽 go run cmd.go cron filterInitDps // 过滤战斗数据中的初始dps值 go run cmd.go cron joinChannel // 导入渠道ID go run cmd.go cron exchangePray // 新年礼包祈福道具返还金币 go run cmd.go cron logins // 过滤最近连续登录的玩家 go run cmd.go cron convPvpKey // 转换pvp玩家key hash -> string. go run cmd.go cron repay38 // 38活动补偿 go run cmd.go cron maxTalents // 最大天赋统计 go run cmd.go cron levelOutput // 同步等级产出 go run cmd.go cron gameAlarm // 游戏进程监控报警 go run cmd.go cron suppleOrderAt // 追加安卓订单创建时间 go run cmd.go cron migrateZoneBonus // 迁移地下城活动难度加成 ``` ### 项目结构说明 ``` ├─cmd // 服务启动入口文件 ├─config // 配置初始化加载 ├─internal // 项目核心业务 │ ├─admin // 后台api相关 │ ├─cron // 定时任务 │ │ └─jobs │ │ └─types │ ├─elastic // es的索引建立和一些常用dsl │ │ ├─docs │ │ └─eapi │ ├─generate // 生成的orm文件 │ ├─gorm │ │ ├─model │ │ └─query │ ├─jsonc // json转换工具 │ │ └─conv │ └─queues // 队列 │ └─subscribes ├─logs // 日志 ├─manifest // 一些本地化配置 │ ├─graveserver │ └─locales ├─package // 一些依赖包 │ ├─gmdata │ ├─gmmodule │ ├─graveserver │ │ └─leafstalk │ └─wxpay ├─resource // 静态资源 │ └─public │ ├─gadmin // 前端编译后文件路径 │ │ └─assets │ ├─json │ └─serverjson ├─storage │ └─local └─utility // 一些常用的工具包 ├─character ├─compress ├─player ├─serializer ├─snowflake └─token ``` ## 项目部署步骤 1. 先将前端编译好,放到`server/resource/public/gadmin/` 2. go build -o gadmin main.go && go build -o console cmd.go 3. 将编译后的gadmin、console可执行文件,以及resource目录覆盖到需要部署的服务器对应目录即可 ## 配置选项 1. 数据库: 主要是由后台(MYSQL_DSN)、登录(MYSQL_LOGIN_DSN)及游戏(MYSQL_GRAVE_DSN、MYSQL_GRAVE1_DSN..) 三个部分组成 2. Redis: 后台(LOG_REDIS_ADDR)一个及游戏服(REDIS_ADDR)有几个就配置几个 3. 部署脚本: DEPLOY_SH_URL="https://gravedygate1.mg.xhgame.com/sh/" 脚本地址 DEPLOY_ORIGIN_URL="https://gravedygate1.mg.xhgame.com/serverupgrade" 远程地址 DEPLOY_NOTIFY_URL="http://120.53.242.156:7002/api/deploy/notify" 部署后通知地址 DEPLOY_MODE="4" #抖音4 微信3 测试1 美团5 DEPLOY_GRAVE_GATE="gate1,gate2,gate3" #gate1,gate2,gate3