2022-05-18 17:57:03 +08:00
|
|
|
package controller
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"net/http"
|
|
|
|
"regexp"
|
|
|
|
|
2022-05-29 10:06:21 +08:00
|
|
|
"github.com/eryajf/go-ldap-admin/public/tools"
|
2022-05-18 17:57:03 +08:00
|
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"github.com/go-playground/locales/zh"
|
|
|
|
ut "github.com/go-playground/universal-translator"
|
|
|
|
"github.com/go-playground/validator/v10"
|
|
|
|
zht "github.com/go-playground/validator/v10/translations/zh"
|
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
2022-07-01 12:35:02 +08:00
|
|
|
Api = &ApiController{}
|
|
|
|
Group = &GroupController{}
|
|
|
|
Menu = &MenuController{}
|
|
|
|
Role = &RoleController{}
|
|
|
|
User = &UserController{}
|
|
|
|
OperationLog = &OperationLogController{}
|
|
|
|
Base = &BaseController{}
|
|
|
|
FieldRelation = &FieldRelationController{}
|
2022-05-18 17:57:03 +08:00
|
|
|
|
|
|
|
validate = validator.New()
|
|
|
|
trans ut.Translator
|
|
|
|
)
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
uni := ut.New(zh.New())
|
|
|
|
trans, _ = uni.GetTranslator("zh")
|
|
|
|
_ = zht.RegisterDefaultTranslations(validate, trans)
|
|
|
|
_ = validate.RegisterValidation("checkMobile", checkMobile)
|
|
|
|
}
|
|
|
|
|
|
|
|
func checkMobile(fl validator.FieldLevel) bool {
|
2022-12-16 17:05:38 +08:00
|
|
|
reg := `1\d{10}`
|
2022-05-18 17:57:03 +08:00
|
|
|
rgx := regexp.MustCompile(reg)
|
|
|
|
return rgx.MatchString(fl.Field().String())
|
|
|
|
}
|
|
|
|
|
|
|
|
func Run(c *gin.Context, req interface{}, fn func() (interface{}, interface{})) {
|
|
|
|
var err error
|
|
|
|
// bind struct
|
|
|
|
err = c.Bind(req)
|
|
|
|
if err != nil {
|
|
|
|
tools.Err(c, tools.NewValidatorError(err), nil)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
// 校验
|
|
|
|
err = validate.Struct(req)
|
|
|
|
if err != nil {
|
|
|
|
for _, err := range err.(validator.ValidationErrors) {
|
|
|
|
tools.Err(c, tools.NewValidatorError(fmt.Errorf(err.Translate(trans))), nil)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
}
|
|
|
|
data, err1 := fn()
|
|
|
|
if err1 != nil {
|
|
|
|
tools.Err(c, tools.ReloadErr(err1), data)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
tools.Success(c, data)
|
|
|
|
}
|
|
|
|
|
|
|
|
func Demo(c *gin.Context) {
|
|
|
|
CodeDebug()
|
|
|
|
c.JSON(http.StatusOK, tools.H{"code": 200, "msg": "ok", "data": "pong"})
|
|
|
|
}
|
|
|
|
|
|
|
|
func CodeDebug() {
|
|
|
|
}
|