对接 扫码后的立即购买

master
zhangmeng 4 years ago
parent 1b3473682e
commit 36c5a8f1de

@ -4,10 +4,12 @@ import 'package:get/get.dart';
import 'package:recook/base/base_store_state.dart';
import 'package:recook/constants/api.dart';
import 'package:recook/constants/api_v2.dart';
import 'package:recook/constants/header.dart';
import 'package:recook/constants/styles.dart';
import 'package:recook/manager/http_manager.dart';
import 'package:recook/models/base_model.dart';
import 'package:recook/models/scan_result_model.dart';
import 'package:recook/pages/home/barcode/qr_scaner_result_page.dart';
import 'package:recook/pages/home/classify/commodity_detail_page.dart';
import 'package:recook/widgets/custom_app_bar.dart';
@ -181,8 +183,9 @@ class _InputBarcodePageState extends BaseStoreState<InputBarcodePage> {
}
_getGoodsWithCode(String code) async {
ResultData resultData = await HttpManager.post(GoodsApi.goods_code_search, {
"code": code,
ResultData resultData =
await HttpManager.post(APIV2.userAPI.getScanResult, {
"skuCode": code,
});
if (!resultData.result) {
showError(resultData.msg);
@ -193,12 +196,22 @@ class _InputBarcodePageState extends BaseStoreState<InputBarcodePage> {
showError(model.msg);
return;
}
String goodsId = resultData.data['data']['goodsId'].toString();
if (TextUtils.isEmpty(goodsId)) {
// String goodsId = resultData.data['data']['goodsId'].toString();
// if (TextUtils.isEmpty(goodsId)) {
// return;
// }
// AppRouter.pushAndReplaced(globalContext, RouteName.COMMODITY_PAGE, arguments: CommodityDetailPage.setArguments(int.parse(goodsId)));
ScanResultModel scanResultModel =
ScanResultModel.fromMap(resultData.data['data']);
if (scanResultModel == null) {
showError(model.msg);
return;
}
// AppRouter.pushAndReplaced(globalContext, RouteName.COMMODITY_PAGE, arguments: CommodityDetailPage.setArguments(int.parse(goodsId)));
Get.to(() => QRScarerResultPage());
Get.off(
() => QRScarerResultPage(
model: scanResultModel,
),
);
return;
}
}

@ -1,10 +1,20 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:recook/manager/http_manager.dart';
import 'package:recook/manager/user_manager.dart';
import 'package:recook/models/order_preview_model.dart';
import 'package:recook/models/scan_result_model.dart';
import 'package:recook/pages/home/classify/mvp/goods_detail_model_impl.dart';
import 'package:recook/pages/home/classify/order_preview_page.dart';
import 'package:recook/pages/home/classify/sku_choose_page.dart';
import 'package:recook/pages/home/widget/plus_minus_view.dart';
import 'package:recook/utils/app_router.dart';
import 'package:recook/widgets/custom_image_button.dart';
import 'package:recook/widgets/progress/re_toast.dart';
import 'package:recook/widgets/progress/sc_dialog.dart';
import 'package:recook/widgets/recook/recook_scaffold.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:recook/widgets/toast.dart';
import 'package:velocity_x/velocity_x.dart';
import 'package:recook/const/resource.dart';
@ -18,6 +28,7 @@ class QRScarerResultPage extends StatefulWidget {
class _QRScarerResultPageState extends State<QRScarerResultPage> {
int _goodsCount = 1;
SkuChooseModel _chooseModel;
@override
void initState() {
super.initState();
@ -167,11 +178,14 @@ class _QRScarerResultPageState extends State<QRScarerResultPage> {
int get getMaxGoodsCount {
if (widget.model?.inventory == null) {
ReToast.err(text: '库存数量错误');
return 1;
} else {
return widget.model.inventory < 50 ? widget.model.inventory : 50;
ReToast.warning(text: '库存数量错误');
return 0;
}
if (widget.model.inventory == 0) {
ReToast.warning(text: '库存数量为0');
return 0;
}
return widget.model.inventory < 50 ? widget.model.inventory : 50;
}
Widget _buyButton() {
@ -185,8 +199,32 @@ class _QRScarerResultPageState extends State<QRScarerResultPage> {
borderRadius: BorderRadius.only(
topRight: Radius.circular(30), bottomRight: Radius.circular(30))),
fontSize: 32.sp,
onPressed: () {},
onPressed: getMaxGoodsCount == 0
? null
: () {
_createOrder(widget.model.skuID, widget.model.skuName,
_goodsCount, context);
},
);
}
Future<dynamic> _createOrder(
int skuId, String skuName, int quantity, BuildContext context,
{bool isLive = false, int liveId = 0}) async {
OrderPreviewModel order = await GoodsDetailModelImpl.createOrderPreview(
UserManager.instance.user.info.id,
skuId,
skuName,
quantity,
liveId: isLive ? liveId : null,
);
if (order.code != HttpStatus.SUCCESS) {
ReToast.err(text: order.msg);
Get.back();
return;
}
AppRouter.push(context, RouteName.GOODS_ORDER_PAGE,
arguments: GoodsOrderPage.setArguments(order));
}
Widget _shopButton() {

@ -964,7 +964,8 @@ class _GoodsOrderPageState extends BaseStoreState<GoodsOrderPage> {
HttpResultModel<SelfPickupStoreListModel> model =
await _presenterImpl.getStoreList();
if (!model.result) {
GSDialog.of(context).showError(globalContext, model.msg);
// GSDialog.of(context).showError(globalContext, model.msg);
ReToast.err(text: model.msg);
return;
}
_storeList = model.data.data;
@ -1057,16 +1058,18 @@ class _GoodsOrderPageState extends BaseStoreState<GoodsOrderPage> {
if (method == 1 && name == _selectedStoreName) {
return;
}
GSDialog.of(context).showLoadingDialog(context, "");
// GSDialog.of(context).showLoadingDialog(context, "");
ReToast.loading(text: '');
HttpResultModel<OrderPreviewModel> resultModel =
await _presenterImpl.changeShippingMethod(
UserManager.instance.user.info.id,
_orderModel.data.id,
method,
storeId);
GSDialog.of(context).dismiss(context);
// GSDialog.of(context).dismiss(context);
if (!resultModel.result) {
GSDialog.of(context).showError(globalContext, resultModel.msg);
// GSDialog.of(context).showError(globalContext, resultModel.msg);
ReToast.err(text: resultModel.msg);
return;
}
_orderModel = resultModel.data;

@ -152,9 +152,11 @@ class _BarcodeScanPageState extends BaseStoreState<BarcodeScanPage> {
pushToFailPage(code, model.msg, image);
return;
}
Get.off(() => QRScarerResultPage(
model: scanResultModel,
));
Get.off(
() => QRScarerResultPage(
model: scanResultModel,
),
);
return;
}

Loading…
Cancel
Save