longz
2026-07-08 700f9d0da314a4ea701fe9f68d305b67d72ec5fb
backend/src/main/java/com/sinata/appointment/service/DashboardApplicationService.java
@@ -45,18 +45,17 @@
    private final MpUserMapper mpUserMapper;
    private final SysDeptMapper sysDeptMapper;
    public DashboardOverviewVo getOverview(LocalDate startDate, LocalDate endDate) {
        DateRange range = resolveRange(startDate, endDate);
        LocalDate dailyDate = resolveDailyDate(range);
    public DashboardOverviewVo getOverview() {
        LocalDate dailyDate = LocalDate.now();
        DashboardOverviewVo vo = new DashboardOverviewVo();
        vo.setStartDate(format(range.startDate()));
        vo.setEndDate(format(range.endDate()));
        vo.setStartDate(null);
        vo.setEndDate(null);
        vo.setDailyDate(format(dailyDate));
        vo.setDailyAppointmentCount(countAppointments(dailyDate, dailyDate, null));
        vo.setTotalAppointmentCount(countAppointments(range.startDate(), range.endDate(), null));
        vo.setRegisteredUserCount(countRegisteredUsers(range.startDate(), range.endDate()));
        vo.setEmployeeCount(countEmployees(range.startDate(), range.endDate()));
        vo.setTotalAppointmentCount(countAllAppointments());
        vo.setRegisteredUserCount(countRegisteredUsers());
        vo.setEmployeeCount(countEmployees());
        return vo;
    }
@@ -131,6 +130,11 @@
                appointmentRangeWrapper(startDate, endDate, resolveDeptIds(visitedDeptId), null));
    }
    private long countAllAppointments() {
        return appointmentOrderMapper.selectCount(
                new LambdaQueryWrapper<AppointmentOrder>().eq(AppointmentOrder::getDelFlag, 0));
    }
    private LambdaQueryWrapper<AppointmentOrder> appointmentRangeWrapper(
            LocalDate startDate, LocalDate endDate, List<Long> deptIds, String status) {
        LambdaQueryWrapper<AppointmentOrder> wrapper =
@@ -203,22 +207,18 @@
        return result;
    }
    private long countRegisteredUsers(LocalDate startDate, LocalDate endDate) {
    private long countRegisteredUsers() {
        return mpUserMapper.selectCount(
                new LambdaQueryWrapper<MpUser>()
                        .eq(MpUser::getDelFlag, 0)
                        .eq(MpUser::getUserType, MiniUserType.VISITOR)
                        .ge(MpUser::getCreateTime, atStartOfDay(startDate))
                        .lt(MpUser::getCreateTime, atStartOfNextDay(endDate)));
                        .eq(MpUser::getUserType, MiniUserType.VISITOR));
    }
    private long countEmployees(LocalDate startDate, LocalDate endDate) {
    private long countEmployees() {
        return mpUserMapper.selectCount(
                new LambdaQueryWrapper<MpUser>()
                        .eq(MpUser::getDelFlag, 0)
                        .eq(MpUser::getUserType, MiniUserType.EMPLOYEE)
                        .ge(MpUser::getCreateTime, atStartOfDay(startDate))
                        .lt(MpUser::getCreateTime, atStartOfNextDay(endDate)));
                        .eq(MpUser::getUserType, MiniUserType.EMPLOYEE));
    }
    private DateRange resolveRange(LocalDate startDate, LocalDate endDate) {
@@ -232,14 +232,6 @@
            return new DateRange(resolvedEnd, resolvedStart);
        }
        return new DateRange(resolvedStart, resolvedEnd);
    }
    private LocalDate resolveDailyDate(DateRange range) {
        LocalDate today = LocalDate.now();
        if (!today.isBefore(range.startDate()) && !today.isAfter(range.endDate())) {
            return today;
        }
        return range.endDate();
    }
    private LocalDateTime atStartOfDay(LocalDate date) {