Skip to content

techidea8/elego

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

elego

基于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/

生成代码

安装restctl

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

配置restgo.yaml

#数据库连接串,目前只支持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"}}即可.

diy自有模板

  • 新建模板tpldiy
  • 复制tmp-go下模板文件到tpldiy下
  • 修改模板
  • 修改配置文件restgo.yaml 中 tpldir
tpldir: ./tpldiy
  • 通过restctl -m xx -t yy 生成代码

diy项目

可以用自有项目替换server 和console