add package sql search

This commit is contained in:
Sai Naw Wun
2021-01-24 22:51:00 +06:30
parent 9a19e7af08
commit 020b748272
5 changed files with 78 additions and 20 deletions

View File

@@ -56,7 +56,7 @@ class PackageDataProvider {
token: await getToken());
}
Future<List<Package>> searchPackage(String term) async {
Future<List<Package>> ftsSearchPackage(String term) async {
if (term == null || term == '') return List();
var bytes = utf8.encode(term);
@@ -84,4 +84,38 @@ class PackageDataProvider {
}
return packages;
}
Future<List<Package>> searchPackage(String term) async {
if (term == null || term == '') return List();
List<Package> packages = [];
try {
var data = {
"fields":
'id,tracking_id,market,user_name,phone_number,status,status_date',
"aggfuns": ",,,,,,",
"groupbys": '',
"filters": [
{
"field": "tracking_id",
"compare": "like",
"value": "%" + term.toUpperCase() + "%"
}
]
};
var result = await requestAPI("/api/data/packages", "POST",
token: await getToken(),
url: Config.instance.reportURL,
payload: jsonEncode(data));
if (result == null) return packages;
result.forEach((d) {
var package = Package.fromJson(d);
packages.add(package);
});
} catch (e) {
log.warning("Error >>>>${e.toString()}");
}
return packages;
}
}

View File

@@ -29,6 +29,11 @@ class PackageServiceImp implements PackageService {
return packageDataProvider.updateReceiving(package);
}
@override
Future<List<Package>> ftsSearchPackage(String term) {
return packageDataProvider.ftsSearchPackage(term);
}
@override
Future<List<Package>> searchPackage(String term) {
return packageDataProvider.searchPackage(term);

View File

@@ -7,6 +7,7 @@ abstract class PackageService {
Future<void> deleteReceiving(Package package);
Future<void> updateProcessing(Package package);
Future<void> deleteProcessing(Package package);
Future<List<Package>> ftsSearchPackage(String term);
Future<List<Package>> searchPackage(String term);
Future<void> changeDeliveryAddress(String packageID, String deliveryID);
Future<void> packageReturn(String packageID);

View File

@@ -232,14 +232,20 @@ class PackageModel extends BaseModel {
}
Future<List<Package>> searchPackage(String term) async {
List<Package> packages =
await Services.instance.packageService.searchPackage(term);
Future<List<Package>> packages =
Services.instance.packageService.searchPackage(term);
Package pkg = await getPackageByTrackingID(term);
if (pkg != null && !packages.contains(pkg)) {
packages.insert(0, pkg);
}
return packages;
Future<List<Package>> packagesFTS =
Services.instance.packageService.ftsSearchPackage(term);
// Package pkg = await getPackageByTrackingID(term);
// if (pkg != null && !packages.contains(pkg)) {
// packages.insert(0, pkg);
// }
List<Package> pkgs = await packages;
List<Package> ftsPkgs = await packagesFTS;
pkgs.addAll(ftsPkgs);
final seen = Set<Package>();
return pkgs.where((e) => seen.add(e)).toList();
}
Future<void> createPackages(User user, List<Package> packages) {

View File

@@ -153,17 +153,23 @@ class _LengthPickerDialogState extends State<LengthPickerDialog> {
children: [
InkWell(
onTap: () => _addInc(1),
child: Padding(
padding: const EdgeInsets.all(3.0),
child: Icon(
Icons.add,
color: primaryColor,
),
),
),
InkWell(
onTap: () => _addInc(-1),
child: Padding(
padding: const EdgeInsets.all(3.0),
child: Icon(
Icons.remove,
color: primaryColor,
),
),
)
],
)
@@ -199,17 +205,23 @@ class _LengthPickerDialogState extends State<LengthPickerDialog> {
children: [
InkWell(
onTap: () => _addFeet(1),
child: Padding(
padding: const EdgeInsets.all(3.0),
child: Icon(
Icons.add,
color: primaryColor,
),
),
),
InkWell(
onTap: () => _addFeet(-1),
child: Padding(
padding: const EdgeInsets.all(3.0),
child: Icon(
Icons.remove,
color: primaryColor,
),
),
)
],
)