| | |
| | | import cn.afterturn.easypoi.excel.ExcelExportUtil; |
| | | import cn.afterturn.easypoi.excel.entity.ExportParams; |
| | | import com.xinquan.common.core.domain.R; |
| | | import com.xinquan.common.core.utils.DateUtils; |
| | | import com.xinquan.common.core.utils.WebUtils; |
| | | import com.xinquan.common.core.utils.page.BeanUtils; |
| | | import com.xinquan.common.core.utils.page.PageDTO; |
| | |
| | | import java.math.BigDecimal; |
| | | import java.net.URLEncoder; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | private RemoteMeditationService remoteMeditationService; |
| | | @Resource |
| | | private RemoteOrderService remoteOrderService; |
| | | |
| | | @PostMapping("/homeStatistics") |
| | | @ApiOperation(value = "首页统计",tags = "管理后台-首页统计") |
| | | public R<HomeVO> bannerList(@RequestBody HomeDto homeDto) { |
| | |
| | | if (!StringUtils.hasLength(homeDto.getTime())){ |
| | | homeDto.setTime("1"); |
| | | } |
| | | if(homeDto.getTimeType() == null){ |
| | | homeDto.setTimeType(1); |
| | | } |
| | | |
| | | List<Order> data6 = remoteOrderService.getOrderList(homeDto.getStatus(), homeDto.getTimeType(), homeDto.getTime()).getData(); |
| | | homeVO.setOrderCount(data6.size()+""); |
| | | BigDecimal bigDecimal = new BigDecimal("0"); |
| | |
| | | } |
| | | break; |
| | | } |
| | | if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ |
| | | List<LocalDate> localDates = generateDateList(homeDto.getTime()); |
| | | for (LocalDate localDate : localDates) { |
| | | x.put(localDate+"",0); |
| | | x1.put(localDate+"",0); |
| | | x2.put(localDate+"",0); |
| | | } |
| | | |
| | | } |
| | | for (Order order : data6) { |
| | | int value = order.getCreateTime().getMonth().getValue(); |
| | | int value1 = order.getCreateTime().getDayOfMonth(); |
| | | LocalDateTime createTime = order.getCreateTime(); |
| | | LocalDate localDate = createTime.toLocalDate(); |
| | | switch (order.getOrderFrom()){ |
| | | case 1: |
| | | switch (homeDto.getTimeType()){ |
| | | case 1: |
| | | // 获取订单月份 |
| | | x.put(value+"",(int)x.get(value+"")+1); |
| | | if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ |
| | | x.put(localDate+"",(int)x.get(value+"")+1); |
| | | }else{ |
| | | x.put(value+"",(int)x.get(value+"")+1); |
| | | } |
| | | break; |
| | | case 2: |
| | | Date date = new Date(); |
| | | String format = simpleDateFormat.format(date); |
| | | x.put(format,(int)x.get(format)+1); |
| | | if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ |
| | | x.put(localDate+"",(int)x.get(value+"")+1); |
| | | }else{ |
| | | x.put(format,(int)x.get(format)+1); |
| | | } |
| | | break; |
| | | case 3: |
| | | x.put(value1+"",(int)x.get(value1+"")+1); |
| | | if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ |
| | | x.put(localDate+"",(int)x.get(value+"")+1); |
| | | }else{ |
| | | x.put(value1+"",(int)x.get(value1+"")+1); |
| | | } |
| | | break; |
| | | case 4: |
| | | x.put(value1+"",(int)x.get(value1+"")+1); |
| | | if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ |
| | | x.put(localDate+"",(int)x.get(value+"")+1); |
| | | }else{ |
| | | x.put(value1+"",(int)x.get(value1+"")+1); |
| | | } |
| | | break; |
| | | } |
| | | break; |
| | |
| | | switch (homeDto.getTimeType()){ |
| | | case 1: |
| | | // 获取订单月份 |
| | | x1.put(value+"",(int)x1.get(value+"")+1); |
| | | if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ |
| | | x1.put(localDate+"",(int)x1.get(value+"")+1); |
| | | }else{ |
| | | x1.put(value+"",(int)x1.get(value+"")+1); |
| | | } |
| | | break; |
| | | case 2: |
| | | Date date = new Date(); |
| | | String format = simpleDateFormat.format(date); |
| | | x1.put(format,(int)x1.get(format)+1); |
| | | if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ |
| | | x1.put(localDate+"",(int)x1.get(value+"")+1); |
| | | }else{ |
| | | x1.put(format,(int)x1.get(format)+1); |
| | | } |
| | | break; |
| | | case 3: |
| | | x1.put(value1+"",(int)x1.get(value1+"")+1); |
| | | if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ |
| | | x1.put(localDate+"",(int)x1.get(value+"")+1); |
| | | }else{ |
| | | x1.put(value+"",(int)x1.get(value+"")+1); |
| | | } |
| | | break; |
| | | case 4: |
| | | x1.put(value1+"",(int)x1.get(value1+"")+1); |
| | | if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ |
| | | x1.put(localDate+"",(int)x1.get(value+"")+1); |
| | | }else{ |
| | | x1.put(value+"",(int)x1.get(value+"")+1); |
| | | } |
| | | break; |
| | | } |
| | | break; |
| | |
| | | switch (homeDto.getTimeType()){ |
| | | case 1: |
| | | // 获取订单月份 |
| | | x2.put(value+"",(int)x2.get(value+"")+1); |
| | | if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ |
| | | x2.put(localDate+"",(int)x2.get(value+"")+1); |
| | | }else{ |
| | | x2.put(value+"",(int)x2.get(value+"")+1); |
| | | } |
| | | break; |
| | | case 2: |
| | | Date date = new Date(); |
| | | String format = simpleDateFormat.format(date); |
| | | x2.put(format,(int)x2.get(format)+1); |
| | | if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ |
| | | x2.put(localDate+"",(int)x2.get(value+"")+1); |
| | | }else{ |
| | | x2.put(format,(int)x2.get(format)+1); |
| | | } |
| | | break; |
| | | case 3: |
| | | x2.put(value1+"",(int)x2.get(value1+"")+1); |
| | | if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ |
| | | x2.put(localDate+"",(int)x2.get(value+"")+1); |
| | | }else{ |
| | | x2.put(value+"",(int)x2.get(value+"")+1); |
| | | } |
| | | break; |
| | | case 4: |
| | | x2.put(value1+"",(int)x2.get(value1+"")+1); |
| | | if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ |
| | | x2.put(localDate+"",(int)x2.get(value+"")+1); |
| | | }else{ |
| | | x2.put(value+"",(int)x2.get(value+"")+1); |
| | | } |
| | | break; |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | switch (homeDto.getTimeType()){ |
| | | case 1: |
| | | break; |
| | | case 2: |
| | | break; |
| | | case 3: |
| | | break; |
| | | case 4: |
| | | break; |
| | | } |
| | | |
| | | // 对x的key值进行从小到大排序 |
| | | Map<String, Object> sortedMap = new TreeMap<>(Comparator.reverseOrder()); |
| | | sortedMap.putAll(x); |
| | |
| | | homeVO.setOrderVipList(sortedMap2); |
| | | return R.ok(homeVO); |
| | | } |
| | | public static List<LocalDate> generateDateList(String dateRange) { |
| | | // 定义日期格式 |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
| | | |
| | | // 解析日期范围字符串 |
| | | String[] dates = dateRange.split(" - "); |
| | | LocalDate startDate = LocalDate.parse(dates[0], formatter); |
| | | LocalDate endDate = LocalDate.parse(dates[1], formatter); |
| | | |
| | | // 创建日期列表 |
| | | List<LocalDate> dateList = new ArrayList<>(); |
| | | for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusDays(1)) { |
| | | dateList.add(date); |
| | | } |
| | | |
| | | return dateList; |
| | | } |
| | | @PutMapping("/homeStatisticsExport") |
| | | @ApiOperation(value = "首页统计-导出",tags = "管理后台-首页统计") |
| | | public void homeStatisticsExport() { |