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

原来的代码:

 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的情况下再去查看是否含有个人未支付且支付未过期的预约信息,但逻辑混乱,让人读起来一头雾水。

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

原文地址:https://www.cnblogs.com/GreenMountain/p/13470512.html