From ca1d5e6537e61cacc46b4b12468c768e832b5d17 Mon Sep 17 00:00:00 2001 From: seesaw Date: Fri, 18 Oct 2024 17:04:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=92=8C=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CustomizeExcelController.java | 8 ++-- .../app/business/vo/BusinessDataVO.java | 2 +- .../customizeExcel/CustomizeExcelMapper.java | 2 +- .../service/business/BusinessServiceImpl.java | 37 ++++++++++--------- .../customizeExcel/CustomizeExcelService.java | 2 +- .../CustomizeExcelServiceImpl.java | 4 +- .../module/member/util/MemberTimeUtils.java | 22 +++++++++++ .../customizeExcel/CustomizeExcelMapper.xml | 2 +- 8 files changed, 51 insertions(+), 28 deletions(-) diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/CustomizeExcelController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/CustomizeExcelController.java index 85994a98..b73ede37 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/CustomizeExcelController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/CustomizeExcelController.java @@ -48,20 +48,18 @@ public class CustomizeExcelController { @GetMapping("/orderExcel") @Operation(summary = "导出订单详情") @OperateLog(type = EXPORT) - public void exportBusinessExcel(String startTime,String endTime, + public void exportBusinessExcel(String startTime,String endTime,Long carteenId, HttpServletResponse response) throws IOException { - List orderExcelVOS = excelService.exportOrderExcel(startTime, endTime); + List orderExcelVOS = excelService.exportOrderExcel(startTime, endTime,carteenId); // 导出 Excel ExcelUtils.write(response, "订单详情统计.xls", "数据", OrderExcelVO.class, orderExcelVOS); - - } /** * 根据时间导出多个sheet 页 - * @param list + * @param * @param response * @throws IOException */ diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/business/vo/BusinessDataVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/business/vo/BusinessDataVO.java index f74def83..d05c1ba0 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/business/vo/BusinessDataVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/business/vo/BusinessDataVO.java @@ -9,7 +9,7 @@ import java.util.List; @Data public class BusinessDataVO { - private BusinessRespVO old; + private BusinessRespVO now; private List businessList; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/customizeExcel/CustomizeExcelMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/customizeExcel/CustomizeExcelMapper.java index d892a369..7f1eefbb 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/customizeExcel/CustomizeExcelMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/customizeExcel/CustomizeExcelMapper.java @@ -11,5 +11,5 @@ import java.util.List; public interface CustomizeExcelMapper { - List selectOrder(@Param("startTime")String startTime, @Param("endTime")String endTime); + List selectOrder(@Param("startTime")String startTime, @Param("endTime")String endTime, @Param("carteenId")Long carteenId); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/business/BusinessServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/business/BusinessServiceImpl.java index 6e7019b8..0da58f0f 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/business/BusinessServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/business/BusinessServiceImpl.java @@ -166,6 +166,9 @@ public class BusinessServiceImpl implements BusinessService { @Override public BusinessDataVO getDay(String time,Long carteenId) { + Integer nowDay = MemberTimeUtils.getDay(time); + time = MemberTimeUtils.getYearMonth(time); + BusinessDataVO businessDataVO = new BusinessDataVO(); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -210,17 +213,14 @@ public class BusinessServiceImpl implements BusinessService { if(CollectionUtil.isNotEmpty(previousList)){ BeanUtil.copyProperties(previousList.get(0), old); }else { - old.setTurnover(BigDecimal.ZERO).setOrderSum(0).setReduce(BigDecimal.ZERO).setWeigh(BigDecimal.ZERO) - .setBreakfast(BigDecimal.ZERO).setLunch(BigDecimal.ZERO).setDinner(BigDecimal.ZERO); + old = getInitBusinessRespVO(); } // 循环遍历该月的每一天 for (int day = 1; day <= daysInMonth; day++) { BusinessRespVO bean = new BusinessRespVO(); if(map.get(day) == null){ - bean.setTurnover(BigDecimal.ZERO).setOrderSum(0).setReduce(BigDecimal.ZERO).setWeigh(BigDecimal.ZERO) - .setBreakfast(BigDecimal.ZERO).setLunch(BigDecimal.ZERO).setDinner(BigDecimal.ZERO) - .setTime(String.valueOf(day)); + bean = getInitBusinessRespVO().setTime(String.valueOf(day)); }else { bean = BeanUtils.toBean(map.get(day), BusinessRespVO.class); bean.setTime(String.valueOf(day)); @@ -234,7 +234,7 @@ public class BusinessServiceImpl implements BusinessService { monthData.put(day,bean); } - + businessDataVO.setNow(monthData.get(nowDay)); businessDataVO.setBusinessList(new ArrayList<>(monthData.values())); return businessDataVO; } @@ -254,10 +254,7 @@ public class BusinessServiceImpl implements BusinessService { int totalWeeksOfMonth = MemberTimeUtils.getTotalWeeksOfMonth(time); for (int i = 1; i <= totalWeeksOfMonth; i++) { - BusinessRespVO bean = new BusinessRespVO(); - bean.setTurnover(BigDecimal.ZERO).setOrderSum(0).setReduce(BigDecimal.ZERO).setWeigh(BigDecimal.ZERO) - .setBreakfast(BigDecimal.ZERO).setLunch(BigDecimal.ZERO).setDinner(BigDecimal.ZERO) - .setTime(String.valueOf(i)); + BusinessRespVO bean = getInitBusinessRespVO().setTime(String.valueOf(i)); map.put(i,bean); } @@ -281,6 +278,7 @@ public class BusinessServiceImpl implements BusinessService { @Override public BusinessDataVO getMonth(String time,Long carteenId) { + time = MemberTimeUtils.getYearMonth(time); BusinessDataVO businessDataVO = new BusinessDataVO(); @@ -295,10 +293,8 @@ public class BusinessServiceImpl implements BusinessService { Map map = new HashMap<>(); //时间处理 for (int i = 1; i <= 12; i++) { - BusinessRespVO bean = new BusinessRespVO(); - bean.setTurnover(BigDecimal.ZERO).setOrderSum(0).setReduce(BigDecimal.ZERO).setWeigh(BigDecimal.ZERO) - .setBreakfast(BigDecimal.ZERO).setLunch(BigDecimal.ZERO).setDinner(BigDecimal.ZERO) - .setTime(String.valueOf(i)); + BusinessRespVO bean = getInitBusinessRespVO(); + bean.setTime(String.valueOf(i)); map.put(i,bean); } //数据统计 @@ -319,9 +315,7 @@ public class BusinessServiceImpl implements BusinessService { previousWrapper.orderByAsc(BusinessDO::getCreateTime); previousWrapper.apply("DATE_FORMAT(create_time, '%Y-%m') = {0}", previousYear+"-12"); List previousList = businessMapper.selectList(previousWrapper); - BusinessRespVO previousVO = new BusinessRespVO(); - previousVO.setTurnover(BigDecimal.ZERO).setOrderSum(0).setReduce(BigDecimal.ZERO).setWeigh(BigDecimal.ZERO) - .setBreakfast(BigDecimal.ZERO).setLunch(BigDecimal.ZERO).setDinner(BigDecimal.ZERO); + BusinessRespVO previousVO = getInitBusinessRespVO(); for (BusinessDO businessDO : previousList) { handleBusiness(businessDO,previousVO); } @@ -334,6 +328,8 @@ public class BusinessServiceImpl implements BusinessService { } } + int month = MemberTimeUtils.getMonthFromYearMonthString(time); + businessDataVO.setNow(map.get(month)); businessDataVO.setBusinessList(new ArrayList<>(map.values())); return businessDataVO; @@ -367,4 +363,11 @@ public class BusinessServiceImpl implements BusinessService { today.setPriceAvgCompare(today.getPriceAvg().subtract(last.getPriceAvg())); } + BusinessRespVO getInitBusinessRespVO() { + BusinessRespVO previousVO = new BusinessRespVO(); + previousVO.setTurnover(BigDecimal.ZERO).setOrderSum(0).setReduce(BigDecimal.ZERO).setWeigh(BigDecimal.ZERO) + .setBreakfast(BigDecimal.ZERO).setLunch(BigDecimal.ZERO).setDinner(BigDecimal.ZERO).setPriceAvg(BigDecimal.ZERO); + return previousVO; + } + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelService.java index d0627bfc..f6171ff6 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelService.java @@ -10,5 +10,5 @@ import java.util.List; public interface CustomizeExcelService { - List exportOrderExcel(String startTime,String endTime); + List exportOrderExcel(String startTime,String endTime,Long carteenId); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelServiceImpl.java index 53fed431..6a9544ba 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelServiceImpl.java @@ -17,7 +17,7 @@ public class CustomizeExcelServiceImpl implements CustomizeExcelService { @Override - public List exportOrderExcel(String startTime, String endTime) { - return customizeExcelMapper.selectOrder(startTime,endTime); + public List exportOrderExcel(String startTime, String endTime,Long carteenId) { + return customizeExcelMapper.selectOrder(startTime,endTime,carteenId); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/MemberTimeUtils.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/MemberTimeUtils.java index 484d771b..5c502e10 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/MemberTimeUtils.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/MemberTimeUtils.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.member.util; import java.time.LocalDate; import java.time.YearMonth; +import java.time.format.DateTimeFormatter; import java.time.temporal.WeekFields; import java.util.Locale; @@ -41,4 +42,25 @@ public class MemberTimeUtils { // 返回年份 return yearMonth.getYear(); } + + public static int getMonthFromYearMonthString(String yearMonthString) { + // 使用YearMonth类解析字符串 + YearMonth yearMonth = YearMonth.parse(yearMonthString); + + // 返回年份 + return yearMonth.getMonth().getValue(); + } + + public static String getYearMonth(String time) { + // 解析成 LocalDate + LocalDate date = LocalDate.parse(time); + // 获取年份和月份,并格式化为 yyyy-MM 格式 + return date.format(DateTimeFormatter.ofPattern("yyyy-MM")); + } + + public static Integer getDay(String time) { + LocalDate date = LocalDate.parse(time); + return date.getDayOfMonth(); + } + } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/customizeExcel/CustomizeExcelMapper.xml b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/customizeExcel/CustomizeExcelMapper.xml index 9577c687..c8e76e9d 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/customizeExcel/CustomizeExcelMapper.xml +++ b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/customizeExcel/CustomizeExcelMapper.xml @@ -27,7 +27,7 @@ from member_order_detail md left join member_dish_order mo on md.order_id = mo.id left join member_user mu on mu.id = mo.user_id - where DATE_FORMAT(md.create_time, '%Y%m%d') between #{startTime} and #{endTime} + where DATE_FORMAT(md.create_time, '%Y%m%d') between #{startTime} and #{endTime} and mo.store_id = #{carteenId} order by mo.user_id,order_id