Skip to content

Commit 20b8b94

Browse files
committed
crud全部调整
1 parent 440b765 commit 20b8b94

File tree

12 files changed

+309
-235
lines changed

12 files changed

+309
-235
lines changed

src/base/httper/http_handle.go

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,52 +9,57 @@ import (
99

1010
"base/logger"
1111
"base/validator"
12+
"myerr"
1213
)
1314

14-
// 统一处理异常,统一处理日志,统一处理返回
15+
// HandleResponse 统一处理异常,统一处理日志,统一处理返回
1516
func HandleResponse(c *gin.Context, err error, data interface{}) {
1617
// 如果没有错误,就是正常请求
1718
if err == nil {
18-
SendResponseSuccess(c, "操作成功", data)
19+
SendSuccessResp(c, "操作成功", data)
1920
return
2021
}
2122

2223
// 针对不同的错误类型进行处理
2324
switch errors.Cause(err).(type) {
25+
case *myerr.ParameterError:
26+
SendFailResp(c, http.StatusBadRequest, err.Error())
2427
default:
2528
logStackInfo(err)
26-
SendResponseFail(c, http.StatusBadRequest, err.Error())
29+
SendFailResp(c, http.StatusInternalServerError, err.Error())
2730
}
2831

2932
return
3033
}
3134

32-
// 绑定参数并验证参数
35+
// BindAndCheck 绑定参数并验证参数
3336
// true: 确实存在问题,会返回400错误
3437
// false: 不存在问题,验证通过
3538
func BindAndCheck(ctx *gin.Context, data interface{}) bool {
3639
// 参数映射
3740
if err := ctx.Bind(data); err != nil {
38-
HandleResponse(ctx, err, nil)
41+
// 当需要的参数类型不匹配的时候会出现错误,属于开发测试时就应该发现的异常
42+
HandleResponse(ctx, myerr.NewParameterError("绑定参数异常"), nil)
3943
return true
4044
}
4145

4246
// 验证参数
43-
if err := validator.GlobalValidate.Check(data); err != nil {
44-
HandleResponse(ctx, err, nil)
47+
if err := validator.GlobalValidator.Check(data); err != nil {
48+
HandleResponse(ctx, myerr.NewParameterError(err.Error()), nil)
4549
return true
4650
}
4751

4852
return false
4953
}
5054

51-
// 堆栈信息接口用于内部转换使用
55+
// stackTracer 堆栈信息接口用于内部转换使用
5256
type stackTracer interface {
5357
StackTrace() errors.StackTrace
5458
}
5559

56-
// 判断如果包含堆栈信息的封装就打印出相关堆栈信息,如果没有封装就打印原本错误信息
60+
// logStackInfo 打印错误
5761
func logStackInfo(err error) {
62+
// 如果包含堆栈信息的封装就打印出相关堆栈信息,如果没有封装就打印原本错误信息
5863
if e, ok := err.(stackTracer); ok {
5964
stacks := e.StackTrace()
6065
var stackEntries []string

src/base/pager/pager.go

Lines changed: 0 additions & 43 deletions
This file was deleted.

src/base/pager/pagination.go

Lines changed: 0 additions & 69 deletions
This file was deleted.

src/base/router/router.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,11 @@ func InitRouter(port string) {
2424
r.Use(ginzap.Ginzap(zap.L(), "2006-01-02 15:04:05.000", false))
2525

2626
r.POST("/gwt/api/v1/user", controller.AddUser)
27-
r.DELETE("/gwt/api/v1/user", controller.DeleteUser)
27+
r.DELETE("/gwt/api/v1/user", controller.RemoveUser)
2828
r.PUT("/gwt/api/v1/user", controller.UpdateUser)
2929
r.GET("/gwt/api/v1/user/:id", controller.GetUser)
30-
r.POST("/gwt/api/v1/users")
30+
r.GET("/gwt/api/v1/users", controller.GetUsers)
31+
r.GET("/gwt/api/v1/users/page", controller.GetUsersPage)
3132

3233
// swagger
3334
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))

src/base/validator/validator.go

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ import (
1111
"gopkg.in/go-playground/validator.v9/translations/zh"
1212
)
1313

14+
// MyValidator 自定义验证器
1415
type MyValidator struct {
1516
Validate *validator.Validate
1617
Trans ut.Translator
1718
}
1819

19-
var GlobalValidate MyValidator
20+
// GlobalValidator 全局验证器
21+
var GlobalValidator MyValidator
2022

21-
// 初始化验证器
23+
// InitValidator 初始化验证器
2224
func InitValidator() {
2325
zhs := zhongwen.New()
2426
uni := ut.New(zhs, zhs)
@@ -40,11 +42,11 @@ func InitValidator() {
4042
panic(err)
4143
}
4244

43-
GlobalValidate.Validate = validate
44-
GlobalValidate.Trans = trans
45+
GlobalValidator.Validate = validate
46+
GlobalValidator.Trans = trans
4547
}
4648

47-
// 验证器通用验证方法
49+
// Check 验证器通用验证方法
4850
func (m *MyValidator) Check(value interface{}) error {
4951
// 首先使用validator.v9进行验证
5052
err := m.Validate.Struct(value)
@@ -67,16 +69,13 @@ func (m *MyValidator) Check(value interface{}) error {
6769
}
6870

6971
// 如果它实现了CanCheck接口,就进行自定义验证
70-
if reflect.TypeOf(value).Implements(canCheckType) {
71-
return value.(CanCheck).Check()
72+
if v, ok := value.(CanCheck); ok {
73+
return v.Check()
7274
}
7375
return nil
7476
}
7577

76-
// CanCheck接口类型,用于判断是否实现该接口
77-
var canCheckType = reflect.TypeOf(new(CanCheck)).Elem()
78-
79-
// 如果需要特殊校验,可以实现验证接口,或者通过自定义tag标签实现
78+
// CanCheck 如果需要特殊校验,可以实现验证接口,或者通过自定义tag标签实现
8079
type CanCheck interface {
8180
Check() error
8281
}

src/main.go renamed to src/cmd/main.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package main
22

33
import (
4+
_ "github.com/go-sql-driver/mysql"
5+
46
"base/config"
57
"base/db"
68
"base/logger"
@@ -12,13 +14,13 @@ func main() {
1214
// 读取配置文件
1315
config.InitConfig("./default-conf.yml")
1416

15-
c := config.GlobalConfig
16-
l := c.Logger
17-
m := c.Mysql
18-
s := c.Server
17+
all := config.All
18+
l := all.Logger
19+
m := all.Mysql
20+
s := all.Server
1921

2022
// 初始化日志
21-
logger.InitLogger("golang-web-template", l.Path, l.MaxAge, l.RotationTime, l.Level)
23+
logger.InitLogger(l.Level, "golang-web-template", l.Path, l.MaxAge, l.RotationTime)
2224
logger.Debug("debug日志")
2325
logger.Info("info日志")
2426
logger.Warn("warn日志")
@@ -27,12 +29,12 @@ func main() {
2729
// 初始化数据库
2830
db.InitDB(m.Connection, m.MaxIdle, m.MaxOpen)
2931

30-
// 初始化redis
32+
// 初始化redis ...
3133

3234
// 初始化验证器
3335
validator.InitValidator()
3436

35-
// 初始化pprof
37+
// 初始化pprof ...
3638

3739
// 初始化路由
3840
router.InitRouter(s.HttpPort)

0 commit comments

Comments
 (0)