@Override public List<UserLivenessTrendMapValue> userLivenessTrend( String idshop, Period period, Date start, Date end) { List<UserLivenessTrendMapValue> list = new ArrayList<>(); Shop shop = shopDao.findById(idshop); if (shop != null) { shop = new ShopEntity(shop); String _map = "" + shop.getConfigWifiApiLiveness(); _map = _map.matches("(\\d[\\d\\.]*,)+\\d[\\d\\.]*") ? _map : "1,7,15,30"; _map = _map + "," + Integer.MAX_VALUE; String[] maps = _map.split(","); float lastValue = 0; for (String map : maps) { UserLivenessTrendMapValue value = new UserLivenessTrendMapValue(lastValue, Float.parseFloat(map), "天"); int min = (int) (lastValue * 24 * 60 * 60); int max = (int) (Float.parseFloat(map) * 24 * 60 * 60); switch (period) { case hour: value.setTrend(mapper.userLivenessTrendHour(idshop, min, max, start, end)); break; case day: value.setTrend(mapper.userLivenessTrendDay(idshop, min, max, start, end)); break; case week: value.setTrend(mapper.userLivenessTrendWeek(idshop, min, max, start, end)); break; case month: value.setTrend(mapper.userLivenessTrendMonth(idshop, min, max, start, end)); break; } if (map.equals(String.valueOf(Integer.MAX_VALUE))) { if (value.getTrend() != null && value.getTrend().size() > 0) { list.add(value); } } else { list.add(value); } lastValue = Float.parseFloat(map); } String[] remarks = {"高活跃度顾客", "中活跃度顾客", "低活跃度顾客", "沉睡顾客", "深度沉睡顾客"}; for (int i = 0; i < list.size(); i++) { if (i < remarks.length) { list.get(i).setRemark(remarks[i]); } else { list.get(i).setRemark(remarks[remarks.length - 1]); } } } return list; }