12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import 'package:vital_local_database/core/interface/queryable.dart';
- import 'package:vital_local_database/core/sqlite/repository.dart';
- import 'package:vitalapp/database/db.dart';
- import 'package:vitalapp/database/entities/exam.dart';
- import 'interfaces/exam.dart';
- class ExamRepository extends BaseDbRepository<ExamEntity, ExamColumnsDefine>
- implements IExamRepository {
- ExamRepository(super.database);
- @override
- ExamEntity createEntityInstance() => ExamEntity();
- @override
- Future<ExamEntity?> singleByCodeWithUserCode(
- String code, String userCode) async {
- final entity = await db.repositories.exam.queryable
- .where((x) => [
- x.isValid.equals(true),
- x.userCode.equals(userCode),
- x.code.equals(code),
- ])
- .first();
- return entity;
- }
- @override
- Future<List<ExamEntity>> queryPatientAllList(
- String patientCode, String userCode,
- {List<String>? keys}) async {
- var query = db.repositories.exam.queryable.where((x) => [
- x.isValid.equals(true),
- x.userCode.equals(userCode),
- x.patientCode.equals(patientCode),
- ]);
- if (keys != null && keys.isNotEmpty) {
- query = query.and((x) => x.templateKey.inEqueals(keys));
- }
- final entities = await query.toList();
- return entities;
- }
- @override
- Future<DbPagedList<ExamEntity>> queryPatientPagedList(
- String patientCode, String userCode, int pageIndex,
- {int pageSize = 50}) async {
- var query = db.repositories.exam.queryable.where((x) => [
- x.isValid.equals(true),
- x.userCode.equals(userCode),
- x.patientCode.equals(patientCode),
- ]);
- final count = await query.count();
- final offset = pageSize * (pageIndex - 1);
- final entities = await query
- .orderBy((x) => x.updateTime, DbOrderByType.desc)
- .orderBy((x) => x.createTime, DbOrderByType.desc)
- .offset(offset)
- .limit(pageSize)
- .toList();
- final result = DbPagedList<ExamEntity>(
- data: entities,
- totalCount: count,
- pageIndex: pageIndex,
- pageSize: pageSize,
- );
- return result;
- }
- }
|