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


    原来的代码:

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

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

  • 相关阅读:
    【转载】关于sql server 代理(已禁用代理xp)
    Silverlight中将WriteableBitmap互转byte数组
    思迅Pay PC ,WIN7 ,KB3042058
    微软新Edge浏览器 WIN7 无法登录
    List<SelectListItem> 转为 SelectList
    图片jpg,png转为BASE64编码
    “Newtonsoft.Json”已拥有为“Microsoft.CSharp”定义的依赖项。
    mac os 10.15.1 懒人 .CDR
    微信刷脸SDK获取sub_openid
    win7 安装 visual studio 2019 时闪退(VS2019)
  • 原文地址:https://www.cnblogs.com/GreenMountain/p/13470512.html
Copyright © 2020-2023  润新知