Untitled
unknown
plain_text
13 days ago
1.4 kB
3
Indexable
async findAllWithPaginationAndSearch( queryDto: EmployeeQueryDto ) { const { search, page = 1, limit = 10 } = queryDto; const query = this.employeeRepository.createQueryBuilder('employee') .leftJoinAndSelect('employee.WorkDatum', 'WorkDatum') .leftJoinAndSelect('employee.religion', 'religion') .leftJoinAndSelect('employee.address', 'address') .leftJoinAndSelect('employee.marital', 'marital') .leftJoinAndSelect('employee.emergency', 'emergency') .leftJoinAndSelect('employee.education', 'education') .leftJoinAndSelect('employee.medical_record', 'medical_record') .leftJoinAndSelect('employee.insurance', 'insurance') .leftJoinAndSelect('employee.career_transfer', 'career_transfer') .leftJoinAndSelect('employee.career_resign', 'career_resign') .leftJoinAndSelect('WorkDatum.bu', 'bu') .leftJoinAndSelect('WorkDatum.dept', 'dept') .leftJoinAndSelect('WorkDatum.org', 'org') .leftJoinAndSelect('WorkDatum.position', 'position') .leftJoinAndSelect('WorkDatum.grade', 'grade'); if (search) { query.where('employee.name ILIKE :search', { search: `%${search}%` }); } query.skip((page - 1) * limit).take(limit); const [result, total] = await query.getManyAndCount(); return { data: result, total, page, lastPage: Math.ceil(total / limit), }; }
Editor is loading...
Leave a Comment