Browse Source

修改各地区网点开关店时间分布情况为区间形式

云殇忆 1 year ago
parent
commit
34a748031d

+ 50 - 2
ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/WdInfoServiceImpl.java

@@ -72,6 +72,24 @@ public class WdInfoServiceImpl implements WdInfoService {
         return vos;
     }
 
+    public Integer timeUtil(String time){
+        String[] split = time.split(":");
+        int hour = Integer.parseInt(split[0]);
+        int min = Integer.parseInt(split[1]);
+        return hour*100+min;
+    }
+
+    public int compareTime(String time1, String time2){
+        int result = timeUtil(time1).compareTo(timeUtil(time2));
+//        if (result > 0)
+//            System.out.println(time1 + " > " + time2);
+//        if (result == 0)
+//            System.out.println(time1 + " = " + time2);
+//        if (result < 0)
+//            System.out.println(time1 + " < " + time2);
+        return result;
+    }
+
     @Override
     public List<OpcloseTimeVo> searchOpenTimes(List<String> addrCodes, List<String> typeCodeBys) {
         List<String> addrs = new ArrayList<>();
@@ -97,7 +115,22 @@ public class WdInfoServiceImpl implements WdInfoService {
         }else
             types = null;
         List<OpcloseTimeVo> vos = storeWdOpcloseDao.selectWdOpenTimes(addrs, types);
-        return vos;
+        List<OpcloseTimeVo> rvos = new ArrayList<>();
+        for (int i = 0;i < 24; i+=2){
+            OpcloseTimeVo vo = new OpcloseTimeVo();
+            vo.setTime(i+":00~"+(i+2)+":00");
+            vo.setCount(0);
+            rvos.add(vo);
+        }
+        for (OpcloseTimeVo vo : vos){
+            for (OpcloseTimeVo rvo : rvos){
+                String[] times = rvo.getTime().split("~");
+                if (compareTime(vo.getTime(),times[0]) < 0 || compareTime(times[1],vo.getTime()) < 0)
+                    continue;
+                rvo.setCount(rvo.getCount() + vo.getCount());
+            }
+        }
+        return rvos;
     }
 
     @Override
@@ -125,7 +158,22 @@ public class WdInfoServiceImpl implements WdInfoService {
         }else
             types = null;
         List<OpcloseTimeVo> vos = storeWdOpcloseDao.selectWdCloseTimes(addrs, types);
-        return vos;
+        List<OpcloseTimeVo> rvos = new ArrayList<>();
+        for (int i = 0;i < 24; i+=2){
+            OpcloseTimeVo vo = new OpcloseTimeVo();
+            vo.setTime(i+":00~"+(i+2)+":00");
+            vo.setCount(0);
+            rvos.add(vo);
+        }
+        for (OpcloseTimeVo vo : vos){
+            for (OpcloseTimeVo rvo : rvos){
+                String[] times = rvo.getTime().split("~");
+                if (compareTime(vo.getTime(),times[0]) < 0 || compareTime(times[1],vo.getTime()) < 0)
+                    continue;
+                rvo.setCount(rvo.getCount() + vo.getCount());
+            }
+        }
+        return rvos;
     }
 
 //    @Override