huwei 2ec7413942 init 1 日 前
..
config 2ec7413942 init 1 日 前
internal 2ec7413942 init 1 日 前
package 2ec7413942 init 1 日 前
resource 2ec7413942 init 1 日 前
utility 2ec7413942 init 1 日 前
.env 2ec7413942 init 1 日 前
.gitattributes 2ec7413942 init 1 日 前
.gitignore 2ec7413942 init 1 日 前
Makefile 2ec7413942 init 1 日 前
README.md 2ec7413942 init 1 日 前
admin-entrance 2ec7413942 init 1 日 前
build_64.bat 2ec7413942 init 1 日 前
deploy.sh 2ec7413942 init 1 日 前
go.mod 2ec7413942 init 1 日 前
local.env 2ec7413942 init 1 日 前
main.go 2ec7413942 init 1 日 前
yanyv.env 2ec7413942 init 1 日 前

README.md

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