xuhy
2024-09-13 b68348c51d17bee1952a2316d37da7775dac2dd8
修改接口
15个文件已修改
208 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataStatisticsController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderSaleController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TaskUtil.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealGoodsMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleGoodsMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleGoodsService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TOrderMealGoodsMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TOrderSaleGoodsMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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{
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();
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");
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());
//            }
//        }
    }
    /**
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);
}
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);
    /**
     * 导出盈利明细
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);
}
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);
    /**
     * 餐饮列表
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;
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);
    /**
     * 导出销售列表
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()));
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
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>
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}
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>