From b68348c51d17bee1952a2316d37da7775dac2dd8 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 13 九月 2024 11:28:39 +0800
Subject: [PATCH] 修改接口

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleGoodsService.java       |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java            |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java              |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TaskUtil.java                 |   24 +++---
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleGoodsMapper.java         |   11 ++
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealGoodsMapper.java         |   11 ++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderSaleController.java      |    6 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java      |   32 +++++++-
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java   |   24 ++---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java   |   56 ++++++-------
 ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java            |    2 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataStatisticsController.java |    5 
 ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml                    |    4 
 ruoyi-system/src/main/resources/mapper/system/TOrderSaleGoodsMapper.xml               |   14 +++
 ruoyi-system/src/main/resources/mapper/system/TOrderMealGoodsMapper.xml               |   13 +++
 15 files changed, 140 insertions(+), 68 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataStatisticsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataStatisticsController.java
index 6abf2f8..b10c644 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataStatisticsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataStatisticsController.java
@@ -3,6 +3,7 @@
 
 import cn.afterturn.easypoi.excel.ExcelExportUtil;
 import cn.afterturn.easypoi.excel.entity.ExportParams;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.WebUtils;
@@ -195,7 +196,7 @@
 
     @ApiOperation( value = "商品分类销售排行")
     @PostMapping(value = "/salesRanking")
-    public AjaxResult<List<SalesRankingVO>> salesRanking(@RequestBody TDataStatisticsQuery query) {
+    public AjaxResult<PageInfo<SalesRankingVO>> salesRanking(@RequestBody TDataStatisticsQuery query) {
         Integer roleType = tokenService.getLoginUser().getRoleType();
         Long objectId = tokenService.getLoginUser().getObjectId();
         query.setShopId(objectId);
@@ -228,7 +229,7 @@
         }
         query.setStartTime(DateUtils.localDateTimeToDate(startTime));
         query.setEndTime(DateUtils.localDateTimeToDate(endTime));
-        List<SalesRankingVO> salesRankingVOS;
+        PageInfo<SalesRankingVO> salesRankingVOS;
         if(roleType == 2){
             salesRankingVOS = orderMealService.salesRanking(query);
         }else{
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java
index 8a529dd..c86c896 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java
@@ -5,17 +5,19 @@
 import cn.afterturn.easypoi.excel.entity.ExportParams;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.constant.OrderNumConstants;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.CodeGenerateUtils;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.WebUtils;
 import com.ruoyi.framework.web.service.TokenService;
-import com.ruoyi.system.domain.TGoodsType;
-import com.ruoyi.system.domain.TOrderMeal;
-import com.ruoyi.system.domain.TOrderMealGoods;
+import com.ruoyi.system.domain.*;
 import com.ruoyi.system.dto.CheckoutDTO;
+import com.ruoyi.system.dto.MealOrderGoodsDTO;
 import com.ruoyi.system.dto.TOrderMealDTO;
 import com.ruoyi.system.export.TOrderMealExportExcel;
 import com.ruoyi.system.query.TOrderMealQuery;
+import com.ruoyi.system.service.TGoodsService;
 import com.ruoyi.system.service.TGoodsTypeService;
 import com.ruoyi.system.service.TOrderMealGoodsService;
 import com.ruoyi.system.service.TOrderMealService;
@@ -56,13 +58,15 @@
     private final TOrderMealService orderMealService;
     private final TOrderMealGoodsService orderMealGoodsService;
     private final TGoodsTypeService goodsTypeService;
+    private final TGoodsService goodsService;
     private final TokenService tokenService;
 
     @Autowired
-    public TOrderMealController(TOrderMealService orderMealService, TOrderMealGoodsService orderMealGoodsService, TGoodsTypeService goodsTypeService, TokenService tokenService) {
+    public TOrderMealController(TOrderMealService orderMealService, TOrderMealGoodsService orderMealGoodsService, TGoodsTypeService goodsTypeService, TGoodsService goodsService, TokenService tokenService) {
         this.orderMealService = orderMealService;
         this.orderMealGoodsService = orderMealGoodsService;
         this.goodsTypeService = goodsTypeService;
+        this.goodsService = goodsService;
         this.tokenService = tokenService;
     }
 
@@ -124,6 +128,24 @@
         orderMealGoodsService.saveBatch(dto.getMealOrderGoods());
         return AjaxResult.success();
     }
+    @ApiOperation( value = "列表详情结账")
+    @PostMapping(value = "/detailUpdate")
+    public AjaxResult<String> detailUpdate(@RequestBody TOrderMealDTO dto) {
+        // 删除所有菜品
+        orderMealGoodsService.remove(Wrappers.lambdaQuery(TOrderMealGoods.class)
+                .eq(TOrderMealGoods::getOrderId, dto.getId()));
+        orderMealService.updateById(dto);
+        // 查询餐桌
+        List<TOrderMealGoods> mealOrderGoods = dto.getMealOrderGoods();
+        if (!CollectionUtils.isEmpty(mealOrderGoods)) {
+            for (TOrderMealGoods mealOrderGood : mealOrderGoods) {
+                // 设置商品类型和类型id
+                mealOrderGood.setId(null);
+            }
+            orderMealGoodsService.saveBatch(mealOrderGoods);
+        }
+        return AjaxResult.success();
+    }
 
     @ApiOperation( value = "删除餐饮订单")
     @GetMapping(value = "/deleteById")
@@ -175,6 +197,7 @@
     @PostMapping("/exportOrderMeal")
     public void exportOrderMeal(@RequestBody TOrderMealQuery query)
     {
+        query.setShopId(tokenService.getLoginUser().getObjectId());
         List<TOrderMealVO> list = orderMealService.exportOrderMeal(query);
         List<TOrderMealExportExcel> orderMeals = new ArrayList<>();
         for (TOrderMealVO orderMealVO : list) {
@@ -182,6 +205,7 @@
             BeanUtils.copyProperties(orderMealVO, tOrderMealExportExcel);
             tOrderMealExportExcel.setCreateStrTime(DateUtils.localDateTimeToString(orderMealVO.getCreateTime()));
             tOrderMealExportExcel.setGoodsList(orderMealVO.getGoodsList().stream().collect(Collectors.joining("\n")));
+            orderMeals.add(tOrderMealExportExcel);
         }
         Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TOrderMealExportExcel.class, orderMeals);
         HttpServletResponse response = WebUtils.response();
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderSaleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderSaleController.java
index bb611bb..d5fb8e3 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderSaleController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderSaleController.java
@@ -139,16 +139,18 @@
     @PostMapping("/exportOrderSale")
     public void exportOrderSale(@RequestBody TOrderMealQuery query)
     {
+        query.setShopId(tokenService.getLoginUser().getObjectId());
         List<TOrderSaleVO> list = orderSaleService.exportOrderSale(query);
-        List<TOrderMealExportExcel> orderMeals = new ArrayList<>();
+        List<TOrderSaleExportExcel> orderMeals = new ArrayList<>();
         for (TOrderSaleVO orderSaleVO : list) {
             TOrderSaleExportExcel orderSaleExportExcel = new TOrderSaleExportExcel();
             BeanUtils.copyProperties(orderSaleVO, orderSaleExportExcel);
             orderSaleExportExcel.setCreateStrTime(DateUtils.localDateTimeToString(orderSaleVO.getCreateTime()));
             orderSaleExportExcel.setGoodsAmount(orderSaleVO.getOrderSaleGoods().stream().map(TOrderSaleGoods::getThisSalePrice).reduce(BigDecimal::add).get());
             orderSaleExportExcel.setGoodsCount(orderSaleVO.getOrderSaleGoods().size());
+            orderMeals.add(orderSaleExportExcel);
         }
-        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TOrderMealExportExcel.class, orderMeals);
+        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TOrderSaleExportExcel.class, orderMeals);
         HttpServletResponse response = WebUtils.response();
         response.setContentType("application/vnd.ms-excel");
         response.setCharacterEncoding("utf-8");
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TaskUtil.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TaskUtil.java
index 3f91354..c0018d7 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TaskUtil.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TaskUtil.java
@@ -80,18 +80,18 @@
     @Scheduled(cron = "0 0 0 * * *")
     public void taskDay(){
 
-        List<SysRole> sysRoles = roleService.selectListByDelFlag(2);
-        if(CollectionUtils.isEmpty(sysRoles)){
-            return;
-        }
-        for (SysRole sysRole : sysRoles) {
-            if(sysRole.getRemoveDays()>0){
-                sysRole.setRemoveDays(sysRole.getRemoveDays()-1);
-                roleService.updateRole(sysRole);
-            }else {
-                roleService.deleteRoleById(sysRole.getRoleId());
-            }
-        }
+//        List<SysRole> sysRoles = roleService.selectListByDelFlag(2);
+//        if(CollectionUtils.isEmpty(sysRoles)){
+//            return;
+//        }
+//        for (SysRole sysRole : sysRoles) {
+//            if(sysRole.getRemoveDays()>0){
+//                sysRole.setRemoveDays(sysRole.getRemoveDays()-1);
+//                roleService.updateRole(sysRole);
+//            }else {
+//                roleService.deleteRoleById(sysRole.getRoleId());
+//            }
+//        }
 
     }
     /**
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealGoodsMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealGoodsMapper.java
index 3b00e0e..899edf9 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealGoodsMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealGoodsMapper.java
@@ -1,7 +1,9 @@
 package com.ruoyi.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.domain.TOrderMealGoods;
+import com.ruoyi.system.vo.SalesRankingVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -25,4 +27,13 @@
      * @return
      */
     BigDecimal costTotal(@Param("ids") List<Long> ids);
+
+    /**
+     * 获取销售
+     * @param ids
+     * @param pageInfo
+     * @return
+     */
+    List<SalesRankingVO> salesRanking(@Param("ids")List<Long> ids, @Param("pageInfo")PageInfo<SalesRankingVO> pageInfo);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java
index 5b9d652..70ba355 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java
@@ -107,7 +107,7 @@
      * @param query
      * @return
      */
-    Map<String, BigDecimal> profitDetailsStatistics(@Param("query")ProfitDetailsQuery query);
+    Map<String, Double> profitDetailsStatistics(@Param("query")ProfitDetailsQuery query);
 
     /**
      * 导出盈利明细
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleGoodsMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleGoodsMapper.java
index 412db47..ac1ee80 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleGoodsMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleGoodsMapper.java
@@ -1,7 +1,9 @@
 package com.ruoyi.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.domain.TOrderSaleGoods;
+import com.ruoyi.system.vo.SalesRankingVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -23,4 +25,13 @@
      * @return
      */
     BigDecimal costTotal(@Param("ids") List<Long> ids);
+
+    /**
+     * 商品分类销售排行
+     * @param ids
+     * @param pageInfo
+     * @return
+     */
+    List<SalesRankingVO> salesRanking(@Param("ids")List<Long> ids, @Param("pageInfo")PageInfo<SalesRankingVO> pageInfo);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java
index afac273..5a7d4f6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java
@@ -69,7 +69,7 @@
      * @param query
      * @return
      */
-    List<SalesRankingVO> salesRanking(TDataStatisticsQuery query);
+    PageInfo<SalesRankingVO> salesRanking(TDataStatisticsQuery query);
 
     /**
      * 餐饮列表
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleGoodsService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleGoodsService.java
index 8f7fdde..1ed5f1c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleGoodsService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleGoodsService.java
@@ -1,7 +1,9 @@
 package com.ruoyi.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.domain.TOrderSaleGoods;
+import com.ruoyi.system.vo.SalesRankingVO;
 
 import java.math.BigDecimal;
 import java.util.List;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java
index d731266..3571cd2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java
@@ -54,7 +54,7 @@
      * @param query
      * @return
      */
-    List<SalesRankingVO> salesRanking(TDataStatisticsQuery query);
+    PageInfo<SalesRankingVO> salesRanking(TDataStatisticsQuery query);
 
     /**
      * 导出销售列表
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java
index af90473..53d11ed 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java
@@ -38,6 +38,8 @@
     @Autowired
     private TOrderMealGoodsService orderMealGoodsService;
     @Autowired
+    private TOrderMealGoodsMapper orderMealGoodsMapper;
+    @Autowired
     private TOrderRemarkService orderRemarkService;
     @Autowired
     private TBoardService boardService;
@@ -80,8 +82,8 @@
                     orderMealGood.setGoodsNum(item1.getGoodsNum());
                     orderMealGood.setGoodsPicture(item1.getGoodsPicture());
                     orderMealGood.setGoodsCount(item.getGoodsCount());
-                    orderMealGood.setGoodsSalePrice(item1.getSalePrice().multiply(new BigDecimal(item.getGoodsCount())));
-                    orderMealGood.setCostPrice(item1.getCostPrice().multiply(new BigDecimal(item.getGoodsCount())));
+                    orderMealGood.setGoodsSalePrice(item1.getSalePrice());
+                    orderMealGood.setCostPrice(item1.getCostPrice());
                     orderMealGood.setTypeId(item1.getTypeId());
                     orderMealGood.setGoodsId(item1.getId());
                     orderMealGood.setTypeName(list1.stream().filter(item2 -> item2.getId().equals(item1.getTypeId())).findFirst().get().getTypeName());
@@ -92,7 +94,7 @@
             // 添加菜品
             for (TOrderMealGoods orderMealGood : orderMealGoods) {
                 orderMealGood.setOrderId(dto.getId());
-                orderMoney = orderMoney.add(orderMealGood.getGoodsSalePrice());
+                orderMoney = orderMoney.add(orderMealGood.getGoodsSalePrice().multiply(new BigDecimal(orderMealGood.getGoodsCount())));
             }
             orderMealGoodsService.saveBatch(orderMealGoods);
             orderMeal.setOrderMoney(orderMoney);
@@ -228,24 +230,18 @@
     }
 
     @Override
-    public List<SalesRankingVO> salesRanking(TDataStatisticsQuery query) {
+    public PageInfo<SalesRankingVO> salesRanking(TDataStatisticsQuery query) {
+        PageInfo<SalesRankingVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize());
         List<TOrderMeal> list = this.list(Wrappers.lambdaQuery(TOrderMeal.class)
                 .eq(TOrderMeal::getShopId, query.getShopId())
                 .between(TOrderMeal::getCreateTime, query.getStartTime(), query.getEndTime()));
         List<Long> ids = list.stream().map(TOrderMeal::getId).collect(Collectors.toList());
-        List<SalesRankingVO> salesRankingVOS = new ArrayList<>();
-        if(!CollectionUtils.isEmpty(ids)){
-            List<TOrderMealGoods> list1 = orderMealGoodsService.list(Wrappers.lambdaQuery(TOrderMealGoods.class)
-                    .in(TOrderMealGoods::getOrderId, ids));
-            Map<String, List<TOrderMealGoods>> listMap = list1.stream().collect(Collectors.groupingBy(TOrderMealGoods::getTypeName));
-            listMap.forEach((k,v)->{
-                SalesRankingVO salesRankingVO = new SalesRankingVO();
-                salesRankingVO.setTypeName(k);
-                salesRankingVO.setSalesVolume(v.stream().map(item->item.getGoodsSalePrice().multiply(new BigDecimal(item.getGoodsCount()))).reduce(BigDecimal.ZERO, BigDecimal::add));
-                salesRankingVOS.add(salesRankingVO);
-            });
+        if(CollectionUtils.isEmpty(ids)){
+            return new PageInfo<>();
         }
-        return salesRankingVOS;
+        List<SalesRankingVO> salesRankingVOS = orderMealGoodsMapper.salesRanking(ids, pageInfo);
+        pageInfo.setRecords(salesRankingVOS);
+        return pageInfo;
     }
 
     @Override
@@ -280,18 +276,20 @@
         }
         List<TOrderMealVO> list = this.baseMapper.exportOrderMeal(query);
         List<Long> ids = list.stream().map(TOrderMealVO::getId).collect(Collectors.toList());
-        List<TOrderMealGoods> list1 = orderMealGoodsService.list(Wrappers.lambdaQuery(TOrderMealGoods.class)
-                .in(TOrderMealGoods::getOrderId,ids));
-        // 查询商品信息
-        for (TOrderMealVO tOrderMealVO : list) {
-            List<TOrderMealGoods> collect = list1.stream().filter(e -> e.getOrderId().equals(tOrderMealVO.getId())).collect(Collectors.toList());
-            tOrderMealVO.setOrderMealGoods(collect);
-            Map<String, List<TOrderMealGoods>> map = collect.stream().collect(Collectors.groupingBy(TOrderMealGoods::getTypeName));
-            List<String> goodsList = new ArrayList<>();
-            map.forEach((k,v)->{
-                goodsList.add(k+":"+v.stream().map(item->item.getGoodsName()+" "+(item.getGoodsSalePrice().multiply(new BigDecimal(item.getGoodsCount())))).collect(Collectors.joining(",")));
-            });
-            tOrderMealVO.setGoodsList(goodsList);
+        if(!CollectionUtils.isEmpty(ids)){
+            List<TOrderMealGoods> list1 = orderMealGoodsService.list(Wrappers.lambdaQuery(TOrderMealGoods.class)
+                    .in(TOrderMealGoods::getOrderId,ids));
+            // 查询商品信息
+            for (TOrderMealVO tOrderMealVO : list) {
+                List<TOrderMealGoods> collect = list1.stream().filter(e -> e.getOrderId().equals(tOrderMealVO.getId())).collect(Collectors.toList());
+                tOrderMealVO.setOrderMealGoods(collect);
+                Map<String, List<TOrderMealGoods>> map = collect.stream().collect(Collectors.groupingBy(TOrderMealGoods::getTypeName));
+                List<String> goodsList = new ArrayList<>();
+                map.forEach((k,v)->{
+                    goodsList.add(k+":"+v.stream().map(item->item.getGoodsName()+" "+(item.getGoodsSalePrice().multiply(new BigDecimal(item.getGoodsCount())))).collect(Collectors.joining(",")));
+                });
+                tOrderMealVO.setGoodsList(goodsList);
+            }
         }
         return list;
     }
@@ -397,7 +395,7 @@
         profitDetailsVO.setGoodsProfitVOS(pageInfo);
 
         // 统计商品金额
-        Map<String,BigDecimal> map = this.baseMapper.profitDetailsStatistics(query);
+        Map<String,Double> map = this.baseMapper.profitDetailsStatistics(query);
         profitDetailsVO.setTotalProfits(new BigDecimal(map.get("totalProfits").toString()));
         profitDetailsVO.setTotalCosts(new BigDecimal(map.get("totalCosts").toString()));
         profitDetailsVO.setTotalSales(new BigDecimal(map.get("totalSales").toString()));
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java
index 62f8b4b..4a2dc22 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java
@@ -9,6 +9,7 @@
 import com.ruoyi.system.domain.*;
 import com.ruoyi.system.dto.CheckoutDTO;
 import com.ruoyi.system.dto.TOrderSaleDTO;
+import com.ruoyi.system.mapper.TOrderSaleGoodsMapper;
 import com.ruoyi.system.mapper.TOrderSaleMapper;
 import com.ruoyi.system.query.*;
 import com.ruoyi.system.service.TGoodsService;
@@ -42,6 +43,8 @@
 
     @Autowired
     private TOrderSaleGoodsService orderSaleGoodsService;
+    @Autowired
+    private TOrderSaleGoodsMapper orderSaleGoodsMapper;
     @Autowired
     private TGoodsTypeService goodsTypeService;
     @Autowired
@@ -135,25 +138,18 @@
     }
 
     @Override
-    public List<SalesRankingVO> salesRanking(TDataStatisticsQuery query) {
+    public PageInfo<SalesRankingVO> salesRanking(TDataStatisticsQuery query) {
+        PageInfo<SalesRankingVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize());
         List<TOrderSale> list = this.list(Wrappers.lambdaQuery(TOrderSale.class)
                 .eq(TOrderSale::getShopId, query.getShopId())
                 .between(TOrderSale::getOrderTime, query.getStartTime(), query.getEndTime()));
         List<Long> ids = list.stream().map(TOrderSale::getId).collect(Collectors.toList());
-        List<SalesRankingVO> salesRankingVOS = new ArrayList<>();
-        if(!CollectionUtils.isEmpty(ids)){
-            List<TOrderSaleGoods> list1 = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class)
-                    .in(TOrderSaleGoods::getOrderId, ids));
-            Map<Long, List<TOrderSaleGoods>> listMap = list1.stream().collect(Collectors.groupingBy(TOrderSaleGoods::getTypeId));
-            List<TGoodsType> list2 = goodsTypeService.list();
-            listMap.forEach((k,v)->{
-                SalesRankingVO salesRankingVO = new SalesRankingVO();
-                salesRankingVO.setTypeName(list2.stream().filter(e->e.getId().equals(k)).findFirst().get().getTypeName());
-                salesRankingVO.setSalesVolume(v.stream().map(item->item.getGoodsSalePrice().multiply(new BigDecimal(item.getGoodsCount()))).reduce(BigDecimal.ZERO, BigDecimal::add));
-                salesRankingVOS.add(salesRankingVO);
-            });
+        if(CollectionUtils.isEmpty(ids)){
+            return new PageInfo<>();
         }
-        return salesRankingVOS;
+        List<SalesRankingVO> salesRankingVOS = orderSaleGoodsMapper.salesRanking(ids,pageInfo);
+        pageInfo.setRecords(salesRankingVOS);
+        return pageInfo;
     }
 
     @Override
diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderMealGoodsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderMealGoodsMapper.xml
index 7c41a54..14f3e0a 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TOrderMealGoodsMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TOrderMealGoodsMapper.xml
@@ -32,5 +32,18 @@
             </if>
         </where>
     </select>
+    <select id="salesRanking" resultType="com.ruoyi.system.vo.SalesRankingVO">
+        SELECT typeName,SUM(goodsSalePrice*goodsCount) AS salesVolume
+        from t_order_meal_goods
+        <where>
+            <if test="ids != null and ids.size()>0">
+                AND orderId IN
+                <foreach collection="ids" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+        GROUP BY typeName
+    </select>
 
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml
index 87a82ee..8e33141 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml
@@ -47,7 +47,7 @@
                 and tom.status = #{query.status}
             </if>
             <if test="query.orderNum != null and query.orderNum != ''">
-                and tom.orderNum LIKE concat('%',#{query.status},'%')
+                and tom.orderNum LIKE concat('%',#{query.orderNum},'%')
             </if>
             <if test="query.shopId != null">
                 and tom.shopId = #{query.shopId}
@@ -124,7 +124,7 @@
                 and tom.status = #{query.status}
             </if>
             <if test="query.orderNum != null and query.orderNum">
-                and tom.orderNum LIKE concat('%',#{query.status},'%')
+                and tom.orderNum LIKE concat('%',#{query.orderNum},'%')
             </if>
             <if test="query.shopId != null">
                 and tom.shopId = #{query.shopId}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderSaleGoodsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderSaleGoodsMapper.xml
index 79ab4eb..96c451a 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TOrderSaleGoodsMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TOrderSaleGoodsMapper.xml
@@ -32,5 +32,19 @@
             </if>
         </where>
     </select>
+    <select id="salesRanking" resultType="com.ruoyi.system.vo.SalesRankingVO">
+        SELECT tgt.typeName,SUM(tosg.goodsSalePrice*tosg.goodsCount) AS salesVolume
+        FROM t_order_sale_goods tosg
+        LEFT JOIN t_goods_type tgt ON tosg.typeId = tgt.id
+        <where>
+            <if test="ids != null and ids.size()>0">
+                AND tosg.orderId IN
+                <foreach collection="ids" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+        GROUP BY tgt.typeName
+    </select>
 
 </mapper>

--
Gitblit v1.7.1