5683f35942a8157ca52ec24f0b999fdbaf4558e2
电商微信小程序
数据库mysql 127.0.0.1:3306 root JKjk20011115 ai_dianshang redis 127.0.0.1:6379
项目概述
本项目是一个功能完整的电商微信小程序,提供商品展示、购物车、订单管理、用户管理等核心电商功能。
项目结构
dianshang/
├── server/ # 后端服务
│ ├── cmd/ # 命令行工具
│ │ ├── migrate/ # 数据库迁移工具
│ │ └── server/ # 服务启动入口
│ ├── configs/ # 配置文件
│ ├── internal/ # 内部代码
│ │ ├── config/ # 配置管理
│ │ ├── handler/ # HTTP处理器
│ │ ├── middleware/ # 中间件
│ │ ├── model/ # 数据模型
│ │ ├── repository/ # 数据访问层
│ │ ├── router/ # 路由配置
│ │ ├── service/ # 业务逻辑层
│ │ └── utils/ # 工具函数
│ ├── migrations/ # 数据库迁移文件
│ ├── go.mod # Go模块文件
│ └── go.sum # Go依赖锁定文件
└── README.md # 项目说明文档
技术栈
后端技术栈
- 后端框架: Gin
- 数据库: MySQL 8.0+
- 缓存: Redis
- ORM: GORM
- 配置管理: Viper
- 日志: Logrus + Lumberjack
- JWT: golang-jwt/jwt
- 密码加密: bcrypt
环境要求
- Go 1.21+
- MySQL 8.0+
- Redis 6.0+
快速开始
1. 克隆项目
git clone <repository-url>
cd dianshang
2. 安装依赖
cd server
go mod download
3. 配置数据库
创建 MySQL 数据库:
CREATE DATABASE dianshang CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
4. 配置文件
修改 server/configs/config.yaml 中的数据库和Redis连接信息:
server:
port: 8080
mode: debug
database:
driver: mysql
host: localhost
port: 3306
username: root
password: your_password
dbname: dianshang
charset: utf8mb4
parseTime: true
loc: Local
redis:
host: localhost
port: 6379
password: ""
db: 0
jwt:
secret: your_jwt_secret_key
expire: 168h
log:
level: info
filename: logs/app.log
maxSize: 100
maxAge: 30
maxBackups: 5
wechat:
appId: your_wechat_app_id
appSecret: your_wechat_app_secret
5. 数据库迁移
运行数据库迁移:
# 仅迁移表结构
go run cmd/migrate/main.go
# 迁移表结构并初始化示例数据
go run cmd/migrate/main.go --seed
或者直接执行SQL文件:
mysql -u root -p dianshang < migrations/init.sql
6. 启动服务
go run cmd/server/main.go
服务将在 http://localhost:8080 启动。
API 文档
用户相关接口
用户登录
POST /api/users/login
Content-Type: application/json
{
"code": "微信登录code"
}
获取用户信息
GET /api/users/profile
Authorization: Bearer <token>
更新用户信息
PUT /api/users/profile
Authorization: Bearer <token>
Content-Type: application/json
{
"nickname": "昵称",
"avatar": "头像URL",
"gender": 1,
"phone": "手机号",
"email": "邮箱"
}
地址管理
GET /api/users/addresses # 获取地址列表
POST /api/users/addresses # 创建地址
PUT /api/users/addresses/:id # 更新地址
DELETE /api/users/addresses/:id # 删除地址
PUT /api/users/addresses/:id/default # 设置默认地址
商品相关接口
获取商品列表
GET /api/products?page=1&limit=10&category_id=1&keyword=搜索关键词&min_price=100&max_price=1000
获取商品详情
GET /api/products/:id
获取商品分类
GET /api/products/categories
商品搜索
GET /api/products/search?keyword=关键词&page=1&limit=10
热门商品
GET /api/products/hot
推荐商品
GET /api/products/recommend
商品评价
GET /api/products/:id/reviews # 获取商品评价
POST /api/products/:id/reviews # 创建评价
购物车相关接口
获取购物车
GET /api/cart
Authorization: Bearer <token>
添加商品到购物车
POST /api/cart
Authorization: Bearer <token>
Content-Type: application/json
{
"product_id": 1,
"quantity": 2
}
更新购物车商品
PUT /api/cart/:id
Authorization: Bearer <token>
Content-Type: application/json
{
"quantity": 3
}
删除购物车商品
DELETE /api/cart/:id
Authorization: Bearer <token>
清空购物车
DELETE /api/cart
Authorization: Bearer <token>
获取购物车数量
GET /api/cart/count
Authorization: Bearer <token>
订单相关接口
创建订单
POST /api/orders
Authorization: Bearer <token>
Content-Type: application/json
{
"address_id": 1,
"items": [
{
"product_id": 1,
"quantity": 2
}
],
"remark": "备注"
}
获取订单列表
GET /api/orders?page=1&limit=10&status=1
Authorization: Bearer <token>
获取订单详情
GET /api/orders/:id
Authorization: Bearer <token>
支付订单
POST /api/orders/:id/pay
Authorization: Bearer <token>
Content-Type: application/json
{
"payment_method": 1
}
取消订单
POST /api/orders/:id/cancel
Authorization: Bearer <token>
确认收货
POST /api/orders/:id/receive
Authorization: Bearer <token>
管理后台接口
用户管理
GET /api/admin/users # 获取用户列表
GET /api/admin/users/:id # 获取用户详情
PUT /api/admin/users/:id/status # 更新用户状态
商品管理
GET /api/admin/products # 获取商品列表
POST /api/admin/products # 创建商品
PUT /api/admin/products/:id # 更新商品
DELETE /api/admin/products/:id # 删除商品
分类管理
GET /api/admin/categories # 获取分类列表
POST /api/admin/categories # 创建分类
PUT /api/admin/categories/:id # 更新分类
DELETE /api/admin/categories/:id # 删除分类
订单管理
GET /api/admin/orders # 获取订单列表
GET /api/admin/orders/:id # 获取订单详情
POST /api/admin/orders/:id/ship # 发货
数据统计
GET /api/admin/statistics # 获取统计数据
GET /api/admin/statistics/daily # 获取每日统计
部署说明
Docker 部署
- 创建 Dockerfile:
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o main cmd/server/main.go
FROM alpine:latest
RUN apk --no-cache add ca-certificates tzdata
WORKDIR /root/
COPY --from=builder /app/main .
COPY --from=builder /app/configs ./configs
EXPOSE 8080
CMD ["./main"]
- 构建镜像:
cd server
docker build -t dianshang-server .
- 运行容器:
docker run -d \
--name dianshang-server \
-p 8080:8080 \
-v $(pwd)/configs:/root/configs \
-v $(pwd)/logs:/root/logs \
dianshang-server
生产环境部署
- 编译二进制文件:
cd server
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o dianshang cmd/server/main.go
- 上传到服务器并运行:
# 上传文件
scp dianshang user@server:/path/to/app/
scp -r configs user@server:/path/to/app/
# 在服务器上运行
chmod +x dianshang
./dianshang
- 使用 systemd 管理服务:
创建 /etc/systemd/system/dianshang.service:
[Unit]
Description=Dianshang Server
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/path/to/app
ExecStart=/path/to/app/dianshang
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
启动服务:
sudo systemctl daemon-reload
sudo systemctl enable dianshang
sudo systemctl start dianshang
Nginx 反向代理
配置 Nginx:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
开发指南
代码规范
- 使用
gofmt格式化代码 - 遵循 Go 官方编码规范
- 使用有意义的变量和函数名
- 添加必要的注释
测试
运行测试:
go test ./...
日志
日志文件位置:logs/app.log
日志级别:
debug: 调试信息info: 一般信息warn: 警告信息error: 错误信息
常见问题
1. 数据库连接失败
检查数据库配置是否正确,确保 MySQL 服务正在运行。
2. Redis 连接失败
检查 Redis 配置是否正确,确保 Redis 服务正在运行。
3. JWT Token 验证失败
检查 JWT 密钥配置是否正确,确保客户端正确传递 Authorization 头。
贡献指南
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
业务需求
1. 用户管理
- 用户注册/登录: 支持微信授权登录
- 用户信息管理: 个人资料、收货地址管理
- 用户等级: 普通用户、VIP用户等级体系
- 积分系统: 购物积分、积分兑换
2. 商品管理
- 商品分类: 多级分类展示
- 商品详情: 商品图片、描述、规格、价格
- 商品搜索: 关键词搜索、分类筛选
- 商品收藏: 用户收藏商品功能
- 商品评价: 用户评价和评分系统
3. 购物车功能
- 添加商品: 选择规格、数量添加到购物车
- 购物车管理: 修改数量、删除商品
- 批量操作: 全选、批量删除
4. 订单管理
- 下单流程: 选择地址、支付方式、确认订单
- 订单状态: 待支付、待发货、待收货、已完成、已取消
- 订单详情: 查看订单信息、物流跟踪
- 退款/退货: 申请退款退货流程
5. 支付功能
- 微信支付: 集成微信支付API
- 支付状态: 支付成功/失败处理
- 退款处理: 自动/手动退款
6. 营销功能
- 优惠券: 满减券、折扣券
- 秒杀活动: 限时抢购
- 拼团: 多人拼团优惠
- 推荐系统: 个性化商品推荐
7. 管理后台
- 商品管理: 商品增删改查、库存管理
- 订单管理: 订单处理、发货管理
- 用户管理: 用户信息查看、权限管理
- 数据统计: 销售数据、用户数据分析
数据表结构
用户相关表
users (用户表)
CREATE TABLE `users` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`openid` VARCHAR(100) NOT NULL COMMENT '微信openid',
`unionid` VARCHAR(100) DEFAULT NULL COMMENT '微信unionid',
`nickname` VARCHAR(50) DEFAULT NULL COMMENT '昵称',
`avatar_url` VARCHAR(255) DEFAULT NULL COMMENT '头像URL',
`gender` TINYINT UNSIGNED DEFAULT 0 COMMENT '性别 0-未知 1-男 2-女',
`phone` VARCHAR(20) DEFAULT NULL COMMENT '手机号',
`email` VARCHAR(100) DEFAULT NULL COMMENT '邮箱',
`birthday` DATE DEFAULT NULL COMMENT '生日',
`level` TINYINT UNSIGNED DEFAULT 1 COMMENT '用户等级',
`points` INT UNSIGNED DEFAULT 0 COMMENT '积分',
`status` TINYINT UNSIGNED DEFAULT 1 COMMENT '状态 0-禁用 1-正常',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`deleted_at` DATETIME(3) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `idx_users_openid` (`openid`),
KEY `idx_users_deleted_at` (`deleted_at`),
KEY `idx_users_phone` (`phone`),
KEY `idx_users_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
user_addresses (用户地址表)
CREATE TABLE `user_addresses` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` BIGINT UNSIGNED NOT NULL,
`name` VARCHAR(50) NOT NULL COMMENT '收货人姓名',
`phone` VARCHAR(20) NOT NULL COMMENT '收货人电话',
`province` VARCHAR(50) NOT NULL COMMENT '省份',
`city` VARCHAR(50) NOT NULL COMMENT '城市',
`district` VARCHAR(50) NOT NULL COMMENT '区县',
`detail` VARCHAR(255) NOT NULL COMMENT '详细地址',
`is_default` TINYINT UNSIGNED DEFAULT 0 COMMENT '是否默认地址',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`deleted_at` DATETIME(3) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_user_addresses_user_id` (`user_id`),
KEY `idx_user_addresses_deleted_at` (`deleted_at`),
KEY `idx_user_addresses_is_default` (`is_default`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户地址表';
商品相关表
categories (商品分类表)
CREATE TABLE `categories` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL COMMENT '分类名称',
`parent_id` BIGINT UNSIGNED DEFAULT 0 COMMENT '父分类ID',
`level` TINYINT UNSIGNED DEFAULT 1 COMMENT '分类级别',
`sort_order` INT DEFAULT 0 COMMENT '排序',
`icon` VARCHAR(255) DEFAULT NULL COMMENT '分类图标',
`status` TINYINT UNSIGNED DEFAULT 1 COMMENT '状态 0-禁用 1-启用',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`deleted_at` DATETIME(3) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_categories_parent_id` (`parent_id`),
KEY `idx_categories_status` (`status`),
KEY `idx_categories_sort_order` (`sort_order`),
KEY `idx_categories_deleted_at` (`deleted_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品分类表';
products (商品表)
CREATE TABLE `products` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL COMMENT '商品名称',
`category_id` BIGINT UNSIGNED NOT NULL COMMENT '分类ID',
`brand` VARCHAR(100) DEFAULT NULL COMMENT '品牌',
`description` TEXT COMMENT '商品描述',
`main_image` VARCHAR(255) DEFAULT NULL COMMENT '主图',
`price` DECIMAL(10,2) NOT NULL COMMENT '价格',
`original_price` DECIMAL(10,2) DEFAULT NULL COMMENT '原价',
`stock` INT UNSIGNED DEFAULT 0 COMMENT '库存',
`sales` INT UNSIGNED DEFAULT 0 COMMENT '销量',
`status` TINYINT UNSIGNED DEFAULT 1 COMMENT '状态 0-下架 1-上架',
`sort_order` INT DEFAULT 0 COMMENT '排序',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`deleted_at` DATETIME(3) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_products_category_id` (`category_id`),
KEY `idx_products_status` (`status`),
KEY `idx_products_sort_order` (`sort_order`),
KEY `idx_products_deleted_at` (`deleted_at`),
KEY `idx_products_price` (`price`),
KEY `idx_products_sales` (`sales`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品表';
product_images (商品图片表)
CREATE TABLE `product_images` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`product_id` BIGINT UNSIGNED NOT NULL,
`image_url` VARCHAR(255) NOT NULL COMMENT '图片URL',
`sort_order` INT DEFAULT 0 COMMENT '排序',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`deleted_at` DATETIME(3) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_product_images_product_id` (`product_id`),
KEY `idx_product_images_sort_order` (`sort_order`),
KEY `idx_product_images_deleted_at` (`deleted_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品图片表';
product_specs (商品规格表)
CREATE TABLE `product_specs` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`product_id` BIGINT UNSIGNED NOT NULL,
`spec_name` VARCHAR(50) NOT NULL COMMENT '规格名称',
`spec_value` VARCHAR(100) NOT NULL COMMENT '规格值',
`price` DECIMAL(10,2) DEFAULT NULL COMMENT '规格价格',
`stock` INT UNSIGNED DEFAULT 0 COMMENT '规格库存',
`sku_code` VARCHAR(100) DEFAULT NULL COMMENT 'SKU编码',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`deleted_at` DATETIME(3) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_product_specs_product_id` (`product_id`),
KEY `idx_product_specs_sku_code` (`sku_code`),
KEY `idx_product_specs_deleted_at` (`deleted_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品规格表';
购物车和订单相关表
carts (购物车表)
CREATE TABLE `carts` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`user_id` BIGINT UNSIGNED NOT NULL,
`product_id` BIGINT UNSIGNED NOT NULL,
`spec_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '规格ID',
`quantity` INT UNSIGNED NOT NULL DEFAULT 1 COMMENT '数量',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`deleted_at` DATETIME(3) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_carts_user_id` (`user_id`),
KEY `idx_carts_product_id` (`product_id`),
KEY `idx_carts_spec_id` (`spec_id`),
KEY `idx_carts_deleted_at` (`deleted_at`),
UNIQUE KEY `uk_carts_user_product_spec` (`user_id`, `product_id`, `spec_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='购物车表';
orders (订单表)
CREATE TABLE `orders` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`order_no` VARCHAR(50) NOT NULL COMMENT '订单号',
`user_id` BIGINT UNSIGNED NOT NULL,
`total_amount` DECIMAL(10,2) NOT NULL COMMENT '订单总金额',
`discount_amount` DECIMAL(10,2) DEFAULT 0.00 COMMENT '优惠金额',
`shipping_fee` DECIMAL(10,2) DEFAULT 0.00 COMMENT '运费',
`actual_amount` DECIMAL(10,2) NOT NULL COMMENT '实付金额',
`status` TINYINT UNSIGNED DEFAULT 1 COMMENT '订单状态 1-待支付 2-待发货 3-待收货 4-已完成 5-已取消',
`payment_method` TINYINT UNSIGNED DEFAULT NULL COMMENT '支付方式 1-微信支付',
`payment_status` TINYINT UNSIGNED DEFAULT 0 COMMENT '支付状态 0-未支付 1-已支付',
`shipping_name` VARCHAR(50) DEFAULT NULL COMMENT '收货人姓名',
`shipping_phone` VARCHAR(20) DEFAULT NULL COMMENT '收货人电话',
`shipping_address` VARCHAR(500) DEFAULT NULL COMMENT '收货地址',
`remark` TEXT COMMENT '订单备注',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`deleted_at` DATETIME(3) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_orders_order_no` (`order_no`),
KEY `idx_orders_user_id` (`user_id`),
KEY `idx_orders_status` (`status`),
KEY `idx_orders_payment_status` (`payment_status`),
KEY `idx_orders_created_at` (`created_at`),
KEY `idx_orders_deleted_at` (`deleted_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订单表';
order_items (订单商品表)
CREATE TABLE `order_items` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`order_id` BIGINT UNSIGNED NOT NULL,
`product_id` BIGINT UNSIGNED NOT NULL,
`spec_id` BIGINT UNSIGNED DEFAULT NULL COMMENT '规格ID',
`product_name` VARCHAR(255) NOT NULL COMMENT '商品名称',
`spec_name` VARCHAR(100) DEFAULT NULL COMMENT '规格名称',
`price` DECIMAL(10,2) NOT NULL COMMENT '商品价格',
`quantity` INT UNSIGNED NOT NULL COMMENT '购买数量',
`total_amount` DECIMAL(10,2) NOT NULL COMMENT '小计金额',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`deleted_at` DATETIME(3) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_order_items_order_id` (`order_id`),
KEY `idx_order_items_product_id` (`product_id`),
KEY `idx_order_items_spec_id` (`spec_id`),
KEY `idx_order_items_deleted_at` (`deleted_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订单商品表';
营销相关表
coupons (优惠券表)
CREATE TABLE coupons (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL COMMENT '优惠券名称',
type TINYINT NOT NULL COMMENT '类型 1-满减券 2-折扣券',
value DECIMAL(10,2) NOT NULL COMMENT '优惠值',
min_amount DECIMAL(10,2) DEFAULT 0 COMMENT '最低消费金额',
total_count INT NOT NULL COMMENT '发放总数',
used_count INT DEFAULT 0 COMMENT '已使用数量',
start_time TIMESTAMP NOT NULL COMMENT '开始时间',
end_time TIMESTAMP NOT NULL COMMENT '结束时间',
status TINYINT DEFAULT 1 COMMENT '状态 0-禁用 1-启用',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
user_coupons (用户优惠券表)
CREATE TABLE user_coupons (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT NOT NULL,
coupon_id INT NOT NULL,
status TINYINT DEFAULT 0 COMMENT '状态 0-未使用 1-已使用 2-已过期',
used_at TIMESTAMP NULL COMMENT '使用时间',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (coupon_id) REFERENCES coupons(id)
);
评价相关表
product_reviews (商品评价表)
CREATE TABLE product_reviews (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT NOT NULL,
product_id INT NOT NULL,
order_id INT NOT NULL,
rating TINYINT NOT NULL COMMENT '评分 1-5星',
content TEXT COMMENT '评价内容',
images VARCHAR(1000) COMMENT '评价图片,JSON格式',
is_anonymous TINYINT DEFAULT 0 COMMENT '是否匿名评价',
reply_content TEXT COMMENT '商家回复',
reply_time TIMESTAMP NULL COMMENT '回复时间',
status TINYINT DEFAULT 1 COMMENT '状态 0-隐藏 1-显示',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id),
FOREIGN KEY (product_id) REFERENCES products(id),
FOREIGN KEY (order_id) REFERENCES orders(id)
);
公共业务表
system_logs (系统日志表)
CREATE TABLE system_logs (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id INT COMMENT '用户ID',
module VARCHAR(50) NOT NULL COMMENT '模块名称',
action VARCHAR(50) NOT NULL COMMENT '操作类型',
method VARCHAR(10) COMMENT '请求方法',
url VARCHAR(500) COMMENT '请求URL',
ip VARCHAR(50) COMMENT 'IP地址',
user_agent VARCHAR(500) COMMENT '用户代理',
request_data TEXT COMMENT '请求参数',
response_data TEXT COMMENT '响应数据',
status_code INT COMMENT '状态码',
execution_time INT COMMENT '执行时间(毫秒)',
error_message TEXT COMMENT '错误信息',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
INDEX idx_user_id (user_id),
INDEX idx_module_action (module, action),
INDEX idx_created_at (created_at)
);
system_configs (系统配置表)
CREATE TABLE system_configs (
id INT PRIMARY KEY AUTO_INCREMENT,
config_key VARCHAR(100) UNIQUE NOT NULL COMMENT '配置键',
config_value TEXT COMMENT '配置值',
config_type VARCHAR(20) DEFAULT 'string' COMMENT '配置类型',
description VARCHAR(255) COMMENT '配置描述',
is_public TINYINT DEFAULT 0 COMMENT '是否公开配置',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
notifications (通知消息表)
CREATE TABLE notifications (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT COMMENT '用户ID,为空表示系统通知',
type VARCHAR(50) NOT NULL COMMENT '通知类型',
title VARCHAR(255) NOT NULL COMMENT '通知标题',
content TEXT NOT NULL COMMENT '通知内容',
data JSON COMMENT '附加数据',
is_read TINYINT DEFAULT 0 COMMENT '是否已读',
read_at TIMESTAMP NULL COMMENT '阅读时间',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id),
INDEX idx_user_read (user_id, is_read),
INDEX idx_created_at (created_at)
);
file_uploads (文件上传记录表)
CREATE TABLE file_uploads (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT COMMENT '上传用户ID',
original_name VARCHAR(255) NOT NULL COMMENT '原始文件名',
file_name VARCHAR(255) NOT NULL COMMENT '存储文件名',
file_path VARCHAR(500) NOT NULL COMMENT '文件路径',
file_size BIGINT NOT NULL COMMENT '文件大小(字节)',
mime_type VARCHAR(100) COMMENT '文件类型',
file_hash VARCHAR(64) COMMENT '文件哈希值',
usage_type VARCHAR(50) COMMENT '使用类型',
status TINYINT DEFAULT 1 COMMENT '状态 0-删除 1-正常',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id),
INDEX idx_file_hash (file_hash),
INDEX idx_usage_type (usage_type)
);
admin_users (管理员用户表)
CREATE TABLE admin_users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) UNIQUE NOT NULL COMMENT '用户名',
password VARCHAR(255) NOT NULL COMMENT '密码',
real_name VARCHAR(50) COMMENT '真实姓名',
email VARCHAR(100) COMMENT '邮箱',
phone VARCHAR(20) COMMENT '手机号',
avatar VARCHAR(255) COMMENT '头像',
role_id INT COMMENT '角色ID',
last_login_at TIMESTAMP NULL COMMENT '最后登录时间',
last_login_ip VARCHAR(50) COMMENT '最后登录IP',
status TINYINT DEFAULT 1 COMMENT '状态 0-禁用 1-正常',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
admin_roles (管理员角色表)
CREATE TABLE admin_roles (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL COMMENT '角色名称',
description VARCHAR(255) COMMENT '角色描述',
permissions JSON COMMENT '权限列表',
status TINYINT DEFAULT 1 COMMENT '状态 0-禁用 1-启用',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
operation_logs (操作日志表)
CREATE TABLE operation_logs (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
admin_id INT COMMENT '管理员ID',
module VARCHAR(50) NOT NULL COMMENT '操作模块',
operation VARCHAR(100) NOT NULL COMMENT '操作描述',
target_type VARCHAR(50) COMMENT '操作对象类型',
target_id INT COMMENT '操作对象ID',
old_data JSON COMMENT '操作前数据',
new_data JSON COMMENT '操作后数据',
ip VARCHAR(50) COMMENT 'IP地址',
user_agent VARCHAR(500) COMMENT '用户代理',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (admin_id) REFERENCES admin_users(id),
INDEX idx_admin_id (admin_id),
INDEX idx_module (module),
INDEX idx_created_at (created_at)
);
data_statistics (数据统计表)
CREATE TABLE data_statistics (
id INT PRIMARY KEY AUTO_INCREMENT,
stat_date DATE NOT NULL COMMENT '统计日期',
stat_type VARCHAR(50) NOT NULL COMMENT '统计类型',
stat_key VARCHAR(100) NOT NULL COMMENT '统计键',
stat_value DECIMAL(15,2) DEFAULT 0 COMMENT '统计值',
extra_data JSON COMMENT '额外数据',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uk_date_type_key (stat_date, stat_type, stat_key),
INDEX idx_stat_date (stat_date),
INDEX idx_stat_type (stat_type)
);
系统API接口
1. 用户相关接口
用户认证
POST /api/auth/login- 微信登录POST /api/auth/refresh- 刷新tokenPOST /api/auth/logout- 退出登录
用户信息管理
GET /api/user/profile- 获取用户信息PUT /api/user/profile- 更新用户信息DELETE /api/user/account- 注销用户账户GET /api/user/points- 获取用户积分记录POST /api/user/points/exchange- 积分兑换
用户地址管理
GET /api/user/addresses- 获取用户地址列表GET /api/user/addresses/{id}- 获取单个地址详情POST /api/user/addresses- 添加收货地址PUT /api/user/addresses/{id}- 更新收货地址DELETE /api/user/addresses/{id}- 删除收货地址PUT /api/user/addresses/{id}/default- 设置默认地址
2. 商品相关接口
商品分类管理
GET /api/categories- 获取商品分类列表GET /api/categories/{id}- 获取分类详情GET /api/categories/{id}/products- 获取分类下的商品POST /api/categories- 创建商品分类(管理员)PUT /api/categories/{id}- 更新商品分类(管理员)DELETE /api/categories/{id}- 删除商品分类(管理员)PUT /api/categories/{id}/sort- 调整分类排序(管理员)
商品信息管理
GET /api/products- 获取商品列表(支持分页、搜索、筛选)GET /api/products/{id}- 获取商品详情POST /api/products- 创建商品(管理员)PUT /api/products/{id}- 更新商品(管理员)DELETE /api/products/{id}- 删除商品(管理员)PUT /api/products/{id}/status- 修改商品状态(管理员)GET /api/products/search- 商品搜索GET /api/products/recommend- 推荐商品
商品规格管理
GET /api/products/{id}/specs- 获取商品规格列表GET /api/products/specs/{id}- 获取单个规格详情POST /api/products/{id}/specs- 添加商品规格(管理员)PUT /api/products/specs/{id}- 更新商品规格(管理员)DELETE /api/products/specs/{id}- 删除商品规格(管理员)
商品图片管理
GET /api/products/{id}/images- 获取商品图片列表POST /api/products/{id}/images- 添加商品图片(管理员)PUT /api/products/images/{id}- 更新图片信息(管理员)DELETE /api/products/images/{id}- 删除商品图片(管理员)PUT /api/products/images/{id}/sort- 调整图片排序(管理员)
3. 购物车相关接口
购物车管理
GET /api/cart- 获取购物车列表GET /api/cart/count- 获取购物车商品数量POST /api/cart- 添加商品到购物车PUT /api/cart/{id}- 更新购物车商品数量DELETE /api/cart/{id}- 删除购物车商品DELETE /api/cart/batch- 批量删除购物车商品DELETE /api/cart/clear- 清空购物车POST /api/cart/batch- 批量添加商品到购物车
4. 订单相关接口
订单管理
GET /api/orders- 获取订单列表GET /api/orders/{id}- 获取订单详情POST /api/orders- 创建订单PUT /api/orders/{id}- 更新订单信息(管理员)DELETE /api/orders/{id}- 删除订单(管理员)PUT /api/orders/{id}/cancel- 取消订单PUT /api/orders/{id}/confirm- 确认收货GET /api/orders/{id}/logistics- 获取物流信息
订单商品管理
GET /api/orders/{id}/items- 获取订单商品列表GET /api/order-items/{id}- 获取订单商品详情POST /api/orders/{id}/items- 添加订单商品(管理员)PUT /api/order-items/{id}- 更新订单商品(管理员)DELETE /api/order-items/{id}- 删除订单商品(管理员)
支付相关
POST /api/orders/{id}/pay- 发起支付POST /api/orders/pay/callback- 支付回调GET /api/orders/{id}/payment-status- 获取支付状态POST /api/orders/{id}/refund- 申请退款GET /api/orders/{id}/refund-status- 获取退款状态
5. 营销相关接口
优惠券管理
GET /api/coupons- 获取可领取优惠券列表GET /api/coupons/{id}- 获取优惠券详情POST /api/coupons- 创建优惠券(管理员)PUT /api/coupons/{id}- 更新优惠券(管理员)DELETE /api/coupons/{id}- 删除优惠券(管理员)PUT /api/coupons/{id}/status- 修改优惠券状态(管理员)POST /api/coupons/{id}/receive- 领取优惠券GET /api/orders/available-coupons- 获取订单可用优惠券
用户优惠券管理
GET /api/user/coupons- 获取用户优惠券列表GET /api/user/coupons/{id}- 获取用户优惠券详情PUT /api/user/coupons/{id}/use- 使用优惠券DELETE /api/user/coupons/{id}- 删除用户优惠券
活动管理
GET /api/activities/seckill- 获取秒杀活动列表GET /api/activities/seckill/{id}- 获取秒杀活动详情POST /api/activities/seckill- 创建秒杀活动(管理员)PUT /api/activities/seckill/{id}- 更新秒杀活动(管理员)DELETE /api/activities/seckill/{id}- 删除秒杀活动(管理员)POST /api/activities/seckill/{id}/join- 参与秒杀GET /api/activities/group-buy- 获取拼团活动列表GET /api/activities/group-buy/{id}- 获取拼团活动详情POST /api/activities/group-buy- 创建拼团活动(管理员)PUT /api/activities/group-buy/{id}- 更新拼团活动(管理员)DELETE /api/activities/group-buy/{id}- 删除拼团活动(管理员)POST /api/activities/group-buy/{id}/join- 参与拼团
6. 评价相关接口
商品评价管理
GET /api/products/{id}/reviews- 获取商品评价列表GET /api/reviews/{id}- 获取评价详情POST /api/orders/{id}/review- 提交订单评价PUT /api/reviews/{id}- 更新评价(用户本人)DELETE /api/reviews/{id}- 删除评价(用户本人或管理员)POST /api/reviews/{id}/reply- 商家回复评价(管理员)PUT /api/reviews/{id}/status- 修改评价状态(管理员)GET /api/user/reviews- 获取用户评价列表
7. 收藏相关接口
GET /api/user/favorites- 获取用户收藏列表POST /api/products/{id}/favorite- 收藏商品DELETE /api/products/{id}/favorite- 取消收藏
8. 通知相关接口
用户通知管理
GET /api/notifications- 获取用户通知列表GET /api/notifications/{id}- 获取通知详情PUT /api/notifications/{id}/read- 标记通知为已读PUT /api/notifications/read-all- 标记所有通知为已读DELETE /api/notifications/{id}- 删除通知GET /api/notifications/unread-count- 获取未读通知数量
系统通知管理(管理员)
GET /api/admin/notifications- 获取所有通知列表POST /api/admin/notifications- 创建系统通知PUT /api/admin/notifications/{id}- 更新通知DELETE /api/admin/notifications/{id}- 删除通知POST /api/admin/notifications/broadcast- 广播通知给所有用户
9. 文件上传接口
文件管理
POST /api/upload/image- 上传图片POST /api/upload/file- 上传文件GET /api/upload/policy- 获取上传策略(如阿里云OSS签名)GET /api/files- 获取文件列表(管理员)GET /api/files/{id}- 获取文件详情DELETE /api/files/{id}- 删除文件GET /api/files/statistics- 获取文件统计信息(管理员)
10. 系统配置接口
配置管理
GET /api/config/public- 获取公开配置GET /api/config/app- 获取应用配置GET /api/admin/configs- 获取所有系统配置(管理员)GET /api/admin/configs/{key}- 获取指定配置(管理员)POST /api/admin/configs- 创建系统配置(管理员)PUT /api/admin/configs/{key}- 更新系统配置(管理员)DELETE /api/admin/configs/{key}- 删除系统配置(管理员)
12. 日志相关接口
系统日志管理
GET /api/admin/logs/system- 获取系统日志列表(管理员)GET /api/admin/logs/system/{id}- 获取系统日志详情(管理员)DELETE /api/admin/logs/system/{id}- 删除系统日志(管理员)DELETE /api/admin/logs/system/batch- 批量删除系统日志(管理员)GET /api/admin/logs/system/statistics- 获取日志统计(管理员)
操作日志管理
GET /api/admin/logs/operation- 获取操作日志列表(管理员)GET /api/admin/logs/operation/{id}- 获取操作日志详情(管理员)DELETE /api/admin/logs/operation/{id}- 删除操作日志(管理员)DELETE /api/admin/logs/operation/batch- 批量删除操作日志(管理员)
13. 数据统计接口
统计数据管理
GET /api/admin/statistics/data- 获取统计数据列表(管理员)GET /api/admin/statistics/data/{id}- 获取统计数据详情(管理员)POST /api/admin/statistics/data- 创建统计数据(管理员)PUT /api/admin/statistics/data/{id}- 更新统计数据(管理员)DELETE /api/admin/statistics/data/{id}- 删除统计数据(管理员)POST /api/admin/statistics/calculate- 手动触发统计计算(管理员)
11. 管理后台接口
管理员认证
POST /api/admin/login- 管理员登录POST /api/admin/logout- 管理员退出GET /api/admin/profile- 获取管理员信息
用户管理
GET /api/admin/users- 获取用户列表GET /api/admin/users/{id}- 获取用户详情PUT /api/admin/users/{id}/status- 修改用户状态
商品管理
GET /api/admin/products- 获取商品列表POST /api/admin/products- 添加商品PUT /api/admin/products/{id}- 更新商品DELETE /api/admin/products/{id}- 删除商品PUT /api/admin/products/{id}/status- 修改商品状态
订单管理
GET /api/admin/orders- 获取订单列表GET /api/admin/orders/{id}- 获取订单详情PUT /api/admin/orders/{id}/ship- 订单发货PUT /api/admin/orders/{id}/status- 修改订单状态
数据统计
GET /api/admin/statistics/overview- 获取概览数据GET /api/admin/statistics/sales- 获取销售统计GET /api/admin/statistics/users- 获取用户统计GET /api/admin/statistics/products- 获取商品统计
系统管理
GET /api/admin/configs- 获取系统配置列表PUT /api/admin/configs/{key}- 更新系统配置GET /api/admin/logs- 获取系统日志GET /api/admin/operation-logs- 获取操作日志
技术栈
前端(小程序)
- 框架: 微信小程序原生开发 / uni-app
- UI组件: Vant Weapp / uView
- 状态管理: Vuex / Pinia
- 网络请求: wx.request / axios
后端
- 语言: Go (Golang)
- Web框架: Gin / Fiber / Echo
- ORM框架: GORM
- 数据库: MySQL 8.0+
- 缓存: Redis
- 消息队列: RabbitMQ / Kafka
- 配置管理: Viper
- 日志: Logrus / Zap
- API文档: Swagger (gin-swagger)
部署
- 服务器: 阿里云 / 腾讯云
- 容器: Docker
- 反向代理: Nginx
- 监控: Prometheus + Grafana
- 进程管理: Systemd / Supervisor
开发规范
Go代码规范
- 遵循Go官方代码规范 (gofmt, golint)
- 使用goimports自动管理导入
- 变量命名采用驼峰命名法
- 包名使用小写字母
- 接口名以-er结尾
- 错误处理不能忽略
- 使用context.Context进行超时控制
GORM模型规范
// 模型定义示例
type User struct {
ID uint `gorm:"primarykey" json:"id"`
OpenID string `gorm:"uniqueIndex;size:100;not null" json:"openid"`
UnionID string `gorm:"size:100" json:"unionid"`
Nickname string `gorm:"size:50" json:"nickname"`
Avatar string `gorm:"size:255" json:"avatar"`
Gender uint8 `gorm:"default:0" json:"gender"`
Phone string `gorm:"size:20;index" json:"phone"`
Email string `gorm:"size:100" json:"email"`
Birthday *time.Time `json:"birthday"`
Points uint `gorm:"default:0" json:"points"`
Level uint8 `gorm:"default:1" json:"level"`
Status uint8 `gorm:"default:1;index" json:"status"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`
}
API规范
- RESTful API设计
- 统一的响应格式
type Response struct {
Code int `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data,omitempty"`
}
- 错误码标准化
- 接口版本控制 (v1, v2)
- 使用Gin中间件进行认证和日志
数据库规范
- 表名使用下划线命名
- 字段名使用下划线命名
- 必须有created_at、updated_at和deleted_at字段
- 使用GORM的软删除功能
- 主键使用BIGINT UNSIGNED
- 字符集使用utf8mb4
- 合理添加索引提高查询性能
项目结构规范
- cmd/: 应用程序入口
- internal/: 内部应用代码
- pkg/: 可复用的包
- configs/: 配置文件
- migrations/: 数据库迁移文件
项目结构
dianshang/
├── miniprogram/ # 小程序前端
│ ├── pages/ # 页面文件
│ ├── components/ # 组件文件
│ ├── utils/ # 工具函数
│ ├── api/ # API接口
│ └── app.js # 小程序入口
├── server/ # Go后端服务
│ ├── cmd/ # 应用程序入口
│ │ └── main.go # 主程序入口
│ ├── internal/ # 内部应用代码
│ │ ├── handler/ # HTTP处理器(控制器)
│ │ ├── service/ # 业务逻辑层
│ │ ├── repository/ # 数据访问层
│ │ ├── model/ # 数据模型(GORM)
│ │ ├── middleware/ # 中间件
│ │ ├── config/ # 配置管理
│ │ └── router/ # 路由配置
│ ├── pkg/ # 可复用的包
│ │ ├── utils/ # 工具函数
│ │ ├── logger/ # 日志包
│ │ ├── jwt/ # JWT认证
│ │ └── response/ # 统一响应格式
│ ├── configs/ # 配置文件
│ │ ├── config.yaml # 主配置文件
│ │ └── database.yaml # 数据库配置
│ ├── migrations/ # 数据库迁移文件
│ ├── scripts/ # 脚本文件
│ ├── go.mod # Go模块文件
│ ├── go.sum # 依赖校验文件
│ └── Dockerfile # Docker构建文件
├── docs/ # 项目文档
│ ├── api/ # API文档
│ └── database/ # 数据库文档
└── README.md # 项目说明
部署说明
环境要求
- Go 1.19+
- MySQL 8.0+
- Redis 6.0+
- Nginx
部署步骤
- 克隆项目
git clone <repository-url>
cd dianshang
- 安装Go依赖
cd server
go mod download
go mod tidy
- 配置环境
cp configs/config.yaml.example configs/config.yaml
# 编辑配置文件,配置数据库连接等信息
- 数据库初始化
# 运行数据库迁移
go run cmd/main.go migrate
# 或使用migrate工具
migrate -path migrations -database "mysql://user:password@tcp(localhost:3306)/dbname" up
- 编译和启动服务
# 开发环境
go run cmd/main.go
# 生产环境编译
go build -o bin/dianshang cmd/main.go
./bin/dianshang
# 或使用Air进行热重载开发
air
- Docker部署
# 构建镜像
docker build -t dianshang-server .
# 运行容器
docker run -d \
--name dianshang-server \
-p 8080:8080 \
-v $(pwd)/configs:/app/configs \
dianshang-server
- 配置Nginx
server {
listen 80;
server_name your-domain.com;
location /api {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
root /path/to/miniprogram/dist;
try_files $uri $uri/ /index.html;
}
}
生产环境配置示例
configs/config.yaml
server:
port: 8080
mode: release
database:
driver: mysql
host: localhost
port: 3306
username: root
password: your_password
dbname: dianshang
charset: utf8mb4
parseTime: true
loc: Local
redis:
host: localhost
port: 6379
password: ""
db: 0
jwt:
secret: your_jwt_secret
expire: 7200
log:
level: info
filename: logs/app.log
maxSize: 100
maxAge: 30
maxBackups: 5
配置文件
- 数据库配置
- 微信小程序配置
- 支付配置
- 第三方服务配置
联系方式
- 项目负责人: [姓名]
- 邮箱: [邮箱地址]
- 技术支持: [联系方式]
本文档会根据项目进展持续更新
Description
Languages
JavaScript
57%
Go
21.4%
Vue
10.3%
HTML
6.2%
CSS
4.1%
Other
0.9%