Skip to content

hongch666/shop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shop 购物商城项目

一个基于 Gin 框架的电商平台后端 API 服务,使用 GORM 处理关系型数据库业务,MongoDB 记录用户行为。

🎯 项目特性

核心功能

  • 用户认证系统 - JWT Token 认证,支持用户和管理员两种身份
  • 用户管理 - 注册、登录、个人信息管理、密码加密存储
  • 产品管理 - 商品增删改查、分类管理、库存管理
  • 订单系统 - 订单创建、状态跟踪、订单项管理
  • 收藏系统 - 用户收藏商品管理
  • 评论系统 - 商品评论、用户评论查询
  • 行为追踪 - 用户行为监控和数据分析(MongoDB)
  • 数据验证 - 请求参数验证
  • 跨域支持 - CORS 中间件支持

技术栈

技术 版本 说明
Go 1.21+ 编程语言
Gin v1.9.1 Web 框架
GORM v1.25.4 ORM 数据库操作
MySQL 5.7+ 关系型数据库
MongoDB 4.0+ NoSQL 数据库(用户行为)
JWT v5.0.0 Token 认证
bcryptjs - 密码加密

📁 项目结构

shop/
├── config/              # 配置管理
│   └── config.go       # 应用配置(数据库、JWT、服务器)
├── db/                 # 数据库初始化
│   └── db.go          # MySQL 和 MongoDB 连接
├── models/             # 数据模型
│   └── models.go      # GORM 模型定义与迁移
├── middleware/         # 中间件
│   └── auth.go        # JWT 认证中间件
├── handlers/           # 接口处理器(业务逻辑)
│   ├── auth.go        # 认证接口(登录、注册)
│   ├── user.go        # 用户接口(收藏、评论、订单等)
│   ├── admin.go       # 管理员接口(用户、产品、分类、订单管理)
│   └── product.go     # 产品接口(列表、搜索、评论等)
├── routes/             # 路由定义
│   └── routes.go      # 所有路由注册
├── utils/              # 工具函数
│   └── utils.go       # 验证、加密等实用函数
├── main.go            # 应用入口
├── go.mod             # Go 模块定义
└── README.md          # 项目说明(本文件)

🚀 快速开始

环境需求

  • Go 1.21 或更高版本
  • MySQL 5.7 或更高版本
  • MongoDB 4.0+(可选)

安装步骤

  1. 克隆项目

    git clone https://github.com/hongch666/shop.git
    cd shop
    git checkout backend/go
  2. 下载依赖

    go mod download
  3. 配置环境

    创建 .env 文件(可选):

    SERVER_HOST=0.0.0.0
    SERVER_PORT=:8088
    MYSQL_DSN=root:password@tcp(127.0.0.1:3306)/shop?charset=utf8mb4&parseTime=True&loc=Local
    MONGODB_URI=mongodb://localhost:27017
    MONGODB_NAME=shop
    JWT_SECRET_USER=hjk666
    JWT_SECRET_ADMIN=hongch666
  4. 初始化数据库

    # 创建 MySQL 数据库
    mysql -u root -p -e "CREATE DATABASE shop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
  5. 启动服务

    go run main.go

    服务将运行在 http://0.0.0.0:8088

🔌 API 接口文档

核心端点

认证相关 (/login)

  • POST /login/register - 用户注册
  • POST /login/user - 用户登录
  • POST /login/admin - 管理员登录

用户接口 (/user) - 需要用户 JWT Token

  • GET /user/info - 获取用户信息
  • PUT /user/info - 更新用户信息
  • GET /user/collections - 获取收藏列表
  • POST /user/collections - 添加收藏
  • GET /user/comments - 获取我的评论
  • POST /user/comments - 创建评论
  • GET /user/orders - 获取订单
  • POST /user/orders - 创建订单

产品接口 (/product) - 无需认证

  • GET /product - 获取产品列表
  • GET /product/:id - 获取产品详情
  • GET /product/category/:id - 按分类获取产品

分类接口 (/category) - 无需认证

  • GET /category - 获取分类列表
  • GET /category/:id - 获取分类详情

管理员接口 (/admin) - 需要管理员 JWT Token

  • GET /admin/home - 管理员首页统计
  • GET /admin/users - 获取用户列表
  • POST /admin/products - 创建产品
  • PUT /admin/products/:id - 更新产品
  • PUT /admin/orders/:id - 更新订单状态
  • GET /admin/behaviors - 获取用户行为

📊 API 响应格式

成功响应 (code=0)

{
  "code": 0,
  "msg": "成功",
  "data": {}
}

错误响应 (code=1)

{
  "code": 1,
  "msg": "错误信息"
}

🔒 认证说明

  • 用户 Token 使用 JwtSecretKeyUser 密钥加密
  • 管理员 Token 使用 JwtSecretKeyAdmin 密钥加密
  • 过期时间 默认 10 小时

请求头格式

Authorization: Bearer <token>

📚 相关资源

📄 许可证

MIT License


其他分支:

  • main - 主分支
  • front - 前端 Vue.js 项目
  • backend/node - Node.js 后端版本

About

Shop 购物商城 - 全栈电商解决方案,完整的后端实现(Go), 响应式前端(Vue.js),支持用户认证、产品管理、订单系统、评论收藏等核心功能。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages