From 49244f7cf5f09f101dd1436295076df11221a2ff Mon Sep 17 00:00:00 2001 From: wurong <953969641@qq.com> Date: Fri, 22 Sep 2023 18:37:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=84=8F=E6=80=BB=E8=A7=88-=E6=80=BB?= =?UTF-8?q?=E8=A7=88-=E8=AE=A2=E5=8D=95-=E5=95=86=E5=93=81=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=AF=B9=E6=8E=A5=E6=9B=B4=E6=94=B9=EF=BC=9B=20?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=EF=BC=8C=EF=BC=88=E6=A0=B8=E9=94=80=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=9A=82=E6=9C=AA=E7=A1=AE=E5=AE=9A=EF=BC=89=20=E6=88=91?= =?UTF-8?q?=E7=9A=84=E9=A1=B5=E9=9D=A2-=E6=95=B0=E6=8D=AE=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=EF=BC=9B=EF=BC=88=E5=95=86=E6=88=B7=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=9D=BF=E5=9D=97=E6=9A=82=E6=9C=AA=E7=A1=AE=E5=AE=9A=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AF=86=E7=A0=81=E6=8E=A5=E5=8F=A3=E6=9A=82?= =?UTF-8?q?=E6=9C=AA=E7=A1=AE=E5=AE=9A=EF=BC=89=20=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=9D=BF=E5=9D=97=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5=EF=BC=88?= =?UTF-8?q?=E6=9C=AA=E5=AE=8C=EF=BC=8C=E6=9A=82=E6=97=B6=E4=BB=85=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=88=97=E8=A1=A8=EF=BC=8C=E5=88=86=E7=BB=84=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5=EF=BC=89=20?= =?UTF-8?q?=E6=B5=81=E6=B0=B4=E6=97=A5=E6=9C=9F=E9=80=89=E6=8B=A9=E5=BE=85?= =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ios/Runner/Info.plist | 9 +- lib/business_system/business_page.dart | 9 +- lib/business_system/business_scan_code.dart | 138 +++ .../date_select/custom_page.dart | 4 +- .../goods/business_goods_page.dart | 5 +- .../goods/on_sale/on_sale_page.dart | 92 +- .../home/business_home_page.dart | 19 +- .../home/overview/trade_goods.dart | 105 +- .../home/overview/trade_order.dart | 790 ++++++++---- .../home/overview/trade_overview_page.dart | 2 +- .../home/overview/trade_summary.dart | 216 +++- .../mine/account_information.dart | 13 +- .../mine/business_mine_page.dart | 81 +- lib/business_system/mine/merchant_info.dart | 3 + .../mine/security_setting.dart | 3 + .../order/business_order_detail.dart | 206 +++- .../order/business_order_page.dart | 109 +- lib/business_system/order/order_list.dart | 458 ++++--- lib/business_system/order/request_refund.dart | 332 ++++- lib/main.dart | 10 +- lib/qr/qr_code_scan.dart | 3 - lib/retrofit/business_api.dart | 47 +- lib/retrofit/business_api.g.dart | 163 ++- lib/retrofit/data/business_goods.dart | 746 ++++++++++++ .../data/business_order_detail_info.dart | 1083 +++++++++++++++++ lib/retrofit/data/business_order_list.dart | 779 ++++++++++++ lib/retrofit/data/product_group_list.dart | 356 ++++++ lib/retrofit/data/refund_reason_list.dart | 232 ++++ lib/union/union_list.dart | 3 - lib/view_widget/settlement_tips_dialog.dart | 6 +- 30 files changed, 5290 insertions(+), 732 deletions(-) create mode 100644 lib/business_system/business_scan_code.dart create mode 100644 lib/retrofit/data/business_goods.dart create mode 100644 lib/retrofit/data/business_order_detail_info.dart create mode 100644 lib/retrofit/data/business_order_list.dart create mode 100644 lib/retrofit/data/product_group_list.dart create mode 100644 lib/retrofit/data/refund_reason_list.dart diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 173f6c23..56de748a 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -95,6 +95,9 @@ lineauth line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER) alipay + iosamap + qqmap + baidumap LSRequiresIPhoneOS @@ -177,11 +180,5 @@ location - LSApplicationQueriesSchemes - - iosamap - qqmap - baidumap - diff --git a/lib/business_system/business_page.dart b/lib/business_system/business_page.dart index f0101c45..f9e0e651 100644 --- a/lib/business_system/business_page.dart +++ b/lib/business_system/business_page.dart @@ -7,6 +7,7 @@ import 'package:huixiang/utils/font_weight.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import '../retrofit/data/business_login_info.dart'; +import 'business_scan_code.dart'; import 'home/business_home_page.dart'; class BusinessPage extends StatefulWidget { @@ -49,10 +50,10 @@ class _BusinessPage extends State selectStoreIndex = index; }); }), - if (choiceIndex == 1) BusinessOrderPage(), - if (choiceIndex == 2) BusinessOrderPage(), - if (choiceIndex == 3) BusinessGoodsPage(), - if (choiceIndex == 4) BusinessMinePage(), + if (choiceIndex == 1) BusinessOrderPage(businessLoginInfo?.storeList[selectStoreIndex]?.id ?? "0"), + if (choiceIndex == 2) BusinessScanCode(), + if (choiceIndex == 3) BusinessGoodsPage(businessLoginInfo?.storeList[selectStoreIndex]?.id ?? "0"), + if (choiceIndex == 4) BusinessMinePage(businessLoginInfo,businessLoginInfo?.storeList[selectStoreIndex]?.id ?? "0"), Align( alignment: Alignment.bottomCenter, child: Container( diff --git a/lib/business_system/business_scan_code.dart b/lib/business_system/business_scan_code.dart new file mode 100644 index 00000000..be02bc49 --- /dev/null +++ b/lib/business_system/business_scan_code.dart @@ -0,0 +1,138 @@ +import 'dart:ui'; + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:image_pickers/image_pickers.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:scan/scan.dart'; +import '../generated/l10n.dart'; + +class BusinessScanCode extends StatefulWidget { + + @override + State createState() { + return _BusinessScanCode(); + } +} + +class _BusinessScanCode extends State + with AutomaticKeepAliveClientMixin { + ScanController controller = ScanController(); + final screenWidth = window.physicalSize.width; + final screenHeight = window.physicalSize.height; + + @override + void initState() { + super.initState(); + } + + + @override + void dispose() { + if (this.controller != null) { + this.controller.pause(); + } + super.dispose(); + } + + @override + Widget build(BuildContext context) { + super.build(context); + return Scaffold( + body: Container( + child: Stack( + children: [ + Positioned( + child: Column( + children: [ + Expanded( + child: ScanView( + controller: controller, + scanAreaScale: 0.7, + scanLineColor: Colors.green.shade400, + onCapture: (data) { + if (data != null && data != "") { + // Navigator.of(context).pop(data); + + } + }, + ), + flex: 1, + ), + ], + ), + top: 0, + bottom: 0, + left: 0, + right: 0, + ), + Positioned( + child: Container( + margin: EdgeInsets.only(left:12.w,right: 16.w,top: 16.h), + child:Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded(child:Text( + S.of(context).saoma, + style: TextStyle( + color: Colors.white, + fontSize: 18.sp, + fontWeight: FontWeight.bold, + ), + )), + GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () { + pickImage(); + }, + child:Container( + padding: EdgeInsets.symmetric(horizontal:10.w), + child: Text( + S.of(context).xiangce, + style: TextStyle( + color: Colors.black, + fontSize: 18.sp, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ], + ), + ), + top:MediaQuery.of(context).padding.top, + left: 0, + right: 0, + ), + ], + ), + ), + ); + } + + pickImage() async { + List medias = await ImagePickers.pickerPaths( + galleryMode: GalleryMode.image, + selectCount: 1, + showGif: true, + showCamera: false, + compressSize: 500, + uiConfig: UIConfig( + uiThemeColor: Color(0xFFFFFFFF), + ), + cropConfig: CropConfig( + enableCrop: false, + ), + ); + if (medias != null && medias.length > 0) { + String result = await Scan.parse(medias[0].path); + if (result != null && result != "") { + // Navigator.of(context).pop(result); + } + } + } + + @override + bool get wantKeepAlive => true; +} diff --git a/lib/business_system/date_select/custom_page.dart b/lib/business_system/date_select/custom_page.dart index 1d10d4b0..b3017292 100644 --- a/lib/business_system/date_select/custom_page.dart +++ b/lib/business_system/date_select/custom_page.dart @@ -21,9 +21,9 @@ class _CustomPage extends State{ setState(() { if (args.value is PickerDateRange) { customDate = - DateFormat('yyyy年MM月dd日').format(args.value.startDate).toString() + + DateFormat('yyyy年MM月dd日 HH:mm:ss').format(args.value.startDate).toString() + ' 至 ' + - DateFormat('yyyy年MM月dd日') + DateFormat('yyyy年MM月dd日 23:59:59') .format(args.value.endDate ?? args.value.startDate) .toString(); } diff --git a/lib/business_system/goods/business_goods_page.dart b/lib/business_system/goods/business_goods_page.dart index 28ce619f..c9a1c962 100644 --- a/lib/business_system/goods/business_goods_page.dart +++ b/lib/business_system/goods/business_goods_page.dart @@ -9,6 +9,9 @@ import '../../view_widget/my_tab.dart'; import 'on_sale/on_sale_page.dart'; class BusinessGoodsPage extends StatefulWidget { + final String storeId; + + BusinessGoodsPage(this.storeId); @override State createState() { @@ -68,7 +71,7 @@ class _BusinessGoodsPage extends State ), body: TabBarView( children: [ - OnSalePage(), + OnSalePage(widget.storeId), OffShelfPage(),], ), ), diff --git a/lib/business_system/goods/on_sale/on_sale_page.dart b/lib/business_system/goods/on_sale/on_sale_page.dart index 6c2ce485..6ab96843 100644 --- a/lib/business_system/goods/on_sale/on_sale_page.dart +++ b/lib/business_system/goods/on_sale/on_sale_page.dart @@ -1,14 +1,26 @@ +import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/retrofit/retrofit_api.dart'; import 'package:huixiang/view_widget/classic_header.dart'; import 'package:huixiang/view_widget/my_footer.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import '../../../generated/l10n.dart'; +import '../../../retrofit/business_api.dart'; +import '../../../retrofit/data/base_data.dart'; +import '../../../retrofit/data/business_goods.dart'; +import '../../../retrofit/data/product_group_list.dart'; +import '../../../utils/business_instance.dart'; +import '../../../utils/flutter_utils.dart'; import '../../../utils/font_weight.dart'; class OnSalePage extends StatefulWidget { + final String storeId; + OnSalePage(this.storeId); @override State createState() { return _OnSalePage(); @@ -19,6 +31,9 @@ class _OnSalePage extends State { final RefreshController _refreshController = RefreshController(); ScrollPhysics scrollPhysics = NeverScrollableScrollPhysics(); final ScrollController controller = ScrollController(); + BusinessApiService businessService; + ProductGroupList productGroupList; + BusinessGoods businessGoods; @override void dispose() { @@ -30,8 +45,77 @@ class _OnSalePage extends State { void initState() { super.initState(); } + _onRefresh({bool isShowLoad = true}) async { + if (isShowLoad) + EasyLoading.show( + status: S.current.zhengzaijiazai, + maskType: EasyLoadingMaskType.black); + await queryGroupList(); + await queryGoodsList(); + EasyLoading.dismiss(); + if (!mounted) return; + if (_refreshController.isRefresh) _refreshController.refreshCompleted(); + setState(() {}); + } - _onRefresh() async {} + ///分组列表 + queryGroupList() async { + if (businessService == null) { + businessService = BusinessApiService(Dio(), + context: context, + token: BusinessInstance.instance.businessToken, + tenant: BusinessInstance.instance.businessTenant, + storeId: widget.storeId); + } + BaseData baseData = + await businessService.productGroup({ + "current":1, + "map": {}, + "model": { + "groupImg":"", + "groupName":"", + "isDelete":"" + }, + "size":50, + "sort":"sort" + }).catchError((error) { + SmartDialog.showToast(AppUtils.dioErrorTypeToString(error.type), + alignment: Alignment.center); + }); + if (!mounted) return; + if (baseData != null && baseData.isSuccess) { + productGroupList = baseData.data; + } else { + SmartDialog.showToast(baseData.msg, alignment: Alignment.center); + } + } + + ///商品列表 + queryGoodsList() async { + if (businessService == null) { + businessService = BusinessApiService(Dio(), + context: context, + token: BusinessInstance.instance.businessToken, + tenant: BusinessInstance.instance.businessTenant, + storeId: widget.storeId); + } + BaseData baseData = + await businessService.findAdminProductLis({ + "groupId": "", + "hasStock": 1, + "keyword": "", + "pageIndex": 1, + "pageSize": 10, + "status": "1", + }).catchError((error) { + }); + if (!mounted) return; + if (baseData != null && baseData.isSuccess) { + businessGoods = baseData.data; + } else { + SmartDialog.showToast(baseData.msg, alignment: Alignment.center); + } + } @override Widget build(BuildContext context) { @@ -65,11 +149,7 @@ class _OnSalePage extends State { return MyFooter(mode); }, ), - onRefresh: () { - setState(() { - _onRefresh(); - }); - }, + onRefresh: _onRefresh(), child: SingleChildScrollView( physics: NeverScrollableScrollPhysics(), child: Container( diff --git a/lib/business_system/home/business_home_page.dart b/lib/business_system/home/business_home_page.dart index 1dd2da17..2a4ec070 100644 --- a/lib/business_system/home/business_home_page.dart +++ b/lib/business_system/home/business_home_page.dart @@ -566,16 +566,15 @@ class _BusinessHomePage extends State height: 18.h, ), if (lineChartSample2Data.isNotEmpty) - // (lineChartSample2Data.isNotEmpty) - // ? NoDataView( - // src: "assets/image/xiao_fei.webp", - // isShowBtn: false, - // text: "暂无数据", - // fontSize: 16.sp, - // margin: EdgeInsets.all(20.h), - // ) - // : - LineChartSample2(lineChartSample2Data, "销售量"), + (lineChartSample2Data.isNotEmpty) + ? NoDataView( + src: "assets/image/bs_no data_logo.webp", + isShowBtn: false, + text: "暂无数据", + fontSize: 16.sp, + margin: EdgeInsets.all(20.h), + ) + : LineChartSample2(lineChartSample2Data, "销售量"), ], ), ); diff --git a/lib/business_system/home/overview/trade_goods.dart b/lib/business_system/home/overview/trade_goods.dart index da896561..1ec48dde 100644 --- a/lib/business_system/home/overview/trade_goods.dart +++ b/lib/business_system/home/overview/trade_goods.dart @@ -71,14 +71,101 @@ class _TradeGoods extends State { token: BusinessInstance.instance.businessToken, tenant: BusinessInstance.instance.businessTenant, storeId: widget.storeId); - querySingleSales( - dayDate.replaceAll("年", "-").replaceAll("月", "-").replaceAll("日", ""), - dayDate.replaceAll("年", "-").replaceAll("月", "-").replaceAll("日", ""), - isSing: false); - queryGoodsSalesList( - dayDate.replaceAll("年", "-").replaceAll("月", "-").replaceAll("日", ""), - dayDate.replaceAll("年", "-").replaceAll("月", "-").replaceAll("日", ""), - isSing: false); + if (dateIndex == 0) { + querySingleSales( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + isSing: false); + queryGoodsSalesList( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + isSing: false); + } else if (dateIndex == 1) { + querySingleSales( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(12, 23), + isSing: false); + queryGoodsSalesList( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(12, 23), + isSing: false); + } else if (dateIndex == 2) { + querySingleSales( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + "", + isSing: false); + queryGoodsSalesList( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + "", + isSing: false); + } else if (dateIndex == 3) { + querySingleSales( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(timeDate().length <= 15 ? 0 : 12, + timeDate().length <= 15 ? 10 : 23), + isSing: false); + queryGoodsSalesList( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(timeDate().length <= 15 ? 0 : 12, + timeDate().length <= 15 ? 10 : 23), + isSing: false); + } }); } @@ -597,7 +684,7 @@ class _TradeGoods extends State { } else if (dateIndex == 3) { return (customDate == "" || customDate == null) ? "${customDateNum ?? ""}(今日)" - : customDate; + : ("${customDate.substring(0,11)} ""${customDate.substring(21,34)}"); } } diff --git a/lib/business_system/home/overview/trade_order.dart b/lib/business_system/home/overview/trade_order.dart index 5b85f02c..33602302 100644 --- a/lib/business_system/home/overview/trade_order.dart +++ b/lib/business_system/home/overview/trade_order.dart @@ -1,15 +1,30 @@ +import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/view_widget/classic_header.dart'; import 'package:huixiang/view_widget/my_footer.dart'; import 'package:intl/intl.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import '../../../generated/l10n.dart'; +import '../../../retrofit/business_api.dart'; +import '../../../retrofit/data/base_data.dart'; +import '../../../retrofit/data/trade_summary_list.dart'; +import '../../../utils/business_instance.dart'; +import '../../../utils/flutter_utils.dart'; import '../../../utils/font_weight.dart'; +import '../../../view_widget/no_data_view.dart'; import '../home_view/my_line_chart.dart'; class TradeOrder extends StatefulWidget { + final storeId; + + TradeOrder(this.storeId); + @override State createState() { return _TradeOrder(); @@ -19,32 +34,38 @@ class TradeOrder extends StatefulWidget { class _TradeOrder extends State { final RefreshController _refreshController = RefreshController(); final ScrollController scrollController = ScrollController(); - List lineChartSample2DataAmount = - [LineChartSample2Data(0,10,"2023-03-09"), - LineChartSample2Data(1,10,"2023-03-10"), - LineChartSample2Data(2,60,"2023-03-11"), - LineChartSample2Data(3,35,"2023-03-12"), - LineChartSample2Data(4,20,"2023-03-13"), - LineChartSample2Data(5,55,"2023-03-14"), - LineChartSample2Data(6,99,"2023-03-15")]; - List lineChartSample2DataNum = - [LineChartSample2Data(0,60,"2023-03-09"), - LineChartSample2Data(1,30,"2023-03-10"), - LineChartSample2Data(2,50,"2023-03-11"), - LineChartSample2Data(3,80,"2023-03-12"), - LineChartSample2Data(4,5,"2023-03-13"), - LineChartSample2Data(5,55,"2023-03-14"), - LineChartSample2Data(6,98,"2023-03-15")]; + List lineChartSample2DataOrderAmount = [ + LineChartSample2Data(0, 0, "2023-03-09"), + LineChartSample2Data(1, 0, "2023-03-10"), + LineChartSample2Data(2, 0, "2023-03-11"), + LineChartSample2Data(3, 0, "2023-03-12"), + LineChartSample2Data(4, 0, "2023-03-13"), + LineChartSample2Data(5, 0, "2023-03-14"), + LineChartSample2Data(6, 0, "2023-03-15") + ]; + List lineChartSample2DataOrderNum = [ + LineChartSample2Data(0, 0, "2023-03-09"), + LineChartSample2Data(1, 0, "2023-03-10"), + LineChartSample2Data(2, 0, "2023-03-11"), + LineChartSample2Data(3, 0, "2023-03-12"), + LineChartSample2Data(4, 0, "2023-03-13"), + LineChartSample2Data(5, 0, "2023-03-14"), + LineChartSample2Data(6, 0, "2023-03-15") + ]; int dateIndex = 0; String selectedDate = ""; String dayDate = "${DateFormat("yyyy年MM月dd日").format(DateTime.now())}"; - String weekDate =""; - String weekDateNum = "${DateFormat("yyyy年MM月dd日").format(DateTime.now().subtract(Duration(days:6)))} 至 " + String weekDate = ""; + String weekDateNum = + "${DateFormat("yyyy年MM月dd日").format(DateTime.now().subtract(Duration(days: 6)))} 至 " "${DateFormat("yyyy年MM月dd日").format(DateTime.now())}"; - String monthlyDate =""; - String monthlyDateNum = "${DateFormat("yyyy年MM月").format(DateTime.now())}"; - String customDate =""; + String monthlyDate = ""; + String monthlyDateNum = "${DateFormat("yyyy年MM月dd").format(DateTime.now())}"; + String customDate = ""; String customDateNum = "${DateFormat("yyyy年MM月dd日").format(DateTime.now())}"; + int _loadCount = 0; + BusinessApiService businessService; + TradeSummaryList tradeSummaryList; @override void dispose() { @@ -55,9 +76,137 @@ class _TradeOrder extends State { @override void initState() { super.initState(); + _onRefresh(); } _onRefresh() async { + EasyLoading.show( + status: S.current.zhengzaijiazai, maskType: EasyLoadingMaskType.black); + SharedPreferences.getInstance().then((value) { + businessService = BusinessApiService(Dio(), + context: context, + token: BusinessInstance.instance.businessToken, + tenant: BusinessInstance.instance.businessTenant, + storeId: widget.storeId); + if (dateIndex == 0) { + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + "day", + isSing: false); + } else if (dateIndex == 1) { + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(12, 23), + "week", + isSing: false); + } else if (dateIndex == 2) { + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + "month", + isSing: false); + } else if (dateIndex == 3) { + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(timeDate().length <= 15 ? 0 : 12, + timeDate().length <= 15 ? 10 : 23), + "custom", + isSing: false); + } + }); + } + + addLoadCount() { + _loadCount += 1; + if (_loadCount == 1) { + _loadCount = 0; + EasyLoading.dismiss(); + if (_refreshController.isRefresh) _refreshController.refreshCompleted(); + if (mounted) setState(() {}); + } + } + + ///订单分析/订单量趋势 + queryBusinessAnalysis(selectDay, selectEndDay, queryRange, + {isSing = true}) async { + if (isSing) + EasyLoading.show( + status: S.current.zhengzaijiazai, + maskType: EasyLoadingMaskType.black); + try { + BaseData baseData = await businessService + .saleBusinessAnalysis({ + "selectDay": selectDay, + "selectEndDay": selectEndDay, + "queryRange": queryRange + }).catchError((error) { + SmartDialog.showToast(AppUtils.dioErrorTypeToString(error.type), + alignment: Alignment.center); + }); + if (baseData != null && baseData.isSuccess) { + int amountIndex = 0; + int numIndex = 0; + if (baseData.data.saleBusinessAnalysisVOS.isNotEmpty) { + lineChartSample2DataOrderAmount.clear(); + lineChartSample2DataOrderNum.clear(); + } + tradeSummaryList = baseData.data; + tradeSummaryList.saleBusinessAnalysisVOS.forEach((element) { + lineChartSample2DataOrderAmount.add(LineChartSample2Data( + amountIndex.toDouble(), + double.tryParse(element.localDateBigDecimal.toString()), + element.localDateTime.substring(0, 10))); + amountIndex += 1; + }); + tradeSummaryList.saleBusinessAnalysisVOS.forEach((element) { + lineChartSample2DataOrderNum.add(LineChartSample2Data( + numIndex.toDouble(), + double.tryParse(element.localDateCount.toString()), + element.localDateTime.substring(0, 10))); + numIndex += 1; + }); + } + } finally { + if (isSing) { + setState(() {}); + EasyLoading.dismiss(); + } else { + addLoadCount(); + } + } } @override @@ -71,302 +220,457 @@ class _TradeOrder extends State { width: double.infinity, height: 1.h, ), - Expanded(child: SmartRefresher( - controller: _refreshController, - enablePullDown: true, - enablePullUp: false, - header: MyHeader(), - physics: BouncingScrollPhysics(), - scrollController: scrollController, - footer: CustomFooter( - builder: (context, mode) { - return MyFooter(mode); - }, - ), - onRefresh: () { - setState(() { - _onRefresh(); - }); - }, - child: SingleChildScrollView( - physics: NeverScrollableScrollPhysics(), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - decoration: BoxDecoration( - color: Color(0xFFF6F6F6), - borderRadius: BorderRadius.circular(2), - border: Border.all(color: Color(0xFFCFD0D1), - width: 1.w), - ), - margin: EdgeInsets.only( - top: 16.h, right: 20.w, left: 20.w, bottom: 12.h), - child: Row( - children: [ - Expanded(child: GestureDetector( - behavior: HitTestBehavior.opaque, - onTap: (){ - setState((){ + Expanded( + child: SmartRefresher( + controller: _refreshController, + enablePullDown: true, + enablePullUp: false, + header: MyHeader(), + physics: BouncingScrollPhysics(), + scrollController: scrollController, + footer: CustomFooter( + builder: (context, mode) { + return MyFooter(mode); + }, + ), + onRefresh: _onRefresh, + child: SingleChildScrollView( + physics: NeverScrollableScrollPhysics(), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + decoration: BoxDecoration( + color: Color(0xFFF6F6F6), + borderRadius: BorderRadius.circular(2), + border: + Border.all(color: Color(0xFFCFD0D1), width: 1.w), + ), + margin: EdgeInsets.only( + top: 16.h, right: 20.w, left: 20.w, bottom: 12.h), + child: Row( + children: [ + Expanded( + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () { dateIndex = 0; - }); - }, - child: Container( - alignment: Alignment.center, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(2), - color: dateIndex == 0 ? Color(0xFF30415B):Colors.transparent, - ), - padding: EdgeInsets.symmetric(vertical: 9.h), - child: Text( - "日报", - style: TextStyle( - fontSize: 12.sp, - fontWeight: MyFontWeight.medium, - color: dateIndex == 0 ? Colors.white:Color(0xFF30415B), + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + "day"); + }, + child: Container( + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(2), + color: dateIndex == 0 + ? Color(0xFF30415B) + : Colors.transparent, + ), + padding: EdgeInsets.symmetric(vertical: 9.h), + child: Text( + "日报", + style: TextStyle( + fontSize: 12.sp, + fontWeight: MyFontWeight.medium, + color: dateIndex == 0 + ? Colors.white + : Color(0xFF30415B), + ), ), ), - ), - )), - Expanded(child: GestureDetector( - behavior: HitTestBehavior.opaque, - onTap: (){ - setState((){ + )), + Expanded( + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () { dateIndex = 1; - });}, - child: Container( - alignment: Alignment.center, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(2), - color: dateIndex == 1 ? Color(0xFF30415B):Colors.transparent, - ), - padding: EdgeInsets.symmetric(vertical: 9.h), - child: Text( - "周报", - style: TextStyle( - fontSize: 12.sp, - fontWeight: MyFontWeight.medium, - color: dateIndex == 1 ? Colors.white:Color(0xFF30415B), + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(12, 23), + "week"); + }, + child: Container( + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(2), + color: dateIndex == 1 + ? Color(0xFF30415B) + : Colors.transparent, + ), + padding: EdgeInsets.symmetric(vertical: 9.h), + child: Text( + "周报", + style: TextStyle( + fontSize: 12.sp, + fontWeight: MyFontWeight.medium, + color: dateIndex == 1 + ? Colors.white + : Color(0xFF30415B), + ), ), ), - ),)), - Expanded(child: GestureDetector( - behavior: HitTestBehavior.opaque, - onTap: (){ - setState((){ + )), + Expanded( + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () { dateIndex = 2; - }); - }, - child: Container( - alignment: Alignment.center, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(2), - color: dateIndex == 2 ? Color(0xFF30415B):Colors.transparent, - ), - padding: EdgeInsets.symmetric(vertical: 9.h), - child: Text( - "月报", - style: TextStyle( - fontSize: 12.sp, - fontWeight: MyFontWeight.medium, - color: dateIndex == 2 ? Colors.white:Color(0xFF30415B), + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + "month"); + }, + child: Container( + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(2), + color: dateIndex == 2 + ? Color(0xFF30415B) + : Colors.transparent, + ), + padding: EdgeInsets.symmetric(vertical: 9.h), + child: Text( + "月报", + style: TextStyle( + fontSize: 12.sp, + fontWeight: MyFontWeight.medium, + color: dateIndex == 2 + ? Colors.white + : Color(0xFF30415B), + ), ), ), - ),)), - Expanded(child: GestureDetector( - behavior: HitTestBehavior.opaque, - onTap: (){ - setState((){ + )), + Expanded( + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () { dateIndex = 3; - }); - }, - child: Container( - alignment: Alignment.center, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(2), - color: dateIndex == 3 ? Color(0xFF30415B):Colors.transparent, - ), - padding: EdgeInsets.symmetric(vertical: 9.h), - child: Text( - "自定义", - style: TextStyle( - fontSize: 12.sp, - fontWeight: MyFontWeight.medium, - color: dateIndex == 3 ? Colors.white:Color(0xFF30415B), + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring( + timeDate().length <= 15 ? 0 : 12, + timeDate().length <= 15 ? 10 : 23), + "custom"); + }, + child: Container( + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(2), + color: dateIndex == 3 + ? Color(0xFF30415B) + : Colors.transparent, ), - ), - ),)), - ], - ), - ), - Align(alignment: Alignment.center, - child: GestureDetector( - behavior: HitTestBehavior.opaque, - onTap: (){ - if(dateIndex == 0){ - Navigator.of(context).pushNamed('/router/day_report_page').then((value) { - setState((){ - selectedDate = value; - }); - }); - } - else if(dateIndex == 1){ - Navigator.of(context).pushNamed('/router/week_report_page').then((value) { - setState((){ - weekDate = value; - }); - }); - } - else if(dateIndex == 2){ - Navigator.of(context).pushNamed('/router/monthly_report_page').then((value) { - setState((){ - monthlyDate = value; - }); - }); - } - else if(dateIndex == 3){ - Navigator.of(context).pushNamed('/router/custom_page').then((value){ - setState((){ - customDate = value; - }); - }); - } - }, - child: Container( - width: 194.w, - alignment: Alignment.center, - padding: EdgeInsets.all(8), - decoration: BoxDecoration( - color: Color(0xFFF6F6F6), - borderRadius: BorderRadius.circular(2), - ), - margin: EdgeInsets.only(bottom:16.h), - child: Row( - children: [ - Expanded(child:Container( - alignment: Alignment.center, - child: Text( - timeDate(), - style: TextStyle( - fontSize: 10.sp, - fontWeight: MyFontWeight.regular, - color: Colors.black, + padding: EdgeInsets.symmetric(vertical: 9.h), + child: Text( + "自定义", + style: TextStyle( + fontSize: 12.sp, + fontWeight: MyFontWeight.medium, + color: dateIndex == 3 + ? Colors.white + : Color(0xFF30415B), + ), ), ), )), - Image.asset( - "assets/image/bs_calendar_logo.webp", - width:15, - height:15, - ), ], ), ), - ),), - Padding(padding:EdgeInsets.only(left:16.w,bottom:15.h), - child:Text( - "订单分析", - style: TextStyle( - fontSize: 18.sp, - fontWeight: MyFontWeight.semi_bold, - color: Colors.black, + Align( + alignment: Alignment.center, + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () { + if (dateIndex == 0) { + Navigator.of(context) + .pushNamed('/router/day_report_page') + .then((value) { + selectedDate = value; + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + "day"); + }); + } else if (dateIndex == 1) { + Navigator.of(context) + .pushNamed('/router/week_report_page') + .then((value) { + weekDate = value; + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(12, 23), + "week"); + }); + } else if (dateIndex == 2) { + Navigator.of(context) + .pushNamed('/router/monthly_report_page') + .then((value) { + monthlyDate = value; + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + "month"); + }); + } else if (dateIndex == 3) { + Navigator.of(context) + .pushNamed('/router/custom_page') + .then((value) { + customDate = value; + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(12, 23), + "custom"); + }); + } + }, + child: Container( + width: 194.w, + alignment: Alignment.center, + padding: EdgeInsets.all(8), + decoration: BoxDecoration( + color: Color(0xFFF6F6F6), + borderRadius: BorderRadius.circular(2), + ), + margin: EdgeInsets.only(bottom: 16.h), + child: Row( + children: [ + Expanded( + child: Container( + alignment: Alignment.center, + child: Text( + dateIndex == 2 + ? ((monthlyDateNum.substring(0, 8) == + timeDate().substring(0, 8)) + ? "${timeDate().substring(0, 8)}(当月)" + : timeDate().substring(0, 8)) + : timeDate(), + style: TextStyle( + fontSize: 10.sp, + fontWeight: MyFontWeight.regular, + color: Colors.black, + ), + ), + )), + Image.asset( + "assets/image/bs_calendar_logo.webp", + width: 15, + height: 15, + ), + ], + ), + ), + ), ), - )), - orderAmount(), - orderNumTrend(), - ], - )), - ),) + Padding( + padding: EdgeInsets.only(left: 16.w, bottom: 15.h), + child: Text( + "订单分析", + style: TextStyle( + fontSize: 18.sp, + fontWeight: MyFontWeight.semi_bold, + color: Colors.black, + ), + )), + orderAmount(), + orderNumTrend(), + ], + )), + ), + ) ], ), ); } - String timeDate(){ - if(dateIndex == 0){ - return (selectedDate == "" || selectedDate == null) ? "${dayDate ?? ""}(今日)":(dayDate == DateFormat("yyyy年MM月dd日").format(DateTime.parse(selectedDate)) - ?"${DateFormat("yyyy年MM月dd日").format(DateTime.parse(selectedDate))}(今日)":DateFormat("yyyy年MM月dd日").format(DateTime.parse(selectedDate))); - } - else if(dateIndex == 1){ - return (weekDate == "" || weekDate == null) ? weekDateNum : weekDate;} - else if(dateIndex == 2){ - return (monthlyDate == "" || monthlyDate == null) ? "${monthlyDateNum ?? ""}(当月)": - (monthlyDateNum == (DateFormat("yyyy年MM月dd日").format(DateTime.parse(monthlyDate)).substring(0,8))? - "${(DateFormat("yyyy年MM月dd日").format(DateTime.parse(monthlyDate)).substring(0,8))}(当月)" - :DateFormat("yyyy年MM月dd日").format(DateTime.parse(monthlyDate)).substring(0,8)); + String timeDate() { + if (dateIndex == 0) { + return (selectedDate == "" || selectedDate == null) + ? "${dayDate ?? ""}(今日)" + : (dayDate == + DateFormat("yyyy年MM月dd日").format(DateTime.parse(selectedDate)) + ? "${DateFormat("yyyy年MM月dd日").format(DateTime.parse(selectedDate))}(今日)" + : DateFormat("yyyy年MM月dd日").format(DateTime.parse(selectedDate))); + } else if (dateIndex == 1) { + return (weekDate == "" || weekDate == null) ? weekDateNum : weekDate; + } else if (dateIndex == 2) { + return (monthlyDate == "" || monthlyDate == null) + ? "${monthlyDateNum ?? ""}" + : (monthlyDateNum == + (DateFormat("yyyy年MM月dd日") + .format(DateTime.parse(monthlyDate))) + ? "${(DateFormat("yyyy年MM月dd日").format(DateTime.parse(monthlyDate)))}" + : DateFormat("yyyy年MM月dd日").format(DateTime.parse(monthlyDate))); + } else if (dateIndex == 3) { + return (customDate == "" || customDate == null) + ? "${customDateNum ?? ""}(今日)" + : ("${customDate.substring(0,11)} ""${customDate.substring(21,34)}"); } - else if(dateIndex == 3){ - return (customDate == "" || customDate == null) ? "${customDateNum??""}(今日)" : customDate;} } ///订单金额 - Widget orderAmount(){ + Widget orderAmount() { return Column( children: [ - Padding(padding:EdgeInsets.only(left:16.w,bottom: 15.h), - child:Row( + Padding( + padding: EdgeInsets.only(left: 16.w, bottom: 15.h), + child: Row( children: [ Container( width: 4.w, height: 16.h, color: Color(0xFF30415B), - margin: EdgeInsets.only(right:12.w), + margin: EdgeInsets.only(right: 12.w), ), Text( "订单金额", style: TextStyle( fontSize: 15.sp, fontWeight: MyFontWeight.semi_bold, - color:Color(0xFF0D0D0D), + color: Color(0xFF0D0D0D), ), ), - SizedBox(width:8.w,), + SizedBox( + width: 8.w, + ), Text( "近12周", style: TextStyle( fontSize: 12.sp, fontWeight: MyFontWeight.regular, - color:Color(0xFF666666), + color: Color(0xFF666666), ), ) ], )), - Padding(padding: EdgeInsets.symmetric(horizontal: 20.w), - child:LineChartSample2(lineChartSample2DataAmount,"金额"),), - SizedBox(height:16.h,), + (tradeSummaryList == null || + tradeSummaryList.saleBusinessAnalysisVOS.length == 0) + ? NoDataView( + src: "assets/image/bs_no data_logo.webp", + isShowBtn: false, + text: "暂无数据", + fontSize: 16.sp, + margin: EdgeInsets.all(20.h), + ) + : Padding( + padding: EdgeInsets.symmetric(horizontal: 20.w), + child: LineChartSample2(lineChartSample2DataOrderAmount, "金额"), + ), + SizedBox( + height: 16.h, + ), ], ); } ///订单量趋势 - Widget orderNumTrend(){ + Widget orderNumTrend() { return Container( - padding: EdgeInsets.only(top:12.h,bottom: 33.h), + padding: EdgeInsets.only(top: 12.h, bottom: 33.h), child: Column( children: [ - Padding(padding:EdgeInsets.only(left:16.w,bottom: 15.h), - child:Row( + Padding( + padding: EdgeInsets.only(left: 16.w, bottom: 15.h), + child: Row( children: [ Container( width: 4.w, height: 16.h, color: Color(0xFF30415B), - margin: EdgeInsets.only(right:12.w), + margin: EdgeInsets.only(right: 12.w), ), Text( "订单量趋势", style: TextStyle( fontSize: 15.sp, fontWeight: MyFontWeight.semi_bold, - color:Color(0xFF0D0D0D), + color: Color(0xFF0D0D0D), ), ) ], )), - Padding(padding: EdgeInsets.symmetric(horizontal: 20.w), - child:LineChartSample2(lineChartSample2DataNum,"订单量"),), - SizedBox(height:16.h,), - + (tradeSummaryList == null || + tradeSummaryList.saleBusinessAnalysisVOS.length == 0) + ? NoDataView( + src: "assets/image/bs_no data_logo.webp", + isShowBtn: false, + text: "暂无数据", + fontSize: 16.sp, + margin: EdgeInsets.all(20.h), + ) + : Padding( + padding: EdgeInsets.symmetric(horizontal: 20.w), + child: LineChartSample2(lineChartSample2DataOrderNum, "订单量"), + ), + SizedBox( + height: 16.h, + ), ], ), ); diff --git a/lib/business_system/home/overview/trade_overview_page.dart b/lib/business_system/home/overview/trade_overview_page.dart index e47bda0e..d387ed07 100644 --- a/lib/business_system/home/overview/trade_overview_page.dart +++ b/lib/business_system/home/overview/trade_overview_page.dart @@ -70,7 +70,7 @@ class _TradeOverviewPage extends State with SingleTickerProvi body: TabBarView( children: [ TradeSummary(storeId), - TradeOrder(), + TradeOrder(storeId), TradeGoods(storeId),], ), ), diff --git a/lib/business_system/home/overview/trade_summary.dart b/lib/business_system/home/overview/trade_summary.dart index b253ac6c..4ae543c3 100644 --- a/lib/business_system/home/overview/trade_summary.dart +++ b/lib/business_system/home/overview/trade_summary.dart @@ -92,11 +92,64 @@ class _TradeSummary extends State { token: BusinessInstance.instance.businessToken, tenant: BusinessInstance.instance.businessTenant, storeId: widget.storeId); - queryBusinessAnalysis( - dayDate.replaceAll("年", "-").replaceAll("月", "-").replaceAll("日", ""), - dayDate.replaceAll("年", "-").replaceAll("月", "-").replaceAll("日", ""), - "day", - isSing: false); + if (dateIndex == 0) { + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + "day", + isSing: false); + } else if (dateIndex == 1) { + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(12, 23), + "week", + isSing: false); + } else if (dateIndex == 2) { + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + "month", + isSing: false); + } else if (dateIndex == 3) { + queryBusinessAnalysis( + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 10), + timeDate() + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(timeDate().length <= 15 ? 0 : 12, + timeDate().length <= 15 ? 10 : 23), + "custom", + isSing: false); + } }); } @@ -528,7 +581,7 @@ class _TradeSummary extends State { } else if (dateIndex == 3) { return (customDate == "" || customDate == null) ? "${customDateNum ?? ""}(今日)" - : customDate; + : ("${customDate.substring(0,11)} ""${customDate.substring(21,34)}"); } } @@ -621,24 +674,33 @@ class _TradeSummary extends State { margin: EdgeInsets.only(bottom: 30.h), ), if (operateSelect == 0) - // lineChartSample2DataAmount.isNotEmpty - // ? NoDataView( - // src: "assets/image/bs_no data_logo.webp", - // isShowBtn: false, - // text: "暂无数据", - // fontSize: 16.sp, - // margin: EdgeInsets.all(20.h), - // ) - // : - Container( + (tradeSummaryList == null || + tradeSummaryList.saleBusinessAnalysisVOS.length == 0) + ? NoDataView( + src: "assets/image/bs_no data_logo.webp", + isShowBtn: false, + text: "暂无数据", + fontSize: 16.sp, + margin: EdgeInsets.all(20.h), + ) + : Container( padding: EdgeInsets.symmetric(horizontal: 20.w), child: LineChartSample2(lineChartSample2DataAmount, "金额"), ), if (operateSelect == 1) - Padding( - padding: EdgeInsets.symmetric(horizontal: 20.w), - child: LineChartSample2(lineChartSample2DataNum, "交易笔数"), - ), + (tradeSummaryList == null || + tradeSummaryList.saleBusinessAnalysisVOS.length == 0) + ? NoDataView( + src: "assets/image/bs_no data_logo.webp", + isShowBtn: false, + text: "暂无数据", + fontSize: 16.sp, + margin: EdgeInsets.all(20.h), + ) + : Padding( + padding: EdgeInsets.symmetric(horizontal: 20.w), + child: LineChartSample2(lineChartSample2DataNum, "交易笔数"), + ), SizedBox( height: 16.h, ), @@ -751,53 +813,77 @@ class _TradeSummary extends State { ), ), if (expensesSelect == 0) - Container( - height: 150.h, - child: DonutAutoLabelChart([ - new charts.Series( - id: 'Sales', - colorFn: (LinearSales sales, __) => sales.color, - domainFn: (LinearSales sales, _) => sales.year, - measureFn: (LinearSales sales, _) => sales.sales, - data: [ - new LinearSales( - 0, - int.parse((tradeSummaryList?.collectionAmount ?? "0") - .replaceAll(".", "")), - charts.Color.fromHex(code: "#313CA9")), - new LinearSales( - 1, - int.parse((tradeSummaryList?.refundAmount ?? "0") - .replaceAll(".", "")), - charts.Color.fromHex(code: "#30415B")) - ], - // Set a label accessor to control the text of the arc label. - labelAccessorFn: (LinearSales row, _) => - '${(row.sales / 100)}', - ) - ]), - ), + (tradeSummaryList == null || + tradeSummaryList.collectionAmount == null || + tradeSummaryList.refundAmount == null) + ? NoDataView( + src: "assets/image/bs_no data_logo.webp", + isShowBtn: false, + text: "暂无数据", + fontSize: 16.sp, + margin: EdgeInsets.all(20.h), + ) + : Container( + height: 150.h, + child: DonutAutoLabelChart([ + new charts.Series( + id: 'Sales', + colorFn: (LinearSales sales, __) => sales.color, + domainFn: (LinearSales sales, _) => sales.year, + measureFn: (LinearSales sales, _) => sales.sales, + data: [ + new LinearSales( + 0, + int.parse( + (tradeSummaryList?.collectionAmount ?? "0") + .replaceAll(".", "")), + charts.Color.fromHex(code: "#313CA9")), + new LinearSales( + 1, + int.parse((tradeSummaryList?.refundAmount ?? "0") + .replaceAll(".", "")), + charts.Color.fromHex(code: "#30415B")) + ], + // Set a label accessor to control the text of the arc label. + labelAccessorFn: (LinearSales row, _) => + '${(row.sales / 100)}', + ) + ]), + ), if (expensesSelect == 1) - Container( - height: 150.h, - child: DonutAutoLabelChart([ - new charts.Series( - id: 'Sales', - colorFn: (LinearSales sales, __) => sales.color, - domainFn: (LinearSales sales, _) => sales.year, - measureFn: (LinearSales sales, _) => sales.sales, + (tradeSummaryList == null || + tradeSummaryList.collectionCount == null || + tradeSummaryList.refundCount == null) + ? NoDataView( + src: "assets/image/bs_no data_logo.webp", + isShowBtn: false, + text: "暂无数据", + fontSize: 16.sp, + margin: EdgeInsets.all(20.h), + ) + : Container( + height: 150.h, + child: DonutAutoLabelChart([ + new charts.Series( + id: 'Sales', + colorFn: (LinearSales sales, __) => sales.color, + domainFn: (LinearSales sales, _) => sales.year, + measureFn: (LinearSales sales, _) => sales.sales, - data: [ - new LinearSales(0, tradeSummaryList?.collectionCount ?? 0, - charts.Color.fromHex(code: "#313CA9")), - new LinearSales(2, tradeSummaryList?.refundCount ?? 0, - charts.Color.fromHex(code: "#30415B")), - ], - // Set a label accessor to control the text of the arc label. - labelAccessorFn: (LinearSales row, _) => '${(row.sales)} 笔', - ), - ]), - ), + data: [ + new LinearSales( + 0, + tradeSummaryList?.collectionCount ?? 0, + charts.Color.fromHex(code: "#313CA9")), + new LinearSales(2, tradeSummaryList?.refundCount ?? 0, + charts.Color.fromHex(code: "#30415B")), + ], + // Set a label accessor to control the text of the arc label. + labelAccessorFn: (LinearSales row, _) => + '${(row.sales)} 笔', + ), + ]), + ), ], ), ); diff --git a/lib/business_system/mine/account_information.dart b/lib/business_system/mine/account_information.dart index 0fcbc581..27504d47 100644 --- a/lib/business_system/mine/account_information.dart +++ b/lib/business_system/mine/account_information.dart @@ -3,11 +3,16 @@ import 'package:huixiang/view_widget/my_appbar.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import '../../retrofit/data/business_login_info.dart'; +import '../../utils/flutter_utils.dart'; import '../../utils/font_weight.dart'; import '../../view_widget/classic_header.dart'; import '../../view_widget/my_footer.dart'; class AccountInformation extends StatefulWidget { + final Map arguments; + + AccountInformation({this.arguments}); @override State createState() { return _AccountInformation(); @@ -16,10 +21,12 @@ class AccountInformation extends StatefulWidget { class _AccountInformation extends State { final RefreshController refreshController = RefreshController(); + BusinessLoginInfo businessLoginInfo; @override void initState() { super.initState(); + businessLoginInfo = widget.arguments["businessLoginInfo"]; } @override @@ -72,21 +79,21 @@ class _AccountInformation extends State { padding: EdgeInsets.only(top: 16.h,left: 16.w,right: 16.w,), child: Column( children: [ - textItem("账号名称","134****7777"), + textItem("账号名称", businessLoginInfo?.name), Container( width: double.infinity, height: 1.h, color: Color(0xFFEBECEF), margin: EdgeInsets.only(top:2.h,bottom: 16.h) ), - textItem("账号","22221ff"), + textItem("账号",AppUtils.phoneEncode(businessLoginInfo?.account ?? "")), Container( width: double.infinity, height: 1.h, color: Color(0xFFEBECEF), margin: EdgeInsets.only(top:2.h,bottom: 16.h) ), - textItem("电话","13466667777"), + textItem("电话",businessLoginInfo?.mobile?? ""), ], ), ), diff --git a/lib/business_system/mine/business_mine_page.dart b/lib/business_system/mine/business_mine_page.dart index d5b624eb..ebd87c9d 100644 --- a/lib/business_system/mine/business_mine_page.dart +++ b/lib/business_system/mine/business_mine_page.dart @@ -1,13 +1,19 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:huixiang/view_widget/classic_header.dart'; +import 'package:huixiang/view_widget/custom_image.dart'; import 'package:huixiang/view_widget/my_footer.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import '../../retrofit/data/business_login_info.dart'; import '../../utils/font_weight.dart'; class BusinessMinePage extends StatefulWidget { + final BusinessLoginInfo businessLoginInfo; + final String storeId; + + BusinessMinePage(this.businessLoginInfo,this.storeId); @override State createState() { return _BusinessMinePage(); @@ -39,7 +45,7 @@ class _BusinessMinePage extends State controller: refreshController, enablePullDown: true, enablePullUp: false, - header: MyHeader(), + header: MyHeader(color:Color(0xFF30415B)), physics: BouncingScrollPhysics(), footer: CustomFooter( builder: (context, mode) { @@ -47,7 +53,10 @@ class _BusinessMinePage extends State }, ), onRefresh: () { - setState(() {}); + if(widget.businessLoginInfo != null) + refreshController.refreshCompleted(); + else + refreshController.refreshFailed(); }, child: SingleChildScrollView( physics: NeverScrollableScrollPhysics(), @@ -98,41 +107,49 @@ class _BusinessMinePage extends State GestureDetector( behavior: HitTestBehavior.opaque, onTap: (){ - Navigator.of(context).pushNamed('/router/account_information'); + Navigator.of(context).pushNamed('/router/account_information',arguments: { + "businessLoginInfo":widget.businessLoginInfo, + }); }, child: Container( padding: EdgeInsets.only( top: MediaQuery.of(context).padding.top + 50, left: 16.w), child: Row( children: [ - Image.asset( - "assets/image/bs_mine_heading.webp", - width: 69, - height: 69, - fit: BoxFit.fill, + MImage( + widget?.businessLoginInfo?.avatar ?? "", + fit: BoxFit.cover, + width: 69.h, + height: 69.h, + radius: BorderRadius.circular(100), + errorSrc: "assets/image/bs_mine_heading.webp", + fadeSrc: "assets/image/bs_mine_heading.webp", ), SizedBox( width: 10.w, ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - Text( - '海峡姐妹茶', - style: TextStyle( - fontSize: 18.sp, - color: Color(0xFF374C6C), - fontWeight: MyFontWeight.semi_bold), - ), - Text( - 'ID:gsy2022', - style: TextStyle( - fontSize: 16.sp, - color: Color(0xFF374C6C), - fontWeight: MyFontWeight.regular), - ), - ], + Container( + height: 69.h, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + Text( + widget?.businessLoginInfo?.name ?? "", + style: TextStyle( + fontSize: 18.sp, + color: Color(0xFF374C6C), + fontWeight: MyFontWeight.semi_bold), + ), + Text( + 'ID:${widget?.businessLoginInfo?.account ?? ""}', + style: TextStyle( + fontSize: 16.sp, + color: Color(0xFF374C6C), + fontWeight: MyFontWeight.regular), + ), + ], + ), ) ], ), @@ -170,10 +187,12 @@ class _BusinessMinePage extends State GestureDetector( behavior: HitTestBehavior.opaque, onTap: (){ - Navigator.of(context).pushNamed('/router/merchant_info'); + Navigator.of(context).pushNamed('/router/merchant_info',arguments:{ + "storeId":widget.storeId, + }); }, child: - commonFunctionsItem("assets/image/bs_store_info_logo.webp", "商户信息", "一心回乡农场"), + commonFunctionsItem("assets/image/bs_store_info_logo.webp", "商户信息", widget?.businessLoginInfo?.name ?? ""), ), Container( width: double.infinity, @@ -191,7 +210,9 @@ class _BusinessMinePage extends State GestureDetector( behavior: HitTestBehavior.opaque, onTap: (){ - Navigator.of(context).pushNamed('/router/security_setting'); + Navigator.of(context).pushNamed('/router/security_setting',arguments:{ + "storeId":widget.storeId, + }); }, child: commonFunctionsItem("assets/image/bs_secure.webp", "安全设置", "登录手机号/密码") ), diff --git a/lib/business_system/mine/merchant_info.dart b/lib/business_system/mine/merchant_info.dart index 97ae9a36..9ad96abd 100644 --- a/lib/business_system/mine/merchant_info.dart +++ b/lib/business_system/mine/merchant_info.dart @@ -8,6 +8,9 @@ import '../../view_widget/classic_header.dart'; import '../../view_widget/my_footer.dart'; class MerchantInfo extends StatefulWidget { + final Map arguments; + + MerchantInfo({this.arguments}); @override State createState() { return _MerchantInfo(); diff --git a/lib/business_system/mine/security_setting.dart b/lib/business_system/mine/security_setting.dart index 54bef572..f3ba1683 100644 --- a/lib/business_system/mine/security_setting.dart +++ b/lib/business_system/mine/security_setting.dart @@ -8,6 +8,9 @@ import '../../view_widget/classic_header.dart'; import '../../view_widget/my_footer.dart'; class SecuritySetting extends StatefulWidget { + final Map arguments; + + SecuritySetting({this.arguments}); @override State createState() { return _SecuritySetting(); diff --git a/lib/business_system/order/business_order_detail.dart b/lib/business_system/order/business_order_detail.dart index a0cadb92..2f9889f6 100644 --- a/lib/business_system/order/business_order_detail.dart +++ b/lib/business_system/order/business_order_detail.dart @@ -1,13 +1,27 @@ +import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/utils/font_weight.dart'; +import 'package:huixiang/view_widget/custom_image.dart'; import 'package:huixiang/view_widget/my_appbar.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import '../../generated/l10n.dart'; +import '../../retrofit/business_api.dart'; +import '../../retrofit/data/base_data.dart'; +import '../../retrofit/data/business_order_detail_info.dart'; +import '../../utils/business_instance.dart'; +import '../../utils/flutter_utils.dart'; import '../../view_widget/classic_header.dart'; import '../../view_widget/my_footer.dart'; class BusinessOrderDetail extends StatefulWidget { + final Map arguments; + + BusinessOrderDetail({this.arguments}); @override State createState() { return _BusinessOrderDetail(); @@ -16,10 +30,49 @@ class BusinessOrderDetail extends StatefulWidget { class _BusinessOrderDetail extends State { final RefreshController refreshController = RefreshController(); + BusinessApiService businessService; + BusinessOrderDetailInfo orderDetailInfo; @override void initState() { super.initState(); + queryOrderDetail(); + } + + @override + void dispose() { + super.dispose(); + refreshController.dispose(); + } + + ///查询订单详情 + queryOrderDetail() async { + EasyLoading.show( + status: S.current.zhengzaijiazai, maskType: EasyLoadingMaskType.black); + try { + if (businessService == null) { + businessService = BusinessApiService(Dio(), + context: context, + token: BusinessInstance.instance.businessToken, + tenant: BusinessInstance.instance.businessTenant, + storeId: widget.arguments["storeId"]); + } + BaseData baseData = await businessService.getAdminOrderDetail({ + "id": widget.arguments["id"], + }).catchError((error) { + SmartDialog.showToast(AppUtils.dioErrorTypeToString(error.type), + alignment: Alignment.center); + }); + if (baseData != null && baseData.isSuccess) { + orderDetailInfo = baseData.data; + } else { + SmartDialog.showToast(baseData?.msg ?? "", alignment: Alignment.center); + } + } finally { + EasyLoading.dismiss(); + if (refreshController.isRefresh) refreshController.refreshCompleted(); + setState(() {}); + } } @override @@ -38,14 +91,14 @@ class _BusinessOrderDetail extends State { enablePullDown: true, enablePullUp: false, header: MyHeader( - color: Colors.white, + color: Color(0xFF30415B), ), footer: CustomFooter( builder: (context, mode) { return MyFooter(mode); }, ), - onRefresh: () {}, + onRefresh:(){queryOrderDetail();}, physics: BouncingScrollPhysics(), scrollController: ScrollController(), child: SingleChildScrollView( @@ -98,7 +151,7 @@ class _BusinessOrderDetail extends State { fontWeight: MyFontWeight.semi_bold), )), Text( - "已完成", + status()?? "", style: TextStyle( fontSize: 14.sp, color: Color(0xFFFA5151), @@ -111,14 +164,14 @@ class _BusinessOrderDetail extends State { ), ListView.builder( padding: EdgeInsets.zero, - itemCount: 5, + itemCount: orderDetailInfo?.orderProductDTOList?.length ?? 0, scrollDirection: Axis.vertical, shrinkWrap: true, physics: BouncingScrollPhysics(), itemBuilder: (context, position) { return GestureDetector( onTap: () {}, - child: goodsInfoItem(), + child: goodsInfoItem(orderDetailInfo.orderProductDTOList[position]), ); }, ) @@ -127,16 +180,16 @@ class _BusinessOrderDetail extends State { ); } - Widget goodsInfoItem() { + Widget goodsInfoItem(OrderProductDtoList orderProductDTOList) { return Container( margin: EdgeInsets.only(bottom: 12.h), height: 77.h, child: Row( children: [ - Image.asset( - "assets/image/hot_list.webp", - width: 77, - height: 77, + MImage( + orderProductDTOList?.skuImg ?? "", + width: 77.h, + height: 77.h, fit: BoxFit.fill, ), SizedBox( @@ -146,7 +199,7 @@ class _BusinessOrderDetail extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded(child: Text( - "御林古桑园啤酒节大肠包小肠美味...", + orderProductDTOList?.productName ?? "", style: TextStyle( fontSize: 14.sp, color: Color(0xFF0D0D0D), @@ -156,7 +209,7 @@ class _BusinessOrderDetail extends State { Row( children: [ Expanded(child: Text( - "×1", + "×${orderProductDTOList?.buyNum ?? 0}", style: TextStyle( fontSize: 14.sp, color: Color(0xFF0D0D0D), @@ -164,7 +217,7 @@ class _BusinessOrderDetail extends State { ), )), Text( - "¥12", + "¥${orderProductDTOList?.sellPrice ?? ""}", style: TextStyle( fontSize: 14.sp, color: Color(0xFF0D0D0D), @@ -221,57 +274,64 @@ class _BusinessOrderDetail extends State { SizedBox( height: 12.h, ), - Row( - children: [ - Expanded( - child: Text( - "订单号", - style: TextStyle( - fontWeight: MyFontWeight.regular, - fontSize: 14.sp, - color: Color(0xFF808080), + GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: (){ + copyOrderCode(orderDetailInfo?.orderCode ?? ""); + SmartDialog.showToast("复制成功!", + alignment: Alignment.center); + }, + child:Row( + children: [ + Expanded( + child: Text( + "订单号", + style: TextStyle( + fontWeight: MyFontWeight.regular, + fontSize: 14.sp, + color: Color(0xFF808080), + ), + )), + Text( + orderDetailInfo?.orderCode ?? "", + textAlign: TextAlign.end, + style: TextStyle( + fontSize: 14.sp, + color: Color(0xFF1A1A1A), + fontWeight: MyFontWeight.regular), ), - )), - Text( - "1222222222222222", - textAlign: TextAlign.end, - style: TextStyle( - fontSize: 14.sp, - color: Color(0xFF1A1A1A), - fontWeight: MyFontWeight.regular), - ), - Container( - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.circular( - 2, + Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular( + 2, + ), + border: Border.all( + color: Color(0xFF30415B), + width: 1.w, + ), ), - border: Border.all( - color: Color(0xFF30415B), - width: 1.w, + padding: EdgeInsets.symmetric(horizontal: 7.w, vertical: 2.h), + margin: EdgeInsets.only(left: 4.w), + child: Text( + "复制", + style: TextStyle( + fontSize: 10.sp, + color: Color(0xFF30415B), + fontWeight: MyFontWeight.regular), ), ), - padding: EdgeInsets.symmetric(horizontal: 7.w, vertical: 2.h), - margin: EdgeInsets.only(left: 4.w), - child: Text( - "复制", - style: TextStyle( - fontSize: 10.sp, - color: Color(0xFF30415B), - fontWeight: MyFontWeight.regular), - ), - ), - ], + ], + ) ), - orderInfoItem("创建时间", "2022-08-09 12:33:12"), - orderInfoItem("门店", "海峡姐妹茶"), - orderInfoItem("用户名", "2233"), - orderInfoItem("手机号", "17671877666"), - orderInfoItem("订单金额", "766"), - orderInfoItem("创建时间", "海峡姐妹茶"), - orderInfoItem("优惠金额", "22.33"), - orderInfoItem("实付金额", "2233.00"), - orderInfoItem("预约时间", "2022-08-09 12:33:12"), + orderInfoItem("创建时间", orderDetailInfo?.createTime ?? "无"), + orderInfoItem("门店", orderDetailInfo?.storeName ?? "无"), + orderInfoItem("用户名", orderDetailInfo?.memberInfo?.name ?? "无"), + orderInfoItem("手机号", orderDetailInfo?.memberInfo?.phone ?? "无"), + orderInfoItem("订单金额", orderDetailInfo?.orderSum ?? "0.00"), + orderInfoItem("优惠金额", orderDetailInfo?.discountAmount ??"0.00"), + orderInfoItem("实付金额", orderDetailInfo?.paySum ?? "0.00"), + orderInfoItem("预约时间", orderDetailInfo?.subcribeTime ?? "无"), ], ), ); @@ -308,4 +368,32 @@ class _BusinessOrderDetail extends State { ), ); } + + ///复制订单号 + copyOrderCode(String orderCode) { + print(orderCode); + Clipboard.setData(ClipboardData(text: orderCode)); + } + + String status (){ + if(orderDetailInfo?.orderStatus == -1){ + return "错误订单"; + }else { + if(orderDetailInfo?.orderStatus == 1){ + return "未付款"; + }else if(orderDetailInfo?.orderStatus == 5){ + return "已取消"; + }else if(orderDetailInfo?.payStatus == 1 && orderDetailInfo?.refundStatus == 2){ + return "退款待审核"; + }else if(orderDetailInfo?.orderStatus == 3 && orderDetailInfo?.refundStatus == 1){ + return "已退款"; + }else if(orderDetailInfo?.orderStatus == 4){ + return "已完成"; + }else if(orderDetailInfo?.orderStatus == 2){ + return "已付款"; + }else if(orderDetailInfo?.orderStatus == 3){ + return "已确认"; + } + } + } } diff --git a/lib/business_system/order/business_order_page.dart b/lib/business_system/order/business_order_page.dart index 8d024d32..567cbbe5 100644 --- a/lib/business_system/order/business_order_page.dart +++ b/lib/business_system/order/business_order_page.dart @@ -1,19 +1,19 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:huixiang/view_widget/classic_header.dart'; -import 'package:huixiang/view_widget/my_footer.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:intl/intl.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; - +import '../../generated/l10n.dart'; import '../../utils/font_weight.dart'; import '../../view_widget/my_appbar.dart'; import '../../view_widget/my_tab.dart'; -import '../goods/off_shelf/off_shelf_page.dart'; -import '../goods/on_sale/on_sale_page.dart'; import 'order_list.dart'; class BusinessOrderPage extends StatefulWidget { + final String storeId; + + BusinessOrderPage(this.storeId); @override State createState() { @@ -28,9 +28,11 @@ class _BusinessOrderPage extends State final TextEditingController editingController = TextEditingController(); FocusNode _focusNode = FocusNode(); bool isKeyBoardShow = false; - String selectTimeDate =""; - String selectTimeDateNum = "${DateFormat("yyyy年MM月dd日").format(DateTime.now().subtract(Duration(days:1)))} 至 " - "${DateFormat("yyyy年MM月dd日").format(DateTime.now())}"; + List _allKey = []; + String selectTimeDate = ""; + String selectTimeDateNum = + "${DateFormat("yyyy年MM月dd日 00:00:00").format(DateTime.now().subtract(Duration(days: 2)))} 至 " + "${DateFormat("yyyy年MM月dd日 23:59:59").format(DateTime.now())}"; @override void initState() { @@ -49,6 +51,12 @@ class _BusinessOrderPage extends State } }); }); + loadFinish(); + } + + loadFinish() { + _allKey = [GlobalKey(), GlobalKey(), GlobalKey(), GlobalKey()]; + setState(() {}); } ///离开页面记着销毁和清除 @@ -63,25 +71,25 @@ class _BusinessOrderPage extends State super.build(context); return GestureDetector( behavior: HitTestBehavior.opaque, - onTap: (){ + onTap: () { FocusScope.of(context).requestFocus(FocusNode()); }, child: Column( children: [ orderSearch(), Expanded( - child: - Stack( + child: Stack( children: [ DefaultTabController( - length:4, + length: 4, child: Scaffold( resizeToAvoidBottomInset: false, appBar: MyAppBar( - title:"", + title: "", leading: false, background: Colors.white, - toolbarHeight: kToolbarHeight+MediaQuery.of(context).padding.top, + toolbarHeight: + kToolbarHeight + MediaQuery.of(context).padding.top, bottom: TabBar( // isScrollable: true, //可滚动 //去掉按钮阴影 @@ -95,27 +103,31 @@ class _BusinessOrderPage extends State unselectedLabelStyle: TextStyle( fontSize: 15.sp, fontWeight: FontWeight.normal, - color: Color(0xFF666666) - ), + color: Color(0xFF666666)), // controller: tabController, //未选中文字颜色 unselectedLabelColor: Color(0xffA29E9E), indicatorSize: TabBarIndicatorSize.label, //指示器与文字等宽 tabs: [ - MyTab(text:"全部"), + MyTab(text: "全部"), MyTab(text: "未付款"), - MyTab(text:"已付款"), + MyTab(text: "已付款"), MyTab(text: "已退款"), ], ), ), body: TabBarView( children: [ - OrderList(0), - OrderList(1), - OrderList(2), - OrderList(3),], + OrderList(_allKey[0], 0, widget.storeId, + editingController.text, selectTime()), + OrderList(_allKey[1], 1, widget.storeId, + editingController.text, selectTime()), + OrderList(_allKey[2], 2, widget.storeId, + editingController.text, selectTime()), + OrderList(_allKey[3], 3, widget.storeId, + editingController.text, selectTime()), + ], ), ), ), @@ -142,7 +154,11 @@ class _BusinessOrderPage extends State color: Colors.white, child: Container( height: 40.h, - margin: EdgeInsets.only(left: 18.w,right: 18.w,top:55.h,), + margin: EdgeInsets.only( + left: 18.w, + right: 18.w, + top: 55.h, + ), decoration: BoxDecoration( color: Color(0xFFF7F8FA), borderRadius: BorderRadius.circular(2), @@ -152,6 +168,7 @@ class _BusinessOrderPage extends State textInputAction: TextInputAction.search, onEditingComplete: () { FocusScope.of(context).requestFocus(FocusNode()); + loadFinish(); }, style: TextStyle( fontSize: 15.sp, @@ -164,12 +181,10 @@ class _BusinessOrderPage extends State hintStyle: TextStyle( color: Color(0xFF808080), fontSize: 15.sp, - fontWeight: MyFontWeight.regular - ), + fontWeight: MyFontWeight.regular), contentPadding: EdgeInsets.symmetric( vertical: 12.h, ), - prefixIcon: Image.asset( "assets/image/bs_goods_search.webp", width: 20, @@ -178,52 +193,39 @@ class _BusinessOrderPage extends State border: InputBorder.none, ), ), - ),), + ), + ), ); } - Widget timeSelect(){ + Widget timeSelect() { return Container( color: Colors.white, child: GestureDetector( - onTap: (){ - Navigator.of(context).pushNamed('/router/custom_page').then((value){ - setState((){ + onTap: () { + Navigator.of(context).pushNamed('/router/custom_page').then((value) { selectTimeDate = value; + loadFinish(); }); - });}, + }, child: Container( decoration: BoxDecoration( color: Color(0xFFF7F8FA), borderRadius: BorderRadius.circular(2), ), - margin: EdgeInsets.only(left: 18.w,right: 18.w,top: 12.h,bottom: 16.h), - padding: EdgeInsets.symmetric(horizontal: 14.w,vertical: 12.h), + margin: + EdgeInsets.only(left: 18.w, right: 18.w, top: 12.h, bottom: 16.h), + padding: EdgeInsets.symmetric(horizontal: 14.w, vertical: 12.h), child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - (selectTimeDate == "" || selectTimeDate == null) ? selectTimeDateNum : selectTimeDate, + ("${selectTime().substring(0, 11)} ${selectTime().substring(21, 34)}"), style: TextStyle( fontSize: 14.sp, color: Color(0xFF30415B), fontWeight: MyFontWeight.regular), ), - // Padding(padding:EdgeInsets.only(left:22.w,right: 26.w), - // child: Text( - // '至', - // style: TextStyle( - // fontSize: 14.sp, - // color: Color(0xFF30415B), - // fontWeight: MyFontWeight.regular), - // ),), - // Text( - // '2022-08-24 16:50', - // style: TextStyle( - // fontSize: 14.sp, - // color: Color(0xFF30415B), - // fontWeight: MyFontWeight.regular), - // ), ], ), ), @@ -231,6 +233,13 @@ class _BusinessOrderPage extends State ); } + String selectTime() { + if (selectTimeDate == "" || selectTimeDate == null) { + return selectTimeDateNum; + } else + return selectTimeDate; + } + @override bool get wantKeepAlive => true; } diff --git a/lib/business_system/order/order_list.dart b/lib/business_system/order/order_list.dart index 83619d9e..37eddd30 100644 --- a/lib/business_system/order/order_list.dart +++ b/lib/business_system/order/order_list.dart @@ -1,15 +1,31 @@ +import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/view_widget/classic_header.dart'; import 'package:huixiang/view_widget/my_footer.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:shared_preferences/shared_preferences.dart'; import '../../../utils/font_weight.dart'; +import '../../generated/l10n.dart'; +import '../../retrofit/business_api.dart'; +import '../../retrofit/data/base_data.dart'; +import '../../retrofit/data/business_order_list.dart'; +import '../../utils/business_instance.dart'; +import '../../utils/flutter_utils.dart'; +import '../../view_widget/no_data_view.dart'; class OrderList extends StatefulWidget { final int status; - OrderList(this.status); + final String storeId; + final String keyword; + final String time; + + OrderList(Key key, this.status, this.storeId, this.keyword, this.time) + : super(key: key); @override State createState() { @@ -21,6 +37,9 @@ class _OrderList extends State { final RefreshController _refreshController = RefreshController(); ScrollPhysics scrollPhysics = NeverScrollableScrollPhysics(); final ScrollController controller = ScrollController(); + BusinessApiService businessService; + List adminOrderDTOList = []; + int _pageIndex = 1; @override void dispose() { @@ -31,17 +50,78 @@ class _OrderList extends State { @override void initState() { super.initState(); + _onRefresh(); + } + + _onRefresh({bool isShowLoad = true}) async { + if (isShowLoad) + EasyLoading.show( + status: S.current.zhengzaijiazai, + maskType: EasyLoadingMaskType.black); + await queryOrderList(); + EasyLoading.dismiss(); + if (!mounted) return; + if (_refreshController.isRefresh) _refreshController.refreshCompleted(); + setState(() {}); } - _onRefresh() async {} + ///订单列表 + queryOrderList() async { + if (businessService == null) { + SharedPreferences value = await SharedPreferences.getInstance(); + businessService = BusinessApiService(Dio(), + context: context, + token: BusinessInstance.instance.businessToken, + tenant: BusinessInstance.instance.businessTenant, + storeId: widget.storeId); + } + BaseData baseData = + await businessService.findAdminOrderList({ + "orderCode": "", + "keywordType": 1, + "keyword": widget?.keyword ?? "", + "orderStatus": "", + "startTime": widget.time + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(0, 19), + "endTime": widget.time + .replaceAll("年", "-") + .replaceAll("月", "-") + .replaceAll("日", "") + .substring(widget.time.length >= 21 ? 22 : 0, + widget.time.length >= 21 ? 41 : 0), + "pageIndex": _pageIndex, + "pageSize": 10, + "refundStatus": widget.status == 3 ? "1" : "", + "payStatus": widget.status == 1 ? "0" : (widget.status == 2 ? "1" : ""), + "showCancelOrder": 1, + "orderType": "" + }).catchError((error) { + SmartDialog.showToast(AppUtils.dioErrorTypeToString(error.type), + alignment: Alignment.center); + }); + if (!mounted) return; + if (baseData != null && baseData.isSuccess) { + adminOrderDTOList.addAll(baseData?.data?.adminOrderDTOList ?? []); + if ((baseData?.data?.adminOrderDTOList ?? []).isEmpty || + adminOrderDTOList.length == baseData.data.total) + _refreshController.loadNoData(); + else + _refreshController.loadComplete(); + } else { + SmartDialog.showToast(baseData.msg, alignment: Alignment.center); + } + } @override Widget build(BuildContext context) { return SmartRefresher( controller: _refreshController, enablePullDown: true, - enablePullUp: false, - header: MyHeader(), + enablePullUp: adminOrderDTOList.length == 0 ? false : true, + header: MyHeader(color: Color(0xFF30415B)), physics: BouncingScrollPhysics(), footer: CustomFooter( builder: (context, mode) { @@ -49,224 +129,274 @@ class _OrderList extends State { }, ), onRefresh: () { - setState(() { - _onRefresh(); - }); + _pageIndex = 1; + adminOrderDTOList.clear(); + _onRefresh(); }, - child:Padding(padding:EdgeInsets.symmetric(vertical: 16.w), - child: ListView.builder( - itemCount: 5, - physics: BouncingScrollPhysics(), - shrinkWrap: true, - itemBuilder: (context, position) { - return GestureDetector( - behavior: HitTestBehavior.opaque, - onTap: () { - Navigator.of(context).pushNamed('/router/business_order_detail'); - }, - child: orderItem(), - ); - }, - ),), + onLoading: () { + _pageIndex++; + _onRefresh(); + }, + child: (adminOrderDTOList == null || adminOrderDTOList.length == 0) + ? NoDataView( + src: "assets/image/bs_no data_logo.webp", + isShowBtn: false, + text: "暂无数据", + fontSize: 16.sp, + iconHeight: 120.h, + margin: EdgeInsets.all(50.h), + ) + : Padding( + padding: EdgeInsets.symmetric(vertical: 16.w), + child: ListView.builder( + itemCount: adminOrderDTOList?.length ?? 0, + physics: BouncingScrollPhysics(), + shrinkWrap: true, + itemBuilder: (context, position) { + return GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () { + Navigator.of(context) + .pushNamed('/router/business_order_detail',arguments: {"id":adminOrderDTOList[position].id,"storeId":widget.storeId}); + }, + child: orderItem(adminOrderDTOList[position]), + ); + }, + ), + ), ); } - Widget orderItem() { + Widget orderItem(AdminOrderDtoList adminOrderDtoList) { return Container( decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(8), ), - margin: EdgeInsets.only(left: 16.w,right: 16.w,bottom: 16.h), - padding:EdgeInsets.symmetric(vertical: 12.h), + margin: EdgeInsets.only(left: 16.w, right: 16.w, bottom: 16.h), + padding: EdgeInsets.symmetric(vertical: 12.h), child: Column( children: [ - Padding(padding:EdgeInsets.only(bottom:12.h,left: 12.w,right: 12.w), - child: Row( - children: [ - Image.asset( - "assets/image/bs_switch_shop.webp", - width:16, - height:16, - ), - SizedBox(width: 3.w,), - Expanded(child: Text( - "海峡姐妹奶茶", - maxLines: 1, - overflow: TextOverflow.ellipsis, - style: TextStyle( - fontSize: 14.sp, - color: Color(0xFF0D0D0D), - fontWeight: MyFontWeight.semi_bold + Padding( + padding: EdgeInsets.only(bottom: 12.h, left: 12.w, right: 12.w), + child: Row( + children: [ + Image.asset( + "assets/image/bs_switch_shop.webp", + width: 16, + height: 16, ), - )), - Text( - widget.status == 0 ?"全部":widget.status == 1 ? "未付款":widget.status == 2 ? "已付款":"已退款", - style: TextStyle( - fontSize: 14.sp, - color: Color(0xFFFA5151), - fontWeight: MyFontWeight.semi_bold + SizedBox( + width: 3.w, ), - ) - ], - ),), + Expanded( + child: Text( + adminOrderDtoList?.storeName ?? "", + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14.sp, + color: Color(0xFF0D0D0D), + fontWeight: MyFontWeight.semi_bold), + )), + Text( + widget.status == 0 + ? "全部" + : widget.status == 1 + ? "未付款" + : widget.status == 2 + ? "已付款" + : "已退款", + style: TextStyle( + fontSize: 14.sp, + color: Color(0xFFFA5151), + fontWeight: MyFontWeight.semi_bold), + ) + ], + ), + ), Container( width: double.infinity, height: 1.h, color: Color(0xFFF4F6F7), ), - Padding(padding:EdgeInsets.symmetric(horizontal: 12.w), - child: Column( - children: [ - Container( - height:170.h, - margin: EdgeInsets.only(top: 17.h,bottom:13.h), - child: - ListView.builder( - padding: EdgeInsets.zero, - itemCount:6, - scrollDirection: Axis.vertical, - shrinkWrap: true, - physics: BouncingScrollPhysics(), - itemBuilder: (context, position) { - return GestureDetector( - onTap: () { - }, - child: orderGoodsList(), - ); - }, - ), - ), - Row(children: [ - Text( - "订单编号:", - style: TextStyle( - fontSize: 12.sp, - color: Color(0xFF7A797F), - fontWeight: MyFontWeight.regular + Padding( + padding: EdgeInsets.symmetric(horizontal: 12.w), + child: Column( + children: [ + Container( + margin: EdgeInsets.only(top: 17.h, bottom: 13.h), + child: ListView.builder( + padding: EdgeInsets.zero, + itemCount: adminOrderDtoList?.orderProductList?.length ?? 0, + scrollDirection: Axis.vertical, + shrinkWrap: true, + physics: BouncingScrollPhysics(), + itemBuilder: (context, position) { + return GestureDetector( + onTap: () {}, + child: orderGoodsList( + adminOrderDtoList.orderProductList[position]), + ); + }, ), ), - Padding(padding:EdgeInsets.only(left: 14.w), - child: - Text( - "1223211111112333333", - style: TextStyle( - fontSize: 12.sp, - color: Color(0xFF7A797F), - fontWeight: MyFontWeight.regular + Row( + children: [ + Text( + "订单编号:", + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF7A797F), + fontWeight: MyFontWeight.regular), ), - ),), - ],), - SizedBox(height: 4.h,), - Row(children: [ - Text( - "支付时间::", - style: TextStyle( - fontSize: 12.sp, - color: Color(0xFF7A797F), - fontWeight: MyFontWeight.regular - ), + Padding( + padding: EdgeInsets.only(left: 14.w), + child: Text( + adminOrderDtoList?.orderCode ?? "", + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF7A797F), + fontWeight: MyFontWeight.regular), + ), + ), + ], ), - SizedBox(width: 14.w,), - Expanded(child: Text( - "2022-08-09 12:33:12", - style: TextStyle( - fontSize: 12.sp, - color: Color(0xFF7A797F), - fontWeight: MyFontWeight.regular - ), - ),), - Text( - "¥245", - style: TextStyle( - fontSize: 14.sp, - color: Color(0xFF181818), - fontWeight: MyFontWeight.medium - ), + SizedBox( + height: 4.h, ), - ],), - SizedBox(height:20.h,), - Row( - children: [ - Spacer(), - GestureDetector( - behavior: HitTestBehavior.opaque, - onTap: (){ - Navigator.of(context).pushNamed('/router/order_write_off'); - }, - child: Container( - decoration: BoxDecoration( - color: Color(0xFF30415B), - borderRadius: BorderRadius.circular(4), - ), - padding: EdgeInsets.symmetric(vertical: 5.h,horizontal: 26.w), - margin: EdgeInsets.only(right:20.h), - child:Text( - "核销", + Row( + children: [ + Text( + "支付时间:", + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF7A797F), + fontWeight: MyFontWeight.regular), + ), + SizedBox( + width: 14.w, + ), + Expanded( + child: Text( + adminOrderDtoList?.createTime ?? "", style: TextStyle( fontSize: 12.sp, - color: Colors.white, - fontWeight: MyFontWeight.regular - ), + color: Color(0xFF7A797F), + fontWeight: MyFontWeight.regular), ), ), - ),GestureDetector( + Text( + adminOrderDtoList?.paySum ?? "", + style: TextStyle( + fontSize: 14.sp, + color: Color(0xFF181818), + fontWeight: MyFontWeight.medium), + ), + ], + ), + SizedBox( + height: 20.h, + ), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + // Spacer(), + GestureDetector( behavior: HitTestBehavior.opaque, - onTap: (){ - Navigator.of(context).pushNamed('/router/request_refund'); + onTap: () { + Navigator.of(context) + .pushNamed('/router/order_write_off'); }, child: Container( decoration: BoxDecoration( - color: Colors.white, + color: Color(0xFF30415B), borderRadius: BorderRadius.circular(4), - border: Border.all( - color: Color(0xFF30415B), - width: 1, - ), ), - padding: EdgeInsets.symmetric(vertical: 5.h,horizontal: 14.w), - child:Text( - "申请退款", + padding: EdgeInsets.symmetric( + vertical: 5.h, horizontal: 26.w), + margin: EdgeInsets.only( + right: (adminOrderDtoList.payStatus == 1 && + adminOrderDtoList.refundStatus == 0) + ? 20.w + : 0), + child: Text( + "核销", style: TextStyle( fontSize: 12.sp, + color: Colors.white, + fontWeight: MyFontWeight.regular), + ), + ), + ), + if (adminOrderDtoList.payStatus == 1 && + adminOrderDtoList.refundStatus == 0) + GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () { + Navigator.of(context) + .pushNamed('/router/request_refund', arguments: { + "refundAmount": adminOrderDtoList?.paySum ?? "", + "mid": adminOrderDtoList?.mid ?? "", + "orderId": adminOrderDtoList?.id ?? "", + "storeId": widget.storeId ?? "", + }).then((value) => { + _pageIndex = 1, + adminOrderDTOList.clear(), + _onRefresh(isShowLoad: false), + }); + }, + child: Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(4), + border: Border.all( color: Color(0xFF30415B), - fontWeight: MyFontWeight.regular + width: 1, + ), + ), + padding: EdgeInsets.symmetric( + vertical: 5.h, horizontal: 14.w), + child: Text( + "申请退款", + style: TextStyle( + fontSize: 12.sp, + color: Color(0xFF30415B), + fontWeight: MyFontWeight.regular), ), ), ), - ), - ], - ) - - ], - ),), + ], + ) + ], + ), + ), ], ), ); } - Widget orderGoodsList(){ + Widget orderGoodsList(OrderProductList orderProductList) { return Container( margin: EdgeInsets.only(bottom: 13.h), child: Row( children: [ - Expanded(child: Text( - "葡萄榨汁饮料", + Expanded( + child: Text( + orderProductList?.productName ?? "", maxLines: 1, overflow: TextOverflow.ellipsis, style: TextStyle( fontSize: 14.sp, color: Color(0xFF0D0D0D), - fontWeight: MyFontWeight.medium - ), + fontWeight: MyFontWeight.medium), )), Text( - "x1", + "x${(orderProductList?.buyNum ?? 0).toString()}", style: TextStyle( fontSize: 14.sp, color: Color(0xFF000000), - fontWeight: MyFontWeight.regular - ), + fontWeight: MyFontWeight.regular), ) ], ), diff --git a/lib/business_system/order/request_refund.dart b/lib/business_system/order/request_refund.dart index 9317b52d..70db15cb 100644 --- a/lib/business_system/order/request_refund.dart +++ b/lib/business_system/order/request_refund.dart @@ -1,16 +1,28 @@ +import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_easyloading/flutter_easyloading.dart'; +import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/utils/font_weight.dart'; import 'package:huixiang/view_widget/my_appbar.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:shared_preferences/shared_preferences.dart'; import '../../generated/l10n.dart'; +import '../../retrofit/business_api.dart'; +import '../../retrofit/data/base_data.dart'; +import '../../retrofit/data/refund_reason_list.dart'; +import '../../utils/business_instance.dart'; +import '../../utils/flutter_utils.dart'; import '../../view_widget/border_text.dart'; -import '../../view_widget/classic_header.dart'; -import '../../view_widget/my_footer.dart'; import '../../view_widget/round_button.dart'; +import '../../view_widget/settlement_tips_dialog.dart'; class RequestRefund extends StatefulWidget { + final Map arguments; + + RequestRefund({this.arguments}); + @override State createState() { return _RequestRefund(); @@ -24,6 +36,10 @@ class _RequestRefund extends State { bool isKeyBoardShow = false; int modifyAmountState = 0; int refundState = 0; + RefundReasonList reasonReasonList; + BusinessApiService businessService; + String refundAmount; + String selectRefundReason; @override void initState() { @@ -42,6 +58,8 @@ class _RequestRefund extends State { } }); }); + refundAmount = widget.arguments["refundAmount"]; + queryRefundReason(); } ///离开页面记着销毁和清除 @@ -51,10 +69,73 @@ class _RequestRefund extends State { super.dispose(); } + ///退款原因 + queryRefundReason() async { + if (businessService == null) { + businessService = BusinessApiService(Dio(), + context: context, + token: BusinessInstance.instance.businessToken, + tenant: BusinessInstance.instance.businessTenant, + storeId: widget.arguments["storeId"]); + } + BaseData baseData = await businessService.refundReason({ + "current": 1, + "model": {"type": 3}, + "size": 20 + }).catchError((error) { + SmartDialog.showToast(AppUtils.dioErrorTypeToString(error.type), + alignment: Alignment.center); + }); + if (baseData != null && baseData.isSuccess) { + reasonReasonList = baseData.data; + } + } + + ///申请退款 + orderRefund() async { + EasyLoading.show( + status: S.current.zhengzaijiazai, maskType: EasyLoadingMaskType.black); + try { + if (businessService == null) { + businessService = BusinessApiService(Dio(), + context: context, + token: BusinessInstance.instance.businessToken, + tenant: BusinessInstance.instance.businessTenant, + storeId: widget.arguments["storeId"]); + } + BaseData baseData = await businessService.refundOrder({ + "tenant_code": BusinessInstance.instance.businessTenant, + "orderId": widget.arguments["orderId"], + "mid": widget.arguments["mid"], + "reason": selectRefundReason, + "backMoney": modifyAmountController.text == "" + ? refundAmount + : modifyAmountController.text, + }).catchError((error) {}); + if (baseData != null && baseData.isSuccess) { + SmartDialog.show( + widget: SettlementTips( + () {}, + text: baseData?.data ?? "", + color: Color(0xFF30415B), + )); + Navigator.of(context).pop(); + } else { + SmartDialog.showToast(baseData?.msg ?? "", alignment: Alignment.center); + } + } finally { + EasyLoading.dismiss(); + } + } + @override Widget build(BuildContext context) { - return - Scaffold( + return GestureDetector( + behavior: HitTestBehavior.translucent, + onTap: () { + FocusScope.of(context).requestFocus(FocusNode()); + }, + child: Scaffold( resizeToAvoidBottomInset: false, backgroundColor: Color(0xFFF8F8FA), appBar: MyAppBar( @@ -65,8 +146,8 @@ class _RequestRefund extends State { brightness: Brightness.dark, ), body: Container( - margin: EdgeInsets.only(top: 24.h,left: 16.w,right: 16.w), - child:Column( + margin: EdgeInsets.only(top: 24.h, left: 16.w, right: 16.w), + child: Column( children: [ Container( decoration: BoxDecoration( @@ -81,7 +162,11 @@ class _RequestRefund extends State { ), ], ), - padding: EdgeInsets.only(top: 16.h,left: 16.w,right: 16.w,), + padding: EdgeInsets.only( + top: 16.h, + left: 16.w, + right: 16.w, + ), child: Column( children: [ Row( @@ -90,7 +175,7 @@ class _RequestRefund extends State { width: 2.w, height: 16.h, color: Color(0xFF30415B), - margin: EdgeInsets.only(right:6.w), + margin: EdgeInsets.only(right: 6.w), ), Text( "申请金额", @@ -102,11 +187,14 @@ class _RequestRefund extends State { ), ], ), - SizedBox(height:32.h,), + SizedBox( + height: modifyAmountState == 0 ? 32.h : 16.h, + ), Row( children: [ - if(modifyAmountState == 0) - Expanded(child:Text.rich( + if (modifyAmountState == 0) + Expanded( + child: Text.rich( TextSpan( children: [ TextSpan( @@ -118,7 +206,7 @@ class _RequestRefund extends State { ), ), TextSpan( - text: "1112.33", + text: refundAmount ?? "", style: TextStyle( color: Color(0xFF0D0D0D), fontSize: 24.sp, @@ -128,7 +216,7 @@ class _RequestRefund extends State { ], ), )), - if(modifyAmountState == 1) + if (modifyAmountState == 1) Text( "¥", style: TextStyle( @@ -137,30 +225,30 @@ class _RequestRefund extends State { fontWeight: MyFontWeight.semi_bold, ), ), - if(modifyAmountState == 1) - Expanded(child: TextField( - controller: modifyAmountController, - decoration: InputDecoration( - hintText: "请输入修改金额", - hintStyle: TextStyle( - color: Color(0xFF0D0D0D), - fontSize: 14.sp, - fontWeight: MyFontWeight.regular + if (modifyAmountState == 1) + Expanded( + child: TextField( + controller: modifyAmountController, + decoration: InputDecoration( + hintText: "请输入修改金额", + hintStyle: TextStyle( + color: Color(0xFF0D0D0D), + fontSize: 14.sp, + fontWeight: MyFontWeight.regular), + border: InputBorder.none, ), - border: InputBorder.none, - ), - keyboardType: TextInputType.phone, - style: TextStyle( - color: Color(0xFF0D0D0D), - fontSize: 24.sp, - fontWeight: MyFontWeight.medium + keyboardType: TextInputType.phone, + style: TextStyle( + color: Color(0xFF0D0D0D), + fontSize: 24.sp, + fontWeight: MyFontWeight.medium), ), - ),), + ), GestureDetector( behavior: HitTestBehavior.opaque, - onTap: (){ + onTap: () { // showModifyAmountDialog(); - setState((){ + setState(() { modifyAmountState = 1; }); }, @@ -169,10 +257,12 @@ class _RequestRefund extends State { Image.asset( "assets/image/bs_edit.webp", fit: BoxFit.cover, - width:16, - height:16, + width: 16, + height: 16, + ), + SizedBox( + width: 4.w, ), - SizedBox(width: 4.w,), Text( "修改金额", style: TextStyle( @@ -190,7 +280,44 @@ class _RequestRefund extends State { height: 1.h, width: double.infinity, color: Color(0xFFEBECEF), - margin: EdgeInsets.only(bottom: 50.h), + margin: EdgeInsets.only(bottom: 24.h), + ), + Padding( + padding: EdgeInsets.only(bottom: 25.h), + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () { + showRefundReason(); + }, + child: Row( + children: [ + Expanded( + child: Text( + "退款原因", + style: TextStyle( + color: Color(0xFF7A797F), + fontSize: 14.sp, + fontWeight: MyFontWeight.regular, + ), + )), + Text( + selectRefundReason ?? "请选择退款原因", + style: TextStyle( + color: Color(0xFF0D0D0D), + fontSize: 14.sp, + fontWeight: MyFontWeight.regular, + ), + ), + Padding( + padding: EdgeInsets.only(left: 8.w), + child: Image.asset( + "assets/image/bs_right.webp", + width: 8.w, + height: 12.h, + )), + ], + ), + ), ) ], ), @@ -198,22 +325,25 @@ class _RequestRefund extends State { Spacer(), GestureDetector( behavior: HitTestBehavior.opaque, - onTap: (){ - if(refundState == 1){ - Navigator.of(context).pop(); - }else{ - showModifyAmountDialog(); + onTap: () { + if (refundState == 1) { + orderRefund(); + } else { + if (selectRefundReason == null) { + SmartDialog.showToast("请选择退款原因", + alignment: Alignment.center); + } else + showModifyAmountDialog(); } }, child: Container( width: double.infinity, alignment: Alignment.center, - margin: EdgeInsets.only(bottom:55.h,top: 125.h), - padding: EdgeInsets.symmetric(vertical:16.h), + margin: EdgeInsets.only(bottom: 55.h, top: 125.h), + padding: EdgeInsets.symmetric(vertical: 16.h), decoration: BoxDecoration( borderRadius: BorderRadius.circular(27), - color: Color(0xFF30415B) - ), + color: Color(0xFF30415B)), child: Text( "确定退款", style: TextStyle( @@ -227,7 +357,8 @@ class _RequestRefund extends State { ], ), ), - ); + ), + ); } ///修改金额提示 @@ -300,7 +431,7 @@ class _RequestRefund extends State { fontWeight: FontWeight.bold, ), onTap: () { - setState((){ + setState(() { refundState = 1; Navigator.of(context).pop(); }); @@ -318,4 +449,111 @@ class _RequestRefund extends State { ); } + ///退款原因 + showRefundReason() { + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + builder: (context) { + return Container( + width: double.infinity, + height: 309.h, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: Radius.circular(8), + topRight: Radius.circular(8), + ), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: Container( + alignment: Alignment.center, + margin: EdgeInsets.symmetric(vertical: 12), + child: Text( + "退款原因", + style: TextStyle( + fontWeight: MyFontWeight.bold, + fontSize: 17.sp, + color: Color(0xFF1A1A1A), + ), + ), + )), + GestureDetector( + onTap: () { + setState(() { + Navigator.of(context).pop(); + }); + }, + child: Padding( + padding: EdgeInsets.only(right: 16.w), + child: Image.asset( + "assets/image/cancel.webp", + width: 25.h, + height: 25.h, + ), + ), + ), + ], + ), + Padding( + padding: EdgeInsets.symmetric(horizontal: 16.w), + child: ListView.builder( + padding: EdgeInsets.zero, + itemCount: reasonReasonList?.records?.length ?? 0, + scrollDirection: Axis.vertical, + shrinkWrap: true, + physics: BouncingScrollPhysics(), + itemBuilder: (context, position) { + return GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () { + setState(() { + selectRefundReason = + reasonReasonList.records[position].reason; + }); + Navigator.of(context).pop(); + }, + child: refundReasonItem( + reasonReasonList.records[position]), + ); + }, + ), + ) + ], + ), + ); + }); + } + + refundReasonItem(Records records) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.symmetric(vertical: 16.h), + child: Text( + records?.reason ?? "", + style: TextStyle( + fontWeight: MyFontWeight.bold, + fontSize: 14.sp, + color: Color(0xFF0D0D0D), + ), + ), + ), + Container( + width: double.infinity, + height: 1.h, + color: Color(0xFFEBEBEB), + ) + ], + ); + } } diff --git a/lib/main.dart b/lib/main.dart index 11d4d355..6498a4ea 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -491,17 +491,17 @@ Map routers = { '/router/batch_shelf': (context, {arguments}) => BatchShelf(), '/router/business_order_detail': (context, {arguments}) => - BusinessOrderDetail(), + BusinessOrderDetail(arguments: arguments), '/router/order_write_off': (context, {arguments}) => OrderWriteOff(), '/router/security_setting': (context, {arguments}) => - SecuritySetting(), + SecuritySetting(arguments: arguments), '/router/merchant_info': (context, {arguments}) => - MerchantInfo(), + MerchantInfo(arguments: arguments), '/router/account_information': (context, {arguments}) => - AccountInformation(), + AccountInformation(arguments: arguments), '/router/request_refund': (context, {arguments}) => - RequestRefund(), + RequestRefund(arguments:arguments), '/router/day_report_page': (context, {arguments}) => DayReportPage(), '/router/week_report_page': (context, {arguments}) => diff --git a/lib/qr/qr_code_scan.dart b/lib/qr/qr_code_scan.dart index 9376b6a1..fbee0778 100644 --- a/lib/qr/qr_code_scan.dart +++ b/lib/qr/qr_code_scan.dart @@ -1,12 +1,9 @@ import 'dart:ui'; import 'package:flutter/material.dart'; -// import 'package:flutter_scankit/scan_kit_widget.dart'; import 'package:huixiang/generated/l10n.dart'; -import 'package:huixiang/view_widget/my_appbar.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:image_pickers/image_pickers.dart'; -import 'package:permission_handler/permission_handler.dart'; import 'package:scan/scan.dart'; class QrCodeScanPage extends StatefulWidget { diff --git a/lib/retrofit/business_api.dart b/lib/retrofit/business_api.dart index fa2dbf6c..785f4a54 100644 --- a/lib/retrofit/business_api.dart +++ b/lib/retrofit/business_api.dart @@ -12,9 +12,14 @@ import 'package:huixiang/retrofit/data/vip_counts_info.dart'; import 'package:retrofit/retrofit.dart'; import 'data/base_data.dart'; +import 'data/business_goods.dart'; +import 'data/business_order_detail_info.dart'; +import 'data/business_order_list.dart'; import 'data/day_flow_list.dart'; import 'data/goods_type_sales_list.dart'; import 'data/popular_sales_list.dart'; +import 'data/product_group_list.dart'; +import 'data/refund_reason_list.dart'; import 'data/single_sales_list.dart'; import 'data/trade_summary_list.dart'; @@ -22,6 +27,7 @@ part 'business_api.g.dart'; ///本地 const localBaseUrl = "http://admin-api.test.yixinhuixiang.com/"; + ///测试 // const localBaseUrl = "http://test-merchant.lotus-wallet.com/test-merchant/"; @@ -147,8 +153,7 @@ abstract class BusinessApiService { ///会员数量统计/用户概览 @GET("largeScreenReport/getDayCounts?date={date}") - Future> vipCounts( - @Path("date") String date); + Future> vipCounts(@Path("date") String date); ///今日流水/isMonth=0(当月数据),isMonth=1(当日数据) @GET("dashBoard/order?yearMonth={yearMonth}&isMonth={isMonth}") @@ -157,14 +162,46 @@ abstract class BusinessApiService { ///每日单品销量/单品销量报表 @POST("audit/salesLeaderboard") - Future>> singleSales(@Body() Map param); + Future>> singleSales( + @Body() Map param); ///各类商品销售状况统计/商品种类销售数据 @POST("audit/allKindsSalesStatistics") - Future>> goodsSalesList(@Body() Map param); + Future>> goodsSalesList( + @Body() Map param); ///经营分析/查询范围 day week month custom @POST("largeScreenReport/saleBusinessAnalysis") - Future> saleBusinessAnalysis(@Body() Map param); + Future> saleBusinessAnalysis( + @Body() Map param); + + ///订单列表 + @POST("order/findAdminOrderList") + Future> findAdminOrderList( + @Body() Map param); + + ///订单详情 + @POST("order/getAdminOrderDetail") + Future> getAdminOrderDetail( + @Body() Map param); + + ///退款原因列表 + @POST("reason/page") + Future> refundReason( + @Body() Map param); + + ///申请退款 + @POST("order/refundOrder") + Future refundOrder(@Body() Map param); + + ///商品分页列表查询/商品分组列表 + @POST("productGroup/page") + Future> productGroup( + @Body() Map param); + + ///后台查询商品列表/商品列表 + @POST("product/findAdminProductListNew") + Future> findAdminProductLis( + @Body() Map param); } diff --git a/lib/retrofit/business_api.g.dart b/lib/retrofit/business_api.g.dart index c5845d4d..6aec7c5a 100644 --- a/lib/retrofit/business_api.g.dart +++ b/lib/retrofit/business_api.g.dart @@ -28,8 +28,7 @@ class _BusinessApiService implements BusinessApiService { final queryParameters = {}; final _data = {}; _data.addAll(param ?? {}); - final _result = await _dio.request>( - 'anno/token', + final _result = await _dio.request>('anno/token', queryParameters: queryParameters, options: RequestOptions( method: 'POST', @@ -39,7 +38,7 @@ class _BusinessApiService implements BusinessApiService { data: _data); final value = BaseData.fromJson( _result.data, - (json) => json == null ? null : json, + (json) => json == null ? null : json, ); return value; } @@ -62,7 +61,7 @@ class _BusinessApiService implements BusinessApiService { data: _data); final value = BaseData.fromJson( _result.data, - (json) => json == "" ? null :DayCount.fromJson(json), + (json) => json == "" ? null : DayCount.fromJson(json), ); return value; } @@ -84,7 +83,7 @@ class _BusinessApiService implements BusinessApiService { data: _data); final value = BaseData.fromJson( _result.data, - (json) => PopularSalesList.fromJson(json), + (json) => PopularSalesList.fromJson(json), ); return value; } @@ -94,8 +93,7 @@ class _BusinessApiService implements BusinessApiService { const _extra = {}; final queryParameters = {}; final _data = {}; - final _result = await _dio.request>( - 'trend/orderTrend', + final _result = await _dio.request>('trend/orderTrend', queryParameters: queryParameters, options: RequestOptions( method: 'GET', @@ -105,7 +103,7 @@ class _BusinessApiService implements BusinessApiService { data: _data); final value = BaseData>.fromJson( _result.data, - (json) => (json as List) + (json) => (json as List) .map( (i) => OrderTrend.fromJson(i as Map)) .toList()); @@ -129,13 +127,13 @@ class _BusinessApiService implements BusinessApiService { data: _data); final value = BaseData.fromJson( _result.data, - (json) => VipCountsInfo.fromJson(json), + (json) => VipCountsInfo.fromJson(json), ); return value; } @override - Future>> dayFlow(yearMonth,isMonth) async { + Future>> dayFlow(yearMonth, isMonth) async { ArgumentError.checkNotNull(yearMonth, 'yearMonth'); ArgumentError.checkNotNull(isMonth, 'isMonth'); const _extra = {}; @@ -152,7 +150,7 @@ class _BusinessApiService implements BusinessApiService { data: _data); final value = BaseData>.fromJson( _result.data, - (json) => (json as List) + (json) => (json as List) .map( (i) => DayFlowList.fromJson(i as Map)) .toList()); @@ -177,7 +175,7 @@ class _BusinessApiService implements BusinessApiService { data: _data); final value = BaseData>.fromJson( _result.data, - (json) => (json as List) + (json) => (json as List) .map( (i) => SingleSalesList.fromJson(i as Map)) .toList()); @@ -202,7 +200,7 @@ class _BusinessApiService implements BusinessApiService { data: _data); final value = BaseData>.fromJson( _result.data, - (json) => (json as List) + (json) => (json as List) .map( (i) => GoodsTypeSalesList.fromJson(i as Map)) .toList()); @@ -227,7 +225,144 @@ class _BusinessApiService implements BusinessApiService { data: _data); final value = BaseData.fromJson( _result.data, - (json) => json == "" ? null :TradeSummaryList.fromJson(json), + (json) => json == "" ? null : TradeSummaryList.fromJson(json), + ); + return value; + } + + @override + Future> findAdminOrderList(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + 'order/findAdminOrderList', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json == "" ? null : BusinessOrderList.fromJson(json), + ); + return value; + } + + @override + Future> getAdminOrderDetail(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + 'order/getAdminOrderDetail', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json == "" ? null : BusinessOrderDetailInfo.fromJson(json), + ); + return value; + } + + @override + Future> refundReason(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>('reason/page', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json == "" ? null : RefundReasonList.fromJson(json), + ); + return value; + } + + @override + Future refundOrder(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + 'order/refundOrder', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json == null ? null : json, + ); + return value; + } + + @override + Future> productGroup(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + 'productGroup/page', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json == "" ? null : ProductGroupList.fromJson(json), + ); + return value; + } + + @override + Future> findAdminProductLis(param) async { + ArgumentError.checkNotNull(param, 'param'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + _data.addAll(param ?? {}); + final _result = await _dio.request>( + 'product/findAdminProductListNew', + queryParameters: queryParameters, + options: RequestOptions( + method: 'POST', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => json == "" ? null : BusinessGoods.fromJson(json), ); return value; } diff --git a/lib/retrofit/data/business_goods.dart b/lib/retrofit/data/business_goods.dart new file mode 100644 index 00000000..cf9d04f2 --- /dev/null +++ b/lib/retrofit/data/business_goods.dart @@ -0,0 +1,746 @@ +/// adminProductVOList : [{"id":"1699346530059681792","groupId":"1685961077201829888","groupName":"炸蚵嗲","productName":"盲盒","productImg":"https://pos.upload.lotus-wallet.com/1195/2023/09/662703cb-3711-4e96-8379-cdd868cd7803.jpg","price":"66.00","applyPrice":"66.00","stock":971,"sellCount":17,"status":1,"posShow":true,"deliveries":null,"ticketType":null,"ticketDays":null,"attrList":null,"productSkuVOList":[{"id":"1699346530126790656","createTime":"2023-09-06 16:59:20","createUser":"1684404021814624256","updateTime":"2023-09-06 16:59:20","updateUser":"1684404021814624256","storeId":"1645701646107279360","skuCode":"P202309061659192","skuNameStr":"","productId":"1699346530059681792","skuPrice":"66.00","applyPrice":"66.00","vipPrice":"66.00","packagingFee":"0.00","skuImg":null,"skuStock":971,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1699346530143567872","createTime":"2023-09-06 16:59:20","createUser":"1684404021814624256","updateTime":"2023-09-06 16:59:20","updateUser":"1684404021814624256","skuId":"1699346530126790656","attrId":"1699346530089041920","attrValueId":"1699346530101624832","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""}],"skuId":null,"details":"

盲盒

","thumbnailImg":"https://pos.upload.lotus-wallet.com/1195/2023/09/ea2ebd28-1cf1-4148-afde-11549901737a.jpg","info":"","tenantCode":"1195","sort":50,"subscribeParam":null,"storeId":"1645701646107279360"},{"id":"1694298535236730880","groupId":"1685961077201829888","groupName":"炸蚵嗲","productName":"炸渣喳","productImg":"https://pos.upload.lotus-wallet.com/1195/2023/08/55299291-2f2c-433b-b229-bb13fa40395d.jpg","price":"10.00","applyPrice":"12.00","stock":-4,"sellCount":1,"status":1,"posShow":true,"deliveries":null,"ticketType":null,"ticketDays":null,"attrList":null,"productSkuVOList":[{"id":"1694298535790379008","createTime":"2023-08-23 18:40:24","createUser":"1640233401329909760","updateTime":"2023-08-23 18:40:24","updateUser":"1640233401329909760","storeId":"1645701646107279360","skuCode":"P202308231840242","skuNameStr":"","productId":"1694298535236730880","skuPrice":"10.00","applyPrice":"12.00","vipPrice":"10.00","packagingFee":"0.00","skuImg":null,"skuStock":-4,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1694298535928791040","createTime":"2023-08-23 18:40:24","createUser":"1640233401329909760","updateTime":"2023-08-23 18:40:24","updateUser":"1640233401329909760","skuId":"1694298535790379008","attrId":"1694298535480000512","attrValueId":"1694298535610023936","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""}],"skuId":null,"details":"

炸渣喳

","thumbnailImg":"https://pos.upload.lotus-wallet.com/1195/2023/09/511d4e4d-50a3-4557-b3ad-c9562549d8d3.jpg","info":"","tenantCode":"1195","sort":2,"subscribeParam":null,"storeId":"1645701646107279360"},{"id":"1686917026729164800","groupId":"1685954754749923328","groupName":"洛神系列","productName":"金桂洛神饮","productImg":"https://pos.upload.lotus-wallet.com/1195/2023/08/3d5421f7-44b4-47aa-bf99-ed266e1c8bcf.jpg","price":"16.00","applyPrice":"16.00","stock":-16,"sellCount":16,"status":1,"posShow":true,"deliveries":null,"ticketType":null,"ticketDays":null,"attrList":null,"productSkuVOList":[{"id":"1699688137048981504","createTime":"2023-08-03 09:48:55","createUser":"1640233401329909760","updateTime":"2023-08-03 09:48:55","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030948556","skuNameStr":"700ml 正常冰 七分糖","productId":"1686917026729164800","skuPrice":"16.00","applyPrice":"16.00","vipPrice":"16.00","packagingFee":"0.00","skuImg":null,"skuStock":-1,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1699688137090924544","createTime":"2023-09-07 15:36:45","createUser":"1640233401329909760","updateTime":"2023-09-07 15:36:45","updateUser":"1640233401329909760","skuId":"1699688137048981504","attrId":"1686917026766913536","attrValueId":"1686917026783690752","sortOrder":null,"isDelete":0},{"id":"1699688137128673280","createTime":"2023-09-07 15:36:45","createUser":"1640233401329909760","updateTime":"2023-09-07 15:36:45","updateUser":"1640233401329909760","skuId":"1699688137048981504","attrId":"1686917026796273664","attrValueId":"1686917026813050880","sortOrder":null,"isDelete":0},{"id":"1699688137162227712","createTime":"2023-09-07 15:36:45","createUser":"1640233401329909760","updateTime":"2023-09-07 15:36:45","updateUser":"1640233401329909760","skuId":"1699688137048981504","attrId":"1687380121641549824","attrValueId":"1687380121670909952","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1699688137199976448","createTime":"2023-08-03 09:48:55","createUser":"1640233401329909760","updateTime":"2023-08-03 09:48:55","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030948556","skuNameStr":"700ml 正常冰 半糖","productId":"1686917026729164800","skuPrice":"16.00","applyPrice":"16.00","vipPrice":"16.00","packagingFee":"0.00","skuImg":null,"skuStock":-5,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1699688137233530880","createTime":"2023-09-07 15:36:45","createUser":"1640233401329909760","updateTime":"2023-09-07 15:36:45","updateUser":"1640233401329909760","skuId":"1699688137199976448","attrId":"1686917026766913536","attrValueId":"1686917026783690752","sortOrder":null,"isDelete":0},{"id":"1699688137267085312","createTime":"2023-09-07 15:36:45","createUser":"1640233401329909760","updateTime":"2023-09-07 15:36:45","updateUser":"1640233401329909760","skuId":"1699688137199976448","attrId":"1686917026796273664","attrValueId":"1686917026813050880","sortOrder":null,"isDelete":0},{"id":"1699688137296445440","createTime":"2023-09-07 15:36:45","createUser":"1640233401329909760","updateTime":"2023-09-07 15:36:45","updateUser":"1640233401329909760","skuId":"1699688137199976448","attrId":"1687380121641549824","attrValueId":"1687380121683492864","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1699688137329999872","createTime":"2023-08-03 09:48:55","createUser":"1640233401329909760","updateTime":"2023-08-03 09:48:55","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030948556","skuNameStr":"700ml 正常冰 无糖","productId":"1686917026729164800","skuPrice":"16.00","applyPrice":"16.00","vipPrice":"16.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1699688137371942912","createTime":"2023-09-07 15:36:45","createUser":"1640233401329909760","updateTime":"2023-09-07 15:36:45","updateUser":"1640233401329909760","skuId":"1699688137329999872","attrId":"1686917026766913536","attrValueId":"1686917026783690752","sortOrder":null,"isDelete":0},{"id":"1699688137405497344","createTime":"2023-09-07 15:36:45","createUser":"1640233401329909760","updateTime":"2023-09-07 15:36:45","updateUser":"1640233401329909760","skuId":"1699688137329999872","attrId":"1686917026796273664","attrValueId":"1686917026813050880","sortOrder":null,"isDelete":0},{"id":"1699688137439051776","createTime":"2023-09-07 15:36:45","createUser":"1640233401329909760","updateTime":"2023-09-07 15:36:45","updateUser":"1640233401329909760","skuId":"1699688137329999872","attrId":"1687380121641549824","attrValueId":"1687380121696075776","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1699688137472606208","createTime":"2023-08-03 09:48:55","createUser":"1640233401329909760","updateTime":"2023-08-03 09:48:55","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030948556","skuNameStr":"700ml 正常冰 正常糖","productId":"1686917026729164800","skuPrice":"16.00","applyPrice":"16.00","vipPrice":"16.00","packagingFee":"0.00","skuImg":null,"skuStock":-10,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1699688137510354944","createTime":"2023-09-07 15:36:45","createUser":"1640233401329909760","updateTime":"2023-09-07 15:36:45","updateUser":"1640233401329909760","skuId":"1699688137472606208","attrId":"1686917026766913536","attrValueId":"1686917026783690752","sortOrder":null,"isDelete":0},{"id":"1699688137543909376","createTime":"2023-09-07 15:36:45","createUser":"1640233401329909760","updateTime":"2023-09-07 15:36:45","updateUser":"1640233401329909760","skuId":"1699688137472606208","attrId":"1686917026796273664","attrValueId":"1686917026813050880","sortOrder":null,"isDelete":0},{"id":"1699688137577463808","createTime":"2023-09-07 15:36:45","createUser":"1640233401329909760","updateTime":"2023-09-07 15:36:45","updateUser":"1640233401329909760","skuId":"1699688137472606208","attrId":"1687380121641549824","attrValueId":"1687380121654132736","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""}],"skuId":null,"details":"","thumbnailImg":"","info":"","tenantCode":"1195","sort":50,"subscribeParam":null,"storeId":"1645692068967743488"},{"id":"1686916753784832000","groupId":"1685954754749923328","groupName":"洛神系列","productName":"洛神石榴","productImg":"https://pos.upload.lotus-wallet.com/1195/2023/08/95fa9d44-547b-4e75-a1d7-b3d8c2a176c1.jpg","price":"18.00","applyPrice":"18.00","stock":-3,"sellCount":3,"status":1,"posShow":true,"deliveries":null,"ticketType":null,"ticketDays":null,"attrList":null,"productSkuVOList":[{"id":"1689479897816236032","createTime":"2023-08-03 09:47:50","createUser":"1640233401329909760","updateTime":"2023-08-03 09:47:50","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030947503","skuNameStr":"700ml 温热 七分糖","productId":"1686916753784832000","skuPrice":"18.00","applyPrice":"18.00","vipPrice":"18.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689479897828818944","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897816236032","attrId":"1686916753818386432","attrValueId":"1686916753835163648","sortOrder":null,"isDelete":0},{"id":"1689479897837207552","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897816236032","attrId":"1686916753851940864","attrValueId":"1686916753885495296","sortOrder":null,"isDelete":0},{"id":"1689479897849790464","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897816236032","attrId":"1687380319453315072","attrValueId":"1687380319478480896","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689479897858179072","createTime":"2023-08-03 09:47:50","createUser":"1640233401329909760","updateTime":"2023-08-03 09:47:50","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030947503","skuNameStr":"700ml 温热 半糖","productId":"1686916753784832000","skuPrice":"18.00","applyPrice":"18.00","vipPrice":"18.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689479897870761984","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897858179072","attrId":"1686916753818386432","attrValueId":"1686916753835163648","sortOrder":null,"isDelete":0},{"id":"1689479897879150592","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897858179072","attrId":"1686916753851940864","attrValueId":"1686916753885495296","sortOrder":null,"isDelete":0},{"id":"1689479897887539200","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897858179072","attrId":"1687380319453315072","attrValueId":"1687380319495258112","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689479897900122112","createTime":"2023-08-03 09:47:50","createUser":"1640233401329909760","updateTime":"2023-08-03 09:47:50","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030947503","skuNameStr":"700ml 温热 无糖","productId":"1686916753784832000","skuPrice":"18.00","applyPrice":"18.00","vipPrice":"18.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689479897908510720","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897900122112","attrId":"1686916753818386432","attrValueId":"1686916753835163648","sortOrder":null,"isDelete":0},{"id":"1689479897916899328","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897900122112","attrId":"1686916753851940864","attrValueId":"1686916753885495296","sortOrder":null,"isDelete":0},{"id":"1689479897929482240","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897900122112","attrId":"1687380319453315072","attrValueId":"1687380319507841024","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689479897937870848","createTime":"2023-08-03 09:47:50","createUser":"1640233401329909760","updateTime":"2023-08-03 09:47:50","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030947503","skuNameStr":"700ml 温热 正常糖","productId":"1686916753784832000","skuPrice":"18.00","applyPrice":"18.00","vipPrice":"18.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689479897950453760","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897937870848","attrId":"1686916753818386432","attrValueId":"1686916753835163648","sortOrder":null,"isDelete":0},{"id":"1689479897963036672","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897937870848","attrId":"1686916753851940864","attrValueId":"1686916753885495296","sortOrder":null,"isDelete":0},{"id":"1689479897971425280","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897937870848","attrId":"1687380319453315072","attrValueId":"1687380319465897984","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689479897979813888","createTime":"2023-08-03 09:47:50","createUser":"1640233401329909760","updateTime":"2023-08-03 09:47:50","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030947502","skuNameStr":"700ml 正常冰 七分糖","productId":"1686916753784832000","skuPrice":"18.00","applyPrice":"18.00","vipPrice":"18.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689479897992396800","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897979813888","attrId":"1686916753818386432","attrValueId":"1686916753835163648","sortOrder":null,"isDelete":0},{"id":"1689479898000785408","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897979813888","attrId":"1686916753851940864","attrValueId":"1686916753868718080","sortOrder":null,"isDelete":0},{"id":"1689479898013368320","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479897979813888","attrId":"1687380319453315072","attrValueId":"1687380319478480896","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689479898025951232","createTime":"2023-08-03 09:47:50","createUser":"1640233401329909760","updateTime":"2023-08-03 09:47:50","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030947502","skuNameStr":"700ml 正常冰 半糖","productId":"1686916753784832000","skuPrice":"18.00","applyPrice":"18.00","vipPrice":"18.00","packagingFee":"0.00","skuImg":null,"skuStock":-1,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689479898034339840","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479898025951232","attrId":"1686916753818386432","attrValueId":"1686916753835163648","sortOrder":null,"isDelete":0},{"id":"1689479898046922752","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479898025951232","attrId":"1686916753851940864","attrValueId":"1686916753868718080","sortOrder":null,"isDelete":0},{"id":"1689479898055311360","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479898025951232","attrId":"1687380319453315072","attrValueId":"1687380319495258112","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689479898067894272","createTime":"2023-08-03 09:47:50","createUser":"1640233401329909760","updateTime":"2023-08-03 09:47:50","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030947502","skuNameStr":"700ml 正常冰 无糖","productId":"1686916753784832000","skuPrice":"18.00","applyPrice":"18.00","vipPrice":"18.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689479898076282880","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479898067894272","attrId":"1686916753818386432","attrValueId":"1686916753835163648","sortOrder":null,"isDelete":0},{"id":"1689479898084671488","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479898067894272","attrId":"1686916753851940864","attrValueId":"1686916753868718080","sortOrder":null,"isDelete":0},{"id":"1689479898097254400","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479898067894272","attrId":"1687380319453315072","attrValueId":"1687380319507841024","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689479898105643008","createTime":"2023-08-03 09:47:50","createUser":"1640233401329909760","updateTime":"2023-08-03 09:47:50","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030947502","skuNameStr":"700ml 正常冰 正常糖","productId":"1686916753784832000","skuPrice":"18.00","applyPrice":"18.00","vipPrice":"18.00","packagingFee":"0.00","skuImg":null,"skuStock":-2,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689479898118225920","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479898105643008","attrId":"1686916753818386432","attrValueId":"1686916753835163648","sortOrder":null,"isDelete":0},{"id":"1689479898126614528","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479898105643008","attrId":"1686916753851940864","attrValueId":"1686916753868718080","sortOrder":null,"isDelete":0},{"id":"1689479898139197440","createTime":"2023-08-10 11:32:51","createUser":"1684404021814624256","updateTime":"2023-08-10 11:32:51","updateUser":"1684404021814624256","skuId":"1689479898105643008","attrId":"1687380319453315072","attrValueId":"1687380319465897984","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""}],"skuId":null,"details":"","thumbnailImg":"","info":"","tenantCode":"1195","sort":50,"subscribeParam":null,"storeId":"1645692068967743488"},{"id":"1686916416009142272","groupId":"1685954754749923328","groupName":"洛神系列","productName":"洛神西柚珍珠","productImg":"https://pos.upload.lotus-wallet.com/1195/2023/08/6d8bf4f2-4b42-4169-b4fb-34c9572e6962.jpg","price":"22.00","applyPrice":"22.00","stock":-6,"sellCount":5,"status":1,"posShow":true,"deliveries":null,"ticketType":null,"ticketDays":null,"attrList":null,"productSkuVOList":[{"id":"1689480126095425536","createTime":"2023-08-03 09:46:30","createUser":"1640233401329909760","updateTime":"2023-08-03 09:46:30","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030946293","skuNameStr":"700ml 温热 七分糖","productId":"1686916416009142272","skuPrice":"22.00","applyPrice":"22.00","vipPrice":"22.00","packagingFee":"0.00","skuImg":null,"skuStock":-1,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480126108008448","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126095425536","attrId":"1686916416055279616","attrValueId":"1686916416076251136","sortOrder":null,"isDelete":0},{"id":"1689480126120591360","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126095425536","attrId":"1686916416093028352","attrValueId":"1686916416126582784","sortOrder":null,"isDelete":0},{"id":"1689480126128979968","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126095425536","attrId":"1687380476005711872","attrValueId":"1687380476035072000","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480126141562880","createTime":"2023-08-03 09:46:30","createUser":"1640233401329909760","updateTime":"2023-08-03 09:46:30","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030946293","skuNameStr":"700ml 温热 无糖","productId":"1686916416009142272","skuPrice":"22.00","applyPrice":"22.00","vipPrice":"22.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480126154145792","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126141562880","attrId":"1686916416055279616","attrValueId":"1686916416076251136","sortOrder":null,"isDelete":0},{"id":"1689480126162534400","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126141562880","attrId":"1686916416093028352","attrValueId":"1686916416126582784","sortOrder":null,"isDelete":0},{"id":"1689480126175117312","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126141562880","attrId":"1687380476005711872","attrValueId":"1687380476051849216","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480126183505920","createTime":"2023-08-03 09:46:30","createUser":"1640233401329909760","updateTime":"2023-08-03 09:46:30","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030946293","skuNameStr":"700ml 温热 半糖","productId":"1686916416009142272","skuPrice":"22.00","applyPrice":"22.00","vipPrice":"22.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480126196088832","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126183505920","attrId":"1686916416055279616","attrValueId":"1686916416076251136","sortOrder":null,"isDelete":0},{"id":"1689480126204477440","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126183505920","attrId":"1686916416093028352","attrValueId":"1686916416126582784","sortOrder":null,"isDelete":0},{"id":"1689480126217060352","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126183505920","attrId":"1687380476005711872","attrValueId":"1687380476068626432","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480126225448960","createTime":"2023-08-03 09:46:30","createUser":"1640233401329909760","updateTime":"2023-08-03 09:46:30","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030946293","skuNameStr":"700ml 温热 正常糖","productId":"1686916416009142272","skuPrice":"22.00","applyPrice":"22.00","vipPrice":"22.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480126238031872","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126225448960","attrId":"1686916416055279616","attrValueId":"1686916416076251136","sortOrder":null,"isDelete":0},{"id":"1689480126246420480","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126225448960","attrId":"1686916416093028352","attrValueId":"1686916416126582784","sortOrder":null,"isDelete":0},{"id":"1689480126259003392","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126225448960","attrId":"1687380476005711872","attrValueId":"1687380476018294784","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480126267392000","createTime":"2023-08-03 09:46:30","createUser":"1640233401329909760","updateTime":"2023-08-03 09:46:30","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030946292","skuNameStr":"700ml 正常冰 七分糖","productId":"1686916416009142272","skuPrice":"22.00","applyPrice":"22.00","vipPrice":"22.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480126279974912","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126267392000","attrId":"1686916416055279616","attrValueId":"1686916416076251136","sortOrder":null,"isDelete":0},{"id":"1689480126347083776","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126267392000","attrId":"1686916416093028352","attrValueId":"1686916416109805568","sortOrder":null,"isDelete":0},{"id":"1689480126355472384","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126267392000","attrId":"1687380476005711872","attrValueId":"1687380476035072000","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480126368055296","createTime":"2023-08-03 09:46:30","createUser":"1640233401329909760","updateTime":"2023-08-03 09:46:30","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030946292","skuNameStr":"700ml 正常冰 无糖","productId":"1686916416009142272","skuPrice":"22.00","applyPrice":"22.00","vipPrice":"22.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480126376443904","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126368055296","attrId":"1686916416055279616","attrValueId":"1686916416076251136","sortOrder":null,"isDelete":0},{"id":"1689480126384832512","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126368055296","attrId":"1686916416093028352","attrValueId":"1686916416109805568","sortOrder":null,"isDelete":0},{"id":"1689480126397415424","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126368055296","attrId":"1687380476005711872","attrValueId":"1687380476051849216","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480126405804032","createTime":"2023-08-03 09:46:30","createUser":"1640233401329909760","updateTime":"2023-08-03 09:46:30","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030946292","skuNameStr":"700ml 正常冰 半糖","productId":"1686916416009142272","skuPrice":"22.00","applyPrice":"22.00","vipPrice":"22.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480126414192640","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126405804032","attrId":"1686916416055279616","attrValueId":"1686916416076251136","sortOrder":null,"isDelete":0},{"id":"1689480126426775552","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126405804032","attrId":"1686916416093028352","attrValueId":"1686916416109805568","sortOrder":null,"isDelete":0},{"id":"1689480126435164160","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126405804032","attrId":"1687380476005711872","attrValueId":"1687380476068626432","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480126447747072","createTime":"2023-08-03 09:46:30","createUser":"1640233401329909760","updateTime":"2023-08-03 09:46:30","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030946292","skuNameStr":"700ml 正常冰 正常糖","productId":"1686916416009142272","skuPrice":"22.00","applyPrice":"22.00","vipPrice":"22.00","packagingFee":"0.00","skuImg":null,"skuStock":-4,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480126456135680","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126447747072","attrId":"1686916416055279616","attrValueId":"1686916416076251136","sortOrder":null,"isDelete":0},{"id":"1689480126468718592","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126447747072","attrId":"1686916416093028352","attrValueId":"1686916416109805568","sortOrder":null,"isDelete":0},{"id":"1689480126477107200","createTime":"2023-08-10 11:33:46","createUser":"1684404021814624256","updateTime":"2023-08-10 11:33:46","updateUser":"1684404021814624256","skuId":"1689480126447747072","attrId":"1687380476005711872","attrValueId":"1687380476018294784","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""}],"skuId":null,"details":"","thumbnailImg":"","info":"","tenantCode":"1195","sort":50,"subscribeParam":null,"storeId":"1645692068967743488"},{"id":"1686915917314785280","groupId":"1685954754749923328","groupName":"洛神系列","productName":"洛神橙子","productImg":"https://pos.upload.lotus-wallet.com/1195/2023/08/4ba9e0d3-cf26-41a0-89b0-2992489d35ea.jpg","price":"24.00","applyPrice":"24.00","stock":-2,"sellCount":2,"status":1,"posShow":true,"deliveries":null,"ticketType":null,"ticketDays":null,"attrList":null,"productSkuVOList":[{"id":"1689480286888263680","createTime":"2023-08-03 09:44:31","createUser":"1640233401329909760","updateTime":"2023-08-03 09:44:31","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030944303","skuNameStr":"700ml 温热 七分糖","productId":"1686915917314785280","skuPrice":"24.00","applyPrice":"24.00","vipPrice":"24.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480286900846592","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480286888263680","attrId":"1686915917620969472","attrValueId":"1686915917679689728","sortOrder":null,"isDelete":0},{"id":"1689480286913429504","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480286888263680","attrId":"1686915917709049856","attrValueId":"1686915917767770112","sortOrder":null,"isDelete":0},{"id":"1689480286921818112","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480286888263680","attrId":"1687380652158091264","attrValueId":"1687380652183257088","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480286934401024","createTime":"2023-08-03 09:44:31","createUser":"1640233401329909760","updateTime":"2023-08-03 09:44:31","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030944303","skuNameStr":"700ml 温热 半糖","productId":"1686915917314785280","skuPrice":"24.00","applyPrice":"24.00","vipPrice":"24.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480286942789632","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480286934401024","attrId":"1686915917620969472","attrValueId":"1686915917679689728","sortOrder":null,"isDelete":0},{"id":"1689480286951178240","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480286934401024","attrId":"1686915917709049856","attrValueId":"1686915917767770112","sortOrder":null,"isDelete":0},{"id":"1689480286963761152","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480286934401024","attrId":"1687380652158091264","attrValueId":"1687380652195840000","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480286972149760","createTime":"2023-08-03 09:44:31","createUser":"1640233401329909760","updateTime":"2023-08-03 09:44:31","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030944303","skuNameStr":"700ml 温热 无糖","productId":"1686915917314785280","skuPrice":"24.00","applyPrice":"24.00","vipPrice":"24.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480286980538368","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480286972149760","attrId":"1686915917620969472","attrValueId":"1686915917679689728","sortOrder":null,"isDelete":0},{"id":"1689480286997315584","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480286972149760","attrId":"1686915917709049856","attrValueId":"1686915917767770112","sortOrder":null,"isDelete":0},{"id":"1689480287005704192","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480286972149760","attrId":"1687380652158091264","attrValueId":"1687380652204228608","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480287014092800","createTime":"2023-08-03 09:44:31","createUser":"1640233401329909760","updateTime":"2023-08-03 09:44:31","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030944303","skuNameStr":"700ml 温热 正常糖","productId":"1686915917314785280","skuPrice":"24.00","applyPrice":"24.00","vipPrice":"24.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480287026675712","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287014092800","attrId":"1686915917620969472","attrValueId":"1686915917679689728","sortOrder":null,"isDelete":0},{"id":"1689480287035064320","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287014092800","attrId":"1686915917709049856","attrValueId":"1686915917767770112","sortOrder":null,"isDelete":0},{"id":"1689480287047647232","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287014092800","attrId":"1687380652158091264","attrValueId":"1687380652170674176","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480287060230144","createTime":"2023-08-03 09:44:31","createUser":"1640233401329909760","updateTime":"2023-08-03 09:44:31","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030944302","skuNameStr":"700ml 正常冰 七分糖","productId":"1686915917314785280","skuPrice":"24.00","applyPrice":"24.00","vipPrice":"24.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480287068618752","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287060230144","attrId":"1686915917620969472","attrValueId":"1686915917679689728","sortOrder":null,"isDelete":0},{"id":"1689480287077007360","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287060230144","attrId":"1686915917709049856","attrValueId":"1686915917738409984","sortOrder":null,"isDelete":0},{"id":"1689480287089590272","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287060230144","attrId":"1687380652158091264","attrValueId":"1687380652183257088","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480287097978880","createTime":"2023-08-03 09:44:31","createUser":"1640233401329909760","updateTime":"2023-08-03 09:44:31","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030944302","skuNameStr":"700ml 正常冰 半糖","productId":"1686915917314785280","skuPrice":"24.00","applyPrice":"24.00","vipPrice":"24.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480287106367488","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287097978880","attrId":"1686915917620969472","attrValueId":"1686915917679689728","sortOrder":null,"isDelete":0},{"id":"1689480287118950400","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287097978880","attrId":"1686915917709049856","attrValueId":"1686915917738409984","sortOrder":null,"isDelete":0},{"id":"1689480287127339008","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287097978880","attrId":"1687380652158091264","attrValueId":"1687380652195840000","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480287135727616","createTime":"2023-08-03 09:44:31","createUser":"1640233401329909760","updateTime":"2023-08-03 09:44:31","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030944302","skuNameStr":"700ml 正常冰 无糖","productId":"1686915917314785280","skuPrice":"24.00","applyPrice":"24.00","vipPrice":"24.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480287148310528","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287135727616","attrId":"1686915917620969472","attrValueId":"1686915917679689728","sortOrder":null,"isDelete":0},{"id":"1689480287156699136","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287135727616","attrId":"1686915917709049856","attrValueId":"1686915917738409984","sortOrder":null,"isDelete":0},{"id":"1689480287169282048","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287135727616","attrId":"1687380652158091264","attrValueId":"1687380652204228608","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480287177670656","createTime":"2023-08-03 09:44:31","createUser":"1640233401329909760","updateTime":"2023-08-03 09:44:31","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202308030944302","skuNameStr":"700ml 正常冰 正常糖","productId":"1686915917314785280","skuPrice":"24.00","applyPrice":"24.00","vipPrice":"24.00","packagingFee":"0.00","skuImg":null,"skuStock":-2,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480287194447872","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287177670656","attrId":"1686915917620969472","attrValueId":"1686915917679689728","sortOrder":null,"isDelete":0},{"id":"1689480287202836480","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287177670656","attrId":"1686915917709049856","attrValueId":"1686915917738409984","sortOrder":null,"isDelete":0},{"id":"1689480287211225088","createTime":"2023-08-10 11:34:24","createUser":"1684404021814624256","updateTime":"2023-08-10 11:34:24","updateUser":"1684404021814624256","skuId":"1689480287177670656","attrId":"1687380652158091264","attrValueId":"1687380652170674176","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""}],"skuId":null,"details":"","thumbnailImg":"","info":"","tenantCode":"1195","sort":50,"subscribeParam":null,"storeId":"1645692068967743488"},{"id":"1685983095355867136","groupId":"1685954754749923328","groupName":"洛神系列","productName":"洛神陈皮柠檬茶","productImg":"https://pos.upload.lotus-wallet.com/1195/2023/08/d0d354e5-85c3-4903-ab22-e61582dae6df.jpg","price":"20.00","applyPrice":"20.00","stock":-6,"sellCount":6,"status":1,"posShow":true,"deliveries":null,"ticketType":null,"ticketDays":null,"attrList":null,"productSkuVOList":[{"id":"1689480485010407424","createTime":"2023-07-31 19:57:49","createUser":"1640233401329909760","updateTime":"2023-07-31 19:57:49","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202307311957482","skuNameStr":"500ml 正常冰 七分糖","productId":"1685983095355867136","skuPrice":"20.00","applyPrice":"20.00","vipPrice":"20.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480485018796032","createTime":"2023-08-10 11:35:11","createUser":"1684404021814624256","updateTime":"2023-08-10 11:35:11","updateUser":"1684404021814624256","skuId":"1689480485010407424","attrId":"1685983095381032960","attrValueId":"1685983095393615872","sortOrder":null,"isDelete":0},{"id":"1689480485031378944","createTime":"2023-08-10 11:35:11","createUser":"1684404021814624256","updateTime":"2023-08-10 11:35:11","updateUser":"1684404021814624256","skuId":"1689480485010407424","attrId":"1685983095406198784","attrValueId":"1685983095414587392","sortOrder":null,"isDelete":0},{"id":"1689480485039767552","createTime":"2023-08-10 11:35:11","createUser":"1684404021814624256","updateTime":"2023-08-10 11:35:11","updateUser":"1684404021814624256","skuId":"1689480485010407424","attrId":"1687380804960780288","attrValueId":"1687380804985946112","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480485052350464","createTime":"2023-07-31 19:57:49","createUser":"1640233401329909760","updateTime":"2023-07-31 19:57:49","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202307311957482","skuNameStr":"500ml 正常冰 无糖","productId":"1685983095355867136","skuPrice":"20.00","applyPrice":"20.00","vipPrice":"20.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480485064933376","createTime":"2023-08-10 11:35:11","createUser":"1684404021814624256","updateTime":"2023-08-10 11:35:11","updateUser":"1684404021814624256","skuId":"1689480485052350464","attrId":"1685983095381032960","attrValueId":"1685983095393615872","sortOrder":null,"isDelete":0},{"id":"1689480485073321984","createTime":"2023-08-10 11:35:11","createUser":"1684404021814624256","updateTime":"2023-08-10 11:35:11","updateUser":"1684404021814624256","skuId":"1689480485052350464","attrId":"1685983095406198784","attrValueId":"1685983095414587392","sortOrder":null,"isDelete":0},{"id":"1689480485085904896","createTime":"2023-08-10 11:35:11","createUser":"1684404021814624256","updateTime":"2023-08-10 11:35:11","updateUser":"1684404021814624256","skuId":"1689480485052350464","attrId":"1687380804960780288","attrValueId":"1687380804998529024","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480485094293504","createTime":"2023-07-31 19:57:49","createUser":"1640233401329909760","updateTime":"2023-07-31 19:57:49","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202307311957482","skuNameStr":"500ml 正常冰 半糖","productId":"1685983095355867136","skuPrice":"20.00","applyPrice":"20.00","vipPrice":"20.00","packagingFee":"0.00","skuImg":null,"skuStock":-1,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480485106876416","createTime":"2023-08-10 11:35:11","createUser":"1684404021814624256","updateTime":"2023-08-10 11:35:11","updateUser":"1684404021814624256","skuId":"1689480485094293504","attrId":"1685983095381032960","attrValueId":"1685983095393615872","sortOrder":null,"isDelete":0},{"id":"1689480485119459328","createTime":"2023-08-10 11:35:11","createUser":"1684404021814624256","updateTime":"2023-08-10 11:35:11","updateUser":"1684404021814624256","skuId":"1689480485094293504","attrId":"1685983095406198784","attrValueId":"1685983095414587392","sortOrder":null,"isDelete":0},{"id":"1689480485127847936","createTime":"2023-08-10 11:35:11","createUser":"1684404021814624256","updateTime":"2023-08-10 11:35:11","updateUser":"1684404021814624256","skuId":"1689480485094293504","attrId":"1687380804960780288","attrValueId":"1687380805011111936","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1689480485136236544","createTime":"2023-07-31 19:57:49","createUser":"1640233401329909760","updateTime":"2023-07-31 19:57:49","updateUser":"1640233401329909760","storeId":"1645692068967743488","skuCode":"P202307311957482","skuNameStr":"500ml 正常冰 正常糖","productId":"1685983095355867136","skuPrice":"20.00","applyPrice":"20.00","vipPrice":"20.00","packagingFee":"0.00","skuImg":null,"skuStock":-5,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1689480485148819456","createTime":"2023-08-10 11:35:11","createUser":"1684404021814624256","updateTime":"2023-08-10 11:35:11","updateUser":"1684404021814624256","skuId":"1689480485136236544","attrId":"1685983095381032960","attrValueId":"1685983095393615872","sortOrder":null,"isDelete":0},{"id":"1689480485161402368","createTime":"2023-08-10 11:35:11","createUser":"1684404021814624256","updateTime":"2023-08-10 11:35:11","updateUser":"1684404021814624256","skuId":"1689480485136236544","attrId":"1685983095406198784","attrValueId":"1685983095414587392","sortOrder":null,"isDelete":0},{"id":"1689480485169790976","createTime":"2023-08-10 11:35:11","createUser":"1684404021814624256","updateTime":"2023-08-10 11:35:11","updateUser":"1684404021814624256","skuId":"1689480485136236544","attrId":"1687380804960780288","attrValueId":"1687380804973363200","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""}],"skuId":null,"details":"","thumbnailImg":"","info":"","tenantCode":"1195","sort":50,"subscribeParam":null,"storeId":"1645692068967743488"},{"id":"1685981887526338560","groupId":"1685954754749923328","groupName":"洛神系列","productName":"洛神葡萄","productImg":"https://pos.upload.lotus-wallet.com/1195/2023/08/7a1dff40-42c1-45da-8d30-28fbaabeb6c7.jpg","price":"20.00","applyPrice":"20.00","stock":0,"sellCount":5,"status":1,"posShow":true,"deliveries":null,"ticketType":null,"ticketDays":null,"attrList":null,"productSkuVOList":[{"id":"1697167406587183104","createTime":"2023-08-10 11:38:30","createUser":"1684404021814624256","updateTime":"2023-08-10 11:38:30","updateUser":"1684404021814624256","storeId":"1645692068967743488","skuCode":"P202308101138297","skuNameStr":"700ml 七分糖 少冰","productId":"1685981887526338560","skuPrice":"20.00","applyPrice":"20.00","vipPrice":"20.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":null,"productSetMeals":null,"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":null,"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1697167406620737536","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406587183104","attrId":"1685981887555698688","attrValueId":"1685981887568281600","sortOrder":null,"isDelete":0},{"id":"1697167406641709056","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406587183104","attrId":"1687381067566153728","attrValueId":"1687381067591319552","sortOrder":null,"isDelete":0},{"id":"1697167406662680576","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406587183104","attrId":"1689481317248401408","attrValueId":"1689481317273567232","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1697167406687846400","createTime":"2023-08-10 11:38:30","createUser":"1684404021814624256","updateTime":"2023-08-10 11:38:30","updateUser":"1684404021814624256","storeId":"1645692068967743488","skuCode":"P202308101138294","skuNameStr":"700ml 七分糖 正常冰","productId":"1685981887526338560","skuPrice":"20.00","applyPrice":"20.00","vipPrice":"20.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":null,"productSetMeals":null,"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":null,"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1697167406713012224","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406687846400","attrId":"1685981887555698688","attrValueId":"1685981887568281600","sortOrder":null,"isDelete":0},{"id":"1697167406738178048","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406687846400","attrId":"1687381067566153728","attrValueId":"1687381067591319552","sortOrder":null,"isDelete":0},{"id":"1697167406763343872","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406687846400","attrId":"1689481317248401408","attrValueId":"1689481317260984320","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1697167406788509696","createTime":"2023-08-10 11:38:30","createUser":"1684404021814624256","updateTime":"2023-08-10 11:38:30","updateUser":"1684404021814624256","storeId":"1645692068967743488","skuCode":"P202308101138297","skuNameStr":"700ml 无糖 少冰","productId":"1685981887526338560","skuPrice":"20.00","applyPrice":"20.00","vipPrice":"20.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":null,"productSetMeals":null,"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":null,"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1697167406813675520","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406788509696","attrId":"1685981887555698688","attrValueId":"1685981887568281600","sortOrder":null,"isDelete":0},{"id":"1697167406838841344","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406788509696","attrId":"1687381067566153728","attrValueId":"1687381067603902464","sortOrder":null,"isDelete":0},{"id":"1697167406859812864","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406788509696","attrId":"1689481317248401408","attrValueId":"1689481317273567232","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1697167406889172992","createTime":"2023-08-10 11:38:30","createUser":"1684404021814624256","updateTime":"2023-08-10 11:38:30","updateUser":"1684404021814624256","storeId":"1645692068967743488","skuCode":"P202308101138294","skuNameStr":"700ml 无糖 正常冰","productId":"1685981887526338560","skuPrice":"20.00","applyPrice":"20.00","vipPrice":"20.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":null,"productSetMeals":null,"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":null,"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1697167406914338816","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406889172992","attrId":"1685981887555698688","attrValueId":"1685981887568281600","sortOrder":null,"isDelete":0},{"id":"1697167406935310336","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406889172992","attrId":"1687381067566153728","attrValueId":"1687381067603902464","sortOrder":null,"isDelete":0},{"id":"1697167406960476160","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406889172992","attrId":"1689481317248401408","attrValueId":"1689481317260984320","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1697167406981447680","createTime":"2023-08-10 11:38:30","createUser":"1684404021814624256","updateTime":"2023-08-10 11:38:30","updateUser":"1684404021814624256","storeId":"1645692068967743488","skuCode":"P202308101138297","skuNameStr":"700ml 半糖 少冰","productId":"1685981887526338560","skuPrice":"20.00","applyPrice":"20.00","vipPrice":"20.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":null,"productSetMeals":null,"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":null,"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1697167407006613504","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406981447680","attrId":"1685981887555698688","attrValueId":"1685981887568281600","sortOrder":null,"isDelete":0},{"id":"1697167407031779328","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406981447680","attrId":"1687381067566153728","attrValueId":"1687381067616485376","sortOrder":null,"isDelete":0},{"id":"1697167407052750848","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167406981447680","attrId":"1689481317248401408","attrValueId":"1689481317273567232","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1697167407077916672","createTime":"2023-08-10 11:38:30","createUser":"1684404021814624256","updateTime":"2023-08-10 11:38:30","updateUser":"1684404021814624256","storeId":"1645692068967743488","skuCode":"P202308101138294","skuNameStr":"700ml 半糖 正常冰","productId":"1685981887526338560","skuPrice":"20.00","applyPrice":"20.00","vipPrice":"20.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":null,"productSetMeals":null,"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":null,"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1697167407103082496","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167407077916672","attrId":"1685981887555698688","attrValueId":"1685981887568281600","sortOrder":null,"isDelete":0},{"id":"1697167407128248320","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167407077916672","attrId":"1687381067566153728","attrValueId":"1687381067616485376","sortOrder":null,"isDelete":0},{"id":"1697167407149219840","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167407077916672","attrId":"1689481317248401408","attrValueId":"1689481317260984320","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1697167407178579968","createTime":"2023-08-10 11:38:30","createUser":"1684404021814624256","updateTime":"2023-08-10 11:38:30","updateUser":"1684404021814624256","storeId":"1645692068967743488","skuCode":"P202308101138297","skuNameStr":"700ml 正常糖 少冰","productId":"1685981887526338560","skuPrice":"20.00","applyPrice":"20.00","vipPrice":"20.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":null,"productSetMeals":null,"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":null,"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1697167407195357184","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167407178579968","attrId":"1685981887555698688","attrValueId":"1685981887568281600","sortOrder":null,"isDelete":0},{"id":"1697167407216328704","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167407178579968","attrId":"1687381067566153728","attrValueId":"1687381067578736640","sortOrder":null,"isDelete":0},{"id":"1697167407241494528","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167407178579968","attrId":"1689481317248401408","attrValueId":"1689481317273567232","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""},{"id":"1697167407262466048","createTime":"2023-08-10 11:38:30","createUser":"1684404021814624256","updateTime":"2023-08-10 11:38:30","updateUser":"1684404021814624256","storeId":"1645692068967743488","skuCode":"P202308101138294","skuNameStr":"700ml 正常糖 正常冰","productId":"1685981887526338560","skuPrice":"20.00","applyPrice":"20.00","vipPrice":"20.00","packagingFee":"0.00","skuImg":null,"skuStock":0,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":null,"productSetMeals":null,"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":null,"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1697167407287631872","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167407262466048","attrId":"1685981887555698688","attrValueId":"1685981887568281600","sortOrder":null,"isDelete":0},{"id":"1697167407308603392","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167407262466048","attrId":"1687381067566153728","attrValueId":"1687381067578736640","sortOrder":null,"isDelete":0},{"id":"1697167407333769216","createTime":"2023-08-31 16:40:16","createUser":"1640233401329909760","updateTime":"2023-08-31 16:40:16","updateUser":"1640233401329909760","skuId":"1697167407262466048","attrId":"1689481317248401408","attrValueId":"1689481317260984320","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""}],"skuId":null,"details":"","thumbnailImg":"","info":"","tenantCode":"1195","sort":50,"subscribeParam":null,"storeId":"1645692068967743488"},{"id":"1685960730966228992","groupId":"1685960192186908672","groupName":"披萨","productName":"玛格丽特披萨","productImg":"https://pos.upload.lotus-wallet.com/1195/2023/07/18919dbc-2d38-4d4d-8854-6c99ef6b4131.png","price":"29.00","applyPrice":"29.00","stock":-1,"sellCount":1,"status":1,"posShow":true,"deliveries":null,"ticketType":null,"ticketDays":null,"attrList":null,"productSkuVOList":[{"id":"1685960731024949248","createTime":"2023-07-31 18:28:57","createUser":"1640233401329909760","updateTime":"2023-07-31 18:28:57","updateUser":"1640233401329909760","storeId":"1645326338908749824","skuCode":"P202307311828562","skuNameStr":"","productId":"1685960730966228992","skuPrice":"29.00","applyPrice":"29.00","vipPrice":"14.50","packagingFee":"2.00","skuImg":null,"skuStock":-1,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1685960731037532160","createTime":"2023-07-31 18:28:57","createUser":"1640233401329909760","updateTime":"2023-07-31 18:28:57","updateUser":"1640233401329909760","skuId":"1685960731024949248","attrId":"1685960730995589120","attrValueId":"1685960731008172032","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""}],"skuId":null,"details":"","thumbnailImg":"","info":"","tenantCode":"1195","sort":50,"subscribeParam":null,"storeId":"1645326338908749824"},{"id":"1685960553366814720","groupId":"1685960192186908672","groupName":"披萨","productName":"黑椒菌菇披萨","productImg":"https://pos.upload.lotus-wallet.com/1195/2023/07/f70ecd51-d8a1-4c86-8fa0-61eb6562d304.png","price":"29.00","applyPrice":"29.00","stock":-2,"sellCount":1,"status":1,"posShow":true,"deliveries":null,"ticketType":null,"ticketDays":null,"attrList":null,"productSkuVOList":[{"id":"1685960553421340672","createTime":"2023-07-31 18:28:14","createUser":"1640233401329909760","updateTime":"2023-07-31 18:28:14","updateUser":"1640233401329909760","storeId":"1645326338908749824","skuCode":"P202307311828148","skuNameStr":"","productId":"1685960553366814720","skuPrice":"29.00","applyPrice":"29.00","vipPrice":"29.00","packagingFee":"0.00","skuImg":null,"skuStock":-2,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1685960553442312192","createTime":"2023-07-31 18:28:14","createUser":"1640233401329909760","updateTime":"2023-07-31 18:28:14","updateUser":"1640233401329909760","skuId":"1685960553421340672","attrId":"1685960553391980544","attrValueId":"1685960553404563456","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""}],"skuId":null,"details":"","thumbnailImg":"","info":"","tenantCode":"1195","sort":1,"subscribeParam":null,"storeId":"1645326338908749824"}] +/// total : 121 + +class BusinessGoods { + BusinessGoods({ + List adminProductVOList, + num total,}){ + _adminProductVOList = adminProductVOList; + _total = total; +} + + BusinessGoods.fromJson(dynamic json) { + if (json['adminProductVOList'] != null) { + _adminProductVOList = []; + json['adminProductVOList'].forEach((v) { + _adminProductVOList.add(AdminProductVoList.fromJson(v)); + }); + } + _total = json['total']; + } + List _adminProductVOList; + num _total; +BusinessGoods copyWith({ List adminProductVOList, + num total, +}) => BusinessGoods( adminProductVOList: adminProductVOList ?? _adminProductVOList, + total: total ?? _total, +); + List get adminProductVOList => _adminProductVOList; + num get total => _total; + + Map toJson() { + final map = {}; + if (_adminProductVOList != null) { + map['adminProductVOList'] = _adminProductVOList.map((v) => v.toJson()).toList(); + } + map['total'] = _total; + return map; + } + +} + +/// id : "1699346530059681792" +/// groupId : "1685961077201829888" +/// groupName : "炸蚵嗲" +/// productName : "盲盒" +/// productImg : "https://pos.upload.lotus-wallet.com/1195/2023/09/662703cb-3711-4e96-8379-cdd868cd7803.jpg" +/// price : "66.00" +/// applyPrice : "66.00" +/// stock : 971 +/// sellCount : 17 +/// status : 1 +/// posShow : true +/// deliveries : null +/// ticketType : null +/// ticketDays : null +/// attrList : null +/// productSkuVOList : [{"id":"1699346530126790656","createTime":"2023-09-06 16:59:20","createUser":"1684404021814624256","updateTime":"2023-09-06 16:59:20","updateUser":"1684404021814624256","storeId":"1645701646107279360","skuCode":"P202309061659192","skuNameStr":"","productId":"1699346530059681792","skuPrice":"66.00","applyPrice":"66.00","vipPrice":"66.00","packagingFee":"0.00","skuImg":null,"skuStock":971,"autoRenewSkuStock":0,"deliveries":0,"ticketType":"","ticketWipedTimeTemplateId":null,"takeType":null,"ticketDays":"0","ticketExpireTime":"23:59:59","sort":50,"setMeal":"","productSetMeals":[],"weight":0.0,"volume":0.0,"isDelete":0,"material":null,"version":0,"skuTickets":[],"ticketStyle":"","skuAttrCodeDTOList":null,"skuAttrList":[{"id":"1699346530143567872","createTime":"2023-09-06 16:59:20","createUser":"1684404021814624256","updateTime":"2023-09-06 16:59:20","updateUser":"1684404021814624256","skuId":"1699346530126790656","attrId":"1699346530089041920","attrValueId":"1699346530101624832","sortOrder":null,"isDelete":0}],"setMealDTOList":null,"discountPrice":""}] +/// skuId : null +/// details : "

盲盒

" +/// thumbnailImg : "https://pos.upload.lotus-wallet.com/1195/2023/09/ea2ebd28-1cf1-4148-afde-11549901737a.jpg" +/// info : "" +/// tenantCode : "1195" +/// sort : 50 +/// subscribeParam : null +/// storeId : "1645701646107279360" + +class AdminProductVoList { + AdminProductVoList({ + String id, + String groupId, + String groupName, + String productName, + String productImg, + String price, + String applyPrice, + num stock, + num sellCount, + num status, + bool posShow, + dynamic deliveries, + dynamic ticketType, + dynamic ticketDays, + dynamic attrList, + List productSkuVOList, + dynamic skuId, + String details, + String thumbnailImg, + String info, + String tenantCode, + num sort, + dynamic subscribeParam, + String storeId,}){ + _id = id; + _groupId = groupId; + _groupName = groupName; + _productName = productName; + _productImg = productImg; + _price = price; + _applyPrice = applyPrice; + _stock = stock; + _sellCount = sellCount; + _status = status; + _posShow = posShow; + _deliveries = deliveries; + _ticketType = ticketType; + _ticketDays = ticketDays; + _attrList = attrList; + _productSkuVOList = productSkuVOList; + _skuId = skuId; + _details = details; + _thumbnailImg = thumbnailImg; + _info = info; + _tenantCode = tenantCode; + _sort = sort; + _subscribeParam = subscribeParam; + _storeId = storeId; +} + + AdminProductVoList.fromJson(dynamic json) { + _id = json['id']; + _groupId = json['groupId']; + _groupName = json['groupName']; + _productName = json['productName']; + _productImg = json['productImg']; + _price = json['price']; + _applyPrice = json['applyPrice']; + _stock = json['stock']; + _sellCount = json['sellCount']; + _status = json['status']; + _posShow = json['posShow']; + _deliveries = json['deliveries']; + _ticketType = json['ticketType']; + _ticketDays = json['ticketDays']; + _attrList = json['attrList']; + if (json['productSkuVOList'] != null) { + _productSkuVOList = []; + json['productSkuVOList'].forEach((v) { + _productSkuVOList.add(ProductSkuVoList.fromJson(v)); + }); + } + _skuId = json['skuId']; + _details = json['details']; + _thumbnailImg = json['thumbnailImg']; + _info = json['info']; + _tenantCode = json['tenantCode']; + _sort = json['sort']; + _subscribeParam = json['subscribeParam']; + _storeId = json['storeId']; + } + String _id; + String _groupId; + String _groupName; + String _productName; + String _productImg; + String _price; + String _applyPrice; + num _stock; + num _sellCount; + num _status; + bool _posShow; + dynamic _deliveries; + dynamic _ticketType; + dynamic _ticketDays; + dynamic _attrList; + List _productSkuVOList; + dynamic _skuId; + String _details; + String _thumbnailImg; + String _info; + String _tenantCode; + num _sort; + dynamic _subscribeParam; + String _storeId; +AdminProductVoList copyWith({ String id, + String groupId, + String groupName, + String productName, + String productImg, + String price, + String applyPrice, + num stock, + num sellCount, + num status, + bool posShow, + dynamic deliveries, + dynamic ticketType, + dynamic ticketDays, + dynamic attrList, + List productSkuVOList, + dynamic skuId, + String details, + String thumbnailImg, + String info, + String tenantCode, + num sort, + dynamic subscribeParam, + String storeId, +}) => AdminProductVoList( id: id ?? _id, + groupId: groupId ?? _groupId, + groupName: groupName ?? _groupName, + productName: productName ?? _productName, + productImg: productImg ?? _productImg, + price: price ?? _price, + applyPrice: applyPrice ?? _applyPrice, + stock: stock ?? _stock, + sellCount: sellCount ?? _sellCount, + status: status ?? _status, + posShow: posShow ?? _posShow, + deliveries: deliveries ?? _deliveries, + ticketType: ticketType ?? _ticketType, + ticketDays: ticketDays ?? _ticketDays, + attrList: attrList ?? _attrList, + productSkuVOList: productSkuVOList ?? _productSkuVOList, + skuId: skuId ?? _skuId, + details: details ?? _details, + thumbnailImg: thumbnailImg ?? _thumbnailImg, + info: info ?? _info, + tenantCode: tenantCode ?? _tenantCode, + sort: sort ?? _sort, + subscribeParam: subscribeParam ?? _subscribeParam, + storeId: storeId ?? _storeId, +); + String get id => _id; + String get groupId => _groupId; + String get groupName => _groupName; + String get productName => _productName; + String get productImg => _productImg; + String get price => _price; + String get applyPrice => _applyPrice; + num get stock => _stock; + num get sellCount => _sellCount; + num get status => _status; + bool get posShow => _posShow; + dynamic get deliveries => _deliveries; + dynamic get ticketType => _ticketType; + dynamic get ticketDays => _ticketDays; + dynamic get attrList => _attrList; + List get productSkuVOList => _productSkuVOList; + dynamic get skuId => _skuId; + String get details => _details; + String get thumbnailImg => _thumbnailImg; + String get info => _info; + String get tenantCode => _tenantCode; + num get sort => _sort; + dynamic get subscribeParam => _subscribeParam; + String get storeId => _storeId; + + Map toJson() { + final map = {}; + map['id'] = _id; + map['groupId'] = _groupId; + map['groupName'] = _groupName; + map['productName'] = _productName; + map['productImg'] = _productImg; + map['price'] = _price; + map['applyPrice'] = _applyPrice; + map['stock'] = _stock; + map['sellCount'] = _sellCount; + map['status'] = _status; + map['posShow'] = _posShow; + map['deliveries'] = _deliveries; + map['ticketType'] = _ticketType; + map['ticketDays'] = _ticketDays; + map['attrList'] = _attrList; + if (_productSkuVOList != null) { + map['productSkuVOList'] = _productSkuVOList.map((v) => v.toJson()).toList(); + } + map['skuId'] = _skuId; + map['details'] = _details; + map['thumbnailImg'] = _thumbnailImg; + map['info'] = _info; + map['tenantCode'] = _tenantCode; + map['sort'] = _sort; + map['subscribeParam'] = _subscribeParam; + map['storeId'] = _storeId; + return map; + } + +} + +/// id : "1699346530126790656" +/// createTime : "2023-09-06 16:59:20" +/// createUser : "1684404021814624256" +/// updateTime : "2023-09-06 16:59:20" +/// updateUser : "1684404021814624256" +/// storeId : "1645701646107279360" +/// skuCode : "P202309061659192" +/// skuNameStr : "" +/// productId : "1699346530059681792" +/// skuPrice : "66.00" +/// applyPrice : "66.00" +/// vipPrice : "66.00" +/// packagingFee : "0.00" +/// skuImg : null +/// skuStock : 971 +/// autoRenewSkuStock : 0 +/// deliveries : 0 +/// ticketType : "" +/// ticketWipedTimeTemplateId : null +/// takeType : null +/// ticketDays : "0" +/// ticketExpireTime : "23:59:59" +/// sort : 50 +/// setMeal : "" +/// productSetMeals : [] +/// weight : 0.0 +/// volume : 0.0 +/// isDelete : 0 +/// material : null +/// version : 0 +/// skuTickets : [] +/// ticketStyle : "" +/// skuAttrCodeDTOList : null +/// skuAttrList : [{"id":"1699346530143567872","createTime":"2023-09-06 16:59:20","createUser":"1684404021814624256","updateTime":"2023-09-06 16:59:20","updateUser":"1684404021814624256","skuId":"1699346530126790656","attrId":"1699346530089041920","attrValueId":"1699346530101624832","sortOrder":null,"isDelete":0}] +/// setMealDTOList : null +/// discountPrice : "" + +class ProductSkuVoList { + ProductSkuVoList({ + String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String storeId, + String skuCode, + String skuNameStr, + String productId, + String skuPrice, + String applyPrice, + String vipPrice, + String packagingFee, + dynamic skuImg, + num skuStock, + num autoRenewSkuStock, + num deliveries, + String ticketType, + dynamic ticketWipedTimeTemplateId, + dynamic takeType, + String ticketDays, + String ticketExpireTime, + num sort, + String setMeal, + List productSetMeals, + num weight, + num volume, + num isDelete, + dynamic material, + num version, + List skuTickets, + String ticketStyle, + dynamic skuAttrCodeDTOList, + List skuAttrList, + dynamic setMealDTOList, + String discountPrice,}){ + _id = id; + _createTime = createTime; + _createUser = createUser; + _updateTime = updateTime; + _updateUser = updateUser; + _storeId = storeId; + _skuCode = skuCode; + _skuNameStr = skuNameStr; + _productId = productId; + _skuPrice = skuPrice; + _applyPrice = applyPrice; + _vipPrice = vipPrice; + _packagingFee = packagingFee; + _skuImg = skuImg; + _skuStock = skuStock; + _autoRenewSkuStock = autoRenewSkuStock; + _deliveries = deliveries; + _ticketType = ticketType; + _ticketWipedTimeTemplateId = ticketWipedTimeTemplateId; + _takeType = takeType; + _ticketDays = ticketDays; + _ticketExpireTime = ticketExpireTime; + _sort = sort; + _setMeal = setMeal; + _productSetMeals = productSetMeals; + _weight = weight; + _volume = volume; + _isDelete = isDelete; + _material = material; + _version = version; + _skuTickets = skuTickets; + _ticketStyle = ticketStyle; + _skuAttrCodeDTOList = skuAttrCodeDTOList; + _skuAttrList = skuAttrList; + _setMealDTOList = setMealDTOList; + _discountPrice = discountPrice; +} + + ProductSkuVoList.fromJson(dynamic json) { + _id = json['id']; + _createTime = json['createTime']; + _createUser = json['createUser']; + _updateTime = json['updateTime']; + _updateUser = json['updateUser']; + _storeId = json['storeId']; + _skuCode = json['skuCode']; + _skuNameStr = json['skuNameStr']; + _productId = json['productId']; + _skuPrice = json['skuPrice']; + _applyPrice = json['applyPrice']; + _vipPrice = json['vipPrice']; + _packagingFee = json['packagingFee']; + _skuImg = json['skuImg']; + _skuStock = json['skuStock']; + _autoRenewSkuStock = json['autoRenewSkuStock']; + _deliveries = json['deliveries']; + _ticketType = json['ticketType']; + _ticketWipedTimeTemplateId = json['ticketWipedTimeTemplateId']; + _takeType = json['takeType']; + _ticketDays = json['ticketDays']; + _ticketExpireTime = json['ticketExpireTime']; + _sort = json['sort']; + _setMeal = json['setMeal']; + // if (json['productSetMeals'] != null) { + // _productSetMeals = []; + // json['productSetMeals'].forEach((v) { + // _productSetMeals.add(Dynamic.fromJson(v)); + // }); + // } + _weight = json['weight']; + _volume = json['volume']; + _isDelete = json['isDelete']; + _material = json['material']; + _version = json['version']; + // if (json['skuTickets'] != null) { + // _skuTickets = []; + // json['skuTickets'].forEach((v) { + // _skuTickets.add(Dynamic.fromJson(v)); + // }); + // } + _ticketStyle = json['ticketStyle']; + _skuAttrCodeDTOList = json['skuAttrCodeDTOList']; + if (json['skuAttrList'] != null) { + _skuAttrList = []; + json['skuAttrList'].forEach((v) { + _skuAttrList.add(SkuAttrList.fromJson(v)); + }); + } + _setMealDTOList = json['setMealDTOList']; + _discountPrice = json['discountPrice']; + } + String _id; + String _createTime; + String _createUser; + String _updateTime; + String _updateUser; + String _storeId; + String _skuCode; + String _skuNameStr; + String _productId; + String _skuPrice; + String _applyPrice; + String _vipPrice; + String _packagingFee; + dynamic _skuImg; + num _skuStock; + num _autoRenewSkuStock; + num _deliveries; + String _ticketType; + dynamic _ticketWipedTimeTemplateId; + dynamic _takeType; + String _ticketDays; + String _ticketExpireTime; + num _sort; + String _setMeal; + List _productSetMeals; + num _weight; + num _volume; + num _isDelete; + dynamic _material; + num _version; + List _skuTickets; + String _ticketStyle; + dynamic _skuAttrCodeDTOList; + List _skuAttrList; + dynamic _setMealDTOList; + String _discountPrice; +ProductSkuVoList copyWith({ String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String storeId, + String skuCode, + String skuNameStr, + String productId, + String skuPrice, + String applyPrice, + String vipPrice, + String packagingFee, + dynamic skuImg, + num skuStock, + num autoRenewSkuStock, + num deliveries, + String ticketType, + dynamic ticketWipedTimeTemplateId, + dynamic takeType, + String ticketDays, + String ticketExpireTime, + num sort, + String setMeal, + List productSetMeals, + num weight, + num volume, + num isDelete, + dynamic material, + num version, + List skuTickets, + String ticketStyle, + dynamic skuAttrCodeDTOList, + List skuAttrList, + dynamic setMealDTOList, + String discountPrice, +}) => ProductSkuVoList( id: id ?? _id, + createTime: createTime ?? _createTime, + createUser: createUser ?? _createUser, + updateTime: updateTime ?? _updateTime, + updateUser: updateUser ?? _updateUser, + storeId: storeId ?? _storeId, + skuCode: skuCode ?? _skuCode, + skuNameStr: skuNameStr ?? _skuNameStr, + productId: productId ?? _productId, + skuPrice: skuPrice ?? _skuPrice, + applyPrice: applyPrice ?? _applyPrice, + vipPrice: vipPrice ?? _vipPrice, + packagingFee: packagingFee ?? _packagingFee, + skuImg: skuImg ?? _skuImg, + skuStock: skuStock ?? _skuStock, + autoRenewSkuStock: autoRenewSkuStock ?? _autoRenewSkuStock, + deliveries: deliveries ?? _deliveries, + ticketType: ticketType ?? _ticketType, + ticketWipedTimeTemplateId: ticketWipedTimeTemplateId ?? _ticketWipedTimeTemplateId, + takeType: takeType ?? _takeType, + ticketDays: ticketDays ?? _ticketDays, + ticketExpireTime: ticketExpireTime ?? _ticketExpireTime, + sort: sort ?? _sort, + setMeal: setMeal ?? _setMeal, + productSetMeals: productSetMeals ?? _productSetMeals, + weight: weight ?? _weight, + volume: volume ?? _volume, + isDelete: isDelete ?? _isDelete, + material: material ?? _material, + version: version ?? _version, + skuTickets: skuTickets ?? _skuTickets, + ticketStyle: ticketStyle ?? _ticketStyle, + skuAttrCodeDTOList: skuAttrCodeDTOList ?? _skuAttrCodeDTOList, + skuAttrList: skuAttrList ?? _skuAttrList, + setMealDTOList: setMealDTOList ?? _setMealDTOList, + discountPrice: discountPrice ?? _discountPrice, +); + String get id => _id; + String get createTime => _createTime; + String get createUser => _createUser; + String get updateTime => _updateTime; + String get updateUser => _updateUser; + String get storeId => _storeId; + String get skuCode => _skuCode; + String get skuNameStr => _skuNameStr; + String get productId => _productId; + String get skuPrice => _skuPrice; + String get applyPrice => _applyPrice; + String get vipPrice => _vipPrice; + String get packagingFee => _packagingFee; + dynamic get skuImg => _skuImg; + num get skuStock => _skuStock; + num get autoRenewSkuStock => _autoRenewSkuStock; + num get deliveries => _deliveries; + String get ticketType => _ticketType; + dynamic get ticketWipedTimeTemplateId => _ticketWipedTimeTemplateId; + dynamic get takeType => _takeType; + String get ticketDays => _ticketDays; + String get ticketExpireTime => _ticketExpireTime; + num get sort => _sort; + String get setMeal => _setMeal; + List get productSetMeals => _productSetMeals; + num get weight => _weight; + num get volume => _volume; + num get isDelete => _isDelete; + dynamic get material => _material; + num get version => _version; + List get skuTickets => _skuTickets; + String get ticketStyle => _ticketStyle; + dynamic get skuAttrCodeDTOList => _skuAttrCodeDTOList; + List get skuAttrList => _skuAttrList; + dynamic get setMealDTOList => _setMealDTOList; + String get discountPrice => _discountPrice; + + Map toJson() { + final map = {}; + map['id'] = _id; + map['createTime'] = _createTime; + map['createUser'] = _createUser; + map['updateTime'] = _updateTime; + map['updateUser'] = _updateUser; + map['storeId'] = _storeId; + map['skuCode'] = _skuCode; + map['skuNameStr'] = _skuNameStr; + map['productId'] = _productId; + map['skuPrice'] = _skuPrice; + map['applyPrice'] = _applyPrice; + map['vipPrice'] = _vipPrice; + map['packagingFee'] = _packagingFee; + map['skuImg'] = _skuImg; + map['skuStock'] = _skuStock; + map['autoRenewSkuStock'] = _autoRenewSkuStock; + map['deliveries'] = _deliveries; + map['ticketType'] = _ticketType; + map['ticketWipedTimeTemplateId'] = _ticketWipedTimeTemplateId; + map['takeType'] = _takeType; + map['ticketDays'] = _ticketDays; + map['ticketExpireTime'] = _ticketExpireTime; + map['sort'] = _sort; + map['setMeal'] = _setMeal; + if (_productSetMeals != null) { + map['productSetMeals'] = _productSetMeals.map((v) => v.toJson()).toList(); + } + map['weight'] = _weight; + map['volume'] = _volume; + map['isDelete'] = _isDelete; + map['material'] = _material; + map['version'] = _version; + if (_skuTickets != null) { + map['skuTickets'] = _skuTickets.map((v) => v.toJson()).toList(); + } + map['ticketStyle'] = _ticketStyle; + map['skuAttrCodeDTOList'] = _skuAttrCodeDTOList; + if (_skuAttrList != null) { + map['skuAttrList'] = _skuAttrList.map((v) => v.toJson()).toList(); + } + map['setMealDTOList'] = _setMealDTOList; + map['discountPrice'] = _discountPrice; + return map; + } + +} + +/// id : "1699346530143567872" +/// createTime : "2023-09-06 16:59:20" +/// createUser : "1684404021814624256" +/// updateTime : "2023-09-06 16:59:20" +/// updateUser : "1684404021814624256" +/// skuId : "1699346530126790656" +/// attrId : "1699346530089041920" +/// attrValueId : "1699346530101624832" +/// sortOrder : null +/// isDelete : 0 + +class SkuAttrList { + SkuAttrList({ + String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String skuId, + String attrId, + String attrValueId, + dynamic sortOrder, + num isDelete,}){ + _id = id; + _createTime = createTime; + _createUser = createUser; + _updateTime = updateTime; + _updateUser = updateUser; + _skuId = skuId; + _attrId = attrId; + _attrValueId = attrValueId; + _sortOrder = sortOrder; + _isDelete = isDelete; +} + + SkuAttrList.fromJson(dynamic json) { + _id = json['id']; + _createTime = json['createTime']; + _createUser = json['createUser']; + _updateTime = json['updateTime']; + _updateUser = json['updateUser']; + _skuId = json['skuId']; + _attrId = json['attrId']; + _attrValueId = json['attrValueId']; + _sortOrder = json['sortOrder']; + _isDelete = json['isDelete']; + } + String _id; + String _createTime; + String _createUser; + String _updateTime; + String _updateUser; + String _skuId; + String _attrId; + String _attrValueId; + dynamic _sortOrder; + num _isDelete; +SkuAttrList copyWith({ String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String skuId, + String attrId, + String attrValueId, + dynamic sortOrder, + num isDelete, +}) => SkuAttrList( id: id ?? _id, + createTime: createTime ?? _createTime, + createUser: createUser ?? _createUser, + updateTime: updateTime ?? _updateTime, + updateUser: updateUser ?? _updateUser, + skuId: skuId ?? _skuId, + attrId: attrId ?? _attrId, + attrValueId: attrValueId ?? _attrValueId, + sortOrder: sortOrder ?? _sortOrder, + isDelete: isDelete ?? _isDelete, +); + String get id => _id; + String get createTime => _createTime; + String get createUser => _createUser; + String get updateTime => _updateTime; + String get updateUser => _updateUser; + String get skuId => _skuId; + String get attrId => _attrId; + String get attrValueId => _attrValueId; + dynamic get sortOrder => _sortOrder; + num get isDelete => _isDelete; + + Map toJson() { + final map = {}; + map['id'] = _id; + map['createTime'] = _createTime; + map['createUser'] = _createUser; + map['updateTime'] = _updateTime; + map['updateUser'] = _updateUser; + map['skuId'] = _skuId; + map['attrId'] = _attrId; + map['attrValueId'] = _attrValueId; + map['sortOrder'] = _sortOrder; + map['isDelete'] = _isDelete; + return map; + } + +} \ No newline at end of file diff --git a/lib/retrofit/data/business_order_detail_info.dart b/lib/retrofit/data/business_order_detail_info.dart new file mode 100644 index 00000000..4328bbf9 --- /dev/null +++ b/lib/retrofit/data/business_order_detail_info.dart @@ -0,0 +1,1083 @@ +/// id : "1705059878256508928" +/// orderCode : "202309221122080002" +/// storeName : "海峡姐妹茶(奶茶)" +/// orderStatus : 2 +/// payStatus : 1 +/// orderSum : "9.00" +/// paySum : "8.28" +/// discountAmount : null +/// payChannel : 4 +/// createTime : "2023-09-22 11:22:08" +/// notes : "" +/// payNum : "" +/// returnType : null +/// logisticsCase : null +/// payTime : "2023-09-22 11:22:09" +/// memberAccount : "" +/// orderCount : 1 +/// recName : null +/// recMobile : null +/// province : null +/// city : null +/// area : null +/// address : "湖北省武汉市江汉区万松街道青年路招银大厦" +/// shipperCode : "" +/// logisticsNum : "" +/// logisticsName : "" +/// orderSource : 2 +/// orderProductDTOList : [{"id":"1705059878650773504","createTime":"2023-09-22 11:22:08","createUser":"1695008923246919680","updateTime":"2023-09-22 11:22:08","updateUser":"1695008923246919680","tenantCode":"1195","storeId":"1645691756009750528","orderId":"1705059878256508928","actInfo":null,"productId":"1685953238345449472","productName":"台18茗茶","skuId":"1689482412884492288","skuNameStr":"700ml 温热 七分糖","skuImg":"https://pos.upload.lotus-wallet.com/1195/2023/08/e08f6297-06dd-4128-b21d-20930018df03.jpg","buyNum":1,"refundNum":0,"type":0,"reason":null,"weight":0.0,"applyPrice":"9.00","sellPrice":"9.00","postPay":"0.00","isDelete":0,"discountAmount":"0.72","discountPercent":92,"status":true,"batch":1,"deliveries":0,"ticketType":"","ticketDays":"0","takeType":null,"skuTickets":[],"ticketStyle":"","setMealDataList":[],"packagingFee":"0.00"}] +/// moneyReturnList : null +/// goodsReturnList : null +/// moneyReturnActionHistoryList : null +/// goodsReturnActionHistoryList : null +/// sonOrderList : null +/// refundStatus : 2 +/// reason : "测试退款" +/// isSubscribe : false +/// subcribeTime : null +/// addressExt : {"addressId":null,"country":null,"countryId":null,"province":"湖北省","provinceId":null,"city":"武汉市","cityId":null,"district":"汉口区","districtId":null,"cityInfo":null,"address":"湖北省武汉市江汉区万松街道青年路招银大厦","recName":null,"recMobile":null,"longitude":"114.263242","latitude":"30.593863"} +/// contactsExtList : null +/// memberInfo : {"mid":"1695008923246919680","name":"哈哈哈","phone":"13052919193","mark":null} +/// payRecordList : [{"id":"1705059881448374272","createTime":"2023-09-22 11:22:09","createUser":"1695008923246919680","updateTime":"2023-09-22 11:22:09","updateUser":"1695008923246919680","orderId":"1705059878256508928","type":4,"amount":"8.28","refundAmount":"0.00","state":1,"refId":"1705059881398042624","isDelete":false,"tenantCode":null}] + +class BusinessOrderDetailInfo { + BusinessOrderDetailInfo({ + String id, + String orderCode, + String storeName, + num orderStatus, + num payStatus, + String orderSum, + String paySum, + dynamic discountAmount, + num payChannel, + String createTime, + String notes, + String payNum, + dynamic returnType, + dynamic logisticsCase, + String payTime, + String memberAccount, + num orderCount, + dynamic recName, + dynamic recMobile, + dynamic province, + dynamic city, + dynamic area, + String address, + String shipperCode, + String logisticsNum, + String logisticsName, + num orderSource, + List orderProductDTOList, + dynamic moneyReturnList, + dynamic goodsReturnList, + dynamic moneyReturnActionHistoryList, + dynamic goodsReturnActionHistoryList, + dynamic sonOrderList, + num refundStatus, + String reason, + bool isSubscribe, + dynamic subcribeTime, + AddressExt addressExt, + dynamic contactsExtList, + MemberInfo memberInfo, + List payRecordList,}){ + _id = id; + _orderCode = orderCode; + _storeName = storeName; + _orderStatus = orderStatus; + _payStatus = payStatus; + _orderSum = orderSum; + _paySum = paySum; + _discountAmount = discountAmount; + _payChannel = payChannel; + _createTime = createTime; + _notes = notes; + _payNum = payNum; + _returnType = returnType; + _logisticsCase = logisticsCase; + _payTime = payTime; + _memberAccount = memberAccount; + _orderCount = orderCount; + _recName = recName; + _recMobile = recMobile; + _province = province; + _city = city; + _area = area; + _address = address; + _shipperCode = shipperCode; + _logisticsNum = logisticsNum; + _logisticsName = logisticsName; + _orderSource = orderSource; + _orderProductDTOList = orderProductDTOList; + _moneyReturnList = moneyReturnList; + _goodsReturnList = goodsReturnList; + _moneyReturnActionHistoryList = moneyReturnActionHistoryList; + _goodsReturnActionHistoryList = goodsReturnActionHistoryList; + _sonOrderList = sonOrderList; + _refundStatus = refundStatus; + _reason = reason; + _isSubscribe = isSubscribe; + _subcribeTime = subcribeTime; + _addressExt = addressExt; + _contactsExtList = contactsExtList; + _memberInfo = memberInfo; + _payRecordList = payRecordList; +} + + BusinessOrderDetailInfo.fromJson(dynamic json) { + _id = json['id']; + _orderCode = json['orderCode']; + _storeName = json['storeName']; + _orderStatus = json['orderStatus']; + _payStatus = json['payStatus']; + _orderSum = json['orderSum']; + _paySum = json['paySum']; + _discountAmount = json['discountAmount']; + _payChannel = json['payChannel']; + _createTime = json['createTime']; + _notes = json['notes']; + _payNum = json['payNum']; + _returnType = json['returnType']; + _logisticsCase = json['logisticsCase']; + _payTime = json['payTime']; + _memberAccount = json['memberAccount']; + _orderCount = json['orderCount']; + _recName = json['recName']; + _recMobile = json['recMobile']; + _province = json['province']; + _city = json['city']; + _area = json['area']; + _address = json['address']; + _shipperCode = json['shipperCode']; + _logisticsNum = json['logisticsNum']; + _logisticsName = json['logisticsName']; + _orderSource = json['orderSource']; + if (json['orderProductDTOList'] != null) { + _orderProductDTOList = []; + json['orderProductDTOList'].forEach((v) { + _orderProductDTOList.add(OrderProductDtoList.fromJson(v)); + }); + } + _moneyReturnList = json['moneyReturnList']; + _goodsReturnList = json['goodsReturnList']; + _moneyReturnActionHistoryList = json['moneyReturnActionHistoryList']; + _goodsReturnActionHistoryList = json['goodsReturnActionHistoryList']; + _sonOrderList = json['sonOrderList']; + _refundStatus = json['refundStatus']; + _reason = json['reason']; + _isSubscribe = json['isSubscribe']; + _subcribeTime = json['subcribeTime']; + _addressExt = json['addressExt'] != null ? AddressExt.fromJson(json['addressExt']) : null; + _contactsExtList = json['contactsExtList']; + _memberInfo = json['memberInfo'] != null ? MemberInfo.fromJson(json['memberInfo']) : null; + if (json['payRecordList'] != null) { + _payRecordList = []; + json['payRecordList'].forEach((v) { + _payRecordList.add(PayRecordList.fromJson(v)); + }); + } + } + String _id; + String _orderCode; + String _storeName; + num _orderStatus; + num _payStatus; + String _orderSum; + String _paySum; + dynamic _discountAmount; + num _payChannel; + String _createTime; + String _notes; + String _payNum; + dynamic _returnType; + dynamic _logisticsCase; + String _payTime; + String _memberAccount; + num _orderCount; + dynamic _recName; + dynamic _recMobile; + dynamic _province; + dynamic _city; + dynamic _area; + String _address; + String _shipperCode; + String _logisticsNum; + String _logisticsName; + num _orderSource; + List _orderProductDTOList; + dynamic _moneyReturnList; + dynamic _goodsReturnList; + dynamic _moneyReturnActionHistoryList; + dynamic _goodsReturnActionHistoryList; + dynamic _sonOrderList; + num _refundStatus; + String _reason; + bool _isSubscribe; + dynamic _subcribeTime; + AddressExt _addressExt; + dynamic _contactsExtList; + MemberInfo _memberInfo; + List _payRecordList; +BusinessOrderDetailInfo copyWith({ String id, + String orderCode, + String storeName, + num orderStatus, + num payStatus, + String orderSum, + String paySum, + dynamic discountAmount, + num payChannel, + String createTime, + String notes, + String payNum, + dynamic returnType, + dynamic logisticsCase, + String payTime, + String memberAccount, + num orderCount, + dynamic recName, + dynamic recMobile, + dynamic province, + dynamic city, + dynamic area, + String address, + String shipperCode, + String logisticsNum, + String logisticsName, + num orderSource, + List orderProductDTOList, + dynamic moneyReturnList, + dynamic goodsReturnList, + dynamic moneyReturnActionHistoryList, + dynamic goodsReturnActionHistoryList, + dynamic sonOrderList, + num refundStatus, + String reason, + bool isSubscribe, + dynamic subcribeTime, + AddressExt addressExt, + dynamic contactsExtList, + MemberInfo memberInfo, + List payRecordList, +}) => BusinessOrderDetailInfo( id: id ?? _id, + orderCode: orderCode ?? _orderCode, + storeName: storeName ?? _storeName, + orderStatus: orderStatus ?? _orderStatus, + payStatus: payStatus ?? _payStatus, + orderSum: orderSum ?? _orderSum, + paySum: paySum ?? _paySum, + discountAmount: discountAmount ?? _discountAmount, + payChannel: payChannel ?? _payChannel, + createTime: createTime ?? _createTime, + notes: notes ?? _notes, + payNum: payNum ?? _payNum, + returnType: returnType ?? _returnType, + logisticsCase: logisticsCase ?? _logisticsCase, + payTime: payTime ?? _payTime, + memberAccount: memberAccount ?? _memberAccount, + orderCount: orderCount ?? _orderCount, + recName: recName ?? _recName, + recMobile: recMobile ?? _recMobile, + province: province ?? _province, + city: city ?? _city, + area: area ?? _area, + address: address ?? _address, + shipperCode: shipperCode ?? _shipperCode, + logisticsNum: logisticsNum ?? _logisticsNum, + logisticsName: logisticsName ?? _logisticsName, + orderSource: orderSource ?? _orderSource, + orderProductDTOList: orderProductDTOList ?? _orderProductDTOList, + moneyReturnList: moneyReturnList ?? _moneyReturnList, + goodsReturnList: goodsReturnList ?? _goodsReturnList, + moneyReturnActionHistoryList: moneyReturnActionHistoryList ?? _moneyReturnActionHistoryList, + goodsReturnActionHistoryList: goodsReturnActionHistoryList ?? _goodsReturnActionHistoryList, + sonOrderList: sonOrderList ?? _sonOrderList, + refundStatus: refundStatus ?? _refundStatus, + reason: reason ?? _reason, + isSubscribe: isSubscribe ?? _isSubscribe, + subcribeTime: subcribeTime ?? _subcribeTime, + addressExt: addressExt ?? _addressExt, + contactsExtList: contactsExtList ?? _contactsExtList, + memberInfo: memberInfo ?? _memberInfo, + payRecordList: payRecordList ?? _payRecordList, +); + String get id => _id; + String get orderCode => _orderCode; + String get storeName => _storeName; + num get orderStatus => _orderStatus; + num get payStatus => _payStatus; + String get orderSum => _orderSum; + String get paySum => _paySum; + dynamic get discountAmount => _discountAmount; + num get payChannel => _payChannel; + String get createTime => _createTime; + String get notes => _notes; + String get payNum => _payNum; + dynamic get returnType => _returnType; + dynamic get logisticsCase => _logisticsCase; + String get payTime => _payTime; + String get memberAccount => _memberAccount; + num get orderCount => _orderCount; + dynamic get recName => _recName; + dynamic get recMobile => _recMobile; + dynamic get province => _province; + dynamic get city => _city; + dynamic get area => _area; + String get address => _address; + String get shipperCode => _shipperCode; + String get logisticsNum => _logisticsNum; + String get logisticsName => _logisticsName; + num get orderSource => _orderSource; + List get orderProductDTOList => _orderProductDTOList; + dynamic get moneyReturnList => _moneyReturnList; + dynamic get goodsReturnList => _goodsReturnList; + dynamic get moneyReturnActionHistoryList => _moneyReturnActionHistoryList; + dynamic get goodsReturnActionHistoryList => _goodsReturnActionHistoryList; + dynamic get sonOrderList => _sonOrderList; + num get refundStatus => _refundStatus; + String get reason => _reason; + bool get isSubscribe => _isSubscribe; + dynamic get subcribeTime => _subcribeTime; + AddressExt get addressExt => _addressExt; + dynamic get contactsExtList => _contactsExtList; + MemberInfo get memberInfo => _memberInfo; + List get payRecordList => _payRecordList; + + Map toJson() { + final map = {}; + map['id'] = _id; + map['orderCode'] = _orderCode; + map['storeName'] = _storeName; + map['orderStatus'] = _orderStatus; + map['payStatus'] = _payStatus; + map['orderSum'] = _orderSum; + map['paySum'] = _paySum; + map['discountAmount'] = _discountAmount; + map['payChannel'] = _payChannel; + map['createTime'] = _createTime; + map['notes'] = _notes; + map['payNum'] = _payNum; + map['returnType'] = _returnType; + map['logisticsCase'] = _logisticsCase; + map['payTime'] = _payTime; + map['memberAccount'] = _memberAccount; + map['orderCount'] = _orderCount; + map['recName'] = _recName; + map['recMobile'] = _recMobile; + map['province'] = _province; + map['city'] = _city; + map['area'] = _area; + map['address'] = _address; + map['shipperCode'] = _shipperCode; + map['logisticsNum'] = _logisticsNum; + map['logisticsName'] = _logisticsName; + map['orderSource'] = _orderSource; + if (_orderProductDTOList != null) { + map['orderProductDTOList'] = _orderProductDTOList.map((v) => v.toJson()).toList(); + } + map['moneyReturnList'] = _moneyReturnList; + map['goodsReturnList'] = _goodsReturnList; + map['moneyReturnActionHistoryList'] = _moneyReturnActionHistoryList; + map['goodsReturnActionHistoryList'] = _goodsReturnActionHistoryList; + map['sonOrderList'] = _sonOrderList; + map['refundStatus'] = _refundStatus; + map['reason'] = _reason; + map['isSubscribe'] = _isSubscribe; + map['subcribeTime'] = _subcribeTime; + if (_addressExt != null) { + map['addressExt'] = _addressExt.toJson(); + } + map['contactsExtList'] = _contactsExtList; + if (_memberInfo != null) { + map['memberInfo'] = _memberInfo.toJson(); + } + if (_payRecordList != null) { + map['payRecordList'] = _payRecordList.map((v) => v.toJson()).toList(); + } + return map; + } + +} + +/// id : "1705059881448374272" +/// createTime : "2023-09-22 11:22:09" +/// createUser : "1695008923246919680" +/// updateTime : "2023-09-22 11:22:09" +/// updateUser : "1695008923246919680" +/// orderId : "1705059878256508928" +/// type : 4 +/// amount : "8.28" +/// refundAmount : "0.00" +/// state : 1 +/// refId : "1705059881398042624" +/// isDelete : false +/// tenantCode : null + +class PayRecordList { + PayRecordList({ + String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String orderId, + num type, + String amount, + String refundAmount, + num state, + String refId, + bool isDelete, + dynamic tenantCode,}){ + _id = id; + _createTime = createTime; + _createUser = createUser; + _updateTime = updateTime; + _updateUser = updateUser; + _orderId = orderId; + _type = type; + _amount = amount; + _refundAmount = refundAmount; + _state = state; + _refId = refId; + _isDelete = isDelete; + _tenantCode = tenantCode; +} + + PayRecordList.fromJson(dynamic json) { + _id = json['id']; + _createTime = json['createTime']; + _createUser = json['createUser']; + _updateTime = json['updateTime']; + _updateUser = json['updateUser']; + _orderId = json['orderId']; + _type = json['type']; + _amount = json['amount']; + _refundAmount = json['refundAmount']; + _state = json['state']; + _refId = json['refId']; + _isDelete = json['isDelete']; + _tenantCode = json['tenantCode']; + } + String _id; + String _createTime; + String _createUser; + String _updateTime; + String _updateUser; + String _orderId; + num _type; + String _amount; + String _refundAmount; + num _state; + String _refId; + bool _isDelete; + dynamic _tenantCode; +PayRecordList copyWith({ String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String orderId, + num type, + String amount, + String refundAmount, + num state, + String refId, + bool isDelete, + dynamic tenantCode, +}) => PayRecordList( id: id ?? _id, + createTime: createTime ?? _createTime, + createUser: createUser ?? _createUser, + updateTime: updateTime ?? _updateTime, + updateUser: updateUser ?? _updateUser, + orderId: orderId ?? _orderId, + type: type ?? _type, + amount: amount ?? _amount, + refundAmount: refundAmount ?? _refundAmount, + state: state ?? _state, + refId: refId ?? _refId, + isDelete: isDelete ?? _isDelete, + tenantCode: tenantCode ?? _tenantCode, +); + String get id => _id; + String get createTime => _createTime; + String get createUser => _createUser; + String get updateTime => _updateTime; + String get updateUser => _updateUser; + String get orderId => _orderId; + num get type => _type; + String get amount => _amount; + String get refundAmount => _refundAmount; + num get state => _state; + String get refId => _refId; + bool get isDelete => _isDelete; + dynamic get tenantCode => _tenantCode; + + Map toJson() { + final map = {}; + map['id'] = _id; + map['createTime'] = _createTime; + map['createUser'] = _createUser; + map['updateTime'] = _updateTime; + map['updateUser'] = _updateUser; + map['orderId'] = _orderId; + map['type'] = _type; + map['amount'] = _amount; + map['refundAmount'] = _refundAmount; + map['state'] = _state; + map['refId'] = _refId; + map['isDelete'] = _isDelete; + map['tenantCode'] = _tenantCode; + return map; + } + +} + +/// mid : "1695008923246919680" +/// name : "哈哈哈" +/// phone : "13052919193" +/// mark : null + +class MemberInfo { + MemberInfo({ + String mid, + String name, + String phone, + dynamic mark,}){ + _mid = mid; + _name = name; + _phone = phone; + _mark = mark; +} + + MemberInfo.fromJson(dynamic json) { + _mid = json['mid']; + _name = json['name']; + _phone = json['phone']; + _mark = json['mark']; + } + String _mid; + String _name; + String _phone; + dynamic _mark; +MemberInfo copyWith({ String mid, + String name, + String phone, + dynamic mark, +}) => MemberInfo( mid: mid ?? _mid, + name: name ?? _name, + phone: phone ?? _phone, + mark: mark ?? _mark, +); + String get mid => _mid; + String get name => _name; + String get phone => _phone; + dynamic get mark => _mark; + + Map toJson() { + final map = {}; + map['mid'] = _mid; + map['name'] = _name; + map['phone'] = _phone; + map['mark'] = _mark; + return map; + } + +} + +/// addressId : null +/// country : null +/// countryId : null +/// province : "湖北省" +/// provinceId : null +/// city : "武汉市" +/// cityId : null +/// district : "汉口区" +/// districtId : null +/// cityInfo : null +/// address : "湖北省武汉市江汉区万松街道青年路招银大厦" +/// recName : null +/// recMobile : null +/// longitude : "114.263242" +/// latitude : "30.593863" + +class AddressExt { + AddressExt({ + dynamic addressId, + dynamic country, + dynamic countryId, + String province, + dynamic provinceId, + String city, + dynamic cityId, + String district, + dynamic districtId, + dynamic cityInfo, + String address, + dynamic recName, + dynamic recMobile, + String longitude, + String latitude,}){ + _addressId = addressId; + _country = country; + _countryId = countryId; + _province = province; + _provinceId = provinceId; + _city = city; + _cityId = cityId; + _district = district; + _districtId = districtId; + _cityInfo = cityInfo; + _address = address; + _recName = recName; + _recMobile = recMobile; + _longitude = longitude; + _latitude = latitude; +} + + AddressExt.fromJson(dynamic json) { + _addressId = json['addressId']; + _country = json['country']; + _countryId = json['countryId']; + _province = json['province']; + _provinceId = json['provinceId']; + _city = json['city']; + _cityId = json['cityId']; + _district = json['district']; + _districtId = json['districtId']; + _cityInfo = json['cityInfo']; + _address = json['address']; + _recName = json['recName']; + _recMobile = json['recMobile']; + _longitude = json['longitude']; + _latitude = json['latitude']; + } + dynamic _addressId; + dynamic _country; + dynamic _countryId; + String _province; + dynamic _provinceId; + String _city; + dynamic _cityId; + String _district; + dynamic _districtId; + dynamic _cityInfo; + String _address; + dynamic _recName; + dynamic _recMobile; + String _longitude; + String _latitude; +AddressExt copyWith({ dynamic addressId, + dynamic country, + dynamic countryId, + String province, + dynamic provinceId, + String city, + dynamic cityId, + String district, + dynamic districtId, + dynamic cityInfo, + String address, + dynamic recName, + dynamic recMobile, + String longitude, + String latitude, +}) => AddressExt( addressId: addressId ?? _addressId, + country: country ?? _country, + countryId: countryId ?? _countryId, + province: province ?? _province, + provinceId: provinceId ?? _provinceId, + city: city ?? _city, + cityId: cityId ?? _cityId, + district: district ?? _district, + districtId: districtId ?? _districtId, + cityInfo: cityInfo ?? _cityInfo, + address: address ?? _address, + recName: recName ?? _recName, + recMobile: recMobile ?? _recMobile, + longitude: longitude ?? _longitude, + latitude: latitude ?? _latitude, +); + dynamic get addressId => _addressId; + dynamic get country => _country; + dynamic get countryId => _countryId; + String get province => _province; + dynamic get provinceId => _provinceId; + String get city => _city; + dynamic get cityId => _cityId; + String get district => _district; + dynamic get districtId => _districtId; + dynamic get cityInfo => _cityInfo; + String get address => _address; + dynamic get recName => _recName; + dynamic get recMobile => _recMobile; + String get longitude => _longitude; + String get latitude => _latitude; + + Map toJson() { + final map = {}; + map['addressId'] = _addressId; + map['country'] = _country; + map['countryId'] = _countryId; + map['province'] = _province; + map['provinceId'] = _provinceId; + map['city'] = _city; + map['cityId'] = _cityId; + map['district'] = _district; + map['districtId'] = _districtId; + map['cityInfo'] = _cityInfo; + map['address'] = _address; + map['recName'] = _recName; + map['recMobile'] = _recMobile; + map['longitude'] = _longitude; + map['latitude'] = _latitude; + return map; + } + +} + +/// id : "1705059878650773504" +/// createTime : "2023-09-22 11:22:08" +/// createUser : "1695008923246919680" +/// updateTime : "2023-09-22 11:22:08" +/// updateUser : "1695008923246919680" +/// tenantCode : "1195" +/// storeId : "1645691756009750528" +/// orderId : "1705059878256508928" +/// actInfo : null +/// productId : "1685953238345449472" +/// productName : "台18茗茶" +/// skuId : "1689482412884492288" +/// skuNameStr : "700ml 温热 七分糖" +/// skuImg : "https://pos.upload.lotus-wallet.com/1195/2023/08/e08f6297-06dd-4128-b21d-20930018df03.jpg" +/// buyNum : 1 +/// refundNum : 0 +/// type : 0 +/// reason : null +/// weight : 0.0 +/// applyPrice : "9.00" +/// sellPrice : "9.00" +/// postPay : "0.00" +/// isDelete : 0 +/// discountAmount : "0.72" +/// discountPercent : 92 +/// status : true +/// batch : 1 +/// deliveries : 0 +/// ticketType : "" +/// ticketDays : "0" +/// takeType : null +/// skuTickets : [] +/// ticketStyle : "" +/// setMealDataList : [] +/// packagingFee : "0.00" + +class OrderProductDtoList { + OrderProductDtoList({ + String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String tenantCode, + String storeId, + String orderId, + dynamic actInfo, + String productId, + String productName, + String skuId, + String skuNameStr, + String skuImg, + num buyNum, + num refundNum, + num type, + dynamic reason, + num weight, + String applyPrice, + String sellPrice, + String postPay, + num isDelete, + String discountAmount, + num discountPercent, + bool status, + num batch, + num deliveries, + String ticketType, + String ticketDays, + dynamic takeType, + List skuTickets, + String ticketStyle, + List setMealDataList, + String packagingFee,}){ + _id = id; + _createTime = createTime; + _createUser = createUser; + _updateTime = updateTime; + _updateUser = updateUser; + _tenantCode = tenantCode; + _storeId = storeId; + _orderId = orderId; + _actInfo = actInfo; + _productId = productId; + _productName = productName; + _skuId = skuId; + _skuNameStr = skuNameStr; + _skuImg = skuImg; + _buyNum = buyNum; + _refundNum = refundNum; + _type = type; + _reason = reason; + _weight = weight; + _applyPrice = applyPrice; + _sellPrice = sellPrice; + _postPay = postPay; + _isDelete = isDelete; + _discountAmount = discountAmount; + _discountPercent = discountPercent; + _status = status; + _batch = batch; + _deliveries = deliveries; + _ticketType = ticketType; + _ticketDays = ticketDays; + _takeType = takeType; + _skuTickets = skuTickets; + _ticketStyle = ticketStyle; + _setMealDataList = setMealDataList; + _packagingFee = packagingFee; +} + + OrderProductDtoList.fromJson(dynamic json) { + _id = json['id']; + _createTime = json['createTime']; + _createUser = json['createUser']; + _updateTime = json['updateTime']; + _updateUser = json['updateUser']; + _tenantCode = json['tenantCode']; + _storeId = json['storeId']; + _orderId = json['orderId']; + _actInfo = json['actInfo']; + _productId = json['productId']; + _productName = json['productName']; + _skuId = json['skuId']; + _skuNameStr = json['skuNameStr']; + _skuImg = json['skuImg']; + _buyNum = json['buyNum']; + _refundNum = json['refundNum']; + _type = json['type']; + _reason = json['reason']; + _weight = json['weight']; + _applyPrice = json['applyPrice']; + _sellPrice = json['sellPrice']; + _postPay = json['postPay']; + _isDelete = json['isDelete']; + _discountAmount = json['discountAmount']; + _discountPercent = json['discountPercent']; + _status = json['status']; + _batch = json['batch']; + _deliveries = json['deliveries']; + _ticketType = json['ticketType']; + _ticketDays = json['ticketDays']; + _takeType = json['takeType']; + // if (json['skuTickets'] != null) { + // _skuTickets = []; + // json['skuTickets'].forEach((v) { + // _skuTickets.add(Dynamic.fromJson(v)); + // }); + // } + _ticketStyle = json['ticketStyle']; + // if (json['setMealDataList'] != null) { + // _setMealDataList = []; + // json['setMealDataList'].forEach((v) { + // _setMealDataList.add(Dynamic.fromJson(v)); + // }); + // } + _packagingFee = json['packagingFee']; + } + String _id; + String _createTime; + String _createUser; + String _updateTime; + String _updateUser; + String _tenantCode; + String _storeId; + String _orderId; + dynamic _actInfo; + String _productId; + String _productName; + String _skuId; + String _skuNameStr; + String _skuImg; + num _buyNum; + num _refundNum; + num _type; + dynamic _reason; + num _weight; + String _applyPrice; + String _sellPrice; + String _postPay; + num _isDelete; + String _discountAmount; + num _discountPercent; + bool _status; + num _batch; + num _deliveries; + String _ticketType; + String _ticketDays; + dynamic _takeType; + List _skuTickets; + String _ticketStyle; + List _setMealDataList; + String _packagingFee; +OrderProductDtoList copyWith({ String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String tenantCode, + String storeId, + String orderId, + dynamic actInfo, + String productId, + String productName, + String skuId, + String skuNameStr, + String skuImg, + num buyNum, + num refundNum, + num type, + dynamic reason, + num weight, + String applyPrice, + String sellPrice, + String postPay, + num isDelete, + String discountAmount, + num discountPercent, + bool status, + num batch, + num deliveries, + String ticketType, + String ticketDays, + dynamic takeType, + List skuTickets, + String ticketStyle, + List setMealDataList, + String packagingFee, +}) => OrderProductDtoList( id: id ?? _id, + createTime: createTime ?? _createTime, + createUser: createUser ?? _createUser, + updateTime: updateTime ?? _updateTime, + updateUser: updateUser ?? _updateUser, + tenantCode: tenantCode ?? _tenantCode, + storeId: storeId ?? _storeId, + orderId: orderId ?? _orderId, + actInfo: actInfo ?? _actInfo, + productId: productId ?? _productId, + productName: productName ?? _productName, + skuId: skuId ?? _skuId, + skuNameStr: skuNameStr ?? _skuNameStr, + skuImg: skuImg ?? _skuImg, + buyNum: buyNum ?? _buyNum, + refundNum: refundNum ?? _refundNum, + type: type ?? _type, + reason: reason ?? _reason, + weight: weight ?? _weight, + applyPrice: applyPrice ?? _applyPrice, + sellPrice: sellPrice ?? _sellPrice, + postPay: postPay ?? _postPay, + isDelete: isDelete ?? _isDelete, + discountAmount: discountAmount ?? _discountAmount, + discountPercent: discountPercent ?? _discountPercent, + status: status ?? _status, + batch: batch ?? _batch, + deliveries: deliveries ?? _deliveries, + ticketType: ticketType ?? _ticketType, + ticketDays: ticketDays ?? _ticketDays, + takeType: takeType ?? _takeType, + skuTickets: skuTickets ?? _skuTickets, + ticketStyle: ticketStyle ?? _ticketStyle, + setMealDataList: setMealDataList ?? _setMealDataList, + packagingFee: packagingFee ?? _packagingFee, +); + String get id => _id; + String get createTime => _createTime; + String get createUser => _createUser; + String get updateTime => _updateTime; + String get updateUser => _updateUser; + String get tenantCode => _tenantCode; + String get storeId => _storeId; + String get orderId => _orderId; + dynamic get actInfo => _actInfo; + String get productId => _productId; + String get productName => _productName; + String get skuId => _skuId; + String get skuNameStr => _skuNameStr; + String get skuImg => _skuImg; + num get buyNum => _buyNum; + num get refundNum => _refundNum; + num get type => _type; + dynamic get reason => _reason; + num get weight => _weight; + String get applyPrice => _applyPrice; + String get sellPrice => _sellPrice; + String get postPay => _postPay; + num get isDelete => _isDelete; + String get discountAmount => _discountAmount; + num get discountPercent => _discountPercent; + bool get status => _status; + num get batch => _batch; + num get deliveries => _deliveries; + String get ticketType => _ticketType; + String get ticketDays => _ticketDays; + dynamic get takeType => _takeType; + List get skuTickets => _skuTickets; + String get ticketStyle => _ticketStyle; + List get setMealDataList => _setMealDataList; + String get packagingFee => _packagingFee; + + Map toJson() { + final map = {}; + map['id'] = _id; + map['createTime'] = _createTime; + map['createUser'] = _createUser; + map['updateTime'] = _updateTime; + map['updateUser'] = _updateUser; + map['tenantCode'] = _tenantCode; + map['storeId'] = _storeId; + map['orderId'] = _orderId; + map['actInfo'] = _actInfo; + map['productId'] = _productId; + map['productName'] = _productName; + map['skuId'] = _skuId; + map['skuNameStr'] = _skuNameStr; + map['skuImg'] = _skuImg; + map['buyNum'] = _buyNum; + map['refundNum'] = _refundNum; + map['type'] = _type; + map['reason'] = _reason; + map['weight'] = _weight; + map['applyPrice'] = _applyPrice; + map['sellPrice'] = _sellPrice; + map['postPay'] = _postPay; + map['isDelete'] = _isDelete; + map['discountAmount'] = _discountAmount; + map['discountPercent'] = _discountPercent; + map['status'] = _status; + map['batch'] = _batch; + map['deliveries'] = _deliveries; + map['ticketType'] = _ticketType; + map['ticketDays'] = _ticketDays; + map['takeType'] = _takeType; + if (_skuTickets != null) { + map['skuTickets'] = _skuTickets.map((v) => v.toJson()).toList(); + } + map['ticketStyle'] = _ticketStyle; + if (_setMealDataList != null) { + map['setMealDataList'] = _setMealDataList.map((v) => v.toJson()).toList(); + } + map['packagingFee'] = _packagingFee; + return map; + } + +} \ No newline at end of file diff --git a/lib/retrofit/data/business_order_list.dart b/lib/retrofit/data/business_order_list.dart new file mode 100644 index 00000000..763b9744 --- /dev/null +++ b/lib/retrofit/data/business_order_list.dart @@ -0,0 +1,779 @@ +/// total : 1 +/// adminOrderDTOList : [{"id":"1704311046749028352","orderCode":"202309200946320001","storeName":"士林鲜果&牛奶","productCount":1,"orderStatus":1,"orderSum":"0.01","paySum":"0","createTime":"2023-09-20 09:46:33","returnType":0,"orderType":0,"returnCode":null,"returnStatus":null,"applyTime":null,"applySum":null,"memberAccount":"郑州小吃街","name":null,"payStatus":0,"couponSubPrice":"0.00","totalDiscountPrice":"0.00","orderSource":3,"dayFlowCode":"352","tableId":"0","tableName":null,"realPeople":null,"refundStatus":0,"notes":"","payNum":null,"reason":null,"isSubscribe":false,"subcribeTime":null,"endRefundTime":null,"memberInfo":null,"orderProductList":[{"id":"1704311046925189120","createTime":"2023-09-20 09:46:33","createUser":"1640233401329909760","updateTime":"2023-09-20 09:46:33","updateUser":"1640233401329909760","tenantCode":"1195","storeId":"1645316356192600064","orderId":"1704311046749028352","actInfo":null,"productId":"1685891939443933184","productName":"芒果牛乳","skuId":"1704310860643565568","skuNameStr":"700ml 冰 七分糖","skuImg":"","buyNum":1,"refundNum":0,"type":0,"reason":null,"weight":0.0,"applyPrice":"19.00","sellPrice":"0.01","postPay":"0.00","isDelete":0,"discountAmount":"0.00","discountPercent":100,"status":true,"batch":1,"deliveries":0,"ticketType":"","ticketDays":"0","takeType":null,"skuTickets":[],"ticketStyle":"","setMealDataList":null,"packagingFee":"0.00"}],"mid":"1640233401329909760","isTakeOut":0,"logisticsId":"0","shipperCode":"","logisticsName":"","logisticsNum":"","logisticsCase":null,"postFee":"0.00","finalPayPrice":"0.00"}] + +class BusinessOrderList { + BusinessOrderList({ + num total, + List adminOrderDTOList,}){ + _total = total; + _adminOrderDTOList = adminOrderDTOList; +} + + BusinessOrderList.fromJson(dynamic json) { + _total = json['total']; + if (json['adminOrderDTOList'] != null) { + _adminOrderDTOList = []; + json['adminOrderDTOList'].forEach((v) { + _adminOrderDTOList.add(AdminOrderDtoList.fromJson(v)); + }); + } + } + num _total; + List _adminOrderDTOList; +BusinessOrderList copyWith({ num total, + List adminOrderDTOList, +}) => BusinessOrderList( total: total ?? _total, + adminOrderDTOList: adminOrderDTOList ?? _adminOrderDTOList, +); + num get total => _total; + List get adminOrderDTOList => _adminOrderDTOList; + + Map toJson() { + final map = {}; + map['total'] = _total; + if (_adminOrderDTOList != null) { + map['adminOrderDTOList'] = _adminOrderDTOList.map((v) => v.toJson()).toList(); + } + return map; + } + +} + +/// id : "1704311046749028352" +/// orderCode : "202309200946320001" +/// storeName : "士林鲜果&牛奶" +/// productCount : 1 +/// orderStatus : 1 +/// orderSum : "0.01" +/// paySum : "0" +/// createTime : "2023-09-20 09:46:33" +/// returnType : 0 +/// orderType : 0 +/// returnCode : null +/// returnStatus : null +/// applyTime : null +/// applySum : null +/// memberAccount : "郑州小吃街" +/// name : null +/// payStatus : 0 +/// couponSubPrice : "0.00" +/// totalDiscountPrice : "0.00" +/// orderSource : 3 +/// dayFlowCode : "352" +/// tableId : "0" +/// tableName : null +/// realPeople : null +/// refundStatus : 0 +/// notes : "" +/// payNum : null +/// reason : null +/// isSubscribe : false +/// subcribeTime : null +/// endRefundTime : null +/// memberInfo : null +/// orderProductList : [{"id":"1704311046925189120","createTime":"2023-09-20 09:46:33","createUser":"1640233401329909760","updateTime":"2023-09-20 09:46:33","updateUser":"1640233401329909760","tenantCode":"1195","storeId":"1645316356192600064","orderId":"1704311046749028352","actInfo":null,"productId":"1685891939443933184","productName":"芒果牛乳","skuId":"1704310860643565568","skuNameStr":"700ml 冰 七分糖","skuImg":"","buyNum":1,"refundNum":0,"type":0,"reason":null,"weight":0.0,"applyPrice":"19.00","sellPrice":"0.01","postPay":"0.00","isDelete":0,"discountAmount":"0.00","discountPercent":100,"status":true,"batch":1,"deliveries":0,"ticketType":"","ticketDays":"0","takeType":null,"skuTickets":[],"ticketStyle":"","setMealDataList":null,"packagingFee":"0.00"}] +/// mid : "1640233401329909760" +/// isTakeOut : 0 +/// logisticsId : "0" +/// shipperCode : "" +/// logisticsName : "" +/// logisticsNum : "" +/// logisticsCase : null +/// postFee : "0.00" +/// finalPayPrice : "0.00" + +class AdminOrderDtoList { + AdminOrderDtoList({ + String id, + String orderCode, + String storeName, + num productCount, + num orderStatus, + String orderSum, + String paySum, + String createTime, + num returnType, + num orderType, + dynamic returnCode, + dynamic returnStatus, + dynamic applyTime, + dynamic applySum, + String memberAccount, + dynamic name, + num payStatus, + String couponSubPrice, + String totalDiscountPrice, + num orderSource, + String dayFlowCode, + String tableId, + dynamic tableName, + dynamic realPeople, + num refundStatus, + String notes, + dynamic payNum, + dynamic reason, + bool isSubscribe, + dynamic subcribeTime, + dynamic endRefundTime, + dynamic memberInfo, + List orderProductList, + String mid, + num isTakeOut, + String logisticsId, + String shipperCode, + String logisticsName, + String logisticsNum, + dynamic logisticsCase, + String postFee, + String finalPayPrice,}){ + _id = id; + _orderCode = orderCode; + _storeName = storeName; + _productCount = productCount; + _orderStatus = orderStatus; + _orderSum = orderSum; + _paySum = paySum; + _createTime = createTime; + _returnType = returnType; + _orderType = orderType; + _returnCode = returnCode; + _returnStatus = returnStatus; + _applyTime = applyTime; + _applySum = applySum; + _memberAccount = memberAccount; + _name = name; + _payStatus = payStatus; + _couponSubPrice = couponSubPrice; + _totalDiscountPrice = totalDiscountPrice; + _orderSource = orderSource; + _dayFlowCode = dayFlowCode; + _tableId = tableId; + _tableName = tableName; + _realPeople = realPeople; + _refundStatus = refundStatus; + _notes = notes; + _payNum = payNum; + _reason = reason; + _isSubscribe = isSubscribe; + _subcribeTime = subcribeTime; + _endRefundTime = endRefundTime; + _memberInfo = memberInfo; + _orderProductList = orderProductList; + _mid = mid; + _isTakeOut = isTakeOut; + _logisticsId = logisticsId; + _shipperCode = shipperCode; + _logisticsName = logisticsName; + _logisticsNum = logisticsNum; + _logisticsCase = logisticsCase; + _postFee = postFee; + _finalPayPrice = finalPayPrice; +} + + AdminOrderDtoList.fromJson(dynamic json) { + _id = json['id']; + _orderCode = json['orderCode']; + _storeName = json['storeName']; + _productCount = json['productCount']; + _orderStatus = json['orderStatus']; + _orderSum = json['orderSum']; + _paySum = json['paySum']; + _createTime = json['createTime']; + _returnType = json['returnType']; + _orderType = json['orderType']; + _returnCode = json['returnCode']; + _returnStatus = json['returnStatus']; + _applyTime = json['applyTime']; + _applySum = json['applySum']; + _memberAccount = json['memberAccount']; + _name = json['name']; + _payStatus = json['payStatus']; + _couponSubPrice = json['couponSubPrice']; + _totalDiscountPrice = json['totalDiscountPrice']; + _orderSource = json['orderSource']; + _dayFlowCode = json['dayFlowCode']; + _tableId = json['tableId']; + _tableName = json['tableName']; + _realPeople = json['realPeople']; + _refundStatus = json['refundStatus']; + _notes = json['notes']; + _payNum = json['payNum']; + _reason = json['reason']; + _isSubscribe = json['isSubscribe']; + _subcribeTime = json['subcribeTime']; + _endRefundTime = json['endRefundTime']; + _memberInfo = json['memberInfo']; + if (json['orderProductList'] != null) { + _orderProductList = []; + json['orderProductList'].forEach((v) { + _orderProductList.add(OrderProductList.fromJson(v)); + }); + } + _mid = json['mid']; + _isTakeOut = json['isTakeOut']; + _logisticsId = json['logisticsId']; + _shipperCode = json['shipperCode']; + _logisticsName = json['logisticsName']; + _logisticsNum = json['logisticsNum']; + _logisticsCase = json['logisticsCase']; + _postFee = json['postFee']; + _finalPayPrice = json['finalPayPrice']; + } + String _id; + String _orderCode; + String _storeName; + num _productCount; + num _orderStatus; + String _orderSum; + String _paySum; + String _createTime; + num _returnType; + num _orderType; + dynamic _returnCode; + dynamic _returnStatus; + dynamic _applyTime; + dynamic _applySum; + String _memberAccount; + dynamic _name; + num _payStatus; + String _couponSubPrice; + String _totalDiscountPrice; + num _orderSource; + String _dayFlowCode; + String _tableId; + dynamic _tableName; + dynamic _realPeople; + num _refundStatus; + String _notes; + dynamic _payNum; + dynamic _reason; + bool _isSubscribe; + dynamic _subcribeTime; + dynamic _endRefundTime; + dynamic _memberInfo; + List _orderProductList; + String _mid; + num _isTakeOut; + String _logisticsId; + String _shipperCode; + String _logisticsName; + String _logisticsNum; + dynamic _logisticsCase; + String _postFee; + String _finalPayPrice; +AdminOrderDtoList copyWith({ String id, + String orderCode, + String storeName, + num productCount, + num orderStatus, + String orderSum, + String paySum, + String createTime, + num returnType, + num orderType, + dynamic returnCode, + dynamic returnStatus, + dynamic applyTime, + dynamic applySum, + String memberAccount, + dynamic name, + num payStatus, + String couponSubPrice, + String totalDiscountPrice, + num orderSource, + String dayFlowCode, + String tableId, + dynamic tableName, + dynamic realPeople, + num refundStatus, + String notes, + dynamic payNum, + dynamic reason, + bool isSubscribe, + dynamic subcribeTime, + dynamic endRefundTime, + dynamic memberInfo, + List orderProductList, + String mid, + num isTakeOut, + String logisticsId, + String shipperCode, + String logisticsName, + String logisticsNum, + dynamic logisticsCase, + String postFee, + String finalPayPrice, +}) => AdminOrderDtoList( id: id ?? _id, + orderCode: orderCode ?? _orderCode, + storeName: storeName ?? _storeName, + productCount: productCount ?? _productCount, + orderStatus: orderStatus ?? _orderStatus, + orderSum: orderSum ?? _orderSum, + paySum: paySum ?? _paySum, + createTime: createTime ?? _createTime, + returnType: returnType ?? _returnType, + orderType: orderType ?? _orderType, + returnCode: returnCode ?? _returnCode, + returnStatus: returnStatus ?? _returnStatus, + applyTime: applyTime ?? _applyTime, + applySum: applySum ?? _applySum, + memberAccount: memberAccount ?? _memberAccount, + name: name ?? _name, + payStatus: payStatus ?? _payStatus, + couponSubPrice: couponSubPrice ?? _couponSubPrice, + totalDiscountPrice: totalDiscountPrice ?? _totalDiscountPrice, + orderSource: orderSource ?? _orderSource, + dayFlowCode: dayFlowCode ?? _dayFlowCode, + tableId: tableId ?? _tableId, + tableName: tableName ?? _tableName, + realPeople: realPeople ?? _realPeople, + refundStatus: refundStatus ?? _refundStatus, + notes: notes ?? _notes, + payNum: payNum ?? _payNum, + reason: reason ?? _reason, + isSubscribe: isSubscribe ?? _isSubscribe, + subcribeTime: subcribeTime ?? _subcribeTime, + endRefundTime: endRefundTime ?? _endRefundTime, + memberInfo: memberInfo ?? _memberInfo, + orderProductList: orderProductList ?? _orderProductList, + mid: mid ?? _mid, + isTakeOut: isTakeOut ?? _isTakeOut, + logisticsId: logisticsId ?? _logisticsId, + shipperCode: shipperCode ?? _shipperCode, + logisticsName: logisticsName ?? _logisticsName, + logisticsNum: logisticsNum ?? _logisticsNum, + logisticsCase: logisticsCase ?? _logisticsCase, + postFee: postFee ?? _postFee, + finalPayPrice: finalPayPrice ?? _finalPayPrice, +); + String get id => _id; + String get orderCode => _orderCode; + String get storeName => _storeName; + num get productCount => _productCount; + num get orderStatus => _orderStatus; + String get orderSum => _orderSum; + String get paySum => _paySum; + String get createTime => _createTime; + num get returnType => _returnType; + num get orderType => _orderType; + dynamic get returnCode => _returnCode; + dynamic get returnStatus => _returnStatus; + dynamic get applyTime => _applyTime; + dynamic get applySum => _applySum; + String get memberAccount => _memberAccount; + dynamic get name => _name; + num get payStatus => _payStatus; + String get couponSubPrice => _couponSubPrice; + String get totalDiscountPrice => _totalDiscountPrice; + num get orderSource => _orderSource; + String get dayFlowCode => _dayFlowCode; + String get tableId => _tableId; + dynamic get tableName => _tableName; + dynamic get realPeople => _realPeople; + num get refundStatus => _refundStatus; + String get notes => _notes; + dynamic get payNum => _payNum; + dynamic get reason => _reason; + bool get isSubscribe => _isSubscribe; + dynamic get subcribeTime => _subcribeTime; + dynamic get endRefundTime => _endRefundTime; + dynamic get memberInfo => _memberInfo; + List get orderProductList => _orderProductList; + String get mid => _mid; + num get isTakeOut => _isTakeOut; + String get logisticsId => _logisticsId; + String get shipperCode => _shipperCode; + String get logisticsName => _logisticsName; + String get logisticsNum => _logisticsNum; + dynamic get logisticsCase => _logisticsCase; + String get postFee => _postFee; + String get finalPayPrice => _finalPayPrice; + + Map toJson() { + final map = {}; + map['id'] = _id; + map['orderCode'] = _orderCode; + map['storeName'] = _storeName; + map['productCount'] = _productCount; + map['orderStatus'] = _orderStatus; + map['orderSum'] = _orderSum; + map['paySum'] = _paySum; + map['createTime'] = _createTime; + map['returnType'] = _returnType; + map['orderType'] = _orderType; + map['returnCode'] = _returnCode; + map['returnStatus'] = _returnStatus; + map['applyTime'] = _applyTime; + map['applySum'] = _applySum; + map['memberAccount'] = _memberAccount; + map['name'] = _name; + map['payStatus'] = _payStatus; + map['couponSubPrice'] = _couponSubPrice; + map['totalDiscountPrice'] = _totalDiscountPrice; + map['orderSource'] = _orderSource; + map['dayFlowCode'] = _dayFlowCode; + map['tableId'] = _tableId; + map['tableName'] = _tableName; + map['realPeople'] = _realPeople; + map['refundStatus'] = _refundStatus; + map['notes'] = _notes; + map['payNum'] = _payNum; + map['reason'] = _reason; + map['isSubscribe'] = _isSubscribe; + map['subcribeTime'] = _subcribeTime; + map['endRefundTime'] = _endRefundTime; + map['memberInfo'] = _memberInfo; + if (_orderProductList != null) { + map['orderProductList'] = _orderProductList.map((v) => v.toJson()).toList(); + } + map['mid'] = _mid; + map['isTakeOut'] = _isTakeOut; + map['logisticsId'] = _logisticsId; + map['shipperCode'] = _shipperCode; + map['logisticsName'] = _logisticsName; + map['logisticsNum'] = _logisticsNum; + map['logisticsCase'] = _logisticsCase; + map['postFee'] = _postFee; + map['finalPayPrice'] = _finalPayPrice; + return map; + } + +} + +/// id : "1704311046925189120" +/// createTime : "2023-09-20 09:46:33" +/// createUser : "1640233401329909760" +/// updateTime : "2023-09-20 09:46:33" +/// updateUser : "1640233401329909760" +/// tenantCode : "1195" +/// storeId : "1645316356192600064" +/// orderId : "1704311046749028352" +/// actInfo : null +/// productId : "1685891939443933184" +/// productName : "芒果牛乳" +/// skuId : "1704310860643565568" +/// skuNameStr : "700ml 冰 七分糖" +/// skuImg : "" +/// buyNum : 1 +/// refundNum : 0 +/// type : 0 +/// reason : null +/// weight : 0.0 +/// applyPrice : "19.00" +/// sellPrice : "0.01" +/// postPay : "0.00" +/// isDelete : 0 +/// discountAmount : "0.00" +/// discountPercent : 100 +/// status : true +/// batch : 1 +/// deliveries : 0 +/// ticketType : "" +/// ticketDays : "0" +/// takeType : null +/// skuTickets : [] +/// ticketStyle : "" +/// setMealDataList : null +/// packagingFee : "0.00" + +class OrderProductList { + OrderProductList({ + String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String tenantCode, + String storeId, + String orderId, + dynamic actInfo, + String productId, + String productName, + String skuId, + String skuNameStr, + String skuImg, + num buyNum, + num refundNum, + num type, + dynamic reason, + num weight, + String applyPrice, + String sellPrice, + String postPay, + num isDelete, + String discountAmount, + num discountPercent, + bool status, + num batch, + num deliveries, + String ticketType, + String ticketDays, + dynamic takeType, + List skuTickets, + String ticketStyle, + dynamic setMealDataList, + String packagingFee,}){ + _id = id; + _createTime = createTime; + _createUser = createUser; + _updateTime = updateTime; + _updateUser = updateUser; + _tenantCode = tenantCode; + _storeId = storeId; + _orderId = orderId; + _actInfo = actInfo; + _productId = productId; + _productName = productName; + _skuId = skuId; + _skuNameStr = skuNameStr; + _skuImg = skuImg; + _buyNum = buyNum; + _refundNum = refundNum; + _type = type; + _reason = reason; + _weight = weight; + _applyPrice = applyPrice; + _sellPrice = sellPrice; + _postPay = postPay; + _isDelete = isDelete; + _discountAmount = discountAmount; + _discountPercent = discountPercent; + _status = status; + _batch = batch; + _deliveries = deliveries; + _ticketType = ticketType; + _ticketDays = ticketDays; + _takeType = takeType; + _skuTickets = skuTickets; + _ticketStyle = ticketStyle; + _setMealDataList = setMealDataList; + _packagingFee = packagingFee; +} + + OrderProductList.fromJson(dynamic json) { + _id = json['id']; + _createTime = json['createTime']; + _createUser = json['createUser']; + _updateTime = json['updateTime']; + _updateUser = json['updateUser']; + _tenantCode = json['tenantCode']; + _storeId = json['storeId']; + _orderId = json['orderId']; + _actInfo = json['actInfo']; + _productId = json['productId']; + _productName = json['productName']; + _skuId = json['skuId']; + _skuNameStr = json['skuNameStr']; + _skuImg = json['skuImg']; + _buyNum = json['buyNum']; + _refundNum = json['refundNum']; + _type = json['type']; + _reason = json['reason']; + _weight = json['weight']; + _applyPrice = json['applyPrice']; + _sellPrice = json['sellPrice']; + _postPay = json['postPay']; + _isDelete = json['isDelete']; + _discountAmount = json['discountAmount']; + _discountPercent = json['discountPercent']; + _status = json['status']; + _batch = json['batch']; + _deliveries = json['deliveries']; + _ticketType = json['ticketType']; + _ticketDays = json['ticketDays']; + _takeType = json['takeType']; + // if (json['skuTickets'] != null) { + // _skuTickets = []; + // json['skuTickets'].forEach((v) { + // _skuTickets.add(Dynamic.fromJson(v)); + // }); + // } + _ticketStyle = json['ticketStyle']; + _setMealDataList = json['setMealDataList']; + _packagingFee = json['packagingFee']; + } + String _id; + String _createTime; + String _createUser; + String _updateTime; + String _updateUser; + String _tenantCode; + String _storeId; + String _orderId; + dynamic _actInfo; + String _productId; + String _productName; + String _skuId; + String _skuNameStr; + String _skuImg; + num _buyNum; + num _refundNum; + num _type; + dynamic _reason; + num _weight; + String _applyPrice; + String _sellPrice; + String _postPay; + num _isDelete; + String _discountAmount; + num _discountPercent; + bool _status; + num _batch; + num _deliveries; + String _ticketType; + String _ticketDays; + dynamic _takeType; + List _skuTickets; + String _ticketStyle; + dynamic _setMealDataList; + String _packagingFee; +OrderProductList copyWith({ String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String tenantCode, + String storeId, + String orderId, + dynamic actInfo, + String productId, + String productName, + String skuId, + String skuNameStr, + String skuImg, + num buyNum, + num refundNum, + num type, + dynamic reason, + num weight, + String applyPrice, + String sellPrice, + String postPay, + num isDelete, + String discountAmount, + num discountPercent, + bool status, + num batch, + num deliveries, + String ticketType, + String ticketDays, + dynamic takeType, + List skuTickets, + String ticketStyle, + dynamic setMealDataList, + String packagingFee, +}) => OrderProductList( id: id ?? _id, + createTime: createTime ?? _createTime, + createUser: createUser ?? _createUser, + updateTime: updateTime ?? _updateTime, + updateUser: updateUser ?? _updateUser, + tenantCode: tenantCode ?? _tenantCode, + storeId: storeId ?? _storeId, + orderId: orderId ?? _orderId, + actInfo: actInfo ?? _actInfo, + productId: productId ?? _productId, + productName: productName ?? _productName, + skuId: skuId ?? _skuId, + skuNameStr: skuNameStr ?? _skuNameStr, + skuImg: skuImg ?? _skuImg, + buyNum: buyNum ?? _buyNum, + refundNum: refundNum ?? _refundNum, + type: type ?? _type, + reason: reason ?? _reason, + weight: weight ?? _weight, + applyPrice: applyPrice ?? _applyPrice, + sellPrice: sellPrice ?? _sellPrice, + postPay: postPay ?? _postPay, + isDelete: isDelete ?? _isDelete, + discountAmount: discountAmount ?? _discountAmount, + discountPercent: discountPercent ?? _discountPercent, + status: status ?? _status, + batch: batch ?? _batch, + deliveries: deliveries ?? _deliveries, + ticketType: ticketType ?? _ticketType, + ticketDays: ticketDays ?? _ticketDays, + takeType: takeType ?? _takeType, + skuTickets: skuTickets ?? _skuTickets, + ticketStyle: ticketStyle ?? _ticketStyle, + setMealDataList: setMealDataList ?? _setMealDataList, + packagingFee: packagingFee ?? _packagingFee, +); + String get id => _id; + String get createTime => _createTime; + String get createUser => _createUser; + String get updateTime => _updateTime; + String get updateUser => _updateUser; + String get tenantCode => _tenantCode; + String get storeId => _storeId; + String get orderId => _orderId; + dynamic get actInfo => _actInfo; + String get productId => _productId; + String get productName => _productName; + String get skuId => _skuId; + String get skuNameStr => _skuNameStr; + String get skuImg => _skuImg; + num get buyNum => _buyNum; + num get refundNum => _refundNum; + num get type => _type; + dynamic get reason => _reason; + num get weight => _weight; + String get applyPrice => _applyPrice; + String get sellPrice => _sellPrice; + String get postPay => _postPay; + num get isDelete => _isDelete; + String get discountAmount => _discountAmount; + num get discountPercent => _discountPercent; + bool get status => _status; + num get batch => _batch; + num get deliveries => _deliveries; + String get ticketType => _ticketType; + String get ticketDays => _ticketDays; + dynamic get takeType => _takeType; + List get skuTickets => _skuTickets; + String get ticketStyle => _ticketStyle; + dynamic get setMealDataList => _setMealDataList; + String get packagingFee => _packagingFee; + + Map toJson() { + final map = {}; + map['id'] = _id; + map['createTime'] = _createTime; + map['createUser'] = _createUser; + map['updateTime'] = _updateTime; + map['updateUser'] = _updateUser; + map['tenantCode'] = _tenantCode; + map['storeId'] = _storeId; + map['orderId'] = _orderId; + map['actInfo'] = _actInfo; + map['productId'] = _productId; + map['productName'] = _productName; + map['skuId'] = _skuId; + map['skuNameStr'] = _skuNameStr; + map['skuImg'] = _skuImg; + map['buyNum'] = _buyNum; + map['refundNum'] = _refundNum; + map['type'] = _type; + map['reason'] = _reason; + map['weight'] = _weight; + map['applyPrice'] = _applyPrice; + map['sellPrice'] = _sellPrice; + map['postPay'] = _postPay; + map['isDelete'] = _isDelete; + map['discountAmount'] = _discountAmount; + map['discountPercent'] = _discountPercent; + map['status'] = _status; + map['batch'] = _batch; + map['deliveries'] = _deliveries; + map['ticketType'] = _ticketType; + map['ticketDays'] = _ticketDays; + map['takeType'] = _takeType; + if (_skuTickets != null) { + map['skuTickets'] = _skuTickets.map((v) => v.toJson()).toList(); + } + map['ticketStyle'] = _ticketStyle; + map['setMealDataList'] = _setMealDataList; + map['packagingFee'] = _packagingFee; + return map; + } + +} \ No newline at end of file diff --git a/lib/retrofit/data/product_group_list.dart b/lib/retrofit/data/product_group_list.dart new file mode 100644 index 00000000..85585bc0 --- /dev/null +++ b/lib/retrofit/data/product_group_list.dart @@ -0,0 +1,356 @@ +/// records : [{"id":"1685938929007591424","createTime":"2023-07-31 17:02:19","createUser":"1640233401329909760","updateTime":"2023-07-31 17:02:19","updateUser":"1640233401329909760","storeId":"1645692156444147712","groupName":"便当","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1645718708355596288","createTime":"2023-04-11 17:21:31","createUser":"1640233401329909760","updateTime":"2023-07-31 16:46:52","updateUser":"1640233401329909760","storeId":"1645318527105630208","groupName":"锅烧意面","groupImg":"","sort":1,"kitchenGroup":0,"printerId":null,"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685917127472578560","createTime":"2023-07-31 15:35:41","createUser":"1640233401329909760","updateTime":"2023-07-31 15:35:41","updateUser":"1640233401329909760","storeId":"1645319215739043840","groupName":"淡水阿给","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685917867804983296","createTime":"2023-07-31 15:38:37","createUser":"1640233401329909760","updateTime":"2023-07-31 15:38:37","updateUser":"1640233401329909760","storeId":"1645321493476802560","groupName":"筒仔米糕","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685918375135412224","createTime":"2023-07-31 15:40:38","createUser":"1640233401329909760","updateTime":"2023-07-31 15:40:38","updateUser":"1640233401329909760","storeId":"1645321493476802560","groupName":"高雄鱿鱼羹","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685919379851575296","createTime":"2023-07-31 15:44:38","createUser":"1640233401329909760","updateTime":"2023-07-31 15:44:38","updateUser":"1640233401329909760","storeId":"1645321493476802560","groupName":"担仔面","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685921537254752256","createTime":"2023-07-31 15:53:12","createUser":"1640233401329909760","updateTime":"2023-07-31 15:53:12","updateUser":"1640233401329909760","storeId":"1645325613776502784","groupName":"虎咬猪","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685931474504646656","createTime":"2023-07-31 16:32:41","createUser":"1640233401329909760","updateTime":"2023-07-31 16:32:41","updateUser":"1640233401329909760","storeId":"1645326136193843200","groupName":"蚵仔煎面线","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685933328525426688","createTime":"2023-07-31 16:40:03","createUser":"1640233401329909760","updateTime":"2023-07-31 16:40:03","updateUser":"1640233401329909760","storeId":"1645319318184919040","groupName":"排骨酥汤","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685934258952077312","createTime":"2023-07-31 16:43:45","createUser":"1640233401329909760","updateTime":"2023-07-31 16:43:45","updateUser":"1640233401329909760","storeId":"1645326403631054848","groupName":"米粉汤","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685935568791273472","createTime":"2023-07-31 16:48:57","createUser":"1640233401329909760","updateTime":"2023-07-31 16:48:57","updateUser":"1640233401329909760","storeId":"1645689802072260608","groupName":"小火锅","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685936516674617344","createTime":"2023-07-31 16:52:43","createUser":"1640233401329909760","updateTime":"2023-07-31 16:52:43","updateUser":"1640233401329909760","storeId":"1645691900562243584","groupName":"贡丸","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685916586545774592","createTime":"2023-07-31 15:33:32","createUser":"1640233401329909760","updateTime":"2023-07-31 15:33:32","updateUser":"1640233401329909760","storeId":"1645319131278344192","groupName":"牛肉面","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685940088141250560","createTime":"2023-07-31 17:06:55","createUser":"1640233401329909760","updateTime":"2023-07-31 17:06:55","updateUser":"1640233401329909760","storeId":"1645692262354518016","groupName":"鸡肉饭","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685941847945379840","createTime":"2023-07-31 17:13:54","createUser":"1640233401329909760","updateTime":"2023-07-31 17:13:54","updateUser":"1640233401329909760","storeId":"1645692486699450368","groupName":"焢肉饭","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685942132050755584","createTime":"2023-07-31 17:15:02","createUser":"1640233401329909760","updateTime":"2023-07-31 17:15:02","updateUser":"1640233401329909760","storeId":"1645701372395388928","groupName":"润饼卷","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685942456434032640","createTime":"2023-07-31 17:16:20","createUser":"1640233401329909760","updateTime":"2023-07-31 17:16:20","updateUser":"1640233401329909760","storeId":"1645701459838238720","groupName":"大肠小肠","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685942903517478912","createTime":"2023-07-31 17:18:06","createUser":"1640233401329909760","updateTime":"2023-07-31 17:18:06","updateUser":"1640233401329909760","storeId":"1645701593900777472","groupName":"盐酥鸡","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685947445382479872","createTime":"2023-07-31 17:36:09","createUser":"1640233401329909760","updateTime":"2023-07-31 17:36:09","updateUser":"1640233401329909760","storeId":"1645690919204159488","groupName":"农场煮意","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685949646188314624","createTime":"2023-07-31 17:44:54","createUser":"1640233401329909760","updateTime":"2023-08-05 11:34:59","updateUser":"1640233401329909760","storeId":"1645691756009750528","groupName":"鲜奶茶","groupImg":"","sort":1,"kitchenGroup":0,"printerId":["1687667928939364352"],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685954754749923328","createTime":"2023-07-31 18:05:12","createUser":"1640233401329909760","updateTime":"2023-08-07 13:32:33","updateUser":"1640233401329909760","storeId":"1645692068967743488","groupName":"洛神系列","groupImg":"","sort":1,"kitchenGroup":0,"printerId":["1688422819995582464"],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685960192186908672","createTime":"2023-07-31 18:26:48","createUser":"1640233401329909760","updateTime":"2023-07-31 18:26:48","updateUser":"1640233401329909760","storeId":"1645326338908749824","groupName":"披萨","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685961077201829888","createTime":"2023-07-31 18:30:19","createUser":"1640233401329909760","updateTime":"2023-07-31 18:30:19","updateUser":"1640233401329909760","storeId":"1645701646107279360","groupName":"炸蚵嗲","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1686220594867077120","createTime":"2023-08-01 11:41:33","createUser":"1640233401329909760","updateTime":"2023-08-01 11:41:33","updateUser":"1640233401329909760","storeId":"1645701540310155264","groupName":"夯肉","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685894696259289088","createTime":"2023-07-31 14:06:33","createUser":"1640233401329909760","updateTime":"2023-07-31 14:06:33","updateUser":"1640233401329909760","storeId":"1645324215450075136","groupName":"绵绵冰","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1645722496508362752","createTime":"2023-04-11 17:36:34","createUser":"1640233401329909760","updateTime":"2023-07-31 14:35:18","updateUser":"1640233401329909760","storeId":"1645317547899224064","groupName":"臭豆腐","groupImg":"","sort":1,"kitchenGroup":0,"printerId":null,"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1645731996917301248","createTime":"2023-04-11 18:14:19","createUser":"1640233401329909760","updateTime":"2023-07-31 14:30:09","updateUser":"1640233401329909760","storeId":"1645317671987707904","groupName":"玉米","groupImg":"","sort":1,"kitchenGroup":0,"printerId":null,"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1645979990757474304","createTime":"2023-04-12 10:39:45","createUser":"1640233401329909760","updateTime":"2023-07-31 14:33:36","updateUser":"1640233401329909760","storeId":"1645317921456521216","groupName":"铁板麻辣豆腐","groupImg":"","sort":1,"kitchenGroup":0,"printerId":null,"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1645981112750571520","createTime":"2023-04-12 10:44:13","createUser":"1640233401329909760","updateTime":"2023-07-31 15:16:13","updateUser":"1640233401329909760","storeId":"1645318098540036096","groupName":"小食","groupImg":"","sort":1,"kitchenGroup":0,"printerId":null,"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1645981713114857472","createTime":"2023-04-12 10:46:36","createUser":"1640233401329909760","updateTime":"2023-07-31 14:11:26","updateUser":"1640233401329909760","storeId":"1645318285786349568","groupName":"炸菇菇","groupImg":"","sort":1,"kitchenGroup":0,"printerId":null,"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1645995597804601344","createTime":"2023-04-12 11:41:46","createUser":"1640233401329909760","updateTime":"2023-07-31 14:18:53","updateUser":"1640233401329909760","storeId":"1645318425783828480","groupName":"屏东剉冰","groupImg":"","sort":1,"kitchenGroup":0,"printerId":null,"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1646698771456720896","createTime":"2023-04-14 10:15:56","createUser":"1640233401329909760","updateTime":"2023-04-14 10:15:56","updateUser":"1640233401329909760","storeId":"0","groupName":"周边","groupImg":"","sort":1,"kitchenGroup":0,"printerId":null,"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1647050388576141312","createTime":"2023-04-15 09:33:08","createUser":"1640233401329909760","updateTime":"2023-07-31 17:30:51","updateUser":"1640233401329909760","storeId":"1645321921190952960","groupName":"奶酪包","groupImg":"","sort":1,"kitchenGroup":0,"printerId":null,"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685891142316457984","createTime":"2023-07-31 13:52:25","createUser":"1640233401329909760","updateTime":"2023-07-31 13:52:25","updateUser":"1640233401329909760","storeId":"1645316356192600064","groupName":"士林牛乳","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":true,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685914119351304192","createTime":"2023-07-31 15:23:43","createUser":"1640233401329909760","updateTime":"2023-07-31 15:23:43","updateUser":"1640233401329909760","storeId":"1645318946187902976","groupName":"西餐厅","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685902297860669440","createTime":"2023-07-31 14:36:45","createUser":"1640233401329909760","updateTime":"2023-07-31 14:36:45","updateUser":"1640233401329909760","storeId":"1645694248827224064","groupName":"汤圆","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685902818411544576","createTime":"2023-07-31 14:38:49","createUser":"1640233401329909760","updateTime":"2023-07-31 14:38:49","updateUser":"1640233401329909760","storeId":"1645695120688807936","groupName":"杏仁油条","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685903759810494464","createTime":"2023-07-31 14:42:34","createUser":"1640233401329909760","updateTime":"2023-07-31 14:42:34","updateUser":"1640233401329909760","storeId":"1645695186774261760","groupName":"豆花","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685904520762097664","createTime":"2023-07-31 14:45:35","createUser":"1640233401329909760","updateTime":"2023-07-31 14:45:35","updateUser":"1640233401329909760","storeId":"1645695531587993600","groupName":"古早味红茶冰","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685907095293001728","createTime":"2023-07-31 14:55:49","createUser":"1640233401329909760","updateTime":"2023-07-31 14:55:49","updateUser":"1640233401329909760","storeId":"1645695622973489152","groupName":"蒸食","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685908791297572864","createTime":"2023-07-31 15:02:33","createUser":"1640233401329909760","updateTime":"2023-07-31 15:02:33","updateUser":"1640233401329909760","storeId":"1645698130097733632","groupName":"烤鹌鹑蛋","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685909513447669760","createTime":"2023-07-31 15:05:25","createUser":"1640233401329909760","updateTime":"2023-07-31 15:05:25","updateUser":"1640233401329909760","storeId":"1645698860804210688","groupName":"地瓜球","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685910344725168128","createTime":"2023-07-31 15:08:44","createUser":"1640233401329909760","updateTime":"2023-07-31 15:08:44","updateUser":"1640233401329909760","storeId":"1645698953653518336","groupName":"鸡蛋糕","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685910768324706304","createTime":"2023-07-31 15:10:25","createUser":"1640233401329909760","updateTime":"2023-07-31 15:10:25","updateUser":"1640233401329909760","storeId":"1645701214400151552","groupName":"炸元宝","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685911559768899584","createTime":"2023-07-31 15:13:33","createUser":"1640233401329909760","updateTime":"2023-07-31 15:13:33","updateUser":"1640233401329909760","storeId":"1645701282909913088","groupName":"红薯饼","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685912790373498880","createTime":"2023-07-31 15:18:27","createUser":"1640233401329909760","updateTime":"2023-07-31 15:18:27","updateUser":"1640233401329909760","storeId":"1645318745612091392","groupName":"羊肉炉","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685912906736074752","createTime":"2023-07-31 15:18:54","createUser":"1640233401329909760","updateTime":"2023-07-31 15:18:54","updateUser":"1640233401329909760","storeId":"1645318745612091392","groupName":"配菜","groupImg":"","sort":1,"kitchenGroup":0,"printerId":[],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1647050460307128320","createTime":"2023-04-15 09:33:25","createUser":"1640233401329909760","updateTime":"2023-07-31 17:30:57","updateUser":"1640233401329909760","storeId":"1645321921190952960","groupName":"吐司","groupImg":"","sort":2,"kitchenGroup":0,"printerId":null,"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685949748680327168","createTime":"2023-07-31 17:45:18","createUser":"1640233401329909760","updateTime":"2023-08-05 11:35:04","updateUser":"1640233401329909760","storeId":"1645691756009750528","groupName":"茗茶","groupImg":"","sort":2,"kitchenGroup":0,"printerId":["1687667928939364352"],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}},{"id":"1685949802304503808","createTime":"2023-07-31 17:45:31","createUser":"1640233401329909760","updateTime":"2023-08-05 11:35:09","updateUser":"1640233401329909760","storeId":"1645691756009750528","groupName":"养身茶","groupImg":"","sort":3,"kitchenGroup":0,"printerId":["1687667928939364352"],"attachPrinterIds":null,"isDelete":0,"isCharge":0,"useVipDiscount":null,"profitSharing":{"type":"manual","mchName":"","mchCode":"","ratio":0}}] +/// total : "50" +/// size : "50" +/// current : "1" +/// orders : [{"column":"sort","asc":true}] +/// hitCount : false +/// searchCount : true +/// pages : "1" + +class ProductGroupList { + ProductGroupList({ + List records, + String total, + String size, + String current, + List orders, + bool hitCount, + bool searchCount, + String pages,}){ + _records = records; + _total = total; + _size = size; + _current = current; + _orders = orders; + _hitCount = hitCount; + _searchCount = searchCount; + _pages = pages; +} + + ProductGroupList.fromJson(dynamic json) { + if (json['records'] != null) { + _records = []; + json['records'].forEach((v) { + _records.add(Records.fromJson(v)); + }); + } + _total = json['total']; + _size = json['size']; + _current = json['current']; + if (json['orders'] != null) { + _orders = []; + json['orders'].forEach((v) { + _orders.add(Orders.fromJson(v)); + }); + } + _hitCount = json['hitCount']; + _searchCount = json['searchCount']; + _pages = json['pages']; + } + List _records; + String _total; + String _size; + String _current; + List _orders; + bool _hitCount; + bool _searchCount; + String _pages; +ProductGroupList copyWith({ List records, + String total, + String size, + String current, + List orders, + bool hitCount, + bool searchCount, + String pages, +}) => ProductGroupList( records: records ?? _records, + total: total ?? _total, + size: size ?? _size, + current: current ?? _current, + orders: orders ?? _orders, + hitCount: hitCount ?? _hitCount, + searchCount: searchCount ?? _searchCount, + pages: pages ?? _pages, +); + List get records => _records; + String get total => _total; + String get size => _size; + String get current => _current; + List get orders => _orders; + bool get hitCount => _hitCount; + bool get searchCount => _searchCount; + String get pages => _pages; + + Map toJson() { + final map = {}; + if (_records != null) { + map['records'] = _records.map((v) => v.toJson()).toList(); + } + map['total'] = _total; + map['size'] = _size; + map['current'] = _current; + if (_orders != null) { + map['orders'] = _orders.map((v) => v.toJson()).toList(); + } + map['hitCount'] = _hitCount; + map['searchCount'] = _searchCount; + map['pages'] = _pages; + return map; + } + +} + +/// column : "sort" +/// asc : true + +class Orders { + Orders({ + String column, + bool asc,}){ + _column = column; + _asc = asc; +} + + Orders.fromJson(dynamic json) { + _column = json['column']; + _asc = json['asc']; + } + String _column; + bool _asc; +Orders copyWith({ String column, + bool asc, +}) => Orders( column: column ?? _column, + asc: asc ?? _asc, +); + String get column => _column; + bool get asc => _asc; + + Map toJson() { + final map = {}; + map['column'] = _column; + map['asc'] = _asc; + return map; + } + +} + +/// id : "1685938929007591424" +/// createTime : "2023-07-31 17:02:19" +/// createUser : "1640233401329909760" +/// updateTime : "2023-07-31 17:02:19" +/// updateUser : "1640233401329909760" +/// storeId : "1645692156444147712" +/// groupName : "便当" +/// groupImg : "" +/// sort : 1 +/// kitchenGroup : 0 +/// printerId : [] +/// attachPrinterIds : null +/// isDelete : 0 +/// isCharge : 0 +/// useVipDiscount : null +/// profitSharing : {"type":"manual","mchName":"","mchCode":"","ratio":0} + +class Records { + Records({ + String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String storeId, + String groupName, + String groupImg, + num sort, + num kitchenGroup, + List printerId, + dynamic attachPrinterIds, + num isDelete, + num isCharge, + dynamic useVipDiscount, + ProfitSharing profitSharing,}){ + _id = id; + _createTime = createTime; + _createUser = createUser; + _updateTime = updateTime; + _updateUser = updateUser; + _storeId = storeId; + _groupName = groupName; + _groupImg = groupImg; + _sort = sort; + _kitchenGroup = kitchenGroup; + _printerId = printerId; + _attachPrinterIds = attachPrinterIds; + _isDelete = isDelete; + _isCharge = isCharge; + _useVipDiscount = useVipDiscount; + _profitSharing = profitSharing; +} + + Records.fromJson(dynamic json) { + _id = json['id']; + _createTime = json['createTime']; + _createUser = json['createUser']; + _updateTime = json['updateTime']; + _updateUser = json['updateUser']; + _storeId = json['storeId']; + _groupName = json['groupName']; + _groupImg = json['groupImg']; + _sort = json['sort']; + _kitchenGroup = json['kitchenGroup']; + // if (json['printerId'] != null) { + // _printerId = []; + // json['printerId'].forEach((v) { + // _printerId.add(Dynamic.fromJson(v)); + // }); + // } + _attachPrinterIds = json['attachPrinterIds']; + _isDelete = json['isDelete']; + _isCharge = json['isCharge']; + _useVipDiscount = json['useVipDiscount']; + _profitSharing = json['profitSharing'] != null ? ProfitSharing.fromJson(json['profitSharing']) : null; + } + String _id; + String _createTime; + String _createUser; + String _updateTime; + String _updateUser; + String _storeId; + String _groupName; + String _groupImg; + num _sort; + num _kitchenGroup; + List _printerId; + dynamic _attachPrinterIds; + num _isDelete; + num _isCharge; + dynamic _useVipDiscount; + ProfitSharing _profitSharing; +Records copyWith({ String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String storeId, + String groupName, + String groupImg, + num sort, + num kitchenGroup, + List printerId, + dynamic attachPrinterIds, + num isDelete, + num isCharge, + dynamic useVipDiscount, + ProfitSharing profitSharing, +}) => Records( id: id ?? _id, + createTime: createTime ?? _createTime, + createUser: createUser ?? _createUser, + updateTime: updateTime ?? _updateTime, + updateUser: updateUser ?? _updateUser, + storeId: storeId ?? _storeId, + groupName: groupName ?? _groupName, + groupImg: groupImg ?? _groupImg, + sort: sort ?? _sort, + kitchenGroup: kitchenGroup ?? _kitchenGroup, + printerId: printerId ?? _printerId, + attachPrinterIds: attachPrinterIds ?? _attachPrinterIds, + isDelete: isDelete ?? _isDelete, + isCharge: isCharge ?? _isCharge, + useVipDiscount: useVipDiscount ?? _useVipDiscount, + profitSharing: profitSharing ?? _profitSharing, +); + String get id => _id; + String get createTime => _createTime; + String get createUser => _createUser; + String get updateTime => _updateTime; + String get updateUser => _updateUser; + String get storeId => _storeId; + String get groupName => _groupName; + String get groupImg => _groupImg; + num get sort => _sort; + num get kitchenGroup => _kitchenGroup; + List get printerId => _printerId; + dynamic get attachPrinterIds => _attachPrinterIds; + num get isDelete => _isDelete; + num get isCharge => _isCharge; + dynamic get useVipDiscount => _useVipDiscount; + ProfitSharing get profitSharing => _profitSharing; + + Map toJson() { + final map = {}; + map['id'] = _id; + map['createTime'] = _createTime; + map['createUser'] = _createUser; + map['updateTime'] = _updateTime; + map['updateUser'] = _updateUser; + map['storeId'] = _storeId; + map['groupName'] = _groupName; + map['groupImg'] = _groupImg; + map['sort'] = _sort; + map['kitchenGroup'] = _kitchenGroup; + if (_printerId != null) { + map['printerId'] = _printerId.map((v) => v.toJson()).toList(); + } + map['attachPrinterIds'] = _attachPrinterIds; + map['isDelete'] = _isDelete; + map['isCharge'] = _isCharge; + map['useVipDiscount'] = _useVipDiscount; + if (_profitSharing != null) { + map['profitSharing'] = _profitSharing.toJson(); + } + return map; + } + +} + +/// type : "manual" +/// mchName : "" +/// mchCode : "" +/// ratio : 0 + +class ProfitSharing { + ProfitSharing({ + String type, + String mchName, + String mchCode, + num ratio,}){ + _type = type; + _mchName = mchName; + _mchCode = mchCode; + _ratio = ratio; +} + + ProfitSharing.fromJson(dynamic json) { + _type = json['type']; + _mchName = json['mchName']; + _mchCode = json['mchCode']; + _ratio = json['ratio']; + } + String _type; + String _mchName; + String _mchCode; + num _ratio; +ProfitSharing copyWith({ String type, + String mchName, + String mchCode, + num ratio, +}) => ProfitSharing( type: type ?? _type, + mchName: mchName ?? _mchName, + mchCode: mchCode ?? _mchCode, + ratio: ratio ?? _ratio, +); + String get type => _type; + String get mchName => _mchName; + String get mchCode => _mchCode; + num get ratio => _ratio; + + Map toJson() { + final map = {}; + map['type'] = _type; + map['mchName'] = _mchName; + map['mchCode'] = _mchCode; + map['ratio'] = _ratio; + return map; + } + +} \ No newline at end of file diff --git a/lib/retrofit/data/refund_reason_list.dart b/lib/retrofit/data/refund_reason_list.dart new file mode 100644 index 00000000..e2d6938e --- /dev/null +++ b/lib/retrofit/data/refund_reason_list.dart @@ -0,0 +1,232 @@ +/// records : [{"id":"1701507861319778304","createTime":"2023-09-12 16:07:41","createUser":"1640233401329909760","updateTime":"2023-09-12 16:07:41","updateUser":"1640233401329909760","storeId":"0","type":3,"reason":"测试退款","isDelete":0},{"id":"1689577561031442432","createTime":"2023-08-10 18:00:56","createUser":"1640233401329909760","updateTime":"2023-08-10 18:01:09","updateUser":"1640233401329909760","storeId":"1645316356192600064","type":3,"reason":"错误下单","isDelete":0},{"id":"1685119824058908672","createTime":"2023-07-29 10:47:29","createUser":"1640233401329909760","updateTime":"2023-07-29 10:47:29","updateUser":"1640233401329909760","storeId":"0","type":3,"reason":"客户取消","isDelete":0}] +/// total : "3" +/// size : "999" +/// current : "1" +/// orders : [{"column":"id","asc":false}] +/// hitCount : false +/// searchCount : true +/// pages : "1" + +class RefundReasonList { + RefundReasonList({ + List records, + String total, + String size, + String current, + List orders, + bool hitCount, + bool searchCount, + String pages,}){ + _records = records; + _total = total; + _size = size; + _current = current; + _orders = orders; + _hitCount = hitCount; + _searchCount = searchCount; + _pages = pages; +} + + RefundReasonList.fromJson(dynamic json) { + if (json['records'] != null) { + _records = []; + json['records'].forEach((v) { + _records.add(Records.fromJson(v)); + }); + } + _total = json['total']; + _size = json['size']; + _current = json['current']; + if (json['orders'] != null) { + _orders = []; + json['orders'].forEach((v) { + _orders.add(Orders.fromJson(v)); + }); + } + _hitCount = json['hitCount']; + _searchCount = json['searchCount']; + _pages = json['pages']; + } + List _records; + String _total; + String _size; + String _current; + List _orders; + bool _hitCount; + bool _searchCount; + String _pages; +RefundReasonList copyWith({ List records, + String total, + String size, + String current, + List orders, + bool hitCount, + bool searchCount, + String pages, +}) => RefundReasonList( records: records ?? _records, + total: total ?? _total, + size: size ?? _size, + current: current ?? _current, + orders: orders ?? _orders, + hitCount: hitCount ?? _hitCount, + searchCount: searchCount ?? _searchCount, + pages: pages ?? _pages, +); + List get records => _records; + String get total => _total; + String get size => _size; + String get current => _current; + List get orders => _orders; + bool get hitCount => _hitCount; + bool get searchCount => _searchCount; + String get pages => _pages; + + Map toJson() { + final map = {}; + if (_records != null) { + map['records'] = _records.map((v) => v.toJson()).toList(); + } + map['total'] = _total; + map['size'] = _size; + map['current'] = _current; + if (_orders != null) { + map['orders'] = _orders.map((v) => v.toJson()).toList(); + } + map['hitCount'] = _hitCount; + map['searchCount'] = _searchCount; + map['pages'] = _pages; + return map; + } + +} + +/// column : "id" +/// asc : false + +class Orders { + Orders({ + String column, + bool asc,}){ + _column = column; + _asc = asc; +} + + Orders.fromJson(dynamic json) { + _column = json['column']; + _asc = json['asc']; + } + String _column; + bool _asc; +Orders copyWith({ String column, + bool asc, +}) => Orders( column: column ?? _column, + asc: asc ?? _asc, +); + String get column => _column; + bool get asc => _asc; + + Map toJson() { + final map = {}; + map['column'] = _column; + map['asc'] = _asc; + return map; + } + +} + +/// id : "1701507861319778304" +/// createTime : "2023-09-12 16:07:41" +/// createUser : "1640233401329909760" +/// updateTime : "2023-09-12 16:07:41" +/// updateUser : "1640233401329909760" +/// storeId : "0" +/// type : 3 +/// reason : "测试退款" +/// isDelete : 0 + +class Records { + Records({ + String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String storeId, + num type, + String reason, + num isDelete,}){ + _id = id; + _createTime = createTime; + _createUser = createUser; + _updateTime = updateTime; + _updateUser = updateUser; + _storeId = storeId; + _type = type; + _reason = reason; + _isDelete = isDelete; +} + + Records.fromJson(dynamic json) { + _id = json['id']; + _createTime = json['createTime']; + _createUser = json['createUser']; + _updateTime = json['updateTime']; + _updateUser = json['updateUser']; + _storeId = json['storeId']; + _type = json['type']; + _reason = json['reason']; + _isDelete = json['isDelete']; + } + String _id; + String _createTime; + String _createUser; + String _updateTime; + String _updateUser; + String _storeId; + num _type; + String _reason; + num _isDelete; +Records copyWith({ String id, + String createTime, + String createUser, + String updateTime, + String updateUser, + String storeId, + num type, + String reason, + num isDelete, +}) => Records( id: id ?? _id, + createTime: createTime ?? _createTime, + createUser: createUser ?? _createUser, + updateTime: updateTime ?? _updateTime, + updateUser: updateUser ?? _updateUser, + storeId: storeId ?? _storeId, + type: type ?? _type, + reason: reason ?? _reason, + isDelete: isDelete ?? _isDelete, +); + String get id => _id; + String get createTime => _createTime; + String get createUser => _createUser; + String get updateTime => _updateTime; + String get updateUser => _updateUser; + String get storeId => _storeId; + num get type => _type; + String get reason => _reason; + num get isDelete => _isDelete; + + Map toJson() { + final map = {}; + map['id'] = _id; + map['createTime'] = _createTime; + map['createUser'] = _createUser; + map['updateTime'] = _updateTime; + map['updateUser'] = _updateUser; + map['storeId'] = _storeId; + map['type'] = _type; + map['reason'] = _reason; + map['isDelete'] = _isDelete; + return map; + } + +} \ No newline at end of file diff --git a/lib/union/union_list.dart b/lib/union/union_list.dart index 173bc4ef..eb50c42c 100644 --- a/lib/union/union_list.dart +++ b/lib/union/union_list.dart @@ -2,14 +2,11 @@ import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_baidu_mapapi_base/flutter_baidu_mapapi_base.dart'; -import 'package:flutter_baidu_mapapi_utils/flutter_baidu_mapapi_utils.dart'; -import 'package:flutter_bmflocation/flutter_bmflocation.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/generated/l10n.dart'; import 'package:huixiang/retrofit/data/store.dart'; import 'package:huixiang/utils/font_weight.dart'; -import 'package:huixiang/utils/location.dart'; import 'package:huixiang/view_widget/custom_image.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:pull_to_refresh/pull_to_refresh.dart'; diff --git a/lib/view_widget/settlement_tips_dialog.dart b/lib/view_widget/settlement_tips_dialog.dart index 9ae173ba..2bd70b2f 100644 --- a/lib/view_widget/settlement_tips_dialog.dart +++ b/lib/view_widget/settlement_tips_dialog.dart @@ -7,7 +7,8 @@ import 'package:huixiang/utils/font_weight.dart'; class SettlementTips extends StatefulWidget { final Function tips; final String text; - SettlementTips(this.tips, {this.text}); + final Color color; + SettlementTips(this.tips, {this.text,this.color}); @override State createState() { @@ -16,6 +17,7 @@ class SettlementTips extends StatefulWidget { } class _SettlementTips extends State { + @override Widget build(BuildContext context) { return Material( @@ -64,7 +66,7 @@ class _SettlementTips extends State { style: TextStyle( fontSize: 16.sp, fontWeight: MyFontWeight.medium, - color: Color(0xFF32A060), + color: widget?.color ?? Color(0xFF32A060), ), ), ),