refactor: reduce code duplication
This commit is contained in:
parent
1a18f7c5d7
commit
6fdfd5b140
1 changed files with 10 additions and 56 deletions
|
|
@ -207,64 +207,18 @@ export class EmployeeController extends Controller {
|
||||||
@Query() page: number = 1,
|
@Query() page: number = 1,
|
||||||
@Query() pageSize: number = 30,
|
@Query() pageSize: number = 30,
|
||||||
) {
|
) {
|
||||||
const where = {
|
return this.listByCriteria(
|
||||||
OR: queryOrNot<Prisma.EmployeeWhereInput[]>(query, [
|
req,
|
||||||
{
|
zipCode,
|
||||||
employeePassport: {
|
|
||||||
some: { number: { contains: query } },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{ firstName: { contains: query } },
|
|
||||||
{ firstNameEN: { contains: query } },
|
|
||||||
{ lastName: { contains: query } },
|
|
||||||
{ lastNameEN: { contains: query } },
|
|
||||||
...whereAddressQuery(query),
|
|
||||||
]),
|
|
||||||
AND: {
|
|
||||||
...filterStatus(status),
|
|
||||||
customerBranch: {
|
|
||||||
customerId,
|
|
||||||
customer: isSystem(req.user)
|
|
||||||
? undefined
|
|
||||||
: {
|
|
||||||
registeredBranch: {
|
|
||||||
OR: permissionCond(req.user),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
subDistrict: zipCode ? { zipCode } : undefined,
|
|
||||||
gender,
|
gender,
|
||||||
},
|
status,
|
||||||
} satisfies Prisma.EmployeeWhereInput;
|
visa,
|
||||||
|
passport,
|
||||||
const [result, total] = await prisma.$transaction([
|
customerId,
|
||||||
prisma.employee.findMany({
|
query,
|
||||||
orderBy: [{ statusOrder: "asc" }, { createdAt: "asc" }],
|
|
||||||
include: {
|
|
||||||
employeePassport: passport ? { orderBy: { expireDate: "desc" } } : undefined,
|
|
||||||
employeeVisa: visa ? { orderBy: { expireDate: "desc" } } : undefined,
|
|
||||||
province: true,
|
|
||||||
district: true,
|
|
||||||
subDistrict: true,
|
|
||||||
customerBranch: {
|
|
||||||
include: { customer: true },
|
|
||||||
},
|
|
||||||
createdBy: true,
|
|
||||||
updatedBy: true,
|
|
||||||
},
|
|
||||||
where,
|
|
||||||
take: pageSize,
|
|
||||||
skip: (page - 1) * pageSize,
|
|
||||||
}),
|
|
||||||
prisma.employee.count({ where }),
|
|
||||||
]);
|
|
||||||
|
|
||||||
return {
|
|
||||||
result,
|
|
||||||
page,
|
page,
|
||||||
pageSize,
|
pageSize,
|
||||||
total,
|
);
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Post("list")
|
@Post("list")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue