# backend **Repository Path**: hengk/backend ## Basic Information - **Project Name**: backend - **Description**: 后台代码 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-16 - **Last Updated**: 2024-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 1. 基础框架 - 框架地址 https://gitee.com/hengk/go-gin-api-plus - 框架介绍 https://www.yuque.com/xinliangnote/go-gin-api/pmfdon ## 2. 开发环境搭建 ### 2.1 服务器版本 Ubuntu Server 20.04 1. 下载地址:https://ubuntu.com/download/alternative-downloads 2. 系统安装参考: https://blog.csdn.net/JackMaF/article/details/119369874 ### 2.2 golang 版本 1.21 1. 下载地址: https://golang.google.cn/dl/ 2. 安装参考: https://www.yisu.com/zixun/764432.html ### 2.3 mysql 版本 8.X 1. 安装参考:https://www.jianshu.com/p/52a0eacd4ace ### 2.4 redis 版本 5.X 1. 安装参考: http://www.hzhcontrols.com/new-979465.html ## 3. 业务开发步骤 (只需要完成开发环境搭建) 业务代码开发步骤: ### 1. 编译步骤 ```text go build -o server main.go # 编译 ./sever -env dev # 运行 本地访问链接: http://192.168.0.140:9999 远程访问链接: http://dazi.nat300.top # 访问项目 ``` ### 2. 业务开发步骤参考 https://www.yuque.com/xinliangnote/go-gin-api/pmfdon #### 2.1 创建表 ```shell source mysql.sql ``` ```sql # mysql.sql use dazi_backend; CREATE TABLE `customer_auth` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键 用户id', `phone_number` char(15) NOT NULL DEFAULT '' COMMENT '用户手机号', `status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '用户状态 1:正常 0:已注销 -1: 禁止', `last_login_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上次登陆时间', `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户认证表'; ``` #### 2.2 生成表对应的curd代码 生成的代码在 internal/repository/mysql/customer_auth下 ```shell ./scripts/gormgen.sh 127.0.0.1:3306 wesley 1qaz@wsXmysql dazi_backend customer_auth ``` ### 2.3 给会员服务开通接口调用权限 https://www.yuque.com/xinliangnote/go-gin-api/pmfdon#EYRKw ### 2.4 写控制器代码 控制器代码路径: internal/api/xxx ```golang type Handler interface { i() } type handler struct { logger *zap.Logger cache redis.Repo } func New(logger *zap.Logger, db mysql.Repo, cache redis.Repo) Handler { return &handler{ logger: logger, cache: cache, } } func (h *handler) i() {} ``` ### 2.5 定义接口路由 在 ./internal/api/router/router_api.go 文件中,增加路由即可 ```golang order := r.mux.Group("/api/order", r.middles.Signature()) { orderHandler := order_handler.New(r.logger, r.db, r.cache) order.POST("/create", orderHandler.Create()) order.POST("/cancel", orderHandler.Cancel()) order.GET("/:id", orderHandler.Detail()) } ``` ## 4. 线上环境搭建 ### 4.1 服务器版本 Ubuntu Server 20.04 (见2.1) ### 4.2 golang版本1.21 (见2.2) ### 4.3 mysql版本8.X (见2.3) ### 4.4 redis版本5.X (见2.4) ### 4.5 nginx版本 ### 4.6 natapp安装 1. 安装教程: https://natapp.cn/article/nohup 2. 开机自启动 - 开启ssh服务 ```bash # 存放位置 /etc/systemd/system/netapp_ssh.service # 开启 systemctl start natapp_ssh # 关闭 systemctl stop natapp_ssh # 开机启动 systemctl enable natapp_ssh # 取消开机启动 system disable natapp_ssh ``` - 开启web服务(开发环境远程链接) ```bash # 存放位置 /etc/systemd/system/netapp_web_dazi_dev.service # 开启 systemctl start natapp_web_dazi_dev # 关闭 systemctl stop natapp_web_dazi_dev # 开机启动 systemctl enable natapp_web_dazi_dev # 取消开机启动 system disable natapp_web_dazi_dev ``` ### 4.7 启动服务 ```bash ./server -env pro ```