MrShi
9 小时以前 59bfd0b8bbbf0ee94ec68e4a3a1a6e536d0ad8fd
server/services/src/main/java/com/doumee/service/business/impl/DataBoardServiceImpl.java
@@ -150,10 +150,10 @@
        Map<String, Long> map = members.stream()
                .collect(Collectors.groupingBy(m -> sdf.format(m.getCreateTime()), Collectors.counting()));
        return buildTrendList(range, (date) -> {
        return buildTrendList(range, (key, label) -> {
            MemberTrendVO vo = new MemberTrendVO();
            vo.setDate(date);
            vo.setCount(map.getOrDefault(date, 0L));
            vo.setDate(label);
            vo.setCount(map.getOrDefault(key, 0L));
            return vo;
        });
    }
@@ -169,10 +169,10 @@
        Map<String, List<Orders>> grouped = orders.stream()
                .collect(Collectors.groupingBy(o -> sdf.format(o.getCreateTime())));
        return buildTrendList(range, (date) -> {
            List<Orders> dayOrders = grouped.getOrDefault(date, Collections.emptyList());
        return buildTrendList(range, (key, label) -> {
            List<Orders> dayOrders = grouped.getOrDefault(key, Collections.emptyList());
            OrderTrendVO vo = new OrderTrendVO();
            vo.setDate(date);
            vo.setDate(label);
            vo.setLocalCount(dayOrders.stream().filter(o -> Constants.equalsInteger(o.getType(), Constants.ZERO)).count());
            vo.setRemoteCount(dayOrders.stream().filter(o -> Constants.equalsInteger(o.getType(), Constants.ONE)).count());
            return vo;
@@ -227,11 +227,11 @@
            }
        }
        return buildTrendList(range, (date) -> {
        return buildTrendList(range, (key, label) -> {
            RevenueTrendVO vo = new RevenueTrendVO();
            vo.setDate(date);
            long local = localOrderRevenue.getOrDefault(date, 0L);
            long remote = remoteOrderRevenue.getOrDefault(date, 0L);
            vo.setDate(label);
            long local = localOrderRevenue.getOrDefault(key, 0L);
            long remote = remoteOrderRevenue.getOrDefault(key, 0L);
            vo.setLocalRevenue(BigDecimal.valueOf(local).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
            vo.setRemoteRevenue(BigDecimal.valueOf(remote).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
            return vo;
@@ -718,7 +718,7 @@
    @FunctionalInterface
    private interface TrendVOBuilder<T> {
        T build(String date);
        T build(String key, String label);
    }
    private <T> List<T> buildTrendList(TrendDateRange range, TrendVOBuilder<T> builder) {
@@ -732,7 +732,8 @@
            Calendar end = Calendar.getInstance();
            end.setTime(range.endDate);
            while (!loop.after(end)) {
                result.add(builder.build(sdf.format(loop.getTime())));
                String dateStr = sdf.format(loop.getTime());
                result.add(builder.build(dateStr, dateStr));
                loop.add(Calendar.DAY_OF_MONTH, 1);
            }
        } else {
@@ -741,8 +742,9 @@
            endCal.setTime(range.endDate);
            int endMonth = endCal.get(Calendar.MONTH); // 0-based
            for (int m = 0; m <= endMonth; m++) {
                String label = String.format("%02d", m + 1);
                result.add(builder.build(label));
                String key = String.format("%02d", m + 1);
                String label = (m + 1) + "月";
                result.add(builder.build(key, label));
            }
        }
        return result;