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