前言
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的实例我们自定义的方法
















![[imx6][Linux4.9]IMX6平台 pinctrl子系统](https://img-blog.csdnimg.cn/20201031103957865.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNDg3MDQ0,size_16,color_FFFFFF,t_70#pic_center)


