238 lines
7.2 KiB
Dart
238 lines
7.2 KiB
Dart
import 'package:dio/dio.dart' as dio;
|
|
|
|
import 'package:pj_supermarket_cloud/common/index.dart';
|
|
|
|
abstract class HardApi {
|
|
/// 获取硬件配置信息
|
|
static Future<ServiceHardware?> bind(dynamic pa) async {
|
|
final res = await HttpManage().dio.post(
|
|
"/hard/hard-api/ad/bind",
|
|
data: pa,
|
|
);
|
|
if (res.data == null) return null;
|
|
return ServiceHardware.fromJson(res.data);
|
|
}
|
|
|
|
/// 获取硬件配置信息
|
|
static Future<ServiceHardware?> get(dynamic pa) async {
|
|
final res = await HttpManage().dio.get(
|
|
"/hard/hard-api/ad/get",
|
|
queryParameters: pa,
|
|
);
|
|
if (res.data == null) return null;
|
|
return ServiceHardware.fromJson(res.data);
|
|
}
|
|
|
|
/// 获取用户信息
|
|
static Future<ServiceUser?> getUserInfoById(
|
|
dynamic formData,
|
|
) async {
|
|
final res = await HttpManage().dio.get(
|
|
"/hard/hard-api/ad/get-user",
|
|
queryParameters: formData,
|
|
);
|
|
if (res.data == null) return null;
|
|
return ServiceUser.fromJson(res.data);
|
|
}
|
|
|
|
/// 获取用户信息
|
|
static Future<ServiceUser?> getUserByCard(
|
|
dynamic formData,
|
|
) async {
|
|
final res = await HttpManage().dio.get(
|
|
"/hard/hard-api/ad/get-user-by-card",
|
|
queryParameters: formData,
|
|
);
|
|
if (res.data == null) return null;
|
|
return ServiceUser.fromJson(res.data);
|
|
}
|
|
|
|
/// 仅按当前终端和识别身份查询本人预约,调用方不得补充商户或其他用户参数。
|
|
static Future<ServiceReservationMenuQuery?> queryReservationMenu(
|
|
ReservationMenuQueryRequest request,
|
|
) async {
|
|
final res = await HttpManage().dio.post(
|
|
"/hard/hard-api/ad/reservation-menu/query",
|
|
data: request.toJson(),
|
|
);
|
|
if (res.data == null) return null;
|
|
return ServiceReservationMenuQuery.fromJson(res.data);
|
|
}
|
|
|
|
/// 只按查询结果中的订单 ID 核销一笔预约订单。
|
|
static Future<bool> cancelReservationOrder({
|
|
required int orderId,
|
|
}) async {
|
|
final setting = await AppSettingTool.getSysSetting();
|
|
final res = await HttpManage().dio.post(
|
|
'/hard/hard-api/ad/reservation-menu/cancel',
|
|
data: {'orderId': orderId},
|
|
options: dio.Options(
|
|
headers: {
|
|
if (setting.serviceId != null) 'DEVICE-ID': setting.serviceId,
|
|
},
|
|
),
|
|
);
|
|
return res.data == true;
|
|
}
|
|
|
|
/// 分页查询当前设备的预约核销记录,设备范围由服务端再次校验。
|
|
static Future<ServiceVerificationRecordPage?> verificationRecordPage({
|
|
required int current,
|
|
required int size,
|
|
required VerificationRecordQueryRequest request,
|
|
}) async {
|
|
final res = await HttpManage().dio.post(
|
|
'/hard/hard-api/ad/verification-record/page',
|
|
queryParameters: {'current': current, 'size': size},
|
|
data: request.toJson(),
|
|
options: dio.Options(headers: {'DEVICE-ID': request.hardId}),
|
|
);
|
|
if (res.data == null) return null;
|
|
return ServiceVerificationRecordPage.fromJson(res.data);
|
|
}
|
|
|
|
/// 创建硬件订单
|
|
static Future<String?> createHardwareOrder(dynamic formData) async {
|
|
final res = await HttpManage().dio.post(
|
|
"/hard/hard-api/ad/create-order",
|
|
data: formData,
|
|
);
|
|
if (res.data == null) return null;
|
|
return res.data;
|
|
}
|
|
|
|
/// 创建硬件订单
|
|
static Future<ServiceHardCreateHardQrCodeScanOrder?>
|
|
createHardQrCodeScanOrder(dynamic formData) async {
|
|
final res = await HttpManage().dio.post(
|
|
"/hard/hard-api/ad/create-hard-qr-code-order",
|
|
data: formData,
|
|
);
|
|
if (res.data == null) return null;
|
|
return ServiceHardCreateHardQrCodeScanOrder.fromJson(res.data);
|
|
}
|
|
|
|
/// 根据订单id,获取订单详情
|
|
static Future<ServiceHardOrder?> getOrder(dynamic formData) async {
|
|
final res = await HttpManage().dio.get(
|
|
"/hard/hard-api/ad/get-order",
|
|
queryParameters: formData,
|
|
);
|
|
if (res.data == null) return null;
|
|
return ServiceHardOrder.fromJson(res.data);
|
|
}
|
|
|
|
/// 获取订单购物车
|
|
static Future<List<ServiceCar>?> getCarByOrderId(
|
|
dynamic formData,
|
|
) async {
|
|
final res = await HttpManage().dio.get(
|
|
"/hard/hard-api/ad/get-by-order-id",
|
|
queryParameters: formData,
|
|
);
|
|
if (res.data == null) return null;
|
|
return res.data?.map<ServiceCar>((e) => ServiceCar.fromJson(e)).toList();
|
|
}
|
|
|
|
/// 核销订单
|
|
static Future<bool> cancelQrCode(dynamic formData) async {
|
|
final res = await HttpManage().dio.post(
|
|
"/hard/hard-api/ad/cancel-code",
|
|
data: formData,
|
|
);
|
|
if (res.data == null) return false;
|
|
return true;
|
|
}
|
|
|
|
/// 核销活动订单
|
|
static Future<bool> cancelActQrCode(dynamic formData) async {
|
|
final res = await HttpManage().dio.post(
|
|
"/hard/hard-api/ad/cancel-act-code",
|
|
data: formData,
|
|
);
|
|
if (res.data == null) return false;
|
|
return true;
|
|
}
|
|
|
|
/// 生成发票
|
|
static Future<ServiceGenerateInvoice?> generateInvoice(
|
|
dynamic formData,
|
|
) async {
|
|
final res = await HttpManage().dio.get(
|
|
"/hard/hard-api/ad/generate-invoice",
|
|
queryParameters: formData,
|
|
);
|
|
if (res.data == null) return null;
|
|
return ServiceGenerateInvoice.fromJson(res.data);
|
|
}
|
|
|
|
/// 打印成功
|
|
static Future<bool> printInvoice(dynamic formData) async {
|
|
final res = await HttpManage().dio.get(
|
|
"/hard/hard-api/ad/print-invoice",
|
|
queryParameters: formData,
|
|
);
|
|
if (res.data == null) return false;
|
|
return true;
|
|
}
|
|
|
|
/// 离线同步
|
|
static Future<List<String>?> syncOfflineOrder(dynamic formData) async {
|
|
final res = await HttpManage().dio.post(
|
|
"/hard/hard-api/ad/sync-offline-order",
|
|
data: formData,
|
|
);
|
|
if (res.data == null) return null;
|
|
return res.data?.map<String>((e) => e.toString()).toList();
|
|
}
|
|
|
|
/// 统计每天、每周、每月、每年的交易人数和次数
|
|
static Future<ServiceChartLatitude?> chartLatitude(
|
|
dynamic formData,
|
|
) async {
|
|
final res = await HttpManage().dio.get(
|
|
"/hard/hard-api/ad/chart-latitude",
|
|
queryParameters: formData,
|
|
);
|
|
if (res.data == null) return null;
|
|
return ServiceChartLatitude.fromJson(res.data);
|
|
}
|
|
|
|
/// android查询今日的广播
|
|
static Future<ServiceBroadcastTodayPage?> broadcastToday(
|
|
dynamic formData,
|
|
) async {
|
|
final res = await HttpManage().dio.get(
|
|
"/hard/hard-broadcast/ad/today",
|
|
queryParameters: formData,
|
|
data: {"hardId": formData["hardId"]},
|
|
);
|
|
if (res.data == null) return null;
|
|
return ServiceBroadcastTodayPage.fromJson(res.data);
|
|
}
|
|
|
|
/// android完成一轮广播
|
|
static Future<ServiceBroadcastTodayPage?> broadcast(
|
|
dynamic formData,
|
|
) async {
|
|
final res = await HttpManage()
|
|
.dio
|
|
.post("/hard/hard-broadcast/ad/broadcast", data: formData);
|
|
if (res.data == null) return null;
|
|
return ServiceBroadcastTodayPage.fromJson(res.data);
|
|
}
|
|
|
|
/// 消费机限时退款
|
|
static Future<bool> timeLimitRefund(
|
|
dynamic formData,
|
|
) async {
|
|
final res = await HttpManage().dio.get(
|
|
"/hard/hard-after-sale/ad/time-limit-refund",
|
|
queryParameters: formData,
|
|
);
|
|
if (res.data == null) return false;
|
|
return true;
|
|
}
|
|
}
|