Commit fe71d74a16094d27450372c17fbdc386dd675049

Authored by gaiyaguang
1 parent 8e9171c0

桌位管理

... ... @@ -21,20 +21,22 @@ class NotebookDetail {
sex="1";
phone="";
cusdem="";
ddate=(DateUtil.getDateMsByTimeStr(DateUtil.formatDate(DateTime.now()).replaceRange(11,19, "00:00:00"))/1000).floor().toString();
type="0";
ddate=(DateTime.now().millisecondsSinceEpoch/1000).floor().toString();
ddate_solt=defDdateSolt(context);
is_set_ddate="0";
tables=[];
}
NotebookDetail.fromTableManager(DateTime dateTime,String ddatesolt,t.Table table){
NotebookDetail.fromTableManager(String ddateStr,String ddatesolt,t.Table table){
id="-1";
pnum="6";
rname="";
sex="1";
phone="";
cusdem="";
ddate=(DateUtil.getDateMsByTimeStr(DateUtil.formatDate(dateTime).replaceRange(11,19, "00:00:00"))/1000).floor().toString();
type="0";
ddate=ddateStr;
ddate_solt=ddatesolt;
is_set_ddate="0";
tables=[table];
... ...
... ... @@ -32,7 +32,9 @@ class HttpUrl {
static const String get_table_list =
"?service=Android.Reserve.NewGetTableList"; //根据商家ID 获取桌位信息列表: 1:散座 2:包间 默认:获取所有数据
static const String set_reserve_info =
"?service=Android.Reserve.SetReserveInfo"; //录入顾客订座相关信息,同时更新商家桌位状态
"?service=Android.Reserve.SetReserveInfo"; //录入/更改内部预订
static const String set_customer_info =
"?service=Android.Customer.SetReserveInfo"; //更改在线预订
static const String set_switch_status =
"?service=App.Reserve.SetSwitchStatus"; //启用/停用桌位
}
... ...
... ... @@ -785,9 +785,9 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> {
Utils.showToast("请选择桌位");
return;
}
SunReserveInfoModel _model =
SunReserveInfoModel _model =_notebookDetailChangeModel.detailEntity.type=="1"?//判断是否在线预订
await _notebookDetailChangeModel
.setReserveInfo(context);
.updateOnlineReserveInfo(context):await _notebookDetailChangeModel.setReserveInfo(context);
if (ObjectUtil.isNotEmpty(_model.row) ||
ObjectUtil.isNotEmpty(_model.row.id)) {
print('成功');
... ... @@ -813,16 +813,17 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> {
List<dynamic> tableinfo =
convert.jsonDecode(_model.row.tableinfo);
print(tableinfo);
String _nameStr = _model.row.name;
String _nameStr=t.TableList.fromJson(tableinfo[0]).name;
if (tableinfo.length > 1) {
_nameStr = _model.row.name + '等${tableinfo.length}桌';
_nameStr = t.TableList.fromJson(tableinfo[0]).name + '等${tableinfo.length}桌';
}
LogUtil.v(_nameStr);
NavigatorUtil.goInvicationPage(context, _model.row.id,
_nameStr, _model.row.ddate, ddate_solt,
replace: true);
EventBus().emit("refresh_tablemanager");//刷新桌位
} else {
Utils.showToast(widget.detailEntity.id=="-1"?"变更预订订单失败,请重试!":"变更预订订单失败,请重试!");
Utils.showToast(widget.detailEntity.id=="-1"?"录入预订订单失败,请重试!":"变更预订订单失败,请重试!");
}
},
))
... ...
... ... @@ -224,6 +224,7 @@ class TableManagerPageState extends State<TableManagerPage> {
childAspectRatio: 8 / 9),
itemBuilder: (context, index) {
return Selector<TableManagerModel,t.Table>(
shouldRebuild: (pre,next)=>true,
selector: (context,model)=>model.currentTables[index],
builder: (context,table,_){
return TableItem(
... ... @@ -242,7 +243,7 @@ class TableManagerPageState extends State<TableManagerPage> {
NavigatorUtil.goNotebookDetailPage(context, tableManagerModel.tableMap[table.id].id);
break;
case 2://订座
NavigatorUtil.goNoteBookChangePage(context, NotebookDetail.fromTableManager(tableManagerModel.dateTime, tableManagerModel.currTimeIndex.toString(),table), "");
NavigatorUtil.goNoteBookChangePage(context, NotebookDetail.fromTableManager(tableManagerModel.getCurrDdateStr(), tableManagerModel.currTimeIndex.toString(),table), "");
break;
case 3://停用,启用桌位
Map<String,String> params={
... ...
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/models/notebook_detail.dart';
import 'package:one_key/models/reserve_info_model.dart';
... ... @@ -472,7 +473,7 @@ class NotebookDetailChangeModel with ChangeNotifier {
}
}
///录入顾客订座相关信息,同时更新商家桌位状态
///录入更改内部预订
Future<SunReserveInfoModel> setReserveInfo(BuildContext context) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
String pnum = '6';
... ... @@ -503,6 +504,7 @@ class NotebookDetailChangeModel with ChangeNotifier {
String timeStr = ymyStr + ' ' + ddateStr + ':00';
// int start = DateUtil.getDateMsByTimeStr(timeStr);
LogUtil.v(timeStr);
// String tempDdate = ymyStr + ' ' + ddateStr + ':00';
int ddate = DateUtil.getDateMsByTimeStr(timeStr);
String tableSelectInfo = '';
... ... @@ -534,17 +536,18 @@ class NotebookDetailChangeModel with ChangeNotifier {
keys = 'night';
}
if (keys != '') {
String start = '${ddate}'.substring(0, 10);
List temp = dailyMap[keys];
String timeStrStart = ymyStr + ' ' + temp.first['title'] + ':00';
String timeStrEnd = ymyStr + ' ' + temp.last['title'] + ':00';
int startM = DateUtil.getDateMsByTimeStr(timeStrStart);
int endM = DateUtil.getDateMsByTimeStr(timeStrEnd);
String start='${startM}'.substring(0, 10);
String end = '${endM}'.substring(0, 10);
rdate = start + '-' + end;
}
}
}
Map<String, String> params = {
'is_set_ddate': isSetDate,
"sid": userModel.user.sellerid, //商家ID
"tid": tableSelectInfo, //桌子ID: 格式 2,3,4
"pnum": pnum, //预定用餐人数
... ... @@ -552,9 +555,10 @@ class NotebookDetailChangeModel with ChangeNotifier {
"sex": sex, //预订人姓名:1:男 2:女
"phone": phoneController.text, //预订人电话
"cusdem": customController.text, //预订人需求:25汉字
'note_name':userModel.user.account,
'type':"0",//内部预订
"rdate": rdate, //预定用餐时间范围:时间戳 开始时间戳(time)-结束时间戳(time)
"ddate": '${ddate}'.substring(0, 10), //到店时间
"ddate_solt": ddateSolt
};
if(detailEntity.id.isNotEmpty&&detailEntity.id!="-1"){
params['rid']=detailEntity.id;
... ... @@ -578,7 +582,119 @@ class NotebookDetailChangeModel with ChangeNotifier {
baseResp.responseData['data']['row'] != null) {
itemModel = ReserveInfoModel.fromJson(baseResp.responseData).data;
} else {
Utils.showToast(baseResp.msg ?? detailEntity.id=="-1"?"变更预订订单失败,请重试!":"变更预订订单失败,请重试!");
Utils.showToast(baseResp.msg ?? detailEntity.id=="-1"?"录入预订订单失败,请重试!":"变更预订订单失败,请重试!");
}
return itemModel;
}
}
//更改在线预订
Future<SunReserveInfoModel> updateOnlineReserveInfo(BuildContext context) async {
UserModel userModel = Provider.of<UserModel>(context, listen: false);
String pnum = '6';
for (var item in personNumList) {
if (item['isSelect']) {
pnum = item['dateText'];
}
}
if (pnum == '') {
pnum = '6';
}
String sex = '1';
for (var item in sexList) {
if (item['select']) {
sex = item['code'];
}
}
//当前选中 月 日string
String mdStr = '';
//今天 明天 其他天
for (var item in dateList) {
if (item['select'] == true) {
mdStr = item['title'];
}
}
String timeNowYear = DateUtil.formatDate(DateTime.now(), format: 'yyyy');
String ymyStr = timeNowYear + '-' + mdStr; //年月日
String timeStr = ymyStr + ' ' + ddateStr + ':00';
// int start = DateUtil.getDateMsByTimeStr(timeStr);
// String tempDdate = ymyStr + ' ' + ddateStr + ':00';
int ddate = DateUtil.getDateMsByTimeStr(timeStr);
String tableSelectInfo = '';
for (TableList item in tableList) {
// if (item.selected) {
tableSelectInfo += ',${item.id}';
// }
}
print(tableSelectInfo);
if (tableSelectInfo.startsWith(',')) {
tableSelectInfo = tableSelectInfo.substring(1);
}
print(tableSelectInfo);
String rdate = '';
String ddateSolt = '';
print(sunDateList);
for (var item in sunDateList) {
if (item['isSelect'] == true) {
String keys = '';
ddateSolt = '${item['ddateSolt']}';
if (item['ddateSolt'] == 1) {
//早市
keys = 'morning';
} else if (item['ddateSolt'] == 2) {
//午市
keys = 'noon';
} else if (item['ddateSolt'] == 3) {
//晚市
keys = 'night';
}
if (keys != '') {
List temp = dailyMap[keys];
String timeStrStart = ymyStr + ' ' + temp.first['title'] + ':00';
String timeStrEnd = ymyStr + ' ' + temp.last['title'] + ':00';
int startM = DateUtil.getDateMsByTimeStr(timeStrStart);
int endM = DateUtil.getDateMsByTimeStr(timeStrEnd);
String start='${startM}'.substring(0, 10);
String end = '${endM}'.substring(0, 10);
rdate = start + '-' + end;
}
}
}
Map<String, String> params = {
'is_set_ddate': isSetDate,
"sid": userModel.user.sellerid, //商家ID
"tid": tableSelectInfo, //桌子ID: 格式 2,3,4
"pnum": pnum, //预定用餐人数
"rname": nameController.text, //预订人姓名
"sex": sex, //预订人姓名:1:男 2:女
"phone": phoneController.text, //预订人电话
"cusdem": customController.text, //预订人需求:25汉字
'type':"1",//在线预订
"rdate": rdate, //预定用餐时间范围:时间戳 开始时间戳(time)-结束时间戳(time)
"ddate": '${ddate}'.substring(0, 10), //到店时间
"ddate_solt": ddateSolt
};
print(params);
BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
.request<Map<String, dynamic>>(
context, Method.get, HttpUrl.set_customer_info,
data: params)
.catchError((error) {
print(error.toString());
});
SunReserveInfoModel itemModel;
if (baseResp == null) return itemModel;
if (baseResp.code == Constant.status_success) {
if (int.parse(baseResp.status) != Constant.status_success) {
Utils.showToast(baseResp.msg ?? "");
return itemModel;
}
if (baseResp.responseData['data'] != null &&
baseResp.responseData['data']['row'] != null) {
itemModel = ReserveInfoModel.fromJson(baseResp.responseData).data;
} else {
Utils.showToast(baseResp.msg ?? "变更预订订单失败,请重试!");
}
return itemModel;
}
... ...
... ... @@ -112,6 +112,19 @@ class TableManagerModel with ChangeNotifier{
getReserveList(context);
}
getCurrDdateStr(){
String currSelectTime="";
if(currTimeIndex==1){
currSelectTime=morning.split("-")[0];
}else if(currTimeIndex==2){
currSelectTime=noon.split("-")[0];
}else{
currSelectTime=night.split("-")[0];
}
String ddateStr=DateUtil.getDateMsByTimeStr(DateUtil.formatDate(dateTime).replaceRange(11,19, "$currSelectTime:00")).toString();
return ddateStr.substring(0,10);
}
//获取桌位数据
Future<List<TableOuter>> getTableList(BuildContext context) async {
pageState = PageState.Loading;
... ... @@ -217,8 +230,10 @@ class TableManagerModel with ChangeNotifier{
for (TableOuter outer in tableOuterList) {
int count = 0;
for (t.Table table in outer.list) {
if (table.tablestatus == "0") {
//没有用餐中
table.sign = "";
table.notebookId = "";
table.reserver = "";
if (table.tablestatus == "0") {//没有用餐中
if (tableMap["${table.id}"] != null) {
Notebook notebook = tableMap["${table.id}"];
table.sign = notebook.status;
... ... @@ -231,7 +246,7 @@ class TableManagerModel with ChangeNotifier{
count++;
}
}
} else {
} else {//用餐中
table.sign = "2";
table.notebookId = "";
}
... ... @@ -245,7 +260,7 @@ class TableManagerModel with ChangeNotifier{
currentArea = areaTableMap.keys.first;
currentTables=areaTableMap[currentArea];
pageState = PageState.Success;
notifyListeners();;
notifyListeners();
}
//生成日期文本
... ...