@Override public List<FrequencyMapValue> visitFrequencyMap(String idshop, Date start, Date end) { List<FrequencyMapValue> list = new ArrayList<>(); Shop shop = shopDao.findById(idshop); if (shop != null) { shop = new ShopEntity(shop); String _map = "" + shop.getConfigWifiApiVisitCounts(); _map = _map.matches("(\\d+,)+\\d+") ? _map : "1,2,5"; _map = _map + "," + Integer.MAX_VALUE; String[] maps = _map.split(","); int lastValue = 1, total = 0; for (String map : maps) { FrequencyMapValue value = new FrequencyMapValue(lastValue, Integer.valueOf(map), "次"); value.setNum( mapper.visitFrequencyMap(idshop, lastValue, Integer.parseInt(map), start, end)); if (map.equals(String.valueOf(Integer.MAX_VALUE))) { if (value.getNum() > 0) { list.add(value); } } else { list.add(value); } total += value.getNum(); lastValue = Integer.parseInt(map) + 1; } for (FrequencyMapValue value : list) { value.setRate(1f * value.getNum() / total); } } return list; }