Skip to content

Latest commit

 

History

270 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Walk-Server

基于gbc&mygo框架的毅行后端代码,分成用户端,扫码端,数据大盘三个部分。

项目基于 Go、Gin、GORM Gen 和 mygo 构建,当前代码结构已经按业务域拆分为 adminuserdashboard 三组接口,并使用 repo + cache + lock 的方式处理数据访问、缓存和并发写入。

功能概览

用户侧

  • 手机号与密码登录
  • 学生 / 教职工 / 校友注册
  • 用户信息查询与修改
  • 创建、加入、随机匹配和查看队伍
  • 调整、提交、撤销提交和解散队伍

管理员侧

  • 管理员登录
  • 绑定队伍签到码
  • 队伍点位打卡
  • 查询队伍当前状态
  • 查询用户信息 / 扫码查人
  • 更改人员状态
  • 标记队伍违规
  • 确认到达终点
  • 重组队伍

Dashboard

  • 总览统计
  • 单路线统计
  • 点位详情
  • 路段人数统计
  • 队伍筛选
  • 队伍详情
  • 队伍失联状态设置
  • 权限查询

技术栈

  • Go
  • Gin
  • GORM / GORM Gen
  • MySQL
  • Redis
  • mygo

目录结构

.
├── api
│   ├── admin          # 管理员接口
│   ├── dashboard      # Dashboard 接口
│   └── user           # 用户接口
├── comm               # 错误码、枚举、锁与公共方法
├── conf               # 配置文件
├── dao
│   ├── cache          # Redis 缓存
│   ├── model          # gorm/gen 生成的 model
│   ├── query          # gorm/gen 生成的类型安全查询
│   └── repo           # 数据访问层
├── deploy/sql         # 数据库建表脚本
├── middleware         # 登录态、权限等中间件
├── register           # Boot、路由和命令注册
└── cmd/gen            # GORM Gen 生成入口

环境要求

  • Go 1.24+
  • MySQL 8.x
  • Redis

配置说明

配置模板见 conf/config.example.yaml

最少需要确认以下配置:

app:
  env: "dev"

http_server:
  addr: ":8888"

db:
  host: "127.0.0.1"
  port: 3306
  username: "jh_user"
  password: "jh_pass"
  database: "jh_db"

redis:
  addrs:
    - "127.0.0.1:6379"
  db: 0
  password: "jh_pass"

lock:
  redis: "redis"

session:
  driver: "memory"
  name: "session"
  secret: "secert"
  redis: ""

说明:

  • db 用于 MySQL 连接
  • redis 用于缓存与分布式锁
  • lock.redis 指定锁依赖的 Redis 实例名
  • session.driver 可以用 memoryredis
  • biz 中包含活动阶段、每日及总提交名额、队伍人数上限等业务配置

启动方式

复制配置文件:

cp conf/config.example.yaml conf/config.yaml

启动服务:

go run .

项目入口见 [main.go],启动后会拉起 HTTP 服务。

编译校验

GOCACHE=/tmp/gocache go build ./...

代码生成

项目使用 gorm.io/gen 维护 dao/modeldao/query

生成入口:

  • [generate.go]

执行命令:

go run cmd/gen/generate.go

当表结构变更后,建议重新生成。

About

精弘毅行报名系统后端

Resources

Stars

6 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages