Commit fe71d74a16094d27450372c17fbdc386dd675049

Authored by gaiyaguang
1 parent 8e9171c0

桌位管理

@@ -21,20 +21,22 @@ class NotebookDetail { @@ -21,20 +21,22 @@ class NotebookDetail {
21 sex="1"; 21 sex="1";
22 phone=""; 22 phone="";
23 cusdem=""; 23 cusdem="";
24 - ddate=(DateUtil.getDateMsByTimeStr(DateUtil.formatDate(DateTime.now()).replaceRange(11,19, "00:00:00"))/1000).floor().toString(); 24 + type="0";
  25 + ddate=(DateTime.now().millisecondsSinceEpoch/1000).floor().toString();
25 ddate_solt=defDdateSolt(context); 26 ddate_solt=defDdateSolt(context);
26 is_set_ddate="0"; 27 is_set_ddate="0";
27 tables=[]; 28 tables=[];
28 } 29 }
29 30
30 - NotebookDetail.fromTableManager(DateTime dateTime,String ddatesolt,t.Table table){ 31 + NotebookDetail.fromTableManager(String ddateStr,String ddatesolt,t.Table table){
31 id="-1"; 32 id="-1";
32 pnum="6"; 33 pnum="6";
33 rname=""; 34 rname="";
34 sex="1"; 35 sex="1";
35 phone=""; 36 phone="";
36 cusdem=""; 37 cusdem="";
37 - ddate=(DateUtil.getDateMsByTimeStr(DateUtil.formatDate(dateTime).replaceRange(11,19, "00:00:00"))/1000).floor().toString(); 38 + type="0";
  39 + ddate=ddateStr;
38 ddate_solt=ddatesolt; 40 ddate_solt=ddatesolt;
39 is_set_ddate="0"; 41 is_set_ddate="0";
40 tables=[table]; 42 tables=[table];
@@ -32,7 +32,9 @@ class HttpUrl { @@ -32,7 +32,9 @@ class HttpUrl {
32 static const String get_table_list = 32 static const String get_table_list =
33 "?service=Android.Reserve.NewGetTableList"; //根据商家ID 获取桌位信息列表: 1:散座 2:包间 默认:获取所有数据 33 "?service=Android.Reserve.NewGetTableList"; //根据商家ID 获取桌位信息列表: 1:散座 2:包间 默认:获取所有数据
34 static const String set_reserve_info = 34 static const String set_reserve_info =
35 - "?service=Android.Reserve.SetReserveInfo"; //录入顾客订座相关信息,同时更新商家桌位状态 35 + "?service=Android.Reserve.SetReserveInfo"; //录入/更改内部预订
  36 + static const String set_customer_info =
  37 + "?service=Android.Customer.SetReserveInfo"; //更改在线预订
36 static const String set_switch_status = 38 static const String set_switch_status =
37 "?service=App.Reserve.SetSwitchStatus"; //启用/停用桌位 39 "?service=App.Reserve.SetSwitchStatus"; //启用/停用桌位
38 } 40 }
@@ -785,9 +785,9 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> { @@ -785,9 +785,9 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> {
785 Utils.showToast("请选择桌位"); 785 Utils.showToast("请选择桌位");
786 return; 786 return;
787 } 787 }
788 - SunReserveInfoModel _model = 788 + SunReserveInfoModel _model =_notebookDetailChangeModel.detailEntity.type=="1"?//判断是否在线预订
789 await _notebookDetailChangeModel 789 await _notebookDetailChangeModel
790 - .setReserveInfo(context); 790 + .updateOnlineReserveInfo(context):await _notebookDetailChangeModel.setReserveInfo(context);
791 if (ObjectUtil.isNotEmpty(_model.row) || 791 if (ObjectUtil.isNotEmpty(_model.row) ||
792 ObjectUtil.isNotEmpty(_model.row.id)) { 792 ObjectUtil.isNotEmpty(_model.row.id)) {
793 print('成功'); 793 print('成功');
@@ -813,16 +813,17 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> { @@ -813,16 +813,17 @@ class _NoteBookChangePageState extends State<NoteBookChangePage> {
813 List<dynamic> tableinfo = 813 List<dynamic> tableinfo =
814 convert.jsonDecode(_model.row.tableinfo); 814 convert.jsonDecode(_model.row.tableinfo);
815 print(tableinfo); 815 print(tableinfo);
816 - String _nameStr = _model.row.name; 816 + String _nameStr=t.TableList.fromJson(tableinfo[0]).name;
817 if (tableinfo.length > 1) { 817 if (tableinfo.length > 1) {
818 - _nameStr = _model.row.name + '等${tableinfo.length}桌'; 818 + _nameStr = t.TableList.fromJson(tableinfo[0]).name + '等${tableinfo.length}桌';
819 } 819 }
  820 + LogUtil.v(_nameStr);
820 NavigatorUtil.goInvicationPage(context, _model.row.id, 821 NavigatorUtil.goInvicationPage(context, _model.row.id,
821 _nameStr, _model.row.ddate, ddate_solt, 822 _nameStr, _model.row.ddate, ddate_solt,
822 replace: true); 823 replace: true);
823 EventBus().emit("refresh_tablemanager");//刷新桌位 824 EventBus().emit("refresh_tablemanager");//刷新桌位
824 } else { 825 } else {
825 - Utils.showToast(widget.detailEntity.id=="-1"?"变更预订订单失败,请重试!":"变更预订订单失败,请重试!"); 826 + Utils.showToast(widget.detailEntity.id=="-1"?"录入预订订单失败,请重试!":"变更预订订单失败,请重试!");
826 } 827 }
827 }, 828 },
828 )) 829 ))
@@ -224,6 +224,7 @@ class TableManagerPageState extends State<TableManagerPage> { @@ -224,6 +224,7 @@ class TableManagerPageState extends State<TableManagerPage> {
224 childAspectRatio: 8 / 9), 224 childAspectRatio: 8 / 9),
225 itemBuilder: (context, index) { 225 itemBuilder: (context, index) {
226 return Selector<TableManagerModel,t.Table>( 226 return Selector<TableManagerModel,t.Table>(
  227 + shouldRebuild: (pre,next)=>true,
227 selector: (context,model)=>model.currentTables[index], 228 selector: (context,model)=>model.currentTables[index],
228 builder: (context,table,_){ 229 builder: (context,table,_){
229 return TableItem( 230 return TableItem(
@@ -242,7 +243,7 @@ class TableManagerPageState extends State<TableManagerPage> { @@ -242,7 +243,7 @@ class TableManagerPageState extends State<TableManagerPage> {
242 NavigatorUtil.goNotebookDetailPage(context, tableManagerModel.tableMap[table.id].id); 243 NavigatorUtil.goNotebookDetailPage(context, tableManagerModel.tableMap[table.id].id);
243 break; 244 break;
244 case 2://订座 245 case 2://订座
245 - NavigatorUtil.goNoteBookChangePage(context, NotebookDetail.fromTableManager(tableManagerModel.dateTime, tableManagerModel.currTimeIndex.toString(),table), ""); 246 + NavigatorUtil.goNoteBookChangePage(context, NotebookDetail.fromTableManager(tableManagerModel.getCurrDdateStr(), tableManagerModel.currTimeIndex.toString(),table), "");
246 break; 247 break;
247 case 3://停用,启用桌位 248 case 3://停用,启用桌位
248 Map<String,String> params={ 249 Map<String,String> params={
1 import 'package:common_utils/common_utils.dart'; 1 import 'package:common_utils/common_utils.dart';
2 import 'package:flutter/material.dart'; 2 import 'package:flutter/material.dart';
  3 +import 'package:one_key/app.dart';
3 import 'package:one_key/constant/constant.dart'; 4 import 'package:one_key/constant/constant.dart';
4 import 'package:one_key/models/notebook_detail.dart'; 5 import 'package:one_key/models/notebook_detail.dart';
5 import 'package:one_key/models/reserve_info_model.dart'; 6 import 'package:one_key/models/reserve_info_model.dart';
@@ -472,7 +473,7 @@ class NotebookDetailChangeModel with ChangeNotifier { @@ -472,7 +473,7 @@ class NotebookDetailChangeModel with ChangeNotifier {
472 } 473 }
473 } 474 }
474 475
475 - ///录入顾客订座相关信息,同时更新商家桌位状态 476 + ///录入更改内部预订
476 Future<SunReserveInfoModel> setReserveInfo(BuildContext context) async { 477 Future<SunReserveInfoModel> setReserveInfo(BuildContext context) async {
477 UserModel userModel = Provider.of<UserModel>(context, listen: false); 478 UserModel userModel = Provider.of<UserModel>(context, listen: false);
478 String pnum = '6'; 479 String pnum = '6';
@@ -503,6 +504,7 @@ class NotebookDetailChangeModel with ChangeNotifier { @@ -503,6 +504,7 @@ class NotebookDetailChangeModel with ChangeNotifier {
503 String timeStr = ymyStr + ' ' + ddateStr + ':00'; 504 String timeStr = ymyStr + ' ' + ddateStr + ':00';
504 // int start = DateUtil.getDateMsByTimeStr(timeStr); 505 // int start = DateUtil.getDateMsByTimeStr(timeStr);
505 506
  507 + LogUtil.v(timeStr);
506 // String tempDdate = ymyStr + ' ' + ddateStr + ':00'; 508 // String tempDdate = ymyStr + ' ' + ddateStr + ':00';
507 int ddate = DateUtil.getDateMsByTimeStr(timeStr); 509 int ddate = DateUtil.getDateMsByTimeStr(timeStr);
508 String tableSelectInfo = ''; 510 String tableSelectInfo = '';
@@ -534,17 +536,18 @@ class NotebookDetailChangeModel with ChangeNotifier { @@ -534,17 +536,18 @@ class NotebookDetailChangeModel with ChangeNotifier {
534 keys = 'night'; 536 keys = 'night';
535 } 537 }
536 if (keys != '') { 538 if (keys != '') {
537 - String start = '${ddate}'.substring(0, 10);  
538 List temp = dailyMap[keys]; 539 List temp = dailyMap[keys];
  540 + String timeStrStart = ymyStr + ' ' + temp.first['title'] + ':00';
539 String timeStrEnd = ymyStr + ' ' + temp.last['title'] + ':00'; 541 String timeStrEnd = ymyStr + ' ' + temp.last['title'] + ':00';
  542 + int startM = DateUtil.getDateMsByTimeStr(timeStrStart);
540 int endM = DateUtil.getDateMsByTimeStr(timeStrEnd); 543 int endM = DateUtil.getDateMsByTimeStr(timeStrEnd);
  544 + String start='${startM}'.substring(0, 10);
541 String end = '${endM}'.substring(0, 10); 545 String end = '${endM}'.substring(0, 10);
542 rdate = start + '-' + end; 546 rdate = start + '-' + end;
543 } 547 }
544 } 548 }
545 } 549 }
546 Map<String, String> params = { 550 Map<String, String> params = {
547 - 'is_set_ddate': isSetDate,  
548 "sid": userModel.user.sellerid, //商家ID 551 "sid": userModel.user.sellerid, //商家ID
549 "tid": tableSelectInfo, //桌子ID: 格式 2,3,4 552 "tid": tableSelectInfo, //桌子ID: 格式 2,3,4
550 "pnum": pnum, //预定用餐人数 553 "pnum": pnum, //预定用餐人数
@@ -552,9 +555,10 @@ class NotebookDetailChangeModel with ChangeNotifier { @@ -552,9 +555,10 @@ class NotebookDetailChangeModel with ChangeNotifier {
552 "sex": sex, //预订人姓名:1:男 2:女 555 "sex": sex, //预订人姓名:1:男 2:女
553 "phone": phoneController.text, //预订人电话 556 "phone": phoneController.text, //预订人电话
554 "cusdem": customController.text, //预订人需求:25汉字 557 "cusdem": customController.text, //预订人需求:25汉字
  558 + 'note_name':userModel.user.account,
  559 + 'type':"0",//内部预订
555 "rdate": rdate, //预定用餐时间范围:时间戳 开始时间戳(time)-结束时间戳(time) 560 "rdate": rdate, //预定用餐时间范围:时间戳 开始时间戳(time)-结束时间戳(time)
556 "ddate": '${ddate}'.substring(0, 10), //到店时间 561 "ddate": '${ddate}'.substring(0, 10), //到店时间
557 - "ddate_solt": ddateSolt  
558 }; 562 };
559 if(detailEntity.id.isNotEmpty&&detailEntity.id!="-1"){ 563 if(detailEntity.id.isNotEmpty&&detailEntity.id!="-1"){
560 params['rid']=detailEntity.id; 564 params['rid']=detailEntity.id;
@@ -578,7 +582,119 @@ class NotebookDetailChangeModel with ChangeNotifier { @@ -578,7 +582,119 @@ class NotebookDetailChangeModel with ChangeNotifier {
578 baseResp.responseData['data']['row'] != null) { 582 baseResp.responseData['data']['row'] != null) {
579 itemModel = ReserveInfoModel.fromJson(baseResp.responseData).data; 583 itemModel = ReserveInfoModel.fromJson(baseResp.responseData).data;
580 } else { 584 } else {
581 - Utils.showToast(baseResp.msg ?? detailEntity.id=="-1"?"变更预订订单失败,请重试!":"变更预订订单失败,请重试!"); 585 + Utils.showToast(baseResp.msg ?? detailEntity.id=="-1"?"录入预订订单失败,请重试!":"变更预订订单失败,请重试!");
  586 + }
  587 + return itemModel;
  588 + }
  589 + }
  590 +
  591 + //更改在线预订
  592 + Future<SunReserveInfoModel> updateOnlineReserveInfo(BuildContext context) async {
  593 + UserModel userModel = Provider.of<UserModel>(context, listen: false);
  594 + String pnum = '6';
  595 + for (var item in personNumList) {
  596 + if (item['isSelect']) {
  597 + pnum = item['dateText'];
  598 + }
  599 + }
  600 + if (pnum == '') {
  601 + pnum = '6';
  602 + }
  603 + String sex = '1';
  604 + for (var item in sexList) {
  605 + if (item['select']) {
  606 + sex = item['code'];
  607 + }
  608 + }
  609 + //当前选中 月 日string
  610 + String mdStr = '';
  611 + //今天 明天 其他天
  612 + for (var item in dateList) {
  613 + if (item['select'] == true) {
  614 + mdStr = item['title'];
  615 + }
  616 + }
  617 + String timeNowYear = DateUtil.formatDate(DateTime.now(), format: 'yyyy');
  618 + String ymyStr = timeNowYear + '-' + mdStr; //年月日
  619 + String timeStr = ymyStr + ' ' + ddateStr + ':00';
  620 + // int start = DateUtil.getDateMsByTimeStr(timeStr);
  621 +
  622 + // String tempDdate = ymyStr + ' ' + ddateStr + ':00';
  623 + int ddate = DateUtil.getDateMsByTimeStr(timeStr);
  624 + String tableSelectInfo = '';
  625 + for (TableList item in tableList) {
  626 + // if (item.selected) {
  627 + tableSelectInfo += ',${item.id}';
  628 + // }
  629 + }
  630 + print(tableSelectInfo);
  631 + if (tableSelectInfo.startsWith(',')) {
  632 + tableSelectInfo = tableSelectInfo.substring(1);
  633 + }
  634 + print(tableSelectInfo);
  635 + String rdate = '';
  636 + String ddateSolt = '';
  637 + print(sunDateList);
  638 + for (var item in sunDateList) {
  639 + if (item['isSelect'] == true) {
  640 + String keys = '';
  641 + ddateSolt = '${item['ddateSolt']}';
  642 + if (item['ddateSolt'] == 1) {
  643 + //早市
  644 + keys = 'morning';
  645 + } else if (item['ddateSolt'] == 2) {
  646 + //午市
  647 + keys = 'noon';
  648 + } else if (item['ddateSolt'] == 3) {
  649 + //晚市
  650 + keys = 'night';
  651 + }
  652 + if (keys != '') {
  653 + List temp = dailyMap[keys];
  654 + String timeStrStart = ymyStr + ' ' + temp.first['title'] + ':00';
  655 + String timeStrEnd = ymyStr + ' ' + temp.last['title'] + ':00';
  656 + int startM = DateUtil.getDateMsByTimeStr(timeStrStart);
  657 + int endM = DateUtil.getDateMsByTimeStr(timeStrEnd);
  658 + String start='${startM}'.substring(0, 10);
  659 + String end = '${endM}'.substring(0, 10);
  660 + rdate = start + '-' + end;
  661 + }
  662 + }
  663 + }
  664 + Map<String, String> params = {
  665 + 'is_set_ddate': isSetDate,
  666 + "sid": userModel.user.sellerid, //商家ID
  667 + "tid": tableSelectInfo, //桌子ID: 格式 2,3,4
  668 + "pnum": pnum, //预定用餐人数
  669 + "rname": nameController.text, //预订人姓名
  670 + "sex": sex, //预订人姓名:1:男 2:女
  671 + "phone": phoneController.text, //预订人电话
  672 + "cusdem": customController.text, //预订人需求:25汉字
  673 + 'type':"1",//在线预订
  674 + "rdate": rdate, //预定用餐时间范围:时间戳 开始时间戳(time)-结束时间戳(time)
  675 + "ddate": '${ddate}'.substring(0, 10), //到店时间
  676 + "ddate_solt": ddateSolt
  677 + };
  678 + print(params);
  679 + BaseResp<Map<String, dynamic>> baseResp = await DioUtil()
  680 + .request<Map<String, dynamic>>(
  681 + context, Method.get, HttpUrl.set_customer_info,
  682 + data: params)
  683 + .catchError((error) {
  684 + print(error.toString());
  685 + });
  686 + SunReserveInfoModel itemModel;
  687 + if (baseResp == null) return itemModel;
  688 + if (baseResp.code == Constant.status_success) {
  689 + if (int.parse(baseResp.status) != Constant.status_success) {
  690 + Utils.showToast(baseResp.msg ?? "");
  691 + return itemModel;
  692 + }
  693 + if (baseResp.responseData['data'] != null &&
  694 + baseResp.responseData['data']['row'] != null) {
  695 + itemModel = ReserveInfoModel.fromJson(baseResp.responseData).data;
  696 + } else {
  697 + Utils.showToast(baseResp.msg ?? "变更预订订单失败,请重试!");
582 } 698 }
583 return itemModel; 699 return itemModel;
584 } 700 }
@@ -112,6 +112,19 @@ class TableManagerModel with ChangeNotifier{ @@ -112,6 +112,19 @@ class TableManagerModel with ChangeNotifier{
112 getReserveList(context); 112 getReserveList(context);
113 } 113 }
114 114
  115 + getCurrDdateStr(){
  116 + String currSelectTime="";
  117 + if(currTimeIndex==1){
  118 + currSelectTime=morning.split("-")[0];
  119 + }else if(currTimeIndex==2){
  120 + currSelectTime=noon.split("-")[0];
  121 + }else{
  122 + currSelectTime=night.split("-")[0];
  123 + }
  124 + String ddateStr=DateUtil.getDateMsByTimeStr(DateUtil.formatDate(dateTime).replaceRange(11,19, "$currSelectTime:00")).toString();
  125 + return ddateStr.substring(0,10);
  126 + }
  127 +
115 //获取桌位数据 128 //获取桌位数据
116 Future<List<TableOuter>> getTableList(BuildContext context) async { 129 Future<List<TableOuter>> getTableList(BuildContext context) async {
117 pageState = PageState.Loading; 130 pageState = PageState.Loading;
@@ -217,8 +230,10 @@ class TableManagerModel with ChangeNotifier{ @@ -217,8 +230,10 @@ class TableManagerModel with ChangeNotifier{
217 for (TableOuter outer in tableOuterList) { 230 for (TableOuter outer in tableOuterList) {
218 int count = 0; 231 int count = 0;
219 for (t.Table table in outer.list) { 232 for (t.Table table in outer.list) {
220 - if (table.tablestatus == "0") {  
221 - //没有用餐中 233 + table.sign = "";
  234 + table.notebookId = "";
  235 + table.reserver = "";
  236 + if (table.tablestatus == "0") {//没有用餐中
222 if (tableMap["${table.id}"] != null) { 237 if (tableMap["${table.id}"] != null) {
223 Notebook notebook = tableMap["${table.id}"]; 238 Notebook notebook = tableMap["${table.id}"];
224 table.sign = notebook.status; 239 table.sign = notebook.status;
@@ -231,7 +246,7 @@ class TableManagerModel with ChangeNotifier{ @@ -231,7 +246,7 @@ class TableManagerModel with ChangeNotifier{
231 count++; 246 count++;
232 } 247 }
233 } 248 }
234 - } else { 249 + } else {//用餐中
235 table.sign = "2"; 250 table.sign = "2";
236 table.notebookId = ""; 251 table.notebookId = "";
237 } 252 }
@@ -245,7 +260,7 @@ class TableManagerModel with ChangeNotifier{ @@ -245,7 +260,7 @@ class TableManagerModel with ChangeNotifier{
245 currentArea = areaTableMap.keys.first; 260 currentArea = areaTableMap.keys.first;
246 currentTables=areaTableMap[currentArea]; 261 currentTables=areaTableMap[currentArea];
247 pageState = PageState.Success; 262 pageState = PageState.Success;
248 - notifyListeners();; 263 + notifyListeners();
249 } 264 }
250 265
251 //生成日期文本 266 //生成日期文本