前言
goctl生成的方法只有四个:
insert,update,findone,delete,
事实上很多时候这是不够用的,同时生成的这四个方法也很简单,业务逻辑一复杂就做不了了,需要我们自己去实现自己想要的方法
如何实现
goctl生成的model代码有2个:
xxxxxmodel_gen.go
xxxxxmodel.go
打开后缀gen的go文件,我们发现上面有提示,不要编辑这个文件,而另外一个go文件没有这个提示
事实上gen后缀的go文件是四个生成的方法的实现,我们只需要对model后缀代码进行修改
这里我们就增加一个findAll的方法,获取表内全部数据
流程如下:
定义customxxxxxmodel接口,在接口内新增自定义方法FindAll
然后去实现customxxxxModel添加的新方法
其实我们可以发现,goctl的逻辑是defaultxxxmodel包含了生成的四个方法,而customxxxmodel是包含defaultxxxmodel的,我们只需要为custom增加方法并实现就可以不影响goctl的添加我们自己的业务逻辑代码了
后面该怎么用
- 在serviceCtx结构体添加对应model,并在NewServiceContext里面正确返回实例
- 在logic代码调用svcCtx的实例我们自定义的方法