| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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 = |
| | |
| | | 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) { |
| | |
| | | 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) { |