@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;
 }