Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jeecg-boot
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenjunxiong
jeecg-boot
Commits
05c926c2
Commit
05c926c2
authored
Jul 24, 2019
by
zhangdaihao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
解决initQueryWrapper组装sql查询条件错误 #284
parent
5b5fa424
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
28 additions
and
5 deletions
+28
-5
jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/query/QueryGenerator.java
+28
-5
No files found.
jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/query/QueryGenerator.java
View file @
05c926c2
...
...
@@ -39,6 +39,8 @@ public class QueryGenerator {
private
static
final
String
STAR
=
"*"
;
private
static
final
String
COMMA
=
","
;
private
static
final
String
NOT_EQUAL
=
"!"
;
/**页面带有规则值查询,空格作为分隔符*/
private
static
final
String
QUERY_SEPARATE_KEYWORD
=
" "
;
/**高级查询前端传来的参数名*/
private
static
final
String
SUPER_QUERY_PARAMS
=
"superQueryParams"
;
...
...
@@ -150,6 +152,12 @@ public class QueryGenerator {
//根据参数值带什么关键字符串判断走什么类型的查询
QueryRuleEnum
rule
=
convert2Rule
(
value
);
value
=
replaceValue
(
rule
,
value
);
// add -begin 添加判断为字符串时设为全模糊查询
if
(
(
rule
==
null
||
QueryRuleEnum
.
EQ
.
equals
(
rule
))
&&
"class java.lang.String"
.
equals
(
type
))
{
// 可以设置左右模糊或全模糊,因人而异
rule
=
QueryRuleEnum
.
LIKE
;
}
// add -end 添加判断为字符串时设为全模糊查询
addEasyQuery
(
queryWrapper
,
name
,
rule
,
value
);
}
...
...
@@ -221,7 +229,7 @@ public class QueryGenerator {
* @param value
* @return
*/
p
ublic
static
QueryRuleEnum
convert2Rule
(
Object
value
)
{
p
rivate
static
QueryRuleEnum
convert2Rule
(
Object
value
)
{
// 避免空数据
if
(
value
==
null
)
{
return
null
;
...
...
@@ -231,14 +239,22 @@ public class QueryGenerator {
return
null
;
}
QueryRuleEnum
rule
=
null
;
//update-begin--Author:scott Date:20190724 for:initQueryWrapper组装sql查询条件错误 #284-------------------
//TODO 此处规则,只适用于 le lt ge gt
// step 2 .>= =<
if
(
rule
==
null
&&
val
.
length
()
>=
2
)
{
if
(
rule
==
null
&&
val
.
length
()
>=
3
)
{
if
(
QUERY_SEPARATE_KEYWORD
.
equals
(
val
.
substring
(
2
,
3
))){
rule
=
QueryRuleEnum
.
getByValue
(
val
.
substring
(
0
,
2
));
}
}
// step 1 .> <
if
(
rule
==
null
&&
val
.
length
()
>=
1
)
{
if
(
rule
==
null
&&
val
.
length
()
>=
2
)
{
if
(
QUERY_SEPARATE_KEYWORD
.
equals
(
val
.
substring
(
1
,
2
))){
rule
=
QueryRuleEnum
.
getByValue
(
val
.
substring
(
0
,
1
));
}
}
//update-end--Author:scott Date:20190724 for:initQueryWrapper组装sql查询条件错误 #284---------------------
// step 3 like
if
(
rule
==
null
&&
val
.
contains
(
STAR
))
{
...
...
@@ -269,7 +285,7 @@ public class QueryGenerator {
* @param value
* @return
*/
p
ublic
static
Object
replaceValue
(
QueryRuleEnum
rule
,
Object
value
)
{
p
rivate
static
Object
replaceValue
(
QueryRuleEnum
rule
,
Object
value
)
{
if
(
rule
==
null
)
{
return
null
;
}
...
...
@@ -286,7 +302,14 @@ public class QueryGenerator {
}
else
if
(
rule
==
QueryRuleEnum
.
IN
)
{
value
=
val
.
split
(
","
);
}
else
{
value
=
val
.
replace
(
rule
.
getValue
(),
""
);
//update-begin--Author:scott Date:20190724 for:initQueryWrapper组装sql查询条件错误 #284-------------------
if
(
val
.
startsWith
(
rule
.
getValue
())){
//TODO 此处逻辑应该注释掉-> 如果查询内容中带有查询匹配规则符号,就会被截取的(比如:>=您好)
value
=
val
.
replaceFirst
(
rule
.
getValue
(),
""
);
}
else
if
(
val
.
startsWith
(
rule
.
getCondition
()+
QUERY_SEPARATE_KEYWORD
)){
value
=
val
.
replaceFirst
(
rule
.
getCondition
()+
QUERY_SEPARATE_KEYWORD
,
""
).
trim
();
}
//update-end--Author:scott Date:20190724 for:initQueryWrapper组装sql查询条件错误 #284-------------------
}
return
value
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment