parent
54072412f3
commit
82f49667a9
|
@ -184,16 +184,10 @@ class ExplorerQueryRepository(
|
|||
val characters = ('A'..'Z').map { it.toString() }
|
||||
val rotatedChars = characters.drop(offset) + characters.take(offset)
|
||||
|
||||
val caseBuilder = Expressions.stringTemplate(
|
||||
"CASE",
|
||||
rotatedChars.withIndex().joinToString(" ") {
|
||||
"WHEN {0} LIKE {1} THEN {2}".format(
|
||||
member.email,
|
||||
"'" + it.value + "%'",
|
||||
it.index + 1
|
||||
)
|
||||
}
|
||||
)
|
||||
val caseWhenClauses = rotatedChars.withIndex().joinToString(" ") {
|
||||
"WHEN {0}.email LIKE '{1}%' THEN {2}".format(member, it.value, it.index + 1)
|
||||
}
|
||||
val caseExpression = Expressions.stringTemplate("CASE $caseWhenClauses END")
|
||||
|
||||
val randomExpression = Expressions.numberTemplate(Double::class.java, "function('rand')").asc()
|
||||
|
||||
|
@ -205,7 +199,7 @@ class ExplorerQueryRepository(
|
|||
.and(member.isActive.isTrue)
|
||||
.and(auth.gender.eq(gender))
|
||||
)
|
||||
.orderBy(caseBuilder.asc(), randomExpression)
|
||||
.orderBy(caseExpression.asc(), randomExpression)
|
||||
.offset(0)
|
||||
.limit(10)
|
||||
.fetch()
|
||||
|
|
Loading…
Reference in New Issue