From e628c260ccff372849b4279c89a45d6b028a5484 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期二, 03 九月 2024 19:45:24 +0800 Subject: [PATCH] 统计数据分析 --- ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java | 19 +++- ruoyi-system/src/main/java/com/ruoyi/system/vo/OrderTrendsVO.java | 19 ++++ ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java | 19 ++++ ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml | 15 +++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java | 10 ++ ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java | 7 + ruoyi-system/src/main/java/com/ruoyi/system/vo/PersonnelStatisticsVO.java | 21 +++++ ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataStatisticsController.java | 49 +++++++++++- ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml | 30 +++++++ ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleMapper.java | 8 ++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java | 5 + 11 files changed, 190 insertions(+), 12 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 3bbf0a1..b736fed 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 @@ -6,6 +6,8 @@ import com.ruoyi.system.query.TDataStatisticsQuery; import com.ruoyi.system.service.TOrderMealService; import com.ruoyi.system.service.TOrderSaleService; +import com.ruoyi.system.vo.OrderTrendsVO; +import com.ruoyi.system.vo.PersonnelStatisticsVO; import com.ruoyi.system.vo.SalesRankingVO; import com.ruoyi.system.vo.SalesVolumeVO; import io.swagger.annotations.ApiOperation; @@ -129,7 +131,7 @@ @ApiOperation( value = "下单趋势") @PostMapping(value = "/orderingTrends") - public AjaxResult<List<SalesRankingVO>> orderingTrends(@RequestBody TDataStatisticsQuery query) { + public AjaxResult<List<OrderTrendsVO>> orderingTrends(@RequestBody TDataStatisticsQuery query) { Integer roleType = tokenService.getLoginUser().getRoleType(); Long objectId = tokenService.getLoginUser().getObjectId(); query.setShopId(objectId); @@ -162,13 +164,50 @@ } query.setStartTime(startTime); query.setEndTime(endTime); - List<SalesRankingVO> salesRankingVOS; + List<OrderTrendsVO> orderTrendsVOS; if(roleType == 2){ - salesRankingVOS = orderMealService.salesRanking(query); + orderTrendsVOS = orderMealService.orderingTrends(query); }else{ - salesRankingVOS = orderSaleService.salesRanking(query); + orderTrendsVOS = orderSaleService.orderingTrends(query); } - return AjaxResult.success(salesRankingVOS); + return AjaxResult.success(orderTrendsVOS); + } + + @ApiOperation( value = "接待人数统计") + @PostMapping(value = "/personnelStatistics") + public AjaxResult<List<PersonnelStatisticsVO>> personnelStatistics(@RequestBody TDataStatisticsQuery query) { + Long objectId = tokenService.getLoginUser().getObjectId(); + query.setShopId(objectId); + if(Objects.isNull(query.getTimeType())){ + query.setTimeType(1); + } + LocalDateTime startTime = null; + LocalDateTime endTime = null; + switch (query.getTimeType()){ + case 1: + // 今日 + startTime = LocalDateTime.MIN; + endTime = LocalDateTime.MAX; + break; + case 2: + // 昨日 + startTime = LocalDateTime.now().minusDays(1); + endTime = LocalDateTime.now().minusDays(1); + break; + case 3: + // 近7天 + startTime = LocalDateTime.now().minusDays(7); + endTime = LocalDateTime.now(); + break; + case 4: + // 近30天 + startTime = LocalDateTime.now().minusDays(30); + endTime = LocalDateTime.now(); + break; + } + query.setStartTime(startTime); + query.setEndTime(endTime); + return AjaxResult.success(orderMealService.personnelStatistics(query)); } 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 3622763..4cbc3a8 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 @@ -5,9 +5,7 @@ import com.ruoyi.system.domain.TOrderMeal; import com.ruoyi.system.query.TDataStatisticsQuery; import com.ruoyi.system.query.TOrderMealQuery; -import com.ruoyi.system.vo.AmountSumVO; -import com.ruoyi.system.vo.SalesVolumeVO; -import com.ruoyi.system.vo.TOrderMealVO; +import com.ruoyi.system.vo.*; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -51,4 +49,19 @@ * @return */ List<TOrderMealVO> exportOrderMeal(@Param("query")TOrderMealQuery query); + + /** + * 查询下单趋势 + * @param query + * @return + */ + List<OrderTrendsVO> orderingTrends(@Param("query")TDataStatisticsQuery query); + + /** + * 查询接待人数统计 + * @param query + * @return + */ + List<PersonnelStatisticsVO> personnelStatistics(@Param("query")TDataStatisticsQuery query); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleMapper.java index d5b5ac9..99ff756 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleMapper.java @@ -7,6 +7,7 @@ import com.ruoyi.system.query.TOrderMealQuery; import com.ruoyi.system.query.TOrderSaleQuery; import com.ruoyi.system.vo.AmountSumVO; +import com.ruoyi.system.vo.OrderTrendsVO; import com.ruoyi.system.vo.SalesVolumeVO; import com.ruoyi.system.vo.TOrderSaleVO; import org.apache.ibatis.annotations.Param; @@ -51,4 +52,11 @@ * @return */ List<TOrderSaleVO> exportOrderSale(@Param("query")TOrderMealQuery query); + + /** + * 查询销售订单趋势 + * @param query + * @return + */ + List<OrderTrendsVO> orderingTrends(@Param("query")TDataStatisticsQuery query); } 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 d459705..56482bb 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 @@ -9,10 +9,7 @@ import com.ruoyi.system.dto.TOrderMealDTO; import com.ruoyi.system.query.TDataStatisticsQuery; import com.ruoyi.system.query.TOrderMealQuery; -import com.ruoyi.system.vo.AmountSumVO; -import com.ruoyi.system.vo.SalesRankingVO; -import com.ruoyi.system.vo.SalesVolumeVO; -import com.ruoyi.system.vo.TOrderMealVO; +import com.ruoyi.system.vo.*; import java.util.List; @@ -79,4 +76,18 @@ * @return */ List<TOrderMealVO> exportOrderMeal(TOrderMealQuery query); + + /** + * 下单趋势 + * @param query + * @return + */ + List<OrderTrendsVO> orderingTrends(TDataStatisticsQuery query); + + /** + * 接待人数统计 + * @param query + * @return + */ + List<PersonnelStatisticsVO> personnelStatistics(TDataStatisticsQuery query); } 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 8016e33..5b13661 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 @@ -61,4 +61,11 @@ * @return */ List<TOrderSaleVO> exportOrderSale(TOrderMealQuery query); + + /** + * 下单趋势 + * @param query + * @return + */ + List<OrderTrendsVO> orderingTrends(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 ea48a1d..b71b796 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 @@ -285,4 +285,14 @@ return list; } + @Override + public List<OrderTrendsVO> orderingTrends(TDataStatisticsQuery query) { + return this.baseMapper.orderingTrends(query); + } + + @Override + public List<PersonnelStatisticsVO> personnelStatistics(TDataStatisticsQuery query) { + return this.baseMapper.personnelStatistics(query); + } + } 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 5e9566b..f4df429 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 @@ -180,4 +180,9 @@ } return list; } + + @Override + public List<OrderTrendsVO> orderingTrends(TDataStatisticsQuery query) { + return this.baseMapper.orderingTrends(query); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/OrderTrendsVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/OrderTrendsVO.java new file mode 100644 index 0000000..6ad8e76 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/OrderTrendsVO.java @@ -0,0 +1,19 @@ +package com.ruoyi.system.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +@ApiModel(value = "下单趋势VO") +public class OrderTrendsVO implements Serializable { + + @ApiModelProperty(value = "日期") + private String dayTime; + @ApiModelProperty(value = "单数") + private Integer orderCount; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/PersonnelStatisticsVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/PersonnelStatisticsVO.java new file mode 100644 index 0000000..0b5bf32 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/PersonnelStatisticsVO.java @@ -0,0 +1,21 @@ +package com.ruoyi.system.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +@ApiModel(value = "接待人数统计VO") +public class PersonnelStatisticsVO implements Serializable { + + @ApiModelProperty(value = "桌号") + private String boardName; + @ApiModelProperty(value = "接待人数") + private Integer personCount; + @ApiModelProperty(value = "人均消费金额") + private BigDecimal avgAmount; + +} diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml index 083ffb2..a748ba9 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml @@ -134,5 +134,35 @@ </where> ORDER BY tom.createTime DESC </select> + <select id="orderingTrends" resultType="com.ruoyi.system.vo.OrderTrendsVO"> + select + DATE_FORMAT(createTime, '%Y-%m-%d') AS dayTime, + COUNT(id) AS orderCount + from t_order_meal + <where> + <if test="query.shopId != null"> + AND shopId = #{query.shopId} + </if> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND (createTime BETWEEN #{query.startTime} AND #{query.endTime}) + </if> + AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + </select> + <select id="personnelStatistics" resultType="com.ruoyi.system.vo.PersonnelStatisticsVO"> + select + tb.boardName,tom.mealPerson, (tom.payMoney/tom.mealPerson) AS avgAmount + from t_order_meal tom + left join t_board tb on tb.id = tom.boardId + <where> + <if test="query.shopId != null"> + AND tom.shopId = #{query.shopId} + </if> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND (tom.createTime BETWEEN #{query.startTime} AND #{query.endTime}) + </if> + AND tom.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + </select> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml index 5f9a869..2405905 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml @@ -113,5 +113,20 @@ </where> ORDER BY orderTime DESC </select> + <select id="orderingTrends" resultType="com.ruoyi.system.vo.OrderTrendsVO"> + select + DATE_FORMAT(orderTime, '%Y-%m-%d') AS dayTime, + COUNT(id) AS orderCount + from t_order_sale + <where> + <if test="query.shopId != null"> + AND shopId = #{query.shopId} + </if> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND (createTime BETWEEN #{query.startTime} AND #{query.endTime}) + </if> + AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + </select> </mapper> -- Gitblit v1.7.1