Commit 5a51e2393f9e9479a5149b41406ef52887d6d7cf

Authored by wdn127929
1 parent c86d23a6

消息中心会员充值详情报错处理

@@ -37,10 +37,12 @@ class RechargeNoticeSunModel { @@ -37,10 +37,12 @@ class RechargeNoticeSunModel {
37 RechargeNoticeSunModel({this.recharge, this.guest}); 37 RechargeNoticeSunModel({this.recharge, this.guest});
38 38
39 RechargeNoticeSunModel.fromJson(Map<String, dynamic> json) { 39 RechargeNoticeSunModel.fromJson(Map<String, dynamic> json) {
40 - recharge = json['recharge'] != null 40 + recharge = json['recharge'] != null && (json['recharge'] is Map)
41 ? new Recharge.fromJson(json['recharge']) 41 ? new Recharge.fromJson(json['recharge'])
42 : null; 42 : null;
43 - guest = json['guest'] != null ? new Guest.fromJson(json['guest']) : null; 43 + guest = json['guest'] != null && json['guest'] != false
  44 + ? new Guest.fromJson(json['guest'])
  45 + : null;
44 } 46 }
45 47
46 Map<String, dynamic> toJson() { 48 Map<String, dynamic> toJson() {
@@ -189,7 +191,7 @@ class Guest { @@ -189,7 +191,7 @@ class Guest {
189 } 191 }
190 192
191 get cDayShow { 193 get cDayShow {
192 - if (cDay != null) { 194 + if (cDay != null && cDay != '') {
193 DateTime dateTime = DateTime.fromMillisecondsSinceEpoch( 195 DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(
194 int.parse(cDay.toString()) * 1000); 196 int.parse(cDay.toString()) * 1000);
195 return dateTime.year.toString() + 197 return dateTime.year.toString() +
@@ -193,9 +193,10 @@ class _MessageRechargeInfoPageState extends State<MessageRechargeInfoPage> { @@ -193,9 +193,10 @@ class _MessageRechargeInfoPageState extends State<MessageRechargeInfoPage> {
193 crossAxisAlignment: CrossAxisAlignment.start, 193 crossAxisAlignment: CrossAxisAlignment.start,
194 children: [ 194 children: [
195 VEmptyView(56), 195 VEmptyView(56),
  196 +
196 _text( 197 _text(
197 '顾客姓名', 198 '顾客姓名',
198 - '${marketingCenterProvider.rechargeNoticeSunModel.guest.rnameStr}', 199 + '${marketingCenterProvider.rechargeNoticeSunModel.guest == null ? '' : marketingCenterProvider.rechargeNoticeSunModel.guest.rnameStr}',
199 ), 200 ),
200 VEmptyView(24), 201 VEmptyView(24),
201 MyDivider( 202 MyDivider(
@@ -206,7 +207,7 @@ class _MessageRechargeInfoPageState extends State<MessageRechargeInfoPage> { @@ -206,7 +207,7 @@ class _MessageRechargeInfoPageState extends State<MessageRechargeInfoPage> {
206 VEmptyView(48), 207 VEmptyView(48),
207 _text( 208 _text(
208 '联系电话', 209 '联系电话',
209 - '${marketingCenterProvider.rechargeNoticeSunModel.guest.phone}', 210 + '${marketingCenterProvider.rechargeNoticeSunModel.guest == null ? '' : marketingCenterProvider.rechargeNoticeSunModel.guest.phone}',
210 ), 211 ),
211 VEmptyView(24), 212 VEmptyView(24),
212 MyDivider( 213 MyDivider(
@@ -217,7 +218,7 @@ class _MessageRechargeInfoPageState extends State<MessageRechargeInfoPage> { @@ -217,7 +218,7 @@ class _MessageRechargeInfoPageState extends State<MessageRechargeInfoPage> {
217 VEmptyView(48), 218 VEmptyView(48),
218 _text( 219 _text(
219 '顾客生日', 220 '顾客生日',
220 - '${marketingCenterProvider.rechargeNoticeSunModel.guest.cDayShow}', 221 + '${marketingCenterProvider.rechargeNoticeSunModel.guest == null ? '' : marketingCenterProvider.rechargeNoticeSunModel.guest.cDayShow}',
221 ), 222 ),
222 VEmptyView(24), 223 VEmptyView(24),
223 MyDivider( 224 MyDivider(
@@ -237,276 +238,307 @@ class _MessageRechargeInfoPageState extends State<MessageRechargeInfoPage> { @@ -237,276 +238,307 @@ class _MessageRechargeInfoPageState extends State<MessageRechargeInfoPage> {
237 color: MyColours.color_E7E7E7, 238 color: MyColours.color_E7E7E7,
238 ), 239 ),
239 VEmptyView(48), 240 VEmptyView(48),
240 - _text(  
241 - '活动名称',  
242 - '${marketingCenterProvider.rechargeNoticeSunModel.recharge.rname}',  
243 - ),  
244 - VEmptyView(24),  
245 - MyDivider(  
246 - double.infinity,  
247 - w(0.5),  
248 - color: MyColours.color_E7E7E7,  
249 - ),  
250 - VEmptyView(48),  
251 - _text(  
252 - '充值满',  
253 - '${marketingCenterProvider.rechargeNoticeSunModel.recharge.rechargeMoney}',  
254 - ),  
255 - VEmptyView(24),  
256 - MyDivider(  
257 - double.infinity,  
258 - w(0.5),  
259 - color: MyColours.color_E7E7E7,  
260 - ),  
261 - VEmptyView(48),  
262 - Container(  
263 - alignment: Alignment.centerLeft,  
264 - child: Text(  
265 - '优惠活动',  
266 - style: TextStyle(  
267 - color: MyColours.color_515151,  
268 - fontSize: ScreenUtil().setSp(32)),  
269 - ),  
270 - ),  
271 - VEmptyView(28),  
272 - Padding(  
273 - padding: EdgeInsets.only(left: w(16)),  
274 - child: Column(  
275 - crossAxisAlignment: CrossAxisAlignment.start,  
276 - // mainAxisAlignment: MainAxisAlignment.start, 241 +
  242 + if (marketingCenterProvider
  243 + .rechargeNoticeSunModel.recharge !=
  244 + null)
  245 + Column(
277 children: [ 246 children: [
278 - if (marketingCenterProvider  
279 - .rechargeNoticeSunModel  
280 - .recharge  
281 - .rechargeList  
282 - .isPrice ==  
283 - '1')  
284 - Row(  
285 - mainAxisAlignment:  
286 - MainAxisAlignment.spaceBetween,  
287 - children: [  
288 - Text(  
289 - '赠送',  
290 - style: TextStyle(  
291 - color: MyColours.color_515151,  
292 - fontSize: ScreenUtil().setSp(32)),  
293 - ),  
294 - Spacer(),  
295 - Text(  
296 - '${marketingCenterProvider.rechargeNoticeSunModel.recharge.rechargeList.price}元余额',  
297 - style: TextStyle(  
298 - color: MyColours.color_999999,  
299 - fontSize: ScreenUtil().setSp(32)),  
300 - ),  
301 - HEmptyView(32)  
302 - ], 247 + _text(
  248 + '活动名称',
  249 + '${marketingCenterProvider.rechargeNoticeSunModel.recharge.rname}',
  250 + ),
  251 + VEmptyView(24),
  252 + MyDivider(
  253 + double.infinity,
  254 + w(0.5),
  255 + color: MyColours.color_E7E7E7,
  256 + ),
  257 + VEmptyView(48),
  258 + _text(
  259 + '充值满',
  260 + '${marketingCenterProvider.rechargeNoticeSunModel.recharge.rechargeMoney}',
  261 + ),
  262 + VEmptyView(24),
  263 + MyDivider(
  264 + double.infinity,
  265 + w(0.5),
  266 + color: MyColours.color_E7E7E7,
  267 + ),
  268 + VEmptyView(48),
  269 + Container(
  270 + alignment: Alignment.centerLeft,
  271 + child: Text(
  272 + '优惠活动',
  273 + style: TextStyle(
  274 + color: MyColours.color_515151,
  275 + fontSize: ScreenUtil().setSp(32)),
303 ), 276 ),
304 - if (marketingCenterProvider  
305 - .rechargeNoticeSunModel  
306 - .recharge  
307 - .rechargeList  
308 - .isPrice ==  
309 - '1')  
310 - VEmptyView(26),  
311 - if (marketingCenterProvider  
312 - .rechargeNoticeSunModel  
313 - .recharge  
314 - .rechargeList  
315 - .isScore ==  
316 - '1')  
317 - Row(  
318 - mainAxisAlignment:  
319 - MainAxisAlignment.spaceBetween,  
320 - children: [  
321 - Text(  
322 - '赠送',  
323 - style: TextStyle(  
324 - color: MyColours.color_515151,  
325 - fontSize: ScreenUtil().setSp(32)),  
326 - ),  
327 - Spacer(),  
328 - Text(  
329 - '${marketingCenterProvider.rechargeNoticeSunModel.recharge.rechargeList.score}积分',  
330 - style: TextStyle(  
331 - color: MyColours.color_999999,  
332 - fontSize: ScreenUtil().setSp(32)),  
333 - ),  
334 - HEmptyView(32)  
335 - ],  
336 - ),  
337 - if (marketingCenterProvider  
338 - .rechargeNoticeSunModel  
339 - .recharge  
340 - .rechargeList  
341 - .isScore ==  
342 - '1')  
343 - VEmptyView(26),  
344 - if (marketingCenterProvider  
345 - .rechargeNoticeSunModel  
346 - .recharge  
347 - .rechargeList  
348 - .isCoupons ==  
349 - '1')  
350 - Row(  
351 - mainAxisAlignment:  
352 - MainAxisAlignment.spaceBetween, 277 + ),
  278 + VEmptyView(28),
  279 + Padding(
  280 + padding: EdgeInsets.only(left: w(16)),
  281 + child: Column(
  282 + crossAxisAlignment:
  283 + CrossAxisAlignment.start,
  284 + // mainAxisAlignment: MainAxisAlignment.start,
353 children: [ 285 children: [
354 - Text(  
355 - '赠送',  
356 - style: TextStyle(  
357 - color: MyColours.color_515151,  
358 - fontSize: ScreenUtil().setSp(32)),  
359 - ),  
360 - Spacer(),  
361 - Text(  
362 - '优惠券',  
363 - style: TextStyle(  
364 - color: MyColours.color_999999,  
365 - fontSize: ScreenUtil().setSp(32)),  
366 - ),  
367 - HEmptyView(32) 286 + if (marketingCenterProvider
  287 + .rechargeNoticeSunModel
  288 + .recharge
  289 + .rechargeList
  290 + .isPrice ==
  291 + '1')
  292 + Row(
  293 + mainAxisAlignment:
  294 + MainAxisAlignment.spaceBetween,
  295 + children: [
  296 + Text(
  297 + '赠送',
  298 + style: TextStyle(
  299 + color: MyColours.color_515151,
  300 + fontSize:
  301 + ScreenUtil().setSp(32)),
  302 + ),
  303 + Spacer(),
  304 + Text(
  305 + '${marketingCenterProvider.rechargeNoticeSunModel.recharge.rechargeList.price}元余额',
  306 + style: TextStyle(
  307 + color: MyColours.color_999999,
  308 + fontSize:
  309 + ScreenUtil().setSp(32)),
  310 + ),
  311 + HEmptyView(32)
  312 + ],
  313 + ),
  314 + if (marketingCenterProvider
  315 + .rechargeNoticeSunModel
  316 + .recharge
  317 + .rechargeList
  318 + .isPrice ==
  319 + '1')
  320 + VEmptyView(26),
  321 + if (marketingCenterProvider
  322 + .rechargeNoticeSunModel
  323 + .recharge
  324 + .rechargeList
  325 + .isScore ==
  326 + '1')
  327 + Row(
  328 + mainAxisAlignment:
  329 + MainAxisAlignment.spaceBetween,
  330 + children: [
  331 + Text(
  332 + '赠送',
  333 + style: TextStyle(
  334 + color: MyColours.color_515151,
  335 + fontSize:
  336 + ScreenUtil().setSp(32)),
  337 + ),
  338 + Spacer(),
  339 + Text(
  340 + '${marketingCenterProvider.rechargeNoticeSunModel.recharge.rechargeList.score}积分',
  341 + style: TextStyle(
  342 + color: MyColours.color_999999,
  343 + fontSize:
  344 + ScreenUtil().setSp(32)),
  345 + ),
  346 + HEmptyView(32)
  347 + ],
  348 + ),
  349 + if (marketingCenterProvider
  350 + .rechargeNoticeSunModel
  351 + .recharge
  352 + .rechargeList
  353 + .isScore ==
  354 + '1')
  355 + VEmptyView(26),
  356 + if (marketingCenterProvider
  357 + .rechargeNoticeSunModel
  358 + .recharge
  359 + .rechargeList
  360 + .isCoupons ==
  361 + '1')
  362 + Row(
  363 + mainAxisAlignment:
  364 + MainAxisAlignment.spaceBetween,
  365 + children: [
  366 + Text(
  367 + '赠送',
  368 + style: TextStyle(
  369 + color: MyColours.color_515151,
  370 + fontSize:
  371 + ScreenUtil().setSp(32)),
  372 + ),
  373 + Spacer(),
  374 + Text(
  375 + '优惠券',
  376 + style: TextStyle(
  377 + color: MyColours.color_999999,
  378 + fontSize:
  379 + ScreenUtil().setSp(32)),
  380 + ),
  381 + HEmptyView(32)
  382 + ],
  383 + ),
  384 + if (marketingCenterProvider
  385 + .rechargeNoticeSunModel
  386 + .recharge
  387 + .rechargeList
  388 + .isCoupons ==
  389 + '1')
  390 + VEmptyView(26),
  391 + if (marketingCenterProvider
  392 + .rechargeNoticeSunModel
  393 + .recharge
  394 + .rechargeList
  395 + .isCoupons ==
  396 + '1')
  397 + Wrap(
  398 + spacing: w(9),
  399 + runSpacing: w(9),
  400 + alignment: WrapAlignment.start,
  401 + runAlignment: WrapAlignment.start,
  402 + children: marketingCenterProvider
  403 + .rechargeNoticeSunModel
  404 + .recharge
  405 + .rechargeList
  406 + .coupons
  407 + .map((e) {
  408 + return InkWell(
  409 + onTap: () {
  410 + NavigatorUtil
  411 + .goCouponDetailPage(
  412 + context, null,
  413 + idStr: e.id);
  414 + },
  415 + child: Text(
  416 + e.aname,
  417 + style: TextStyle(
  418 + color: MyColours
  419 + .color_438E93,
  420 + fontSize: ScreenUtil()
  421 + .setSp(32)),
  422 + ));
  423 + }).toList()),
  424 + VEmptyView(26),
368 ], 425 ],
369 ), 426 ),
  427 + ),
  428 + MyDivider(
  429 + double.infinity,
  430 + w(0.5),
  431 + color: MyColours.color_E7E7E7,
  432 + ),
  433 + VEmptyView(48),
  434 + Row(
  435 + children: [
  436 + Text(
  437 + '使用限制:',
  438 + style: TextStyle(
  439 + color: MyColours.color_515151,
  440 + fontSize: ScreenUtil().setSp(32)),
  441 + ),
  442 + Spacer(),
  443 + Text(
  444 + marketingCenterProvider
  445 + .rechargeNoticeSunModel
  446 + .recharge
  447 + .expDate
  448 + .isFix ==
  449 + '1'
  450 + ? '无'
  451 + : marketingCenterProvider
  452 + .rechargeNoticeSunModel
  453 + .recharge
  454 + .expDate
  455 + .isWeek ==
  456 + '1'
  457 + ? '每周指定日期可用'
  458 + : '会员生日当天',
  459 + style: TextStyle(
  460 + color: MyColours.color_999999,
  461 + fontSize: ScreenUtil().setSp(32)),
  462 + ),
  463 + HEmptyView(32)
  464 + ],
  465 + ),
370 if (marketingCenterProvider 466 if (marketingCenterProvider
371 .rechargeNoticeSunModel 467 .rechargeNoticeSunModel
372 .recharge 468 .recharge
373 - .rechargeList  
374 - .isCoupons == 469 + .expDate
  470 + .isWeek ==
375 '1') 471 '1')
376 VEmptyView(26), 472 VEmptyView(26),
377 if (marketingCenterProvider 473 if (marketingCenterProvider
378 .rechargeNoticeSunModel 474 .rechargeNoticeSunModel
379 .recharge 475 .recharge
380 - .rechargeList  
381 - .isCoupons == 476 + .expDate
  477 + .isWeek ==
382 '1') 478 '1')
383 - Wrap(  
384 - spacing: w(9),  
385 - runSpacing: w(9),  
386 - alignment: WrapAlignment.start,  
387 - runAlignment: WrapAlignment.start,  
388 - children: marketingCenterProvider  
389 - .rechargeNoticeSunModel  
390 - .recharge  
391 - .rechargeList  
392 - .coupons  
393 - .map((e) {  
394 - return InkWell(  
395 - onTap: () {  
396 - NavigatorUtil.goCouponDetailPage(  
397 - context, null,  
398 - idStr: e.id);  
399 - },  
400 - child: Text(  
401 - e.aname,  
402 - style: TextStyle(  
403 - color: MyColours.color_438E93,  
404 - fontSize:  
405 - ScreenUtil().setSp(32)),  
406 - ));  
407 - }).toList()),  
408 - VEmptyView(26),  
409 - ],  
410 - ),  
411 - ),  
412 - MyDivider(  
413 - double.infinity,  
414 - w(0.5),  
415 - color: MyColours.color_E7E7E7,  
416 - ),  
417 - VEmptyView(48),  
418 - Row(  
419 - children: [  
420 - Text(  
421 - '使用限制:',  
422 - style: TextStyle(  
423 - color: MyColours.color_515151,  
424 - fontSize: ScreenUtil().setSp(32)),  
425 - ),  
426 - Spacer(),  
427 - Text(  
428 - marketingCenterProvider.rechargeNoticeSunModel  
429 - .recharge.expDate.isFix ==  
430 - '1'  
431 - ? '无'  
432 - : marketingCenterProvider 479 + Align(
  480 + alignment: Alignment.centerRight,
  481 + child: Padding(
  482 + padding:
  483 + EdgeInsets.only(right: w(16)),
  484 + child: Text(
  485 + marketingCenterProvider
433 .rechargeNoticeSunModel 486 .rechargeNoticeSunModel
434 .recharge 487 .recharge
435 .expDate 488 .expDate
436 - .isWeek ==  
437 - '1'  
438 - ? '每周指定日期可用'  
439 - : '会员生日当天',  
440 - style: TextStyle(  
441 - color: MyColours.color_999999,  
442 - fontSize: ScreenUtil().setSp(32)),  
443 - ),  
444 - HEmptyView(32)  
445 - ],  
446 - ),  
447 - if (marketingCenterProvider.rechargeNoticeSunModel  
448 - .recharge.expDate.isWeek ==  
449 - '1')  
450 - VEmptyView(26),  
451 - if (marketingCenterProvider.rechargeNoticeSunModel  
452 - .recharge.expDate.isWeek ==  
453 - '1')  
454 - Align(  
455 - alignment: Alignment.centerRight,  
456 - child: Padding(  
457 - padding: EdgeInsets.only(right: w(16)),  
458 - child: Text( 489 + .weekDateShow,
  490 + maxLines: 10,
  491 + style: TextStyle(
  492 + color: MyColours.color_999999,
  493 + fontSize:
  494 + ScreenUtil().setSp(32)),
  495 + ))),
  496 + VEmptyView(24),
  497 + MyDivider(
  498 + double.infinity,
  499 + w(0.5),
  500 + color: MyColours.color_E7E7E7,
  501 + ),
  502 + VEmptyView(48),
  503 + Row(
  504 + children: [
  505 + Text(
  506 + '有效期:',
  507 + style: TextStyle(
  508 + color: MyColours.color_515151,
  509 + fontSize: ScreenUtil().setSp(32)),
  510 + ),
  511 + Spacer(),
  512 + Text(
459 marketingCenterProvider 513 marketingCenterProvider
460 - .rechargeNoticeSunModel  
461 - .recharge  
462 - .expDate  
463 - .weekDateShow,  
464 - maxLines: 10, 514 + .rechargeNoticeSunModel
  515 + .recharge
  516 + .stimeStr +
  517 + '至' +
  518 + marketingCenterProvider
  519 + .rechargeNoticeSunModel
  520 + .recharge
  521 + .etimeStr,
465 style: TextStyle( 522 style: TextStyle(
466 color: MyColours.color_999999, 523 color: MyColours.color_999999,
467 fontSize: ScreenUtil().setSp(32)), 524 fontSize: ScreenUtil().setSp(32)),
468 - ))),  
469 - VEmptyView(24),  
470 - MyDivider(  
471 - double.infinity,  
472 - w(0.5),  
473 - color: MyColours.color_E7E7E7,  
474 - ),  
475 - VEmptyView(48),  
476 - Row(  
477 - children: [  
478 - Text(  
479 - '有效期:',  
480 - style: TextStyle(  
481 - color: MyColours.color_515151,  
482 - fontSize: ScreenUtil().setSp(32)),  
483 - ),  
484 - Spacer(),  
485 - Text(  
486 - marketingCenterProvider.rechargeNoticeSunModel  
487 - .recharge.stimeStr +  
488 - '至' +  
489 - marketingCenterProvider  
490 - .rechargeNoticeSunModel  
491 - .recharge  
492 - .etimeStr,  
493 - style: TextStyle(  
494 - color: MyColours.color_999999,  
495 - fontSize: ScreenUtil().setSp(32)),  
496 - ),  
497 - HEmptyView(32)  
498 - ],  
499 - ),  
500 - VEmptyView(24),  
501 - MyDivider(  
502 - double.infinity,  
503 - w(0.5),  
504 - color: MyColours.color_E7E7E7,  
505 - ),  
506 - VEmptyView(48),  
507 - _explain(  
508 - '备注',  
509 - ), 525 + ),
  526 + HEmptyView(32)
  527 + ],
  528 + ),
  529 + VEmptyView(24),
  530 + MyDivider(
  531 + double.infinity,
  532 + w(0.5),
  533 + color: MyColours.color_E7E7E7,
  534 + ),
  535 + VEmptyView(48),
  536 + _explain(
  537 + '备注',
  538 + ),
  539 + ],
  540 + ),
  541 +
510 VEmptyView(48), 542 VEmptyView(48),
511 // _canUse() 543 // _canUse()
512 ], 544 ],
@@ -332,8 +332,15 @@ class MarketingCenterProvider extends ChangeNotifier { @@ -332,8 +332,15 @@ class MarketingCenterProvider extends ChangeNotifier {
332 return false; 332 return false;
333 }); 333 });
334 if (baseResp.code == Constant.status_success) { 334 if (baseResp.code == Constant.status_success) {
335 - rechargeNoticeSunModel = RechargeNoticeModel.fromJson(baseResp.responseData).data;  
336 - pageStateMessageDetail = PageState.Success; 335 + rechargeNoticeSunModel =
  336 + RechargeNoticeModel.fromJson(baseResp.responseData).data;
  337 + if (rechargeNoticeSunModel.recharge == null &&
  338 + rechargeNoticeSunModel.guest == null) {
  339 + pageStateMessageDetail = PageState.Empty;
  340 + } else {
  341 + pageStateMessageDetail = PageState.Success;
  342 + }
  343 +
337 notifyListeners(); 344 notifyListeners();
338 return true; 345 return true;
339 } else { 346 } else {