• 代码改造实录--从较宏观角度来考虑逻辑


    原来的代码:

     1              if (makeAnAppointment.size() > 0) {
     2 
     3                 // 总号数-待支付号数-已确定号数
     4                 int make = plus.getPlusNumber() - makeAnAppointment.size() - plus.getMakeAnAppointment();
     5                 for (MakeAnAppointment ma : makeAnAppointment) {
     6                     if (ma.getPatientId() == patientId) { // 存在个人未支付的号
     7 
     8                         long s1 = (System.currentTimeMillis() - ma.getCreateTime()) / 60000;
     9                         if (s1 <= 60L) {
    10                             if (make == 0) {
    11                                 orderPlusVo.setStatus(1);
    12                                 continue;
    13                             }
    14                             orderPlusVo.setStatus(make > 0 ? 1 : 0);
    15                             continue;
    16                         }
    17                         make++;
    18                         continue;
    19                     }
    20                     orderPlusVo.setStatus(make > 0 ? 1 : 0);
    21                 }
    22             } else {
    23                 orderPlusVo.setStatus(plus.getPlusNumber() - plus.getMakeAnAppointment() > 0 ? 1 : 0);
    24             }

    改造后代码:

     1             // 总号数-待支付号数-已确定号数
     2             int make = plus.getPlusNumber() - plus.getMakeAnAppointment() - makeAnAppointment.size();
     3             if (make > 0) {
     4                 orderPlusVo.setStatus(Globals.REMAINING_HAVE);
     5             } else {
     6                 orderPlusVo.setStatus(Globals.REMAINING_NONE);
     7                 for (MakeAnAppointment ma : makeAnAppointment) {
     8                     if (ma.getPatientId().equals(patientId)
     9                         && System.currentTimeMillis() <= ma.getCreateTime() + 1000 * 60 * 60) {
    10                         orderPlusVo.setStatus(Globals.REMAINING_HAVE);
    11                     }
    12                 }
    13             }

    这两段代码是实现个人是否可以预约号的功能,原来的代码先从预约列表的个数分0和大于0两种情况,在预约列表大于0的情况下再去查看是否含有个人未支付且支付未过期的预约信息,但逻辑混乱,让人读起来一头雾水。

    下面的代码就清晰了很多,首先看是否还有未被预约的号,没有的情况下看是否含有自己预约未支付且在支付期限内的号,还没有就是真的没有了。

  • 相关阅读:
    Django集成Markdown编辑器【附源码】
    Django+JWT实现Token认证
    Docker环境的持续部署优化实践
    2018-行远自迩,登高自卑
    SVN Hooks的介绍及使用
    Django开发密码管理表实例【附源码】
    Django+Echarts画图实例
    Django使用Signals监测model字段变化发送通知
    运维效率之数据迁移自动化
    Python之路(第三十四篇) 网络编程:验证客户端合法性
  • 原文地址:https://www.cnblogs.com/GreenMountain/p/13470512.html
Copyright © 2020-2023  润新知