From e03a48f237b9b81ac024931584fc40c57e7848b8 Mon Sep 17 00:00:00 2001 From: zengtao01 Date: Tue, 16 Apr 2024 17:55:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E6=B7=BB=E5=8A=A0=E9=97=A8?= =?UTF-8?q?=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../diningplates/vo/DiningPlatesStoreVo.java | 19 +++++++++++++++ .../admin/screen/ScreenController.java | 21 +++++++++------- .../diningplates/DiningPlatesMapper.java | 7 ++++++ .../dal/mysql/order/DishOrderMapper.java | 5 ++-- .../mysql/orderdetail/OrderDetailMapper.java | 5 ++-- .../module/member/job/CustomerTrafficJob.java | 22 +++++++++++++---- .../CustomerTrafficService.java | 4 ++-- .../CustomerTrafficServiceImpl.java | 7 +++--- .../diningplates/DiningPlatesService.java | 3 ++- .../diningplates/DiningPlatesServiceImpl.java | 19 +++++---------- .../member/service/order/OrderService.java | 2 +- .../service/order/OrderServiceImpl.java | 18 ++++---------- .../orderdetail/OrderDetailService.java | 2 +- .../orderdetail/OrderDetailServiceImpl.java | 16 ++++--------- .../storeevaluate/StoreEvaluateService.java | 2 +- .../StoreEvaluateServiceImpl.java | 20 +++++++++------- .../mapper/order/DishOrderMapper.xml | 20 ++++++++++++++++ .../mapper/orderdetail/OrderDetailMapper.xml | 24 +++++++++++++++++++ 18 files changed, 142 insertions(+), 74 deletions(-) create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/diningplates/vo/DiningPlatesStoreVo.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/order/DishOrderMapper.xml create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/orderdetail/OrderDetailMapper.xml diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/diningplates/vo/DiningPlatesStoreVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/diningplates/vo/DiningPlatesStoreVo.java new file mode 100644 index 00000000..056802fe --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/diningplates/vo/DiningPlatesStoreVo.java @@ -0,0 +1,19 @@ +package cn.iocoder.yudao.module.member.controller.admin.diningplates.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author zt + * @description + * @since 2024/4/16 + */ +@Data +public class DiningPlatesStoreVo { + + @Schema(description = "门店ID") + private Long storeId; + + @Schema(description = "门店ID") + private Integer num; +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/screen/ScreenController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/screen/ScreenController.java index a04c316f..24a52c00 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/screen/ScreenController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/screen/ScreenController.java @@ -30,7 +30,6 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - 大屏") @RestController @RequestMapping("/member/screen") -@PermitAll public class ScreenController { @Resource @@ -44,26 +43,30 @@ public class ScreenController { @GetMapping("/getEvaluate") @Operation(summary = "获得店铺评价,1-好评,2-差评") - public Map getEvaluate(){ - return storeEvaluateService.getEvaluate(); + @PermitAll + public Map getEvaluate(Long storeId){ + return storeEvaluateService.getEvaluate(storeId); } @GetMapping("/getData") @Operation(summary = "食堂今日顾客流量") - public CommonResult> getData() { - List data = customerTrafficService.getData(); + @PermitAll + public CommonResult> getData(Long storeId) { + List data = customerTrafficService.getData(storeId); return success(BeanUtils.toBean(data, CustomerTrafficRespVO.class)); } @GetMapping("/getUserCount") @Operation(summary = "获取总顾客流量") - public CommonResult getUserCount() { - return success(orderService.selectTodayUser()); + @PermitAll + public CommonResult getUserCount(Long storeId) { + return success(orderService.selectTodayUser(storeId)); } @GetMapping("/selectDishSale") @Operation(summary = "菜品今日销售") - public CommonResult> selectDishSale() { - return success(orderDetailService.selectDishSale()); + @PermitAll + public CommonResult> selectDishSale(Long storeId) { + return success(orderDetailService.selectDishSale(storeId)); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/diningplates/DiningPlatesMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/diningplates/DiningPlatesMapper.java index 4f09483d..1cfd55fc 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/diningplates/DiningPlatesMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/diningplates/DiningPlatesMapper.java @@ -4,8 +4,12 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesStoreVo; import cn.iocoder.yudao.module.member.dal.dataobject.diningplates.DiningPlatesDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; /** * 餐盘 Mapper @@ -25,4 +29,7 @@ public interface DiningPlatesMapper extends BaseMapperX { .orderByDesc(DiningPlatesDO::getId)); } + @Select("select store_id,count(*) as num from member_dining_plates where create_time = #{time} group by store_id") + List selectCountByStore(String time); + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/order/DishOrderMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/order/DishOrderMapper.java index 6a3f399a..981f84fd 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/order/DishOrderMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/order/DishOrderMapper.java @@ -8,7 +8,6 @@ import cn.iocoder.yudao.module.member.controller.app.order.vo.AppOrderPageReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.order.DishOrderDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; import java.time.LocalDateTime; import java.util.List; @@ -44,7 +43,7 @@ public interface DishOrderMapper extends BaseMapperX { .orderByDesc(DishOrderDO::getId)); } - @Select("select count(distinct user_id) from member_dish_order where create_time between #{startTime} and #{endTime}") - Integer selectTodayUser(@Param("startTime") LocalDateTime startTime,@Param("endTime") LocalDateTime endTime); + + Integer selectTodayUser(@Param("time") String time,@Param("storeId") Long storeId); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/orderdetail/OrderDetailMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/orderdetail/OrderDetailMapper.java index 27d504d1..a9a4680b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/orderdetail/OrderDetailMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/orderdetail/OrderDetailMapper.java @@ -10,7 +10,6 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; -import java.time.LocalDateTime; import java.util.List; /** @@ -32,7 +31,7 @@ public interface OrderDetailMapper extends BaseMapperX { .orderByDesc(OrderDetailDO::getId)); } - @Select("select dishes_name, sum(a.weight) as weight , sum(a.price) as price from member_order_detail a where a.create_time between #{startTime} and #{endTime} group by a.dishes_id,a.dishes_name") - List selectDishSale(@Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime); + @Select("") + List selectDishSale(@Param("time") String time, @Param("storeId") Long storeId); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/job/CustomerTrafficJob.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/job/CustomerTrafficJob.java index f1aa3d42..50c8f4e7 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/job/CustomerTrafficJob.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/job/CustomerTrafficJob.java @@ -1,7 +1,9 @@ package cn.iocoder.yudao.module.member.job; +import cn.hutool.core.collection.CollectionUtil; import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler; import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore; +import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesStoreVo; import cn.iocoder.yudao.module.member.dal.dataobject.customertraffic.CustomerTrafficDO; import cn.iocoder.yudao.module.member.service.customertraffic.CustomerTrafficService; import cn.iocoder.yudao.module.member.service.diningplates.DiningPlatesService; @@ -12,6 +14,8 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; /** * @author zt @@ -36,11 +40,21 @@ public class CustomerTrafficJob implements JobHandler { public String execute(String param) { DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(MemberConstants.HOUR_FORMAT); LocalDateTime localDateTime = LocalDateTime.now().withSecond(0); - Integer diningPlatesNum = platesService.getDiningPlatesNum(localDateTime,ROUND_TIME); - CustomerTrafficDO customerTrafficDO = new CustomerTrafficDO(); - customerTrafficDO.setCustomerNum(diningPlatesNum).setTimePoint(localDateTime.format(dateFormatter)); + List diningPlatesNum = platesService.getDiningPlatesNum(localDateTime, ROUND_TIME); + if(CollectionUtil.isNotEmpty(diningPlatesNum)){ + List addList = new ArrayList<>(); + diningPlatesNum.forEach(a -> { + if(a.getStoreId()!=null){ + CustomerTrafficDO customerTrafficDO = new CustomerTrafficDO(); + customerTrafficDO.setCustomerNum(a.getNum()) + .setTimePoint(localDateTime.format(dateFormatter)) + .setStoreId(a.getStoreId()); + addList.add(customerTrafficDO); + } + }); + trafficService.insertBatch(addList); + } - trafficService.insertOne(customerTrafficDO); log.info("[execute][顾客统计任务顾客数量 ({}) 个]", diningPlatesNum); return String.format("顾客统计定时任务顾客数量 %s 个", diningPlatesNum); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customertraffic/CustomerTrafficService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customertraffic/CustomerTrafficService.java index 3470a53e..9510c7f7 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customertraffic/CustomerTrafficService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customertraffic/CustomerTrafficService.java @@ -54,11 +54,11 @@ public interface CustomerTrafficService { PageResult getCustomerTrafficPage(CustomerTrafficPageReqVO pageReqVO); - void insertOne(CustomerTrafficDO customerTrafficDO); + void insertBatch(List list); /** * 获取最新7个时间节点的数据 */ - List getData(); + List getData(Long storeId); } \ 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/customertraffic/CustomerTrafficServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customertraffic/CustomerTrafficServiceImpl.java index f88c03ba..8c21fd13 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customertraffic/CustomerTrafficServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customertraffic/CustomerTrafficServiceImpl.java @@ -72,15 +72,16 @@ public class CustomerTrafficServiceImpl implements CustomerTrafficService { } @Override - public void insertOne(CustomerTrafficDO customerTrafficDO) { - customerTrafficMapper.insert(customerTrafficDO); + public void insertBatch(List list) { + customerTrafficMapper.insertBatch(list); } @Override - public List getData() { + public List getData(Long storeId) { LocalDateTime now = LocalDateTime.now(); List customerTrafficDOS = customerTrafficMapper.selectList(Wrappers.lambdaQuery() .lt(CustomerTrafficDO::getCreateTime, now) + .eq(storeId!=null,CustomerTrafficDO::getStoreId,storeId) .orderByDesc(CustomerTrafficDO::getCustomerNum) .last("limit 7")); return customerTrafficDOS; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesService.java index edcf0c01..53ce8e6e 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesService.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.member.service.diningplates; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesSaveReqVO; +import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesStoreVo; import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoCardVO; import cn.iocoder.yudao.module.member.dal.dataobject.diningplates.DiningPlatesDO; @@ -90,5 +91,5 @@ public interface DiningPlatesService { AppUserInfoCardVO appCheckBind(String diningPlatesNum); - Integer getDiningPlatesNum(LocalDateTime localDateTime,Integer time); + List getDiningPlatesNum(LocalDateTime localDateTime, Integer time); } \ 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/diningplates/DiningPlatesServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesServiceImpl.java index 6231d544..83133ab8 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/diningplates/DiningPlatesServiceImpl.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.websocket.core.sender.WebSocketMessageSender; import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesSaveReqVO; +import cn.iocoder.yudao.module.member.controller.admin.diningplates.vo.DiningPlatesStoreVo; import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoCardVO; import cn.iocoder.yudao.module.member.dal.dataobject.diningplates.DiningPlatesDO; import cn.iocoder.yudao.module.member.dal.dataobject.order.DishOrderDO; @@ -17,7 +18,6 @@ import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; import cn.iocoder.yudao.module.member.service.card.CardService; import cn.iocoder.yudao.module.member.util.MemberConstants; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; @@ -268,22 +268,15 @@ public class DiningPlatesServiceImpl implements DiningPlatesService { @Override - public Integer getDiningPlatesNum(LocalDateTime localDateTime, Integer time) { + public List getDiningPlatesNum(LocalDateTime localDateTime, Integer time) { // 获取当前时间 - DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(MemberConstants.TIME_FORMAT); + DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(MemberConstants.DATE_FORMAT); LocalDateTime currentTime = localDateTime; // 计算指定分钟之前的时间 - LocalDateTime timeMinutesAgo = currentTime.minusMinutes(time); - String end = currentTime.format(dateFormatter); - String start = timeMinutesAgo.format(dateFormatter); - - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.le("date_format(binding_time,'%Y-%m-%d %H:%i:%s')",end) - .gt("date_format(binding_time,'%Y-%m-%d %H:%i:%s')",start); - - Integer l = diningPlatesMapper.selectCount(queryWrapper).intValue(); - return l; + String nowTime = currentTime.format(dateFormatter); + List diningPlatesStoreVos = diningPlatesMapper.selectCountByStore(nowTime); + return diningPlatesStoreVos; } /** diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderService.java index 8e6195e4..b4db64be 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderService.java @@ -89,6 +89,6 @@ public interface OrderService { * 获取今日顾客总量 * @return */ - Integer selectTodayUser(); + Integer selectTodayUser(Long storeId); } \ 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/order/OrderServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java index d4ba462d..1e650390 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/order/OrderServiceImpl.java @@ -20,6 +20,7 @@ import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; import cn.iocoder.yudao.module.member.enums.CostTypeEnum; import cn.iocoder.yudao.module.member.enums.TimePeriodEnum; import cn.iocoder.yudao.module.member.service.orderdetail.OrderDetailService; +import cn.iocoder.yudao.module.member.util.MemberConstants; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -31,6 +32,7 @@ import java.math.RoundingMode; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -215,19 +217,9 @@ public class OrderServiceImpl implements OrderService { } @Override - public Integer selectTodayUser() { + public Integer selectTodayUser(Long storeId) { LocalDate today = LocalDate.now(); - - // 一天的开始时间 - LocalDateTime startOfDay = today.atStartOfDay(); - // 一天的结束时间 - LocalDateTime endOfDay = today.atTime(LocalTime.MAX); - - return dishOrderMapper.selectTodayUser(startOfDay,endOfDay); - - - - - + String time = today.format(DateTimeFormatter.ofPattern(MemberConstants.DATE_FORMAT)); + return dishOrderMapper.selectTodayUser(time,storeId); } } \ 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/orderdetail/OrderDetailService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/orderdetail/OrderDetailService.java index 7c66397b..3525369c 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/orderdetail/OrderDetailService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/orderdetail/OrderDetailService.java @@ -59,5 +59,5 @@ public interface OrderDetailService { List selectListByOrderIds(List orderIds); - List selectDishSale(); + List selectDishSale(Long storeId); } \ 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/orderdetail/OrderDetailServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/orderdetail/OrderDetailServiceImpl.java index b9a5625b..6f7e6dc3 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/orderdetail/OrderDetailServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/orderdetail/OrderDetailServiceImpl.java @@ -30,8 +30,7 @@ import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; +import java.time.format.DateTimeFormatter; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -180,17 +179,10 @@ public class OrderDetailServiceImpl implements OrderDetailService { } @Override - public List selectDishSale() { - // 获取当前日期 + public List selectDishSale(Long storeId) { LocalDate today = LocalDate.now(); - - // 一天的开始时间 - LocalDateTime startOfDay = today.atStartOfDay(); - - // 一天的结束时间 - LocalDateTime endOfDay = today.atTime(LocalTime.MAX); - - return orderDetailMapper.selectDishSale(startOfDay,endOfDay); + String time = today.format(DateTimeFormatter.ofPattern(MemberConstants.DATE_FORMAT)); + return orderDetailMapper.selectDishSale(time,storeId); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateService.java index 116ba1f5..8fd37b66 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateService.java @@ -59,7 +59,7 @@ public interface StoreEvaluateService { StoreEvaluateDO selectByUserId(Long storeId); - Map getEvaluate(); + Map getEvaluate(Long storeId); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateServiceImpl.java index 986e101a..09e3bad6 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storeevaluate/StoreEvaluateServiceImpl.java @@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.member.controller.app.storeevaluate.vo.AppStoreEv import cn.iocoder.yudao.module.member.dal.dataobject.storeevaluate.StoreEvaluateDO; import cn.iocoder.yudao.module.member.dal.mysql.storeevaluate.StoreEvaluateMapper; import cn.iocoder.yudao.module.member.util.MemberConstants; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -107,20 +108,23 @@ public class StoreEvaluateServiceImpl implements StoreEvaluateService { } @Override - public Map getEvaluate() { + public Map getEvaluate(Long storeId) { HashMap result = new HashMap<>(); - Long good = storeEvaluateMapper.selectCount(Wrappers.lambdaQuery() - .gt(StoreEvaluateDO::getEvaluate, MemberConstants.GOOD_EVALUATE)); - Long total = storeEvaluateMapper.selectCount(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(storeId != null,StoreEvaluateDO::getStoreId,storeId); + Long good = storeEvaluateMapper.selectCount(queryWrapper + .gt(StoreEvaluateDO::getEvaluate, MemberConstants.GOOD_EVALUATE) + ); + Long total = storeEvaluateMapper.selectCount(queryWrapper); if(total == 0){ - result.put("1","0"); - result.put("0","0"); + result.put("1","0.00%"); + result.put("0","0.00%"); return result; } BigDecimal goodPercent = new BigDecimal(good).divide(new BigDecimal(total), 4, BigDecimal.ROUND_HALF_UP); BigDecimal badPercent = BigDecimal.ONE.subtract(goodPercent); - result.put("1",goodPercent.multiply(new BigDecimal("100")).toString()+"%"); - result.put("0",badPercent.multiply(new BigDecimal("100")).toString()+"%"); + result.put("1",goodPercent.multiply(new BigDecimal("100")).setScale(2,BigDecimal.ROUND_HALF_UP).toString()+"%"); + result.put("0",badPercent.multiply(new BigDecimal("100")).setScale(2,BigDecimal.ROUND_HALF_UP).toString()+"%"); return result; } } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/order/DishOrderMapper.xml b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/order/DishOrderMapper.xml new file mode 100644 index 00000000..29cf3961 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/order/DishOrderMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/orderdetail/OrderDetailMapper.xml b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/orderdetail/OrderDetailMapper.xml new file mode 100644 index 00000000..663fa480 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/orderdetail/OrderDetailMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + \ No newline at end of file