# admin100 **Repository Path**: yiwangwuji/admin100 ## Basic Information - **Project Name**: admin100 - **Description**: 参照http://192.168.31.100:7000/#/server/server_node转goframe框架的后台程序 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-15 - **Last Updated**: 2021-07-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # admin100 ## 介绍 参照http://192.168.31.100:7000/#/server/server_node转goframe框架的后台程序 ##具体说明: 首先,书写的分层规范, 不产生循环引用错误: api层尽量只调用service层方法,即同一个api控制器中可以调用多个不同模块的service service尽量只调用dao层方法,即同一个service控制器中可以多个不同模块的dao,其中centerservice和commonservice属公共服务类可以被其它service调用 dao层之间不可以相互调用 遵循以上三点, 为了调用清晰明了 api尽量保持用功能类型分类,即参照url类控制器,首先按大功能模块分类,如果其中有完整的功能模块(或文件太长冗长)再进行分类, 比如设置下的用户,角色模块分别单独一个控制器,因为他们都有完整增删查改,也符合客户端理解的url逻辑 service尽量按表名分类 dao和model严格用表名分类 基本model和dao分包为 1) 根目录 对应数据库 db_t1_admin 2) center 对应数据库 db_center 3) charge 对应数据库 db_charge 4) 其它数据库只获取它的model/internal下的表结构,由common.newCustomGdb获取对象 二、请示与响应 1,请求 2, 响应有三种 response.JsonFail 返回客戶端指定錯誤號及defErrMsg response.JsonSuc 返回客戶端successcode及defErrMsg response.JsonExitWithMsg 返回客戶端指定的錯誤號及指定的msg 三、 关于错误处理 只需要两种调用: 1, defErr.IfPanic 2, defErr.Panic 使用这两个函数时可以使用错误号作参,如define.Fail,默认不加msg时会自动返给客户端和日志defErr.GotMsg(code) 注: 1,错误号大于40000小于60000时指定的参数msg写入日志log/sql里,客户端返回defErr.GotMsg(code) 2,错误号小于40000时,指定的msg会返回给客户端,这种情况比较少用,不写入日志 3, 错误号大于60000时,写入日志,这时一般不指定msg 四、 项目模型的增删改查 1, 插入与更改 大多数情况request params模型不会完全合表字段,这时需要新建一个与表模型一致的struct,并进行如下处理: var resource = model.ResourcePrototype{} if err := gconv.Struct(req, &resource); err != nil { defErr.Panic(define.DataOptFail, err.Error()) } if _, err := dao.MyadminResource.Save(resource); err != nil { defErr.Panic(define.DataOptFail, err.Error()) } ok 2, 删除与更新 调用模型update方法时,一定要指定where条件 3, 关于model的findOne和findAll操作,因为用的是v.isNil()判断,所以永远不会返回ErrNoRows错误,所以每次执行 findOne后一定要判断获取的entity是否为nil 注, 如果可能的情况下一定使用模型管道书写方式完成所有sql查询,并尽量减少mysql语句,尽量不要用原生sql语句去执行 五、 金融计算处理,用money类进行统一的数学计算