|
|
|
import 'dart:convert';
|
|
|
|
|
|
|
|
import 'package:common_utils/common_utils.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:one_key/app.dart';
|
|
|
|
import 'package:one_key/constant/constant.dart';
|
|
|
|
import 'package:one_key/constant/error.dart';
|
|
|
|
import 'package:one_key/constant/state.dart';
|
|
...
|
...
|
@@ -21,6 +24,7 @@ import 'package:one_key/utils/utils.dart'; |
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
|
|
import '../models/get_board_model.dart';
|
|
|
|
import '../widgets/loading.dart';
|
|
|
|
import 'notebook_model.dart';
|
|
|
|
|
|
|
|
class TableManagerModel with ChangeNotifier {
|
|
...
|
...
|
@@ -55,8 +59,6 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
String night; //晚市时间段
|
|
|
|
UserModel userModel;
|
|
|
|
|
|
|
|
PageState pageState = PageState.Loading;
|
|
|
|
|
|
|
|
Map dailyMap = {}; // 早市对应半点钟,午市对应半点钟、晚市对应半点钟
|
|
|
|
bool swichState = false; //仅看空座
|
|
|
|
String selectDateStr = '';
|
|
...
|
...
|
@@ -67,15 +69,67 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
List dailyList = []; // 早市对应半点钟,午市对应半点钟、晚市对应半点钟
|
|
|
|
List<FeastBoardModel> banquetByDateData = []; //宴会看板数据/宴会预订的数据
|
|
|
|
List<Notebook> noteBooks;
|
|
|
|
PageState pageState;
|
|
|
|
bool showLoading = false;
|
|
|
|
|
|
|
|
TableManagerModel() {
|
|
|
|
print('fdsfs');
|
|
|
|
String tableSp = App.sp.getString('table_list');
|
|
|
|
|
|
|
|
if (tableSp == null) {
|
|
|
|
pageState = PageState.Loading;
|
|
|
|
} else {
|
|
|
|
tableOuterList = getSpTableList();
|
|
|
|
tablesAll = getSpTableAll();
|
|
|
|
pageState = PageState.Success;
|
|
|
|
initData(needKeep: false);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
List<TableOuter> getSpTableList() {
|
|
|
|
String tableList = App.sp.getString('table_list');
|
|
|
|
if (tableList == null) {
|
|
|
|
return [];
|
|
|
|
}
|
|
|
|
List<TableOuter> temp = [];
|
|
|
|
List list = json.decode(tableList);
|
|
|
|
list.forEach((element) {
|
|
|
|
temp.add(TableOuter.fromJson2(element));
|
|
|
|
});
|
|
|
|
return temp;
|
|
|
|
}
|
|
|
|
|
|
|
|
List<t.Table> getSpTableAll() {
|
|
|
|
String tableList = App.sp.getString('table_list');
|
|
|
|
if (tableList == null) {
|
|
|
|
return [];
|
|
|
|
} else {
|
|
|
|
List<t.Table> temp = [];
|
|
|
|
// // List list = json.decode(tableAll);
|
|
|
|
// // list.forEach((element) {
|
|
|
|
// // temp.add(t.Table.fromJson(element));
|
|
|
|
// // });
|
|
|
|
// // return temp;
|
|
|
|
// // List<TableOuter> temp = [];
|
|
|
|
// List list = json.decode(tableList);
|
|
|
|
// list.forEach((element) {
|
|
|
|
// temp.addAll(TableOuter.fromJson2(element).list);
|
|
|
|
// });
|
|
|
|
tableOuterList.forEach((element) {
|
|
|
|
temp.addAll(element.list);
|
|
|
|
});
|
|
|
|
return temp;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//指定日期、时段宴会预定
|
|
|
|
|
|
|
|
Future<bool> getBanquetByDate(
|
|
|
|
BuildContext context, Map<String, String> params,
|
|
|
|
{showLoading = false}) async {
|
|
|
|
{showLoading = false, bool selfDismiss = false}) async {
|
|
|
|
BaseResp<dynamic> baseResp = await DioUtil()
|
|
|
|
.request<dynamic>(context, Method.get, HttpUrl.get_banquet_by_date,
|
|
|
|
data: params, showLoading: showLoading)
|
|
|
|
data: params, showLoading: showLoading, selfDismiss: selfDismiss)
|
|
|
|
.catchError((error) {
|
|
|
|
print(error.toString());
|
|
|
|
if (error is MyError) {}
|
|
...
|
...
|
@@ -174,9 +228,29 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
}
|
|
|
|
selectDateStr = returnDayDateStr(dateTime);
|
|
|
|
selectWeekAndLunarCalendar = returnWeekAndLunarCalendar(dateTime, context);
|
|
|
|
List temp = await getTableList(context);
|
|
|
|
|
|
|
|
List temp = [];
|
|
|
|
String tableSp = App.sp.getString('table_list');
|
|
|
|
if (tableSp == null) {
|
|
|
|
temp = await getTableList(context);
|
|
|
|
} else {
|
|
|
|
// List list = json.decode(tableSp);
|
|
|
|
// list.forEach((element) {
|
|
|
|
// temp.add(TableOuter.fromJson2(element));
|
|
|
|
// });
|
|
|
|
temp = getSpTableList();
|
|
|
|
}
|
|
|
|
|
|
|
|
if (temp.length > 0) {
|
|
|
|
getReserveList(context);
|
|
|
|
await getReserveList(context, selfDismiss: true);
|
|
|
|
// await getReserveList(context,
|
|
|
|
// needLoading: false,
|
|
|
|
// showMsg: true,
|
|
|
|
// showloading: true,
|
|
|
|
// selfDismiss: true);
|
|
|
|
if (showLoading) {
|
|
|
|
Loading.hideLoading(context);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
// pageState = PageState.Empty;
|
|
|
|
pageState = PageState.Success;
|
|
...
|
...
|
@@ -289,7 +363,6 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
/*获取结束分钟*/
|
|
|
|
int endMinute = int.parse(endTemp[1]);
|
|
|
|
if (endMinute == 15) {
|
|
|
|
|
|
|
|
endDate = '${endHour}:00';
|
|
|
|
} else if (endMinute == 45) {
|
|
|
|
endDate = '${endHour}:30';
|
|
...
|
...
|
@@ -339,8 +412,13 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
Utils.showToast('请选择桌位');
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
bool sucess = await getReserveList(context,
|
|
|
|
showMsg: true, needLoading: false, needKeep: true, showloading: true);
|
|
|
|
bool sucess = await getReserveList(
|
|
|
|
context,
|
|
|
|
showMsg: true,
|
|
|
|
needLoading: false,
|
|
|
|
needKeep: true,
|
|
|
|
showloading: true,
|
|
|
|
);
|
|
|
|
if (sucess) {
|
|
|
|
UserModel userModel = Provider.of<UserModel>(context, listen: false);
|
|
|
|
//
|
|
...
|
...
|
@@ -456,16 +534,22 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
|
|
|
|
//获取桌位数据
|
|
|
|
Future<List<TableOuter>> getTableList(BuildContext context,
|
|
|
|
{bool needLoading = true}) async {
|
|
|
|
{bool needLoading = true,
|
|
|
|
bool selfDismiss = false,
|
|
|
|
String sellerid}) async {
|
|
|
|
if (needLoading) {
|
|
|
|
pageState = PageState.Loading;
|
|
|
|
notifyListeners();
|
|
|
|
}
|
|
|
|
|
|
|
|
Map<String, String> params = {"sellerid": userModel.user.sellerid};
|
|
|
|
Map<String, String> params = {
|
|
|
|
"sellerid": sellerid == null
|
|
|
|
? Provider.of<UserModel>(context, listen: false).user.sellerid
|
|
|
|
: sellerid
|
|
|
|
};
|
|
|
|
BaseResp<List> baseResp = await DioUtil()
|
|
|
|
.request<List>(context, Method.get, HttpUrl.table_list,
|
|
|
|
data: params, showLoading: false)
|
|
|
|
data: params, showLoading: false, selfDismiss: selfDismiss)
|
|
|
|
.catchError((error) {
|
|
|
|
print(error.toString());
|
|
|
|
if (error is MyError) {
|
|
...
|
...
|
@@ -541,11 +625,15 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
App.sp.setString('table_list', json.encode(tableOuterList));
|
|
|
|
// App.sp.setString('table_all', json.encode(tablesAll));
|
|
|
|
|
|
|
|
return tableOuterList;
|
|
|
|
}
|
|
|
|
|
|
|
|
//获取预订(原来普通预订和宴会预订)
|
|
|
|
_getReserveListAndFeastData(context, params, showloading) async {
|
|
|
|
_getReserveListAndFeastData(context, params, showloading,
|
|
|
|
{bool selfDismiss = false}) async {
|
|
|
|
UserModel userModel = Provider.of<UserModel>(context, listen: false);
|
|
|
|
String timeStrStart = dateTime.year.toString() +
|
|
|
|
"-" +
|
|
...
|
...
|
@@ -571,8 +659,9 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
'ddate_interval': currTimeIndex.toString()
|
|
|
|
};
|
|
|
|
return await Future.wait<bool>([
|
|
|
|
_getOldReserve(context, params, showloading),
|
|
|
|
getBanquetByDate(context, banquetmap, showLoading: showloading)
|
|
|
|
_getOldReserve(context, params, showloading, selfDismiss: selfDismiss),
|
|
|
|
getBanquetByDate(context, banquetmap,
|
|
|
|
showLoading: showloading, selfDismiss: selfDismiss)
|
|
|
|
]).then((results) {
|
|
|
|
if (results[0] && results[1]) {
|
|
|
|
//成功
|
|
...
|
...
|
@@ -591,9 +680,10 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
Future<bool> _getOldReserve(context, params, showloading) async {
|
|
|
|
List<Notebook> noteBooks =
|
|
|
|
await newGetReserveList(context, params, showLoading: showloading);
|
|
|
|
Future<bool> _getOldReserve(context, params, showloading,
|
|
|
|
{bool selfDismiss = false}) async {
|
|
|
|
List<Notebook> noteBooks = await newGetReserveList(context, params,
|
|
|
|
showLoading: showloading, selfDismiss: selfDismiss);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -602,7 +692,8 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
{bool needLoading = true,
|
|
|
|
bool needKeep = false,
|
|
|
|
bool showMsg = false,
|
|
|
|
bool showloading = false}) async {
|
|
|
|
bool showloading = false,
|
|
|
|
bool selfDismiss = false}) async {
|
|
|
|
tableMap.clear();
|
|
|
|
NoteBookModel model = new NoteBookModel();
|
|
|
|
Map<String, String> params = {
|
|
...
|
...
|
@@ -614,13 +705,15 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
"keywords": "",
|
|
|
|
"sort": "1"
|
|
|
|
};
|
|
|
|
if (needLoading) {
|
|
|
|
String tableSp = App.sp.getString('table_list');
|
|
|
|
if (needLoading && tableSp == null) {
|
|
|
|
pageState = PageState.Loading;
|
|
|
|
notifyListeners();
|
|
|
|
}
|
|
|
|
|
|
|
|
bool success =
|
|
|
|
await _getReserveListAndFeastData(context, params, showloading);
|
|
|
|
bool success = await _getReserveListAndFeastData(
|
|
|
|
context, params, (needLoading && tableSp == null) ? false : showloading,
|
|
|
|
selfDismiss: selfDismiss);
|
|
|
|
if (success) {
|
|
|
|
List<FeastBoardModel> banquetByDateDataTemp = []; //转换为桌子id为key,data为value
|
|
|
|
banquetByDateData.forEach((element) {
|
|
...
|
...
|
@@ -693,25 +786,28 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
Utils.showToast('${msg}已被预订,请选择其他桌位!');
|
|
|
|
print(tableMap);
|
|
|
|
initData(needKeep: needKeep);
|
|
|
|
|
|
|
|
// notifyListeners();
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
print(tableMap);
|
|
|
|
initData(needKeep: needKeep);
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
//获取已预订订单
|
|
|
|
Future<List<Notebook>> newGetReserveList(
|
|
|
|
BuildContext context, Map<String, String> params,
|
|
|
|
{showLoading = false}) async {
|
|
|
|
{showLoading = false, bool selfDismiss = false}) async {
|
|
|
|
noteBooks = [];
|
|
|
|
BaseResp<List> baseResp = await DioUtil()
|
|
|
|
.request<List>(context, Method.get, HttpUrl.get_reserve_list,
|
|
|
|
data: params, showLoading: false)
|
|
|
|
data: params, showLoading: false, selfDismiss: selfDismiss)
|
|
|
|
.catchError((error) {
|
|
|
|
print(error.toString());
|
|
|
|
if (error is MyError) {
|
|
...
|
...
|
@@ -901,7 +997,18 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
selectDateStr = returnDayDateStr(day);
|
|
|
|
selectWeekAndLunarCalendar = returnWeekAndLunarCalendar(day, context);
|
|
|
|
dateTime = day;
|
|
|
|
getReserveList(context, needLoading: true);
|
|
|
|
getReserveList(context, needLoading: false, showloading: true);
|
|
|
|
}
|
|
|
|
|
|
|
|
//生成日期文本
|
|
|
|
createDateText1(BuildContext context, DateTime day) {
|
|
|
|
if (Utils.isOneDay(day, dateTime)) return; //日期没变
|
|
|
|
dateTimeSelect = day;
|
|
|
|
dateText = _returnDate(day);
|
|
|
|
selectDateStr = returnDayDateStr(day);
|
|
|
|
selectWeekAndLunarCalendar = returnWeekAndLunarCalendar(day, context);
|
|
|
|
dateTime = day;
|
|
|
|
// getReserveList(context, needLoading: false, showloading: true);
|
|
|
|
}
|
|
|
|
|
|
|
|
_returnDate(DateTime day) {
|
|
...
|
...
|
@@ -1043,7 +1150,9 @@ class TableManagerModel with ChangeNotifier { |
|
|
|
|
|
|
|
//获取区域数据
|
|
|
|
Future<List<AreaSunModel>> getRegionBySellerid(BuildContext context) async {
|
|
|
|
Map<String, String> params = {"sellerid": userModel.user.sellerid};
|
|
|
|
Map<String, String> params = {
|
|
|
|
"sellerid": Provider.of<UserModel>(context, listen: false).user.sellerid
|
|
|
|
};
|
|
|
|
BaseResp<List> baseResp = await DioUtil()
|
|
|
|
.request<List>(context, Method.get, HttpUrl.get_area_by_sellerid,
|
|
|
|
data: params, showLoading: false)
|
...
|
...
|
|