Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
FLIPPED-AURORA
gin-vue-admin
提交
a18b3279
G
gin-vue-admin
项目概览
FLIPPED-AURORA
/
gin-vue-admin
大约 1 年 前同步成功
通知
334
Star
18155
Fork
5506
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gin-vue-admin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a18b3279
编写于
5月 08, 2020
作者:
Mr.奇淼(
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
表单校验工具封装以及使用
上级
17dfa4e8
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
60 addition
and
8 deletion
+60
-8
server/api/v1/sys_menu.go
server/api/v1/sys_menu.go
+20
-5
server/utils/verify.go
server/utils/verify.go
+40
-3
未找到文件。
server/api/v1/sys_menu.go
浏览文件 @
a18b3279
...
...
@@ -40,11 +40,6 @@ func GetMenu(c *gin.Context) {
func
GetMenuList
(
c
*
gin
.
Context
)
{
var
pageInfo
request
.
PageInfo
_
=
c
.
ShouldBindJSON
(
&
pageInfo
)
verifyMap
:=
make
(
map
[
string
][]
string
)
verifyMap
[
"PageSize"
]
=
[]
string
{
"lt=333"
}
verifyMap
[
"Page"
]
=
[]
string
{
"isBlank"
}
vErr
:=
utils
.
Verify
(
pageInfo
,
verifyMap
)
fmt
.
Println
(
vErr
)
err
,
menuList
,
total
:=
service
.
GetInfoList
()
if
err
!=
nil
{
response
.
FailWithMessage
(
fmt
.
Sprintf
(
"获取数据失败,%v"
,
err
),
c
)
...
...
@@ -69,6 +64,26 @@ func GetMenuList(c *gin.Context) {
func
AddBaseMenu
(
c
*
gin
.
Context
)
{
var
menu
model
.
SysBaseMenu
_
=
c
.
ShouldBindJSON
(
&
menu
)
MenuVerify
:=
utils
.
Rules
{
"Path"
:
{
utils
.
NotEmpty
()},
"ParentId"
:
{
utils
.
NotEmpty
()},
"Name"
:
{
utils
.
NotEmpty
()},
"Component"
:
{
utils
.
NotEmpty
()},
"Sort"
:
{
utils
.
Ge
(
"0"
)},
}
MenuVerifyErr
:=
utils
.
Verify
(
menu
,
MenuVerify
)
if
MenuVerifyErr
!=
nil
{
response
.
FailWithMessage
(
MenuVerifyErr
.
Error
(),
c
)
return
}
MetaVerify
:=
utils
.
Rules
{
"Title"
:
{
utils
.
NotEmpty
()},
}
MetaVerifyErr
:=
utils
.
Verify
(
menu
.
Meta
,
MetaVerify
)
if
MetaVerifyErr
!=
nil
{
response
.
FailWithMessage
(
MetaVerifyErr
.
Error
(),
c
)
return
}
err
:=
service
.
AddBaseMenu
(
menu
)
if
err
!=
nil
{
response
.
FailWithMessage
(
fmt
.
Sprintf
(
"添加失败,%v"
,
err
),
c
)
...
...
server/utils/verify.go
浏览文件 @
a18b3279
...
...
@@ -7,8 +7,45 @@ import (
"strings"
)
type
Rules
map
[
string
][]
string
// 非空 不能为其对应类型的0值
func
NotEmpty
()
string
{
return
"notEmpty"
}
//小于入参(<) 如果为string array Slice则为长度比较 如果是 int uint float 则为数值比较
func
Lt
(
mark
string
)
string
{
return
"lt="
+
mark
}
//小于等于入参(<=) 如果为string array Slice则为长度比较 如果是 int uint float 则为数值比较
func
Le
(
mark
string
)
string
{
return
"le="
+
mark
}
//等于入参(==) 如果为string array Slice则为长度比较 如果是 int uint float 则为数值比较
func
Eq
(
mark
string
)
string
{
return
"eq="
+
mark
}
//不等于入参(!=) 如果为string array Slice则为长度比较 如果是 int uint float 则为数值比较
func
Ne
(
mark
string
)
string
{
return
"ne="
+
mark
}
//大于等于入参(>=) 如果为string array Slice则为长度比较 如果是 int uint float 则为数值比较
func
Ge
(
mark
string
)
string
{
return
"ge="
+
mark
}
//大于入参(>) 如果为string array Slice则为长度比较 如果是 int uint float 则为数值比较
func
Gt
(
mark
string
)
string
{
return
"gt="
+
mark
}
// 校验方法 接收两个参数 入参实例,规则map
func
Verify
(
st
interface
{},
roleMap
map
[
string
][]
string
)
(
err
error
)
{
func
Verify
(
st
interface
{},
roleMap
Rules
)
(
err
error
)
{
compareMap
:=
map
[
string
]
bool
{
"lt"
:
true
,
"le"
:
true
,
...
...
@@ -33,13 +70,13 @@ func Verify(st interface{}, roleMap map[string][]string) (err error) {
if
len
(
roleMap
[
tagVal
.
Name
])
>
0
{
for
_
,
v
:=
range
roleMap
[
tagVal
.
Name
]
{
switch
{
case
strings
.
Index
(
v
,
"isBlank"
)
>
-
1
:
case
v
==
"notEmpty"
:
if
isBlank
(
val
)
{
return
errors
.
New
(
tagVal
.
Name
+
"值不能为空"
)
}
case
compareMap
[
strings
.
Split
(
v
,
"="
)[
0
]]
:
if
!
compareVerify
(
val
,
v
)
{
return
errors
.
New
(
tagVal
.
Name
+
"
不在范围内"
)
return
errors
.
New
(
tagVal
.
Name
+
"
长度或值不在合法范围,"
+
v
)
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录