diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/BkContactListController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/BkContactListController.java index ff9c80bd6..fbcb4a18b 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/BkContactListController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/BkContactListController.java @@ -4,9 +4,11 @@ import com.czg.account.dto.BkOrderDTO; import com.czg.account.dto.calltable.CallTablePage; import com.czg.account.entity.BkContactList; import com.czg.account.entity.BkOrder; +import com.czg.account.entity.BkOrderTable; import com.czg.account.service.BkContactListService; import com.czg.account.service.BkOrderService; import com.czg.account.vo.BkTableVO; +import com.czg.account.vo.BookingOrderStatisticsVO; import com.czg.annotation.SaAdminCheckPermission; import com.czg.resp.CzgResult; import com.czg.sa.StpKit; @@ -57,6 +59,18 @@ public class BkContactListController { return CzgResult.success(tables); } + /** + * 预约端-预定单:预约单统计 + */ +// @SaAdminCheckPermission(value = "bk:bkOrder:bookings:statistics", name = "预约端-预约单:预约单统计") + @GetMapping("/bkOrder/booking/statistics") + public CzgResult bookingOrderStatistics(@RequestParam(required = false) String search, + @RequestParam(required = false) LocalDate start, + @RequestParam(required = false) LocalDate end, + @RequestParam(required = false) String status) { + BookingOrderStatisticsVO statistics = bkOrderService.bookingOrderStatistics(StpKit.USER.getShopId(), search, start, end, status); + return CzgResult.success(statistics); + } /** * 预约端-预定单:查询预约单列表 @@ -71,6 +85,16 @@ public class BkContactListController { return CzgResult.success(tables); } + /** + * 预约端-预定单:查询预约单选中台桌 + */ +// @SaAdminCheckPermission(value = "bk:bkOrder:bookings/tables", name = "预约端-预约单:查询预约单选中的台桌") + @GetMapping("/bkOrder/bookings/tables") + public CzgResult> bookingTables(Long id) { + List tables = bkOrderService.bookingTables(StpKit.USER.getShopId(), id); + return CzgResult.success(tables); + } + /** * 预约端-预约单:预约/修改预约 diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopAdController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopAdController.java index 20aba8fa1..64d5ad6fd 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopAdController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopAdController.java @@ -60,7 +60,7 @@ public class ShopAdController { * 小程序广告编辑 * @return 是否成功 */ - @SaAdminCheckPermission(value = "shopAd:list", name = "小程序广告编辑") + @SaAdminCheckPermission(value = "shopAd:edit", name = "小程序广告编辑") @PutMapping public CzgResult edit(@RequestBody @Validated(UpdateGroup.class) ShopAdDTO shopAdEditDTO) { ShopAd shopAd = BeanUtil.copyProperties(shopAdEditDTO, ShopAd.class); diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/BkOrderService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/BkOrderService.java index e0c6422ad..de320185f 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/BkOrderService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/BkOrderService.java @@ -1,7 +1,9 @@ package com.czg.account.service; import com.czg.account.dto.BkOrderDTO; +import com.czg.account.entity.BkOrderTable; import com.czg.account.vo.BkTableVO; +import com.czg.account.vo.BookingOrderStatisticsVO; import com.mybatisflex.core.service.IService; import com.czg.account.entity.BkOrder; @@ -16,6 +18,11 @@ import java.util.List; */ public interface BkOrderService extends IService { + /** + * 查询预约单统计信息 + */ + BookingOrderStatisticsVO bookingOrderStatistics(Long shopId, String search, LocalDate start, LocalDate end, String status); + /** * 查询预约单列表 * @param shopId 店铺id @@ -27,6 +34,14 @@ public interface BkOrderService extends IService { */ List bookings(Long shopId, String search, LocalDate start, LocalDate end, String status); + /** + * 查询预约单的台桌列表 + * @param shopId 店铺id + * @param bkOrderId 预约单id + * @return 预约单的台桌列表 + */ + List bookingTables(Long shopId, Long bkOrderId); + /** * 预约 */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/BookingOrderStatisticsVO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/BookingOrderStatisticsVO.java new file mode 100644 index 000000000..57cacd950 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/BookingOrderStatisticsVO.java @@ -0,0 +1,28 @@ +package com.czg.account.vo; + +import lombok.Data; +import java.math.BigDecimal; + +/** + * @author ww + * @description + */ +@Data +public class BookingOrderStatisticsVO { + /** + * 今日预约 + */ + private Long todayBookingCount; + /** + * 本月预约 + */ + private Long thisMonthBookingCount; + /** + * 待到店数 + */ + private Long arrivedCount; + /** + * 预约到店率 + */ + private BigDecimal arrivalRate; +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/BkOrderMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/BkOrderMapper.java index cc321451d..99d4861be 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/BkOrderMapper.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/BkOrderMapper.java @@ -1,5 +1,6 @@ package com.czg.service.account.mapper; +import com.czg.account.vo.BookingOrderStatisticsVO; import com.mybatisflex.core.BaseMapper; import com.czg.account.entity.BkOrder; @@ -14,6 +15,11 @@ import java.util.List; */ public interface BkOrderMapper extends BaseMapper { + /** + * 查询预约单统计信息 + */ + BookingOrderStatisticsVO bookingOrderStatistics(Long shopId, String search, LocalDate start, LocalDate end, String status); + /** * 查询预约单列表 */ diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/BkOrderServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/BkOrderServiceImpl.java index ed06cdbd5..4283cfc89 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/BkOrderServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/BkOrderServiceImpl.java @@ -3,18 +3,19 @@ package com.czg.service.account.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.IdUtil; import com.czg.account.dto.BkOrderDTO; +import com.czg.account.entity.BkOrder; import com.czg.account.entity.BkOrderTable; +import com.czg.account.service.BkOrderService; import com.czg.account.vo.BkTableVO; +import com.czg.account.vo.BookingOrderStatisticsVO; import com.czg.exception.CzgException; +import com.czg.service.account.mapper.BkOrderMapper; import com.czg.service.account.mapper.BkOrderTableMapper; import com.mybatisflex.core.query.QueryWrapper; -import com.mybatisflex.core.update.UpdateWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; -import com.czg.account.entity.BkOrder; -import com.czg.account.service.BkOrderService; -import com.czg.service.account.mapper.BkOrderMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.RoundingMode; @@ -34,6 +35,11 @@ public class BkOrderServiceImpl extends ServiceImpl impl @Resource private BkOrderTableMapper tableMapper; + @Override + public BookingOrderStatisticsVO bookingOrderStatistics(Long shopId, String search, LocalDate start, LocalDate end, String status) { + return mapper.bookingOrderStatistics(shopId, search, start, end, status); + } + /** * 预约端-预约单:列表 */ @@ -42,8 +48,14 @@ public class BkOrderServiceImpl extends ServiceImpl impl return mapper.bookings(shopId, search, start, end, status); } + @Override + public List bookingTables(Long shopId, Long bkOrderId) { + return tableMapper.selectListByQuery(QueryWrapper.create().eq(BkOrderTable::getBookOrderId, bkOrderId).eq(BkOrderTable::getShopId, shopId)); + } + @Override + @Transactional public void booking(Long shopId, BkOrderDTO bkOrder) { BkOrder bkOrderEntity = BeanUtil.copyProperties(bkOrder, BkOrder.class); bkOrderEntity.setShopId(shopId); diff --git a/cash-service/account-service/src/main/resources/mapper/BkOrderMapper.xml b/cash-service/account-service/src/main/resources/mapper/BkOrderMapper.xml index b637be4aa..5093f3c84 100644 --- a/cash-service/account-service/src/main/resources/mapper/BkOrderMapper.xml +++ b/cash-service/account-service/src/main/resources/mapper/BkOrderMapper.xml @@ -32,4 +32,39 @@ group by o.id order by o.booking_time desc + + diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/mapper/KitchenDetailMapper.java b/cash-service/order-service/src/main/java/com/czg/service/order/mapper/KitchenDetailMapper.java index 73f03b1ea..825aed22d 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/mapper/KitchenDetailMapper.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/mapper/KitchenDetailMapper.java @@ -26,7 +26,7 @@ public interface KitchenDetailMapper { List getKitchenTableFoods(Long shopId, Long orderId, String tableCode, Long isNoTable); /** - * 按台桌查看商品列表 + * 按商品查看 */ List getKitchenFood(Long shopId, String productName, Long categoryId); } \ No newline at end of file diff --git a/cash-service/order-service/src/main/resources/mapper/KitchenDetailMapper.xml b/cash-service/order-service/src/main/resources/mapper/KitchenDetailMapper.xml index 4a456a230..8dffe3d37 100644 --- a/cash-service/order-service/src/main/resources/mapper/KitchenDetailMapper.xml +++ b/cash-service/order-service/src/main/resources/mapper/KitchenDetailMapper.xml @@ -19,7 +19,7 @@ `staff`.`name` AS staffName, sum(detail.num - detail.return_num) AS num, detail.sub_status AS subStatus, - detail.order_time AS orderTime, + detail.create_time AS orderTime, detail.start_order_time AS startOrderTime, detail.dish_out_time AS dishOutTime, detail.food_serve_time AS foodServeTime @@ -90,7 +90,7 @@ detail.sku_name AS skuName, sum(detail.num - detail.return_num) AS num, detail.sub_status AS subStatus, - detail.order_time AS orderTime, + detail.create_time AS orderTime, detail.start_order_time AS startOrderTime, detail.dish_out_time AS dishOutTime, detail.food_serve_time AS foodServeTime