Compare commits
No commits in common. "edf509afaeef03d8a50e69cceb591e4a6b229128" and "c3f88dc8fa51ccb566cd9d9a897d4fd08b1c8363" have entirely different histories.
edf509afae
...
c3f88dc8fa
1 changed files with 13 additions and 23 deletions
|
@ -1,4 +1,4 @@
|
||||||
import { Brackets, Like, SelectQueryBuilder } from "typeorm";
|
import { SelectQueryBuilder } from "typeorm";
|
||||||
import { dataSource } from "../../../data-source";
|
import { dataSource } from "../../../data-source";
|
||||||
import { member } from "../../../entity/club/member/member";
|
import { member } from "../../../entity/club/member/member";
|
||||||
import { membership } from "../../../entity/club/member/membership";
|
import { membership } from "../../../entity/club/member/membership";
|
||||||
|
@ -28,29 +28,19 @@ export default abstract class MemberService {
|
||||||
let query = this.applyMemberBaseJoins();
|
let query = this.applyMemberBaseJoins();
|
||||||
|
|
||||||
if (search != "") {
|
if (search != "") {
|
||||||
let searchBits = search.split(" ");
|
search.split(" ").forEach((term, index) => {
|
||||||
|
const searchQuery = `%${term}%`;
|
||||||
if (searchBits.length < 2) {
|
const dynamic = "searchQuery" + Math.random().toString(36).substring(2);
|
||||||
query = query.where(`member.firstname LIKE :searchQuery OR member.lastname LIKE :searchQuery`, {
|
if (index == 0) {
|
||||||
searchQuery: `%${searchBits[0]}%`,
|
query = query.where(`member.firstname LIKE :${dynamic} OR member.lastname LIKE :${dynamic}`, {
|
||||||
});
|
[dynamic]: searchQuery,
|
||||||
} else {
|
|
||||||
searchBits
|
|
||||||
.flatMap((v, i) => searchBits.slice(i + 1).map((w) => [v, w]))
|
|
||||||
.forEach((term) => {
|
|
||||||
query = query
|
|
||||||
.orWhere(
|
|
||||||
new Brackets((qb) =>
|
|
||||||
qb.where({ firstname: Like(`%${term[0]}%`) }).andWhere({ lastname: Like(`%${term[1]}%`) })
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.orWhere(
|
|
||||||
new Brackets((qb) =>
|
|
||||||
qb.where({ firstname: Like(`%${term[1]}%`) }).andWhere({ lastname: Like(`%${term[0]}%`) })
|
|
||||||
)
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
}
|
} else {
|
||||||
|
query = query.orWhere(`member.firstname LIKE :${dynamic} OR member.lastname LIKE :${dynamic}`, {
|
||||||
|
[dynamic]: searchQuery,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ids.length != 0) {
|
if (ids.length != 0) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue