/
cr_all.yaml
90 lines (87 loc) · 4.59 KB
/
cr_all.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package:
name: tpkg
type: # 这里的type都是外部引用的代码库,不会生成代码
-
type: Decimal # 在定义字段时用到
goType: decimal.Decimal
goImport: github.com/shopspring/decimal # 生成go code时用到
dict: # 这里的dict都是在本文件内用到,不会生成代码
- id: {type: int, comment: 唯一标识, primary: true, notnull: true, unique: true, autoIncrement: true, default: 0}
- created_at: {type: int64, comment: 创建时间, default: NULL}
- update_at: {type: int64, comment: 更新时间, default: NULL}
- deleted_at: {type: int64, comment: 删除时间, default: NULL}
- name: {type: string, comment: 名称, notnull: true, default: ""}
# column: name type comment default primary notnull unique auto_increment
# index: index name, field name list, comment, type[primary/index/unique]
model:
# dbengine: gorm/sqlx
-
name: user
comment: model desc
column:
- id: id # 字符串定义方式,从字典找
- created_at: created_at
- name: name
- age: {type: int, comment: 年龄} # 对象定义方式
- sex: [int, 性别, 1, false, false, false, false] # 数组定义方式,属性有顺序,最少1个属性,最多支持7个属性,多的被忽略
- passwd: [string, 密码, "", false, false, false, false] # 最少1个属性,最多支持7个属性,多的被忽略
- introduction: {type: string, comment: 介绍, default: ""}
- money: {type: float64, comment: 余额, default: ""}
index:
- idx_name: [[name], 姓名索引, index]
- idx_age: {keys: [age], comment: 年龄索引, type: unique}
query:
- name: createUser
comment: 新增
sql: insert into user(name,age,sex,introduction,money) value($name,$age,$sex,$introduction,$money)
inputs: {id: user.id, name: user.name, age: user.age, sex: user.sex, introduction: user.introduction, money: user.money}
outputs: {id: user.id}
- name: deleteUser
comment: 删除
sql: delete from user where id=$id
inputs: {id: user.id}
outputs: {}
- name: updateUser
comment: 修改
sql: update user set name=$name, age=$age, sex=$sex, introduction=$introduction, money=$money where id=$id
inputs: {id: user.id, name: user.name, age: user.age, sex: user.sex, introduction: user.introduction, money: user.money}
outputs: {}
- name: queryById
comment: 按id查询
sql: select * from user where id=$id
inputs: {id: user.id}
outputs: {id: user.id, name: user.name, age: user.age, sex: user.sex, introduction: user.introduction, money: user.money}
- name: queryByName
comment: 按姓名模糊查询
sql: select * from user where name like $name limit $limit offset $offset
pager: true
inputs: {name: user.name, offset: [int, 偏移量], limit: [int, 分页大小]}
outputs: [{id: user.id, name: user.name, age: user.age, sex: user.sex, introduction: user.introduction, money: user.money}]
- name: queryByNameWithPager
comment: 按姓名模糊查询
sql: select * from user where name like $name limit $limit offset $offset
pager: true
inputs: {name: user.name}
outputs: [{id: user.id, name: user.name, age: user.age, sex: user.sex, introduction: user.introduction, money: user.money}]
- name: queryByNameWithoutPager
comment: 按姓名模糊查询
sql: select * from user where name like $name
inputs: {name: user.name}
outputs: [{id: user.id, name: user.name, age: user.age, sex: user.sex, introduction: user.introduction, money: user.money}]
- name: queryByAge
comment: 按年龄查询
sql: select * from user where age=$age limit $limit offset $offset
inputs: {age: user.age, offset: [int, 偏移量], limit: [int, 分页大小]}
outputs: {count2: [int, 总数], offset2: [int, 偏移量], limit2: [int, 分页大小], list: [{id: user.id, name: user.name, age: user.age, sex: user.sex, introduction: user.introduction, money: user.money}]}
handler:
-
name: queryUser
comment: test route
route: /v1/test
ref: model.query.queryByID
- name: queryUser2
comment: test route2
route: /v1/test2
sql: select * from user where age=$age limit $limit offset $offset
inputs: {name: user.name, offset: [int, 偏移量], limit: [int, 分页大小]}
outputs: [{id: user.id, name: user.name, age: user.age, sex: user.sex, introduction: user.introduction, money: user.money}]