基于restgo+element-admin的项目包 restgo 框架 地址https://github.com/techidea8/restgo.git
git clone https://github.com/techidea8/elego.git
- 后端项目结构描述(server)
├─args --存放请求参数
├─config --存放全局配置文件
├─ctrl --存放全部控制器
├─global --存放全局变量
├─initialize --初始化需要配置的一些功能
├─logs --存放日志文件
├─model --存放数据库模型文件
├─resource --存放静态资源文件,支持embedFs,需要go1.16支持
│ ├─console
│ ├─www
│ └─wxh5
├─service --存放service
└─utils --常用工具类
- 前端项目(console) 前端项目基于element-ui-admin,具体可以参考
https://panjiachen.github.io/vue-element-admin-site/zh/guide/
go get github.com/techidea8/restctl
安装完成后可以使用restctl指令测试是否已经成功安装
>restctl
Usage of restctl.exe:
-c string
config file path (default "./restgo.yaml")
-dns string
dns link to mysql (default "root:root@(127.0.0.1:3306)/test")
-frontdir string
dir for front code (default "./console/src")
-l string
code language,eg:go || java || php (default "go")
-m string
out model
-pkg string
application package (default "turinapp")
-serverdir string
dir for server code (default "./server")
-t string
table name (default "test")
-tpldir string
templete for code (default "./tmpl-go")
-v show restctl version
#数据库连接串,目前只支持mysql
dns: root:root@(127.0.0.1:3306)/test?charset=utf8mb4&loc=Local
#后端代码语言:go|java
lang: go
#对应表名称
table: test
#生成模型文件
model: test
#对应项目package
package: turingapp
#代码模板
tpldir: ./tmpl-go
restctl -m activity -t biz_activity
系统将自动生成如下文件
├─console
│ └─src
│ ├─api
│ │ activity.js
│ │
│ └─views
│ └─activity
│ list.vue
│
├─server
│ └─server
│ ├─args
│ │ activity.go
│ │
│ ├─ctrl
│ │ activity.go
│ │
│ ├─model
│ │ activity.go
│ │
│ └─service
│ activity.go
修改server\app.yml
配置文件,一般需要修改数据库配置和redis配置
# redis configuration
redis:
db: 0
# addr: 'redis://47.113.206.65:6379'
addr: 'redis://127.0.0.1:6379'
password: 'root'
max-idle: 10
idle-timeout-sec: 30
# mysql connect configuration
database:
db-type: 'sqlite3' #sqlite3/mysql
addr: '.'
# db-name: "dbturingmember.db"
# addr: 'iot.techidea8.com:3306'
db-name: "dbturingcms.db"
query: 'charset=utf8mb4&parseTime=True&loc=Local'
username: '[username]'
password: '[password]'
max-idle-conns: 1
max-open-conns: 10
log-mode: 4 # 4 -info 1- 安静 2 :Error 3 警告
table-prefix: 'turing_'
修改server\initialize\router.go
,添加控制器
//注册控制器
func InitRouter() {
restgo.EnableCors()
new(ctrl.AuthCtrl).Router()
new(ctrl.OpenCtrl).Router()
new(ctrl.CaptchaCtrl).Router()
new(ctrl.AttachCtrl).Router()
new(ctrl.UserCtrl).Router()
new(ctrl.AreaCtrl).Router()
new(ctrl.WeixinCtrl).Router()
new(ctrl.WxmpApiCtrl).Router()
//添加activity控制器
new(ctrl.ActivityCtrl).Router()
global.Log.Debug("[√]完成控制器解析 ")
}
修改service/args/activity.go
//分页
func (p *Activity) Condtions() func(db *gorm.DB) *gorm.DB {
return func(db *gorm.DB) *gorm.DB {
if !p.Datefrom.IsZero() {
db = db.Where("create_at >= ?", p.Datefrom.String())
}
if !p.Dateto.IsZero() {
db = db.Where("create_at < ?", p.Dateto.String())
}
//这里修改查询条件
return db
}
}
//结束
tmp-go下存放了项目模板
api.js.html -- 生成console/src/api/xx.js的模板
args.go.html -- 生成server/arg/xx.go的模板
ctrl.go.html -- 生成server/ctrl/xx.go的模板
list.vue.html -- 生成console/src/views/xx/list.vue的模板
model.go.html -- 生成server/model/xx.go的模板
service.go.html ---- 生成server/service/xx.go的模板
以api.js.html
为例,该文件包含了一个模板"console/src/api/[model].js.tpl"
,改模板生成的文件对应路径为console/src/api/[model].js
,,其中[model]
代表-m
参数指定的字符,如 -m test
, 如果需要修改生成的文件对应路径,只需要修改模板名称{{define "console/src/api/[model].js.tpl"}}
即可.
- 新建模板tpldiy
- 复制tmp-go下模板文件到tpldiy下
- 修改模板
- 修改配置文件restgo.yaml 中 tpldir
tpldir: ./tpldiy
- 通过restctl -m xx -t yy 生成代码
可以用自有项目替换server 和console