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