From d0f34716a661a0003bde4ace690a5d672500604e Mon Sep 17 00:00:00 2001
From: bunny <1319900154@qq.com>
Date: Mon, 18 Mar 2024 12:29:16 +0800
Subject: [PATCH] init
---
.gitignore | 6 +
.idea/.gitignore | 8 +
.idea/compiler.xml | 22 +
.idea/encodings.xml | 10 +
.idea/misc.xml | 15 +
.idea/vcs.xml | 6 +
pom.xml | 139 ++++++
sky-common/pom.xml | 81 +++
.../sky/common/constant/AutoFillConstant.java | 11 +
.../common/constant/JwtClaimsConstant.java | 9 +
.../sky/common/constant/MessageConstant.java | 31 ++
.../sky/common/constant/PasswordConstant.java | 9 +
.../sky/common/constant/StatusConstant.java | 11 +
.../sky/common/enumeration/OperationType.java | 10 +
.../exception/AccountLockedException.java | 22 +
.../exception/AccountNotFoundException.java | 22 +
.../AddressBookBusinessException.java | 22 +
.../sky/common/exception/BaseException.java | 22 +
.../DeletionNotAllowedException.java | 22 +
.../exception/LoginFailedException.java | 22 +
.../exception/OrderBusinessException.java | 22 +
.../PasswordEditFailedException.java | 22 +
.../exception/PasswordErrorException.java | 22 +
.../exception/RestTemplateException.java | 17 +
.../SetMealEnableFailedException.java | 22 +
.../ShoppingCartBusinessException.java | 22 +
.../exception/UserNotLoginException.java | 22 +
.../sky/common/properties/JwtProperties.java | 24 +
.../common/properties/MinioProperties.java | 22 +
.../common/properties/WeChatProperties.java | 20 +
sky-pojo/pom.xml | 26 +
.../java/com/sky/pojo/dto/CategoryDTO.java | 21 +
.../sky/pojo/dto/CategoryPageQueryDTO.java | 21 +
.../sky/pojo/dto/DataOverViewQueryDTO.java | 18 +
.../main/java/com/sky/pojo/dto/DishDTO.java | 32 ++
.../com/sky/pojo/dto/DishPageQueryDTO.java | 20 +
.../java/com/sky/pojo/dto/EmployeeDTO.java | 19 +
.../com/sky/pojo/dto/EmployeeLoginDTO.java | 22 +
.../sky/pojo/dto/EmployeePageQueryDTO.java | 19 +
.../java/com/sky/pojo/dto/GoodsSalesDTO.java | 20 +
.../com/sky/pojo/dto/OrdersCancelDTO.java | 16 +
.../com/sky/pojo/dto/OrdersConfirmDTO.java | 16 +
.../main/java/com/sky/pojo/dto/OrdersDTO.java | 45 ++
.../com/sky/pojo/dto/OrdersPageQueryDTO.java | 25 +
.../com/sky/pojo/dto/OrdersPaymentDTO.java | 17 +
.../com/sky/pojo/dto/OrdersRejectionDTO.java | 16 +
.../com/sky/pojo/dto/OrdersSubmitDTO.java | 35 ++
.../com/sky/pojo/dto/PasswordEditDTO.java | 19 +
.../java/com/sky/pojo/dto/SetmealDTO.java | 32 ++
.../com/sky/pojo/dto/SetmealPageQueryDTO.java | 20 +
.../com/sky/pojo/dto/ShoppingCartDTO.java | 16 +
.../java/com/sky/pojo/dto/UserLoginDTO.java | 17 +
.../java/com/sky/pojo/entity/AddressBook.java | 61 +++
.../java/com/sky/pojo/entity/BaiduMap.java | 10 +
.../java/com/sky/pojo/entity/Category.java | 44 ++
.../com/sky/pojo/entity/CategoryTest.java | 43 ++
.../main/java/com/sky/pojo/entity/Dish.java | 51 ++
.../java/com/sky/pojo/entity/DishFlavor.java | 31 ++
.../java/com/sky/pojo/entity/Employee.java | 46 ++
.../java/com/sky/pojo/entity/OrderDetail.java | 47 ++
.../main/java/com/sky/pojo/entity/Orders.java | 110 +++++
.../java/com/sky/pojo/entity/Setmeal.java | 50 ++
.../java/com/sky/pojo/entity/SetmealDish.java | 38 ++
.../com/sky/pojo/entity/ShoppingCart.java | 50 ++
.../main/java/com/sky/pojo/entity/User.java | 41 ++
.../java/com/sky/pojo/vo/BusinessDataVO.java | 29 ++
.../main/java/com/sky/pojo/vo/DishItemVO.java | 27 +
.../java/com/sky/pojo/vo/DishOverViewVO.java | 23 +
.../src/main/java/com/sky/pojo/vo/DishVO.java | 42 ++
.../java/com/sky/pojo/vo/EmployeeLoginVO.java | 31 ++
.../java/com/sky/pojo/vo/OrderOverViewVO.java | 32 ++
.../java/com/sky/pojo/vo/OrderPaymentVO.java | 22 +
.../java/com/sky/pojo/vo/OrderReportVO.java | 34 ++
.../com/sky/pojo/vo/OrderStatisticsVO.java | 17 +
.../java/com/sky/pojo/vo/OrderSubmitVO.java | 25 +
.../main/java/com/sky/pojo/vo/OrderVO.java | 21 +
.../com/sky/pojo/vo/SalesTop10ReportVO.java | 22 +
.../com/sky/pojo/vo/SetmealOverViewVO.java | 23 +
.../main/java/com/sky/pojo/vo/SetmealVO.java | 49 ++
.../com/sky/pojo/vo/TurnoverReportVO.java | 20 +
.../java/com/sky/pojo/vo/UserLoginVO.java | 20 +
.../java/com/sky/pojo/vo/UserReportVO.java | 25 +
sky-server/Dockerfile | 20 +
sky-server/pom.xml | 152 ++++++
.../src/main/java/com/sky/SkyApplication.java | 19 +
.../controller/admin/CategoryController.java | 74 +++
.../controller/admin/CommonController.java | 38 ++
.../sky/controller/admin/DishController.java | 91 ++++
.../controller/admin/EmployeeController.java | 112 +++++
.../sky/controller/admin/OrderController.java | 84 ++++
.../controller/admin/ReportController.java | 71 +++
.../controller/admin/SetMealController.java | 77 +++
.../sky/controller/admin/ShopController.java | 40 ++
.../controller/admin/WorkSpaceController.java | 61 +++
.../notify/PayNotifyController.java | 111 +++++
.../user/AddressBookController.java | 83 ++++
.../controller/user/CategoryController.java | 28 ++
.../sky/controller/user/DishController.java | 50 ++
.../sky/controller/user/OrderController.java | 81 +++
.../controller/user/SetmealController.java | 44 ++
.../sky/controller/user/ShopController.java | 30 ++
.../user/ShoppingCartController.java | 54 ++
.../sky/controller/user/UserController.java | 59 +++
.../com/sky/mapper/AddressBookMapper.java | 48 ++
.../java/com/sky/mapper/CategoryMapper.java | 53 ++
.../java/com/sky/mapper/DishFlavorMapper.java | 31 ++
.../main/java/com/sky/mapper/DishMapper.java | 87 ++++
.../java/com/sky/mapper/EmployeeMapper.java | 60 +++
.../com/sky/mapper/OrderDetailMapper.java | 24 +
.../main/java/com/sky/mapper/OrderMapper.java | 92 ++++
.../com/sky/mapper/SetMealDishMapper.java | 46 ++
.../java/com/sky/mapper/SetmealMapper.java | 88 ++++
.../com/sky/mapper/ShoppingCartMapper.java | 60 +++
.../main/java/com/sky/mapper/UserMapper.java | 42 ++
.../com/sky/service/AddressBookService.java | 22 +
.../java/com/sky/service/CategoryService.java | 42 ++
.../java/com/sky/service/DishService.java | 72 +++
.../java/com/sky/service/EmployeeService.java | 65 +++
.../java/com/sky/service/MinioService.java | 14 +
.../java/com/sky/service/OrderService.java | 125 +++++
.../java/com/sky/service/ReportService.java | 55 +++
.../java/com/sky/service/SetmealService.java | 74 +++
.../com/sky/service/ShoppingCartService.java | 35 ++
.../java/com/sky/service/UserService.java | 15 +
.../com/sky/service/WorkspaceService.java | 43 ++
.../service/impl/AddressBookServiceImpl.java | 72 +++
.../sky/service/impl/CategoryServiceImpl.java | 110 +++++
.../com/sky/service/impl/DishServiceImpl.java | 211 ++++++++
.../sky/service/impl/EmployeeServiceImpl.java | 184 +++++++
.../sky/service/impl/MinioServiceImpl.java | 37 ++
.../sky/service/impl/OrderServiceImpl.java | 467 ++++++++++++++++++
.../sky/service/impl/ReportServiceImpl.java | 233 +++++++++
.../sky/service/impl/SetmealServiceImpl.java | 176 +++++++
.../service/impl/ShoppingCartServiceImpl.java | 120 +++++
.../com/sky/service/impl/UserServiceImpl.java | 78 +++
.../service/impl/WorkspaceServiceImpl.java | 151 ++++++
.../service/utils/CheckOutOfRangeUtils.java | 95 ++++
.../service/utils/OrderServiceImplUtils.java | 56 +++
.../service/utils/ReportServiceImplUtils.java | 39 ++
.../src/main/resources/application-dev.yml | 32 ++
sky-server/src/main/resources/application.yml | 62 +++
sky-server/src/main/resources/banner.txt | 16 +
sky-server/src/main/resources/favicon.ico | Bin 0 -> 13342 bytes
.../resources/mapper/AddressBookMapper.xml | 44 ++
.../main/resources/mapper/CategoryMapper.xml | 68 +++
.../resources/mapper/DishFlavorMapper.xml | 29 ++
.../src/main/resources/mapper/DishMapper.xml | 119 +++++
.../main/resources/mapper/EmployeeMapper.xml | 67 +++
.../resources/mapper/OrderDetailMapper.xml | 21 +
.../src/main/resources/mapper/OrderMapper.xml | 149 ++++++
.../resources/mapper/SetMealDishMapper.xml | 45 ++
.../main/resources/mapper/SetmealMapper.xml | 127 +++++
.../resources/mapper/ShoppingCartMapper.xml | 97 ++++
.../src/main/resources/mapper/UserMapper.xml | 29 ++
.../resources/template/运营数据报表模板.xlsx | Bin 0 -> 12570 bytes
155 files changed, 7797 insertions(+)
create mode 100644 .gitignore
create mode 100644 .idea/.gitignore
create mode 100644 .idea/compiler.xml
create mode 100644 .idea/encodings.xml
create mode 100644 .idea/misc.xml
create mode 100644 .idea/vcs.xml
create mode 100644 pom.xml
create mode 100644 sky-common/pom.xml
create mode 100644 sky-common/src/main/java/com/sky/common/constant/AutoFillConstant.java
create mode 100644 sky-common/src/main/java/com/sky/common/constant/JwtClaimsConstant.java
create mode 100644 sky-common/src/main/java/com/sky/common/constant/MessageConstant.java
create mode 100644 sky-common/src/main/java/com/sky/common/constant/PasswordConstant.java
create mode 100644 sky-common/src/main/java/com/sky/common/constant/StatusConstant.java
create mode 100644 sky-common/src/main/java/com/sky/common/enumeration/OperationType.java
create mode 100644 sky-common/src/main/java/com/sky/common/exception/AccountLockedException.java
create mode 100644 sky-common/src/main/java/com/sky/common/exception/AccountNotFoundException.java
create mode 100644 sky-common/src/main/java/com/sky/common/exception/AddressBookBusinessException.java
create mode 100644 sky-common/src/main/java/com/sky/common/exception/BaseException.java
create mode 100644 sky-common/src/main/java/com/sky/common/exception/DeletionNotAllowedException.java
create mode 100644 sky-common/src/main/java/com/sky/common/exception/LoginFailedException.java
create mode 100644 sky-common/src/main/java/com/sky/common/exception/OrderBusinessException.java
create mode 100644 sky-common/src/main/java/com/sky/common/exception/PasswordEditFailedException.java
create mode 100644 sky-common/src/main/java/com/sky/common/exception/PasswordErrorException.java
create mode 100644 sky-common/src/main/java/com/sky/common/exception/RestTemplateException.java
create mode 100644 sky-common/src/main/java/com/sky/common/exception/SetMealEnableFailedException.java
create mode 100644 sky-common/src/main/java/com/sky/common/exception/ShoppingCartBusinessException.java
create mode 100644 sky-common/src/main/java/com/sky/common/exception/UserNotLoginException.java
create mode 100644 sky-common/src/main/java/com/sky/common/properties/JwtProperties.java
create mode 100644 sky-common/src/main/java/com/sky/common/properties/MinioProperties.java
create mode 100644 sky-common/src/main/java/com/sky/common/properties/WeChatProperties.java
create mode 100644 sky-pojo/pom.xml
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/CategoryDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/CategoryPageQueryDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/DataOverViewQueryDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/DishDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/DishPageQueryDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/EmployeeDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/EmployeeLoginDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/EmployeePageQueryDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/GoodsSalesDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/OrdersCancelDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/OrdersConfirmDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/OrdersDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/OrdersPageQueryDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/OrdersPaymentDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/OrdersRejectionDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/OrdersSubmitDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/PasswordEditDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/SetmealDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/SetmealPageQueryDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/ShoppingCartDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/dto/UserLoginDTO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/entity/AddressBook.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/entity/BaiduMap.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/entity/Category.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/entity/CategoryTest.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/entity/Dish.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/entity/DishFlavor.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/entity/Employee.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/entity/OrderDetail.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/entity/Orders.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/entity/Setmeal.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/entity/SetmealDish.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/entity/ShoppingCart.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/entity/User.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/BusinessDataVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/DishItemVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/DishOverViewVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/DishVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/EmployeeLoginVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/OrderOverViewVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/OrderPaymentVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/OrderReportVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/OrderStatisticsVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/OrderSubmitVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/OrderVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/SalesTop10ReportVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/SetmealOverViewVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/SetmealVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/TurnoverReportVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/UserLoginVO.java
create mode 100644 sky-pojo/src/main/java/com/sky/pojo/vo/UserReportVO.java
create mode 100644 sky-server/Dockerfile
create mode 100644 sky-server/pom.xml
create mode 100644 sky-server/src/main/java/com/sky/SkyApplication.java
create mode 100644 sky-server/src/main/java/com/sky/controller/admin/CategoryController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/admin/CommonController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/admin/DishController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/admin/EmployeeController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/admin/OrderController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/admin/ReportController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/admin/SetMealController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/admin/ShopController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/admin/WorkSpaceController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/notify/PayNotifyController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/user/AddressBookController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/user/CategoryController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/user/DishController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/user/OrderController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/user/SetmealController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/user/ShopController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/user/ShoppingCartController.java
create mode 100644 sky-server/src/main/java/com/sky/controller/user/UserController.java
create mode 100644 sky-server/src/main/java/com/sky/mapper/AddressBookMapper.java
create mode 100644 sky-server/src/main/java/com/sky/mapper/CategoryMapper.java
create mode 100644 sky-server/src/main/java/com/sky/mapper/DishFlavorMapper.java
create mode 100644 sky-server/src/main/java/com/sky/mapper/DishMapper.java
create mode 100644 sky-server/src/main/java/com/sky/mapper/EmployeeMapper.java
create mode 100644 sky-server/src/main/java/com/sky/mapper/OrderDetailMapper.java
create mode 100644 sky-server/src/main/java/com/sky/mapper/OrderMapper.java
create mode 100644 sky-server/src/main/java/com/sky/mapper/SetMealDishMapper.java
create mode 100644 sky-server/src/main/java/com/sky/mapper/SetmealMapper.java
create mode 100644 sky-server/src/main/java/com/sky/mapper/ShoppingCartMapper.java
create mode 100644 sky-server/src/main/java/com/sky/mapper/UserMapper.java
create mode 100644 sky-server/src/main/java/com/sky/service/AddressBookService.java
create mode 100644 sky-server/src/main/java/com/sky/service/CategoryService.java
create mode 100644 sky-server/src/main/java/com/sky/service/DishService.java
create mode 100644 sky-server/src/main/java/com/sky/service/EmployeeService.java
create mode 100644 sky-server/src/main/java/com/sky/service/MinioService.java
create mode 100644 sky-server/src/main/java/com/sky/service/OrderService.java
create mode 100644 sky-server/src/main/java/com/sky/service/ReportService.java
create mode 100644 sky-server/src/main/java/com/sky/service/SetmealService.java
create mode 100644 sky-server/src/main/java/com/sky/service/ShoppingCartService.java
create mode 100644 sky-server/src/main/java/com/sky/service/UserService.java
create mode 100644 sky-server/src/main/java/com/sky/service/WorkspaceService.java
create mode 100644 sky-server/src/main/java/com/sky/service/impl/AddressBookServiceImpl.java
create mode 100644 sky-server/src/main/java/com/sky/service/impl/CategoryServiceImpl.java
create mode 100644 sky-server/src/main/java/com/sky/service/impl/DishServiceImpl.java
create mode 100644 sky-server/src/main/java/com/sky/service/impl/EmployeeServiceImpl.java
create mode 100644 sky-server/src/main/java/com/sky/service/impl/MinioServiceImpl.java
create mode 100644 sky-server/src/main/java/com/sky/service/impl/OrderServiceImpl.java
create mode 100644 sky-server/src/main/java/com/sky/service/impl/ReportServiceImpl.java
create mode 100644 sky-server/src/main/java/com/sky/service/impl/SetmealServiceImpl.java
create mode 100644 sky-server/src/main/java/com/sky/service/impl/ShoppingCartServiceImpl.java
create mode 100644 sky-server/src/main/java/com/sky/service/impl/UserServiceImpl.java
create mode 100644 sky-server/src/main/java/com/sky/service/impl/WorkspaceServiceImpl.java
create mode 100644 sky-server/src/main/java/com/sky/service/utils/CheckOutOfRangeUtils.java
create mode 100644 sky-server/src/main/java/com/sky/service/utils/OrderServiceImplUtils.java
create mode 100644 sky-server/src/main/java/com/sky/service/utils/ReportServiceImplUtils.java
create mode 100644 sky-server/src/main/resources/application-dev.yml
create mode 100644 sky-server/src/main/resources/application.yml
create mode 100644 sky-server/src/main/resources/banner.txt
create mode 100644 sky-server/src/main/resources/favicon.ico
create mode 100644 sky-server/src/main/resources/mapper/AddressBookMapper.xml
create mode 100644 sky-server/src/main/resources/mapper/CategoryMapper.xml
create mode 100644 sky-server/src/main/resources/mapper/DishFlavorMapper.xml
create mode 100644 sky-server/src/main/resources/mapper/DishMapper.xml
create mode 100644 sky-server/src/main/resources/mapper/EmployeeMapper.xml
create mode 100644 sky-server/src/main/resources/mapper/OrderDetailMapper.xml
create mode 100644 sky-server/src/main/resources/mapper/OrderMapper.xml
create mode 100644 sky-server/src/main/resources/mapper/SetMealDishMapper.xml
create mode 100644 sky-server/src/main/resources/mapper/SetmealMapper.xml
create mode 100644 sky-server/src/main/resources/mapper/ShoppingCartMapper.xml
create mode 100644 sky-server/src/main/resources/mapper/UserMapper.xml
create mode 100644 sky-server/src/main/resources/template/运营数据报表模板.xlsx
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3df42cc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+**/target/
+.idea
+*.iml
+*.class
+*Test.java
+**/test/
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..41670ba
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..ecf7b8e
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..e4e2ad7
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..210ed53
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,139 @@
+
+
+ 4.0.0
+
+ spring-boot-starter-parent
+ org.springframework.boot
+ 2.7.3
+
+ com.sky
+ dev-sky-serve-v1
+ pom
+ 1.0-SNAPSHOT
+
+
+ sky-common
+ sky-pojo
+ sky-server
+ sky-server
+
+
+
+ 8
+ 8
+ 2.2.0
+ 1.18.20
+ 1.2.76
+ 2.6
+ 1.2.1
+ 1.3.0
+ 3.10.2
+ 3.0.3
+ 1.9.4
+ 0.9.1
+ 2.3.1
+ 3.16
+ 8.4.3
+
+
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ ${mybatis.spring}
+
+
+
+ org.projectlombok
+ lombok
+ ${lombok}
+
+
+
+ com.alibaba
+ fastjson
+ ${fastjson}
+
+
+
+ commons-lang
+ commons-lang
+ ${commons.lang}
+
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ ${druid}
+
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ ${pagehelper}
+
+
+
+ com.github.xiaoymin
+ knife4j-spring-boot-starter
+ ${knife4j}
+
+
+
+ org.aspectj
+ aspectjrt
+ ${aspectj}
+
+
+
+ org.aspectj
+ aspectjweaver
+ ${aspectj}
+
+
+
+ io.jsonwebtoken
+ jjwt
+ ${jjwt}
+
+
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+ ${aliyun.sdk.oss}
+
+
+
+ javax.xml.bind
+ jaxb-api
+ ${jaxb-api}
+
+
+
+
+ org.apache.poi
+ poi
+ ${poi}
+
+
+ org.apache.poi
+ poi-ooxml
+ ${poi}
+
+
+
+ com.github.wechatpay-apiv3
+ wechatpay-apache-httpclient
+ 0.4.8
+
+
+
+ io.minio
+ minio
+ ${minio}
+
+
+
+
diff --git a/sky-common/pom.xml b/sky-common/pom.xml
new file mode 100644
index 0000000..f13e8a6
--- /dev/null
+++ b/sky-common/pom.xml
@@ -0,0 +1,81 @@
+
+ 4.0.0
+
+ com.sky
+ dev-sky-serve-v1
+ 1.0-SNAPSHOT
+
+
+ sky-common
+ jar
+
+ sky-common
+ http://maven.apache.org
+
+
+ UTF-8
+
+
+
+
+ org.projectlombok
+ lombok
+
+
+ com.alibaba
+ fastjson
+
+
+ commons-lang
+ commons-lang
+
+
+ org.springframework.boot
+ spring-boot-starter-json
+
+
+ io.jsonwebtoken
+ jjwt
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+
+
+ javax.xml.bind
+ jaxb-api
+
+
+
+ com.github.wechatpay-apiv3
+ wechatpay-apache-httpclient
+
+
+
+ io.minio
+ minio
+
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+
+ com.github.xiaoymin
+ knife4j-spring-boot-starter
+
+
+
diff --git a/sky-common/src/main/java/com/sky/common/constant/AutoFillConstant.java b/sky-common/src/main/java/com/sky/common/constant/AutoFillConstant.java
new file mode 100644
index 0000000..2e15fcb
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/constant/AutoFillConstant.java
@@ -0,0 +1,11 @@
+package com.sky.common.constant;
+
+/**
+ * 公共字段自动填充相关常量
+ */
+public class AutoFillConstant {
+ public static final String SET_CREATE_TIME = "setCreateTime";
+ public static final String SET_UPDATE_TIME = "setUpdateTime";
+ public static final String SET_CREATE_USER = "setCreateUser";
+ public static final String SET_UPDATE_USER = "setUpdateUser";
+}
diff --git a/sky-common/src/main/java/com/sky/common/constant/JwtClaimsConstant.java b/sky-common/src/main/java/com/sky/common/constant/JwtClaimsConstant.java
new file mode 100644
index 0000000..6121903
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/constant/JwtClaimsConstant.java
@@ -0,0 +1,9 @@
+package com.sky.common.constant;
+
+public class JwtClaimsConstant {
+ public static final String EMP_ID = "empId";
+ public static final String USER_ID = "userId";
+ public static final String PHONE = "phone";
+ public static final String USERNAME = "username";
+ public static final String NAME = "name";
+}
diff --git a/sky-common/src/main/java/com/sky/common/constant/MessageConstant.java b/sky-common/src/main/java/com/sky/common/constant/MessageConstant.java
new file mode 100644
index 0000000..4de3167
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/constant/MessageConstant.java
@@ -0,0 +1,31 @@
+package com.sky.common.constant;
+
+/**
+ * 信息提示常量类
+ */
+public class MessageConstant {
+ public static final String PASSWORD_ERROR = "密码错误";
+ public static final String OLD_PASSWORD_ERROR = "旧密码不匹配";
+ public static final String OLD_PASSWORD_SAME_NEW_PASSWORD = "旧密码与新密码相同";
+ public static final String ACCOUNT_NOT_FOUND = "账号不存在";
+ public static final String ACCOUNT_LOCKED = "账号被锁定";
+ public static final String UNKNOWN_ERROR = "未知错误";
+ public static final String USER_NOT_LOGIN = "用户未登录";
+ public static final String CATEGORY_BE_RELATED_BY_SETMEAL = "当前分类关联了套餐,不能删除";
+ public static final String CATEGORY_BE_RELATED_BY_DISH = "当前分类关联了菜品,不能删除";
+ public static final String SHOPPING_CART_IS_NULL = "购物车数据为空,不能下单";
+ public static final String ADDRESS_BOOK_IS_NULL = "用户地址为空,不能下单";
+ public static final String LOGIN_FAILED = "登录失败";
+ public static final String UPLOAD_FAILED = "文件上传失败";
+ public static final String SETMEAL_ENABLE_FAILED = "套餐内包含未启售菜品,无法启售";
+ public static final String PASSWORD_EDIT_FAILED = "密码修改失败";
+ public static final String DISH_ON_SALE = "起售中的菜品不能删除";
+ public static final String SETMEAL_ON_SALE = "起售中的套餐不能删除";
+ public static final String DISH_BE_RELATED_BY_SETMEAL = "当前菜品关联了套餐,不能删除";
+ public static final String ORDER_STATUS_ERROR = "订单状态错误";
+ public static final String ORDER_STATUS_NOT_OP = "订单已被接单或已制作";
+ public static final String ORDER_NOT_FOUND = "订单不存在";
+ public static final String ALREADY_EXISTS = "已存在";
+ public static final String NOT_SET_STATUS = "请先设置营业状态";
+ public static final String REQUEST_NOT_EMPTY = "请求不为空";
+}
diff --git a/sky-common/src/main/java/com/sky/common/constant/PasswordConstant.java b/sky-common/src/main/java/com/sky/common/constant/PasswordConstant.java
new file mode 100644
index 0000000..d54164b
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/constant/PasswordConstant.java
@@ -0,0 +1,9 @@
+package com.sky.common.constant;
+
+/**
+ * 密码常量
+ */
+public class PasswordConstant {
+ // 默认密码
+ public static final String DEFAULT_PASSWORD = "123456";
+}
diff --git a/sky-common/src/main/java/com/sky/common/constant/StatusConstant.java b/sky-common/src/main/java/com/sky/common/constant/StatusConstant.java
new file mode 100644
index 0000000..3db41fb
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/constant/StatusConstant.java
@@ -0,0 +1,11 @@
+package com.sky.common.constant;
+
+/**
+ * 状态常量,启用或者禁用
+ */
+public class StatusConstant {
+ //启用为1
+ public static final Integer ENABLE = 1;
+ //禁用为0
+ public static final Integer DISABLE = 0;
+}
diff --git a/sky-common/src/main/java/com/sky/common/enumeration/OperationType.java b/sky-common/src/main/java/com/sky/common/enumeration/OperationType.java
new file mode 100644
index 0000000..30549ce
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/enumeration/OperationType.java
@@ -0,0 +1,10 @@
+package com.sky.common.enumeration;
+
+/**
+ * 数据库操作类型
+ * 使用AutoFill面向切面,设置枚举量
+ */
+public enum OperationType {
+ UPDATE,// 更新操作
+ INSERT// 插入操作
+}
diff --git a/sky-common/src/main/java/com/sky/common/exception/AccountLockedException.java b/sky-common/src/main/java/com/sky/common/exception/AccountLockedException.java
new file mode 100644
index 0000000..5ad8f05
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/exception/AccountLockedException.java
@@ -0,0 +1,22 @@
+package com.sky.common.exception;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 账号被锁定异常
+ */
+@Slf4j
+public class AccountLockedException extends BaseException {
+ /**
+ * Constructs a new runtime exception with {@code null} as its
+ * detail message. The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ */
+ public AccountLockedException() {
+ }
+
+ public AccountLockedException(String message) {
+ super(message);
+ log.error("账号被锁定异常:{}", message);
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/exception/AccountNotFoundException.java b/sky-common/src/main/java/com/sky/common/exception/AccountNotFoundException.java
new file mode 100644
index 0000000..197db39
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/exception/AccountNotFoundException.java
@@ -0,0 +1,22 @@
+package com.sky.common.exception;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 账号不存在异常
+ */
+@Slf4j
+public class AccountNotFoundException extends BaseException {
+ /**
+ * Constructs a new runtime exception with {@code null} as its
+ * detail message. The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ */
+ public AccountNotFoundException() {
+ }
+
+ public AccountNotFoundException(String message) {
+ super(message);
+ log.error("账号不存在异常:{}", message);
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/exception/AddressBookBusinessException.java b/sky-common/src/main/java/com/sky/common/exception/AddressBookBusinessException.java
new file mode 100644
index 0000000..04b1196
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/exception/AddressBookBusinessException.java
@@ -0,0 +1,22 @@
+package com.sky.common.exception;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 地址信息异常
+ */
+@Slf4j
+public class AddressBookBusinessException extends BaseException {
+ /**
+ * Constructs a new runtime exception with {@code null} as its
+ * detail message. The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ */
+ public AddressBookBusinessException() {
+ }
+
+ public AddressBookBusinessException(String message) {
+ super(message);
+ log.error("账号不存在异常:{}", message);
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/exception/BaseException.java b/sky-common/src/main/java/com/sky/common/exception/BaseException.java
new file mode 100644
index 0000000..394926b
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/exception/BaseException.java
@@ -0,0 +1,22 @@
+package com.sky.common.exception;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 业务异常
+ */
+@Slf4j
+public class BaseException extends RuntimeException {
+ /**
+ * Constructs a new runtime exception with {@code null} as its
+ * detail message. The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ */
+ public BaseException() {
+ }
+
+ public BaseException(String message) {
+ super(message);
+ log.error("业务异常:{}", message);
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/exception/DeletionNotAllowedException.java b/sky-common/src/main/java/com/sky/common/exception/DeletionNotAllowedException.java
new file mode 100644
index 0000000..607203f
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/exception/DeletionNotAllowedException.java
@@ -0,0 +1,22 @@
+package com.sky.common.exception;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 不允许删除异常
+ */
+@Slf4j
+public class DeletionNotAllowedException extends BaseException {
+ /**
+ * Constructs a new runtime exception with {@code null} as its
+ * detail message. The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ */
+ public DeletionNotAllowedException() {
+ }
+
+ public DeletionNotAllowedException(String message) {
+ super(message);
+ log.error("不允许删除异常:{}", message);
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/exception/LoginFailedException.java b/sky-common/src/main/java/com/sky/common/exception/LoginFailedException.java
new file mode 100644
index 0000000..2cab24d
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/exception/LoginFailedException.java
@@ -0,0 +1,22 @@
+package com.sky.common.exception;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 登录失败
+ */
+@Slf4j
+public class LoginFailedException extends BaseException {
+ /**
+ * Constructs a new runtime exception with {@code null} as its
+ * detail message. The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ */
+ public LoginFailedException() {
+ }
+
+ public LoginFailedException(String message) {
+ super(message);
+ log.error("登录失败:{}", message);
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/exception/OrderBusinessException.java b/sky-common/src/main/java/com/sky/common/exception/OrderBusinessException.java
new file mode 100644
index 0000000..43ad297
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/exception/OrderBusinessException.java
@@ -0,0 +1,22 @@
+package com.sky.common.exception;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 订单业务异常
+ */
+@Slf4j
+public class OrderBusinessException extends BaseException {
+ /**
+ * Constructs a new runtime exception with {@code null} as its
+ * detail message. The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ */
+ public OrderBusinessException() {
+ }
+
+ public OrderBusinessException(String message) {
+ super(message);
+ log.error("订单业务异常:{}", message);
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/exception/PasswordEditFailedException.java b/sky-common/src/main/java/com/sky/common/exception/PasswordEditFailedException.java
new file mode 100644
index 0000000..1cf76f9
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/exception/PasswordEditFailedException.java
@@ -0,0 +1,22 @@
+package com.sky.common.exception;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 密码修改失败异常
+ */
+@Slf4j
+public class PasswordEditFailedException extends BaseException {
+ /**
+ * Constructs a new runtime exception with {@code null} as its
+ * detail message. The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ */
+ public PasswordEditFailedException() {
+ }
+
+ public PasswordEditFailedException(String message) {
+ super(message);
+ log.error("密码修改失败异常:{}", message);
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/exception/PasswordErrorException.java b/sky-common/src/main/java/com/sky/common/exception/PasswordErrorException.java
new file mode 100644
index 0000000..a87e72c
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/exception/PasswordErrorException.java
@@ -0,0 +1,22 @@
+package com.sky.common.exception;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 密码错误异常
+ */
+@Slf4j
+public class PasswordErrorException extends BaseException {
+ /**
+ * Constructs a new runtime exception with {@code null} as its
+ * detail message. The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ */
+ public PasswordErrorException() {
+ }
+
+ public PasswordErrorException(String message) {
+ super(message);
+ log.error("密码错误异常:{}", message);
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/exception/RestTemplateException.java b/sky-common/src/main/java/com/sky/common/exception/RestTemplateException.java
new file mode 100644
index 0000000..fe574d9
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/exception/RestTemplateException.java
@@ -0,0 +1,17 @@
+package com.sky.common.exception;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * RestTemplateException异常
+ */
+@Slf4j
+public class RestTemplateException extends BaseException {
+ public RestTemplateException() {
+ }
+
+ public RestTemplateException(String message) {
+ super(message);
+ log.error("RestTemplateException异常:{}", message);
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/exception/SetMealEnableFailedException.java b/sky-common/src/main/java/com/sky/common/exception/SetMealEnableFailedException.java
new file mode 100644
index 0000000..4ad6f3b
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/exception/SetMealEnableFailedException.java
@@ -0,0 +1,22 @@
+package com.sky.common.exception;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 套餐启用失败异常
+ */
+@Slf4j
+public class SetMealEnableFailedException extends BaseException {
+ /**
+ * Constructs a new runtime exception with {@code null} as its
+ * detail message. The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ */
+ public SetMealEnableFailedException() {
+ }
+
+ public SetMealEnableFailedException(String message) {
+ super(message);
+ log.error("套餐启用失败异常:{}", message);
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/exception/ShoppingCartBusinessException.java b/sky-common/src/main/java/com/sky/common/exception/ShoppingCartBusinessException.java
new file mode 100644
index 0000000..9ee4d4c
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/exception/ShoppingCartBusinessException.java
@@ -0,0 +1,22 @@
+package com.sky.common.exception;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 购物车异常
+ */
+@Slf4j
+public class ShoppingCartBusinessException extends BaseException {
+ /**
+ * Constructs a new runtime exception with {@code null} as its
+ * detail message. The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ */
+ public ShoppingCartBusinessException() {
+ }
+
+ public ShoppingCartBusinessException(String message) {
+ super(message);
+ log.error("购物车异常:{}", message);
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/exception/UserNotLoginException.java b/sky-common/src/main/java/com/sky/common/exception/UserNotLoginException.java
new file mode 100644
index 0000000..99d5d4a
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/exception/UserNotLoginException.java
@@ -0,0 +1,22 @@
+package com.sky.common.exception;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 用户未登录异常
+ */
+@Slf4j
+public class UserNotLoginException extends BaseException {
+ /**
+ * Constructs a new runtime exception with {@code null} as its
+ * detail message. The cause is not initialized, and may subsequently be
+ * initialized by a call to {@link #initCause}.
+ */
+ public UserNotLoginException() {
+ }
+
+ public UserNotLoginException(String message) {
+ super(message);
+ log.error("用户未登录异常:{}", message);
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/properties/JwtProperties.java b/sky-common/src/main/java/com/sky/common/properties/JwtProperties.java
new file mode 100644
index 0000000..00936eb
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/properties/JwtProperties.java
@@ -0,0 +1,24 @@
+package com.sky.common.properties;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Component
+@ConfigurationProperties(prefix = "sky.jwt")
+@Data
+public class JwtProperties {
+ /**
+ * 管理端员工生成jwt令牌相关配置
+ */
+ private String adminSecretKey;
+ private long adminTtl;
+ private String adminTokenName;
+
+ /**
+ * 用户端微信用户生成jwt令牌相关配置
+ */
+ private String userSecretKey;
+ private long userTtl;
+ private String userTokenName;
+}
diff --git a/sky-common/src/main/java/com/sky/common/properties/MinioProperties.java b/sky-common/src/main/java/com/sky/common/properties/MinioProperties.java
new file mode 100644
index 0000000..e473985
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/properties/MinioProperties.java
@@ -0,0 +1,22 @@
+package com.sky.common.properties;
+
+import io.minio.MinioClient;
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.stereotype.Component;
+
+@Component
+@ConfigurationProperties(prefix = "sky.minio")
+@Data
+public class MinioProperties {
+ private String endpointUrl;
+ private String accessKey;
+ private String secretKey;
+ private String bucketName;
+
+ @Bean
+ public MinioClient minioClient() {
+ return MinioClient.builder().endpoint(endpointUrl).credentials(accessKey, secretKey).build();
+ }
+}
diff --git a/sky-common/src/main/java/com/sky/common/properties/WeChatProperties.java b/sky-common/src/main/java/com/sky/common/properties/WeChatProperties.java
new file mode 100644
index 0000000..64094c3
--- /dev/null
+++ b/sky-common/src/main/java/com/sky/common/properties/WeChatProperties.java
@@ -0,0 +1,20 @@
+package com.sky.common.properties;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@Component
+@ConfigurationProperties(prefix = "sky.wechat")
+@Data
+public class WeChatProperties {
+ private String appid; // 小程序的appid
+ private String secret; // 小程序的秘钥
+ private String mchid; // 商户号
+ private String mchSerialNo; // 商户API证书的证书序列号
+ private String privateKeyFilePath; // 商户私钥文件
+ private String apiV3Key; // 证书解密的密钥
+ private String weChatPayCertFilePath; // 平台证书
+ private String notifyUrl; // 支付成功的回调地址
+ private String refundNotifyUrl; // 退款成功的回调地址
+}
diff --git a/sky-pojo/pom.xml b/sky-pojo/pom.xml
new file mode 100644
index 0000000..2df6dcc
--- /dev/null
+++ b/sky-pojo/pom.xml
@@ -0,0 +1,26 @@
+
+ 4.0.0
+
+ com.sky
+ dev-sky-serve-v1
+ 1.0-SNAPSHOT
+
+
+ sky-pojo
+ jar
+
+ sky-pojo
+ http://maven.apache.org
+
+
+ UTF-8
+
+
+
+
+ org.projectlombok
+ lombok
+
+
+
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/CategoryDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/CategoryDTO.java
new file mode 100644
index 0000000..b151960
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/CategoryDTO.java
@@ -0,0 +1,21 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CategoryDTO implements Serializable {
+ // 主键
+ private Long id;
+ // 类型 1 菜品分类 2 套餐分类
+ private Integer type;
+ // 分类名称
+ private String name;
+ // 排序
+ private Integer sort;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/CategoryPageQueryDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/CategoryPageQueryDTO.java
new file mode 100644
index 0000000..8bbdccd
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/CategoryPageQueryDTO.java
@@ -0,0 +1,21 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CategoryPageQueryDTO implements Serializable {
+ // 页码
+ private int page;
+ // 每页记录数
+ private int pageSize;
+ // 分类名称
+ private String name;
+ // 分类类型 1菜品分类 2套餐分类
+ private Integer type;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/DataOverViewQueryDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/DataOverViewQueryDTO.java
new file mode 100644
index 0000000..cd0699f
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/DataOverViewQueryDTO.java
@@ -0,0 +1,18 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class DataOverViewQueryDTO implements Serializable {
+ private LocalDateTime begin;
+ private LocalDateTime end;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/DishDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/DishDTO.java
new file mode 100644
index 0000000..206a247
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/DishDTO.java
@@ -0,0 +1,32 @@
+package com.sky.pojo.dto;
+
+import com.sky.pojo.entity.DishFlavor;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DishDTO implements Serializable {
+ private Long id;
+ // 菜品名称
+ private String name;
+ // 菜品分类id
+ private Long categoryId;
+ // 菜品价格
+ private BigDecimal price;
+ // 图片
+ private String image;
+ // 描述信息
+ private String description;
+ // 0 停售 1 起售
+ private Integer status;
+ // 口味
+ private List flavors = new ArrayList<>();
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/DishPageQueryDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/DishPageQueryDTO.java
new file mode 100644
index 0000000..bd16409
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/DishPageQueryDTO.java
@@ -0,0 +1,20 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DishPageQueryDTO implements Serializable {
+ private int page;
+ private int pageSize;
+ private String name;
+ // 分类id
+ private Integer categoryId;
+ // 状态 0表示禁用 1表示启用
+ private Integer status;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/EmployeeDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/EmployeeDTO.java
new file mode 100644
index 0000000..b9eee9f
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/EmployeeDTO.java
@@ -0,0 +1,19 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class EmployeeDTO implements Serializable {
+ private Long id;
+ private String username;
+ private String name;
+ private String phone;
+ private String sex;
+ private String idNumber;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/EmployeeLoginDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/EmployeeLoginDTO.java
new file mode 100644
index 0000000..2a4883a
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/EmployeeLoginDTO.java
@@ -0,0 +1,22 @@
+package com.sky.pojo.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel(description = "员工登录时传递的数据模型")
+public class EmployeeLoginDTO implements Serializable {
+
+ @ApiModelProperty("用户名")
+ private String username;
+
+ @ApiModelProperty("密码")
+ private String password;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/EmployeePageQueryDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/EmployeePageQueryDTO.java
new file mode 100644
index 0000000..b552e08
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/EmployeePageQueryDTO.java
@@ -0,0 +1,19 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class EmployeePageQueryDTO implements Serializable {
+ // 员工姓名
+ private String name;
+ // 页码
+ private int page;
+ // 每页显示记录数
+ private int pageSize;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/GoodsSalesDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/GoodsSalesDTO.java
new file mode 100644
index 0000000..6dfc767
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/GoodsSalesDTO.java
@@ -0,0 +1,20 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class GoodsSalesDTO implements Serializable {
+ //商品名称
+ private String name;
+
+ //销量
+ private Integer number;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersCancelDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersCancelDTO.java
new file mode 100644
index 0000000..75bced4
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersCancelDTO.java
@@ -0,0 +1,16 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrdersCancelDTO implements Serializable {
+ private Long id;
+ // 订单取消原因
+ private String cancelReason;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersConfirmDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersConfirmDTO.java
new file mode 100644
index 0000000..4201aae
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersConfirmDTO.java
@@ -0,0 +1,16 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrdersConfirmDTO implements Serializable {
+ private Long id;
+ // 订单状态 1待付款 2待接单 3 已接单 4 派送中 5 已完成 6 已取消 7 退款
+ private Integer status;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersDTO.java
new file mode 100644
index 0000000..f23198d
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersDTO.java
@@ -0,0 +1,45 @@
+package com.sky.pojo.dto;
+
+import com.sky.pojo.entity.OrderDetail;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrdersDTO implements Serializable {
+ private Long id;
+ // 订单号
+ private String number;
+ // 订单状态 1待付款,2待派送,3已派送,4已完成,5已取消
+ private Integer status;
+ // 下单用户id
+ private Long userId;
+ // 地址id
+ private Long addressBookId;
+ // 下单时间
+ private LocalDateTime orderTime;
+ // 结账时间
+ private LocalDateTime checkoutTime;
+ // 支付方式 1微信,2支付宝
+ private Integer payMethod;
+ // 实收金额
+ private BigDecimal amount;
+ // 备注
+ private String remark;
+ // 用户名
+ private String userName;
+ // 手机号
+ private String phone;
+ // 地址
+ private String address;
+ // 收货人
+ private String consignee;
+ private List orderDetails;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersPageQueryDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersPageQueryDTO.java
new file mode 100644
index 0000000..9216492
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersPageQueryDTO.java
@@ -0,0 +1,25 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrdersPageQueryDTO implements Serializable {
+ private int page;
+ private int pageSize;
+ private String number;
+ private String phone;
+ private Integer status;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime beginTime;
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime endTime;
+ private Long userId;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersPaymentDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersPaymentDTO.java
new file mode 100644
index 0000000..2f38b60
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersPaymentDTO.java
@@ -0,0 +1,17 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrdersPaymentDTO implements Serializable {
+ // 订单号
+ private String orderNumber;
+ // 付款方式
+ private Integer payMethod;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersRejectionDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersRejectionDTO.java
new file mode 100644
index 0000000..2583a3f
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersRejectionDTO.java
@@ -0,0 +1,16 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrdersRejectionDTO implements Serializable {
+ private Long id;
+ // 订单拒绝原因
+ private String rejectionReason;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersSubmitDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersSubmitDTO.java
new file mode 100644
index 0000000..5650bcc
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/OrdersSubmitDTO.java
@@ -0,0 +1,35 @@
+package com.sky.pojo.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrdersSubmitDTO implements Serializable {
+ // 地址簿id
+ private Long addressBookId;
+ // 付款方式
+ private int payMethod;
+ // 备注
+ private String remark;
+ // 预计送达时间
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime estimatedDeliveryTime;
+ // 配送状态 1立即送出 0选择具体时间
+ private Integer deliveryStatus;
+ // 餐具数量
+ private Integer tablewareNumber;
+ // 餐具数量状态 1按餐量提供 0选择具体数量
+ private Integer tablewareStatus;
+ // 打包费
+ private Integer packAmount;
+ // 总金额
+ private BigDecimal amount;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/PasswordEditDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/PasswordEditDTO.java
new file mode 100644
index 0000000..881de50
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/PasswordEditDTO.java
@@ -0,0 +1,19 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PasswordEditDTO implements Serializable {
+ // 员工id
+ private Long empId;
+ // 旧密码
+ private String oldPassword;
+ // 新密码
+ private String newPassword;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/SetmealDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/SetmealDTO.java
new file mode 100644
index 0000000..691b2fc
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/SetmealDTO.java
@@ -0,0 +1,32 @@
+package com.sky.pojo.dto;
+
+import com.sky.pojo.entity.SetmealDish;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SetmealDTO implements Serializable {
+ private Long id;
+ // 分类id
+ private Long categoryId;
+ // 套餐名称
+ private String name;
+ // 套餐价格
+ private BigDecimal price;
+ // 状态 0:停用 1:启用
+ private Integer status;
+ // 描述信息
+ private String description;
+ // 图片
+ private String image;
+ // 套餐菜品关系
+ private List setmealDishes = new ArrayList<>();
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/SetmealPageQueryDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/SetmealPageQueryDTO.java
new file mode 100644
index 0000000..251de9a
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/SetmealPageQueryDTO.java
@@ -0,0 +1,20 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SetmealPageQueryDTO implements Serializable {
+ private int page;
+ private int pageSize;
+ private String name;
+ // 分类id
+ private Integer categoryId;
+ // 状态 0表示禁用 1表示启用
+ private Integer status;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/ShoppingCartDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/ShoppingCartDTO.java
new file mode 100644
index 0000000..2052410
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/ShoppingCartDTO.java
@@ -0,0 +1,16 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ShoppingCartDTO implements Serializable {
+ private Long dishId;
+ private Long setmealId;
+ private String dishFlavor;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/dto/UserLoginDTO.java b/sky-pojo/src/main/java/com/sky/pojo/dto/UserLoginDTO.java
new file mode 100644
index 0000000..0991186
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/dto/UserLoginDTO.java
@@ -0,0 +1,17 @@
+package com.sky.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * C端用户登录
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserLoginDTO implements Serializable {
+ private String code;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/entity/AddressBook.java b/sky-pojo/src/main/java/com/sky/pojo/entity/AddressBook.java
new file mode 100644
index 0000000..74f7094
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/entity/AddressBook.java
@@ -0,0 +1,61 @@
+package com.sky.pojo.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 地址簿
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class AddressBook implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+ //用户id
+ private Long userId;
+
+ //收货人
+ private String consignee;
+
+ //手机号
+ private String phone;
+
+ //性别 0 女 1 男
+ private String sex;
+
+ //省级区划编号
+ private String provinceCode;
+
+ //省级名称
+ private String provinceName;
+
+ //市级区划编号
+ private String cityCode;
+
+ //市级名称
+ private String cityName;
+
+ //区级区划编号
+ private String districtCode;
+
+ //区级名称
+ private String districtName;
+
+ //详细地址
+ private String detail;
+
+ //标签
+ private String label;
+
+ //是否默认 0否 1是
+ private Integer isDefault;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/entity/BaiduMap.java b/sky-pojo/src/main/java/com/sky/pojo/entity/BaiduMap.java
new file mode 100644
index 0000000..4b52001
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/entity/BaiduMap.java
@@ -0,0 +1,10 @@
+package com.sky.pojo.entity;
+
+import lombok.Data;
+
+@Data
+public class BaiduMap {
+ private String address;
+ private String output;
+ private String ak;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/entity/Category.java b/sky-pojo/src/main/java/com/sky/pojo/entity/Category.java
new file mode 100644
index 0000000..9042477
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/entity/Category.java
@@ -0,0 +1,44 @@
+package com.sky.pojo.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class Category implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+ //类型: 1菜品分类 2套餐分类
+ private Integer type;
+
+ //分类名称
+ private String name;
+
+ //顺序
+ private Integer sort;
+
+ //分类状态 0标识禁用 1表示启用
+ private Integer status;
+
+ //创建时间
+ private LocalDateTime createTime;
+
+ //更新时间
+ private LocalDateTime updateTime;
+
+ //创建人
+ private Long createUser;
+
+ //修改人
+ private Long updateUser;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/entity/CategoryTest.java b/sky-pojo/src/main/java/com/sky/pojo/entity/CategoryTest.java
new file mode 100644
index 0000000..2c911f3
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/entity/CategoryTest.java
@@ -0,0 +1,43 @@
+package com.sky.pojo.entity;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ *
+ * 商品分类
+ *
+ *
+ * @author Bunny
+ * @since 2024-03-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Schema(description = "分类实体类")
+public class CategoryTest implements Serializable {
+
+ @Schema(description = "分类名称")
+ private String name;
+
+ @Schema(description = "分类图片url")
+ private String imageUrl;
+
+ @Schema(description = "父节点id")
+ private Long parentId;
+
+ @Schema(description = "分类状态: 是否显示[0-不显示,1显示]")
+ private Integer status;
+
+ @Schema(description = "排序字段")
+ private Integer orderNum;
+
+ @Schema(description = "是否存在子节点")
+ private Boolean hasChildren;
+
+ @Schema(description = "子节点List集合")
+ private List children;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/entity/Dish.java b/sky-pojo/src/main/java/com/sky/pojo/entity/Dish.java
new file mode 100644
index 0000000..b7081bf
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/entity/Dish.java
@@ -0,0 +1,51 @@
+package com.sky.pojo.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 菜品
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class Dish implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+ //菜品名称
+ private String name;
+
+ //菜品分类id
+ private Long categoryId;
+
+ //菜品价格
+ private BigDecimal price;
+
+ //图片
+ private String image;
+
+ //描述信息
+ private String description;
+
+ //0 停售 1 起售
+ private Integer status;
+
+ private LocalDateTime createTime;
+
+ private LocalDateTime updateTime;
+
+ private Long createUser;
+
+ private Long updateUser;
+
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/entity/DishFlavor.java b/sky-pojo/src/main/java/com/sky/pojo/entity/DishFlavor.java
new file mode 100644
index 0000000..9ebc896
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/entity/DishFlavor.java
@@ -0,0 +1,31 @@
+package com.sky.pojo.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 菜品口味
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class DishFlavor implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+ //菜品id
+ private Long dishId;
+
+ //口味名称
+ private String name;
+
+ //口味数据list
+ private String value;
+
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/entity/Employee.java b/sky-pojo/src/main/java/com/sky/pojo/entity/Employee.java
new file mode 100644
index 0000000..543cfed
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/entity/Employee.java
@@ -0,0 +1,46 @@
+package com.sky.pojo.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class Employee implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+ private String username;
+
+ private String name;
+
+ private String password;
+
+ private String phone;
+
+ private String sex;
+
+ private String idNumber;
+
+ private Integer status;
+
+ //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime createTime;
+
+ //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime updateTime;
+
+ private Long createUser;
+
+ private Long updateUser;
+ private String shopAddress;
+ private String employeeAddress;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/entity/OrderDetail.java b/sky-pojo/src/main/java/com/sky/pojo/entity/OrderDetail.java
new file mode 100644
index 0000000..3010356
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/entity/OrderDetail.java
@@ -0,0 +1,47 @@
+package com.sky.pojo.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 订单明细
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderDetail implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+ //名称
+ private String name;
+
+ //订单id
+ private Long orderId;
+
+ //菜品id
+ private Long dishId;
+
+ //套餐id
+ private Long setmealId;
+
+ //口味
+ private String dishFlavor;
+
+ //数量
+ private Integer number;
+
+ //金额
+ private BigDecimal amount;
+
+ //图片
+ private String image;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/entity/Orders.java b/sky-pojo/src/main/java/com/sky/pojo/entity/Orders.java
new file mode 100644
index 0000000..bc94be2
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/entity/Orders.java
@@ -0,0 +1,110 @@
+package com.sky.pojo.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 订单
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class Orders implements Serializable {
+
+ /**
+ * 订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消
+ */
+ public static final Integer PENDING_PAYMENT = 1;
+ public static final Integer TO_BE_CONFIRMED = 2;
+ public static final Integer CONFIRMED = 3;
+ public static final Integer DELIVERY_IN_PROGRESS = 4;
+ public static final Integer COMPLETED = 5;
+ public static final Integer CANCELLED = 6;
+
+ /**
+ * 支付状态 0未支付 1已支付 2退款
+ */
+ public static final Integer UN_PAID = 0;
+ public static final Integer PAID = 1;
+ public static final Integer REFUND = 2;
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+ //订单号
+ private String number;
+
+ //订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消 7退款
+ private Integer status;
+
+ //下单用户id
+ private Long userId;
+
+ //地址id
+ private Long addressBookId;
+
+ //下单时间
+ private LocalDateTime orderTime;
+
+ //结账时间
+ private LocalDateTime checkoutTime;
+
+ //支付方式 1微信,2支付宝
+ private Integer payMethod;
+
+ //支付状态 0未支付 1已支付 2退款
+ private Integer payStatus;
+
+ //实收金额
+ private BigDecimal amount;
+
+ //备注
+ private String remark;
+
+ //用户名
+ private String userName;
+
+ //手机号
+ private String phone;
+
+ //地址
+ private String address;
+
+ //收货人
+ private String consignee;
+
+ //订单取消原因
+ private String cancelReason;
+
+ //订单拒绝原因
+ private String rejectionReason;
+
+ //订单取消时间
+ private LocalDateTime cancelTime;
+
+ //预计送达时间
+ private LocalDateTime estimatedDeliveryTime;
+
+ //配送状态 1立即送出 0选择具体时间
+ private Integer deliveryStatus;
+
+ //送达时间
+ private LocalDateTime deliveryTime;
+
+ //打包费
+ private int packAmount;
+
+ //餐具数量
+ private int tablewareNumber;
+
+ //餐具数量状态 1按餐量提供 0选择具体数量
+ private Integer tablewareStatus;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/entity/Setmeal.java b/sky-pojo/src/main/java/com/sky/pojo/entity/Setmeal.java
new file mode 100644
index 0000000..f8a3fd9
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/entity/Setmeal.java
@@ -0,0 +1,50 @@
+package com.sky.pojo.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 套餐
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class Setmeal implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+ //分类id
+ private Long categoryId;
+
+ //套餐名称
+ private String name;
+
+ //套餐价格
+ private BigDecimal price;
+
+ //状态 0:停用 1:启用
+ private Integer status;
+
+ //描述信息
+ private String description;
+
+ //图片
+ private String image;
+
+ private LocalDateTime createTime;
+
+ private LocalDateTime updateTime;
+
+ private Long createUser;
+
+ private Long updateUser;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/entity/SetmealDish.java b/sky-pojo/src/main/java/com/sky/pojo/entity/SetmealDish.java
new file mode 100644
index 0000000..966b1ee
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/entity/SetmealDish.java
@@ -0,0 +1,38 @@
+package com.sky.pojo.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 套餐菜品关系
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SetmealDish implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+ //套餐id
+ private Long setmealId;
+
+ //菜品id
+ private Long dishId;
+
+ //菜品名称 (冗余字段)
+ private String name;
+
+ //菜品原价
+ private BigDecimal price;
+
+ //份数
+ private Integer copies;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/entity/ShoppingCart.java b/sky-pojo/src/main/java/com/sky/pojo/entity/ShoppingCart.java
new file mode 100644
index 0000000..8772f51
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/entity/ShoppingCart.java
@@ -0,0 +1,50 @@
+package com.sky.pojo.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 购物车
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ShoppingCart implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+ //名称
+ private String name;
+
+ //用户id
+ private Long userId;
+
+ //菜品id
+ private Long dishId;
+
+ //套餐id
+ private Long setmealId;
+
+ //口味
+ private String dishFlavor;
+
+ //数量
+ private Integer number;
+
+ //金额
+ private BigDecimal amount;
+
+ //图片
+ private String image;
+
+ private LocalDateTime createTime;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/entity/User.java b/sky-pojo/src/main/java/com/sky/pojo/entity/User.java
new file mode 100644
index 0000000..c520420
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/entity/User.java
@@ -0,0 +1,41 @@
+package com.sky.pojo.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class User implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+
+ //微信用户唯一标识
+ private String openid;
+
+ //姓名
+ private String name;
+
+ //手机号
+ private String phone;
+
+ //性别 0 女 1 男
+ private String sex;
+
+ //身份证号
+ private String idNumber;
+
+ //头像
+ private String avatar;
+
+ //注册时间
+ private LocalDateTime createTime;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/BusinessDataVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/BusinessDataVO.java
new file mode 100644
index 0000000..d8716ec
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/BusinessDataVO.java
@@ -0,0 +1,29 @@
+package com.sky.pojo.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 数据概览
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class BusinessDataVO implements Serializable {
+
+ private Double turnover;//营业额
+
+ private Integer validOrderCount;//有效订单数
+
+ private Double orderCompletionRate;//订单完成率
+
+ private Double unitPrice;//平均客单价
+
+ private Integer newUsers;//新增用户数
+
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/DishItemVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/DishItemVO.java
new file mode 100644
index 0000000..6d5adb3
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/DishItemVO.java
@@ -0,0 +1,27 @@
+package com.sky.pojo.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class DishItemVO implements Serializable {
+
+ //菜品名称
+ private String name;
+
+ //份数
+ private Integer copies;
+
+ //菜品图片
+ private String image;
+
+ //菜品描述
+ private String description;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/DishOverViewVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/DishOverViewVO.java
new file mode 100644
index 0000000..024cc7f
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/DishOverViewVO.java
@@ -0,0 +1,23 @@
+package com.sky.pojo.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 菜品总览
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class DishOverViewVO implements Serializable {
+ // 已启售数量
+ private Integer sold;
+
+ // 已停售数量
+ private Integer discontinued;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/DishVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/DishVO.java
new file mode 100644
index 0000000..f729102
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/DishVO.java
@@ -0,0 +1,42 @@
+package com.sky.pojo.vo;
+
+import com.sky.pojo.entity.DishFlavor;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class DishVO implements Serializable {
+
+ private Long id;
+ //菜品名称
+ private String name;
+ //菜品分类id
+ private Long categoryId;
+ //菜品价格
+ private BigDecimal price;
+ //图片
+ private String image;
+ //描述信息
+ private String description;
+ //0 停售 1 起售
+ private Integer status;
+ //更新时间
+ private LocalDateTime updateTime;
+ //分类名称
+ private String categoryName;
+ //菜品关联的口味
+ private List flavors = new ArrayList<>();
+
+ //private Integer copies;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/EmployeeLoginVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/EmployeeLoginVO.java
new file mode 100644
index 0000000..63c8eb0
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/EmployeeLoginVO.java
@@ -0,0 +1,31 @@
+package com.sky.pojo.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(description = "员工登录返回的数据格式")
+public class EmployeeLoginVO implements Serializable {
+
+ @ApiModelProperty("主键值")
+ private Long id;
+
+ @ApiModelProperty("用户名")
+ private String userName;
+
+ @ApiModelProperty("姓名")
+ private String name;
+
+ @ApiModelProperty("jwt令牌")
+ private String token;
+
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/OrderOverViewVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/OrderOverViewVO.java
new file mode 100644
index 0000000..48dd971
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/OrderOverViewVO.java
@@ -0,0 +1,32 @@
+package com.sky.pojo.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 订单概览数据
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderOverViewVO implements Serializable {
+ //待接单数量
+ private Integer waitingOrders;
+
+ //待派送数量
+ private Integer deliveredOrders;
+
+ //已完成数量
+ private Integer completedOrders;
+
+ //已取消数量
+ private Integer cancelledOrders;
+
+ //全部订单
+ private Integer allOrders;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/OrderPaymentVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/OrderPaymentVO.java
new file mode 100644
index 0000000..6e2fbd0
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/OrderPaymentVO.java
@@ -0,0 +1,22 @@
+package com.sky.pojo.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderPaymentVO implements Serializable {
+
+ private String nonceStr; //随机字符串
+ private String paySign; //签名
+ private String timeStamp; //时间戳
+ private String signType; //签名算法
+ private String packageStr; //统一下单接口返回的 prepay_id 参数值
+
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/OrderReportVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/OrderReportVO.java
new file mode 100644
index 0000000..65142fd
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/OrderReportVO.java
@@ -0,0 +1,34 @@
+package com.sky.pojo.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderReportVO implements Serializable {
+
+ //日期,以逗号分隔,例如:2022-10-01,2022-10-02,2022-10-03
+ private String dateList;
+
+ //每日订单数,以逗号分隔,例如:260,210,215
+ private String orderCountList;
+
+ //每日有效订单数,以逗号分隔,例如:20,21,10
+ private String validOrderCountList;
+
+ //订单总数
+ private Integer totalOrderCount;
+
+ //有效订单数
+ private Integer validOrderCount;
+
+ //订单完成率
+ private Double orderCompletionRate;
+
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/OrderStatisticsVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/OrderStatisticsVO.java
new file mode 100644
index 0000000..6420a46
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/OrderStatisticsVO.java
@@ -0,0 +1,17 @@
+package com.sky.pojo.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class OrderStatisticsVO implements Serializable {
+ //待接单数量
+ private Integer toBeConfirmed;
+
+ //待派送数量
+ private Integer confirmed;
+
+ //派送中数量
+ private Integer deliveryInProgress;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/OrderSubmitVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/OrderSubmitVO.java
new file mode 100644
index 0000000..296cfda
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/OrderSubmitVO.java
@@ -0,0 +1,25 @@
+package com.sky.pojo.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderSubmitVO implements Serializable {
+ //订单id
+ private Long id;
+ //订单号
+ private String orderNumber;
+ //订单金额
+ private BigDecimal orderAmount;
+ //下单时间
+ private LocalDateTime orderTime;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/OrderVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/OrderVO.java
new file mode 100644
index 0000000..37d06d2
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/OrderVO.java
@@ -0,0 +1,21 @@
+package com.sky.pojo.vo;
+
+import com.sky.pojo.entity.OrderDetail;
+import com.sky.pojo.entity.Orders;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class OrderVO extends Orders implements Serializable {
+ // 订单菜品信息
+ private String orderDishes;
+
+ // 订单详情
+ private List orderDetailList;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/SalesTop10ReportVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/SalesTop10ReportVO.java
new file mode 100644
index 0000000..d583677
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/SalesTop10ReportVO.java
@@ -0,0 +1,22 @@
+package com.sky.pojo.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SalesTop10ReportVO implements Serializable {
+
+ //商品名称列表,以逗号分隔,例如:鱼香肉丝,宫保鸡丁,水煮鱼
+ private String nameList;
+
+ //销量列表,以逗号分隔,例如:260,215,200
+ private String numberList;
+
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/SetmealOverViewVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/SetmealOverViewVO.java
new file mode 100644
index 0000000..8a1a05b
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/SetmealOverViewVO.java
@@ -0,0 +1,23 @@
+package com.sky.pojo.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 套餐总览
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SetmealOverViewVO implements Serializable {
+ // 已启售数量
+ private Integer sold;
+
+ // 已停售数量
+ private Integer discontinued;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/SetmealVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/SetmealVO.java
new file mode 100644
index 0000000..26da1f4
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/SetmealVO.java
@@ -0,0 +1,49 @@
+package com.sky.pojo.vo;
+
+import com.sky.pojo.entity.SetmealDish;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class SetmealVO implements Serializable {
+
+ private Long id;
+
+ //分类id
+ private Long categoryId;
+
+ //套餐名称
+ private String name;
+
+ //套餐价格
+ private BigDecimal price;
+
+ //状态 0:停用 1:启用
+ private Integer status;
+
+ //描述信息
+ private String description;
+
+ //图片
+ private String image;
+
+ //更新时间
+ private LocalDateTime updateTime;
+
+ //分类名称
+ private String categoryName;
+
+ //套餐和菜品的关联关系
+ private List setmealDishes = new ArrayList<>();
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/TurnoverReportVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/TurnoverReportVO.java
new file mode 100644
index 0000000..aa82bab
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/TurnoverReportVO.java
@@ -0,0 +1,20 @@
+package com.sky.pojo.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class TurnoverReportVO implements Serializable {
+ // 日期,以逗号分隔,例如:2022-10-01,2022-10-02,2022-10-03
+ private String dateList;
+
+ // 营业额,以逗号分隔,例如:406.0,1520.0,75.0
+ private String turnoverList;
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/UserLoginVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/UserLoginVO.java
new file mode 100644
index 0000000..098bf6c
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/UserLoginVO.java
@@ -0,0 +1,20 @@
+package com.sky.pojo.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class UserLoginVO implements Serializable {
+
+ private Long id;
+ private String openid;
+ private String token;
+
+}
diff --git a/sky-pojo/src/main/java/com/sky/pojo/vo/UserReportVO.java b/sky-pojo/src/main/java/com/sky/pojo/vo/UserReportVO.java
new file mode 100644
index 0000000..7da27d4
--- /dev/null
+++ b/sky-pojo/src/main/java/com/sky/pojo/vo/UserReportVO.java
@@ -0,0 +1,25 @@
+package com.sky.pojo.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class UserReportVO implements Serializable {
+
+ //日期,以逗号分隔,例如:2022-10-01,2022-10-02,2022-10-03
+ private String dateList;
+
+ //用户总量,以逗号分隔,例如:200,210,220
+ private String totalUserList;
+
+ //新增用户,以逗号分隔,例如:20,21,10
+ private String newUserList;
+
+}
diff --git a/sky-server/Dockerfile b/sky-server/Dockerfile
new file mode 100644
index 0000000..421b7e4
--- /dev/null
+++ b/sky-server/Dockerfile
@@ -0,0 +1,20 @@
+FROM openjdk:18
+
+#系统编码
+ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
+
+# 设置时区,构建镜像时执行的命令
+RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
+RUN echo "Asia/Shanghai" > /etc/timezone
+
+# 设定工作目录
+WORKDIR /home/bunny
+
+# 复制jar包
+COPY target/sky-server-1.0-SNAPSHOT.jar /home/bunny/app.jar
+
+#启动容器时的进程
+ENTRYPOINT ["java","-jar","/home/bunny/app.jar"]
+
+#暴露 8080 端口
+EXPOSE 8080
\ No newline at end of file
diff --git a/sky-server/pom.xml b/sky-server/pom.xml
new file mode 100644
index 0000000..e8eda8a
--- /dev/null
+++ b/sky-server/pom.xml
@@ -0,0 +1,152 @@
+
+ 4.0.0
+
+ com.sky
+ dev-sky-serve-v1
+ 1.0-SNAPSHOT
+
+
+ sky-server
+ jar
+
+ sky-server
+ http://maven.apache.org
+
+
+ UTF-8
+
+
+
+
+ com.sky
+ sky-common
+ 1.0-SNAPSHOT
+
+
+ com.sky
+ sky-pojo
+ 1.0-SNAPSHOT
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+ compile
+
+
+
+ mysql
+ mysql-connector-java
+ runtime
+
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+ com.alibaba
+ fastjson
+
+
+
+ com.alibaba
+ druid-spring-boot-starter
+
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+
+
+
+ org.aspectj
+ aspectjrt
+
+
+
+ org.aspectj
+ aspectjweaver
+
+
+
+ com.github.xiaoymin
+ knife4j-spring-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+
+ org.springframework.boot
+ spring-boot-starter-cache
+
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+
+ javax.xml.bind
+ jaxb-api
+
+
+
+
+ org.apache.poi
+ poi
+
+
+ org.apache.poi
+ poi-ooxml
+
+
+
+ io.minio
+ minio
+
+
+ junit
+ junit
+ 4.13.1
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 15
+ 15
+
+
+
+
+
diff --git a/sky-server/src/main/java/com/sky/SkyApplication.java b/sky-server/src/main/java/com/sky/SkyApplication.java
new file mode 100644
index 0000000..bd4c639
--- /dev/null
+++ b/sky-server/src/main/java/com/sky/SkyApplication.java
@@ -0,0 +1,19 @@
+package com.sky;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+@SpringBootApplication
+@EnableTransactionManagement // 开启注解方式的事务管理
+@EnableCaching// 开启缓存注解
+@EnableScheduling
+@Slf4j
+public class SkyApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(SkyApplication.class);
+ }
+}
diff --git a/sky-server/src/main/java/com/sky/controller/admin/CategoryController.java b/sky-server/src/main/java/com/sky/controller/admin/CategoryController.java
new file mode 100644
index 0000000..99d7033
--- /dev/null
+++ b/sky-server/src/main/java/com/sky/controller/admin/CategoryController.java
@@ -0,0 +1,74 @@
+package com.sky.controller.admin;
+
+
+import com.sky.common.result.PageResult;
+import com.sky.common.result.Result;
+import com.sky.pojo.dto.CategoryDTO;
+import com.sky.pojo.dto.CategoryPageQueryDTO;
+import com.sky.pojo.entity.Category;
+import com.sky.service.CategoryService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ * 分类管理
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/admin/category")
+@Api(tags = "分类相关接口")
+@Slf4j
+public class CategoryController {
+ private final CategoryService categoryService;
+
+ @PostMapping
+ @ApiOperation("新增分类")
+ public Result save(@RequestBody CategoryDTO categoryDTO) {
+ log.info("新增分类:{}", categoryDTO);
+ categoryService.save(categoryDTO);
+ return Result.success();
+ }
+
+ @GetMapping("/page")
+ @ApiOperation("分类分页查询")
+ public Result> page(CategoryPageQueryDTO categoryPageQueryDTO) {
+ log.info("分页查询:{}", categoryPageQueryDTO);
+ PageResult pageResult = categoryService.pageQuery(categoryPageQueryDTO);
+ return Result.success(pageResult);
+ }
+
+ @DeleteMapping
+ @ApiOperation("删除分类")
+ public Result deleteById(Long id) {
+ log.info("删除分类:{}", id);
+ categoryService.deleteById(id);
+ return Result.success();
+ }
+
+ @PutMapping
+ @ApiOperation("修改分类")
+ public Result update(@RequestBody CategoryDTO categoryDTO) {
+ categoryService.update(categoryDTO);
+ return Result.success();
+ }
+
+ @PostMapping("/status/{status}")
+ @ApiOperation("启用禁用分类")
+ public Result startOrStop(@PathVariable("status") Integer status, Long id) {
+ categoryService.startOrStop(status, id);
+ return Result.success();
+ }
+
+ @GetMapping("/list")
+ @ApiOperation("根据类型查询分类")
+ public Result> list(Integer type) {
+ List list = categoryService.list(type);
+ return Result.success(list);
+ }
+}
diff --git a/sky-server/src/main/java/com/sky/controller/admin/CommonController.java b/sky-server/src/main/java/com/sky/controller/admin/CommonController.java
new file mode 100644
index 0000000..39d3c47
--- /dev/null
+++ b/sky-server/src/main/java/com/sky/controller/admin/CommonController.java
@@ -0,0 +1,38 @@
+package com.sky.controller.admin;
+
+
+import com.sky.common.constant.MessageConstant;
+import com.sky.common.result.Result;
+import com.sky.service.MinioService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/admin/common")
+@Api(tags = "通用接口")
+@Slf4j
+public class CommonController {
+ private final MinioService minioService;
+
+ @ApiOperation(value = "文件上传")
+ @PostMapping("/upload")
+ public Result upload(MultipartFile file) {
+ log.info("文件上传:{}", file);
+ try {
+ String filename = minioService.upload(file);
+ return Result.success(filename);
+ } catch (IOException e) {
+ log.info("文件上传失败");
+ return Result.error(MessageConstant.UPLOAD_FAILED);
+ }
+ }
+}
diff --git a/sky-server/src/main/java/com/sky/controller/admin/DishController.java b/sky-server/src/main/java/com/sky/controller/admin/DishController.java
new file mode 100644
index 0000000..cf7c994
--- /dev/null
+++ b/sky-server/src/main/java/com/sky/controller/admin/DishController.java
@@ -0,0 +1,91 @@
+package com.sky.controller.admin;
+
+
+import com.sky.common.result.PageResult;
+import com.sky.common.result.Result;
+import com.sky.common.utils.RedisUtil;
+import com.sky.pojo.dto.DishDTO;
+import com.sky.pojo.dto.DishPageQueryDTO;
+import com.sky.pojo.entity.Dish;
+import com.sky.pojo.vo.DishVO;
+import com.sky.service.DishService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/admin/dish")
+@Api(tags = "菜品相关接口")
+@Slf4j
+public class DishController {
+ private final DishService dishService;
+
+ @PostMapping
+ @ApiOperation("新增菜品")
+ public Result save(@RequestBody DishDTO dishDTO) {
+ log.info("新增菜品:{}", dishDTO);
+ // 删除redis中缓存
+ RedisUtil.cleanCache("dish_" + dishDTO.getCategoryId());
+ dishService.saveWithFlavor(dishDTO);
+ return Result.success();
+ }
+
+ @GetMapping("/page")
+ @ApiOperation("菜品分页查询")
+ public Result> page(DishPageQueryDTO dishPageQueryDTO) {
+ log.info("菜品分页查询:{}", dishPageQueryDTO);
+ PageResult pageResult = dishService.pageQuery(dishPageQueryDTO);
+ return Result.success(pageResult);
+ }
+
+ @DeleteMapping
+ @ApiOperation("菜品批量删除")
+ public Result delete(@RequestParam List ids) {
+ log.info("菜品批量删除:{}", ids);
+ dishService.deleteBatch(ids);
+ // 将菜品数据删除
+ RedisUtil.cleanCache("dish_*");
+ return Result.success();
+ }
+
+ @GetMapping("/{id}")
+ @ApiOperation("根据id查询菜品和对应的口味数据")
+ public Result getById(@PathVariable Long id) {
+ log.info("根据id查询菜品和对应的口味数据:{}", id);
+ DishVO dishVO = dishService.getById(id);
+ return Result.success(dishVO);
+ }
+
+ @PutMapping
+ @ApiOperation("修改菜品")
+ public Result update(@RequestBody DishDTO dto) {
+ log.info("修改菜品:{}", dto);
+ dishService.updateWithFlavor(dto);
+ // 将菜品数据删除
+ RedisUtil.cleanCache("dish_*");
+ return Result.success();
+ }
+
+ @PostMapping("status/{status}")
+ @ApiOperation("菜品起售、停售")
+ public Result status(@PathVariable Integer status, Long id) {
+ log.info("菜品起售、停售:{},菜品id:{}", status, id);
+ dishService.updateWithStatus(status, id);
+ // 将菜品数据删除
+ RedisUtil.cleanCache("dish_*");
+ return Result.success();
+ }
+
+ @GetMapping("list")
+ @ApiOperation("根据分类id查询菜品")
+ public Result> list(Long categoryId) {
+ log.info("根据分类id查询菜品:{}", categoryId);
+ List dishVOList = dishService.getByCategoryId(categoryId);
+ return Result.success(dishVOList);
+ }
+}
diff --git a/sky-server/src/main/java/com/sky/controller/admin/EmployeeController.java b/sky-server/src/main/java/com/sky/controller/admin/EmployeeController.java
new file mode 100644
index 0000000..1cdecb3
--- /dev/null
+++ b/sky-server/src/main/java/com/sky/controller/admin/EmployeeController.java
@@ -0,0 +1,112 @@
+package com.sky.controller.admin;
+
+import com.sky.common.constant.JwtClaimsConstant;
+import com.sky.common.properties.JwtProperties;
+import com.sky.common.result.PageResult;
+import com.sky.common.result.Result;
+import com.sky.common.utils.JwtUtil;
+import com.sky.pojo.dto.EmployeeDTO;
+import com.sky.pojo.dto.EmployeeLoginDTO;
+import com.sky.pojo.dto.EmployeePageQueryDTO;
+import com.sky.pojo.dto.PasswordEditDTO;
+import com.sky.pojo.entity.Employee;
+import com.sky.pojo.vo.EmployeeLoginVO;
+import com.sky.service.EmployeeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 员工管理
+ */
+@RestController
+@RequestMapping("/admin/employee")
+@Slf4j
+@Api(tags = "员工相关接口")
+public class EmployeeController {
+
+ @Autowired
+ private EmployeeService employeeService;
+ @Autowired
+ private JwtProperties jwtProperties;
+
+ @PostMapping("/login")
+ @ApiOperation(value = "登录接口")
+ public Result login(@RequestBody EmployeeLoginDTO employeeLoginDTO) {
+ log.info("员工登录:{}", employeeLoginDTO);
+
+ Employee employee = employeeService.login(employeeLoginDTO);
+
+ // 登录成功后,生成jwt令牌
+ Map claims = new HashMap<>();
+ claims.put(JwtClaimsConstant.EMP_ID, employee.getId());
+ String token = JwtUtil.createJWT(jwtProperties.getAdminSecretKey(), jwtProperties.getAdminTtl(), claims);
+
+ EmployeeLoginVO employeeLoginVO = EmployeeLoginVO.builder()
+ .id(employee.getId())
+ .userName(employee.getUsername())
+ .name(employee.getName())
+ .token(token).build();
+
+ return Result.success(employeeLoginVO);
+ }
+
+ @PostMapping("/logout")
+ @ApiOperation(value = "退出登录")
+ public Result logout() {
+ log.info("退出登录");
+ return Result.success();
+ }
+
+ @PostMapping("")
+ @ApiOperation("新增员工")
+ public Result save(@RequestBody EmployeeDTO employeeDTO) {
+ log.info("新增员工:{}", employeeDTO);
+ employeeService.save(employeeDTO);
+ return Result.success();
+ }
+
+ @GetMapping("/page")
+ @ApiOperation("员工分页查询")
+ public Result page(EmployeePageQueryDTO employeePageQueryDTO) {
+ log.info("员工分页查询,参数:{}", employeePageQueryDTO);
+ PageResult pageResult = employeeService.pageQuery(employeePageQueryDTO);
+ return Result.success(pageResult);
+ }
+
+ @PostMapping("/status/{status}")
+ @ApiOperation("启用禁用员工账号")
+ public Result startOrStop(@PathVariable Integer status, Long id) {
+ log.info("启用禁用员工账号:{},{}", status, id);
+ employeeService.startOrStop(status, id);
+ return Result.success();
+ }
+
+ @GetMapping("/{id}")
+ @ApiOperation("根据id查询员工信息")
+ public Result getById(@PathVariable Long id) {
+ Employee employee = employeeService.getById(id);
+ return Result.success(employee);
+ }
+
+ @PutMapping
+ @ApiOperation("编辑员工信息")
+ public Result update(@RequestBody EmployeeDTO employeeDTO) {
+ log.info("编辑员工信息:{}", employeeDTO);
+ employeeService.update(employeeDTO);
+ return Result.success();
+ }
+
+ @PutMapping("editPassword")
+ @ApiOperation("修改密码")
+ public Result editPassword(@RequestBody PasswordEditDTO passwordEditDTO) {
+ log.info("修改密码:{}", passwordEditDTO);
+ employeeService.editPassword(passwordEditDTO);
+ return Result.success();
+ }
+}
diff --git a/sky-server/src/main/java/com/sky/controller/admin/OrderController.java b/sky-server/src/main/java/com/sky/controller/admin/OrderController.java
new file mode 100644
index 0000000..db31b74
--- /dev/null
+++ b/sky-server/src/main/java/com/sky/controller/admin/OrderController.java
@@ -0,0 +1,84 @@
+package com.sky.controller.admin;
+
+import com.sky.common.result.PageResult;
+import com.sky.common.result.Result;
+import com.sky.pojo.dto.OrdersCancelDTO;
+import com.sky.pojo.dto.OrdersConfirmDTO;
+import com.sky.pojo.dto.OrdersPageQueryDTO;
+import com.sky.pojo.dto.OrdersRejectionDTO;
+import com.sky.pojo.vo.OrderStatisticsVO;
+import com.sky.pojo.vo.OrderVO;
+import com.sky.service.OrderService;
+import com.sky.service.utils.CheckOutOfRangeUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController("adminOrderController")
+@RequestMapping("/admin/order")
+@Slf4j
+@Api(tags = "订单管理接口")
+public class OrderController {
+ @Autowired
+ OrderService orderService;
+ @Autowired
+ CheckOutOfRangeUtils checkOutOfRangeUtils;
+
+ @GetMapping("/conditionSearch")
+ @ApiOperation(value = "订单搜索")
+ public Result> conditionSearch(OrdersPageQueryDTO dto) {
+ PageResult pageResult = orderService.conditionSearch(dto);
+ return Result.success(pageResult);
+ }
+
+ @GetMapping("/statistics")
+ @ApiOperation("各个状态的订单数量统计")
+ public Result statistics() {
+ OrderStatisticsVO orderStatisticsVO = orderService.statistics();
+ return Result.success(orderStatisticsVO);
+ }
+
+ @GetMapping("/details/{id}")
+ @ApiOperation("查询订单详情")
+ public Result details(@PathVariable Long id) {
+ OrderVO details = orderService.details(id);
+ return Result.success(details);
+ }
+
+ @PutMapping("/confirm")
+ @ApiOperation("接单")
+ public Result confirm(@RequestBody OrdersConfirmDTO dto) {
+ orderService.confirm(dto);
+ return Result.success();
+ }
+
+ @PutMapping("/rejection")
+ @ApiOperation("拒单")
+ public Result rejection(@RequestBody OrdersRejectionDTO dto) {
+ orderService.rejection(dto);
+ return Result.success();
+ }
+
+ @PutMapping("/cancel")
+ @ApiOperation("取消订单")
+ public Result cancelBusiness(@RequestBody OrdersCancelDTO dto) throws Exception {
+ orderService.cancelBusiness(dto);
+ return Result.success();
+ }
+
+ @PutMapping("/delivery/{id}")
+ @ApiOperation("派送订单")
+ public Result delivery(@PathVariable("id") Long id) {
+ orderService.delivery(id);
+ return Result.success();
+ }
+
+ @PutMapping("/complete/{id}")
+ @ApiOperation("完成订单")
+ public Result complete(@PathVariable("id") Long id) {
+ orderService.complete(id);
+ return Result.success();
+ }
+}
diff --git a/sky-server/src/main/java/com/sky/controller/admin/ReportController.java b/sky-server/src/main/java/com/sky/controller/admin/ReportController.java
new file mode 100644
index 0000000..2a57b00
--- /dev/null
+++ b/sky-server/src/main/java/com/sky/controller/admin/ReportController.java
@@ -0,0 +1,71 @@
+package com.sky.controller.admin;
+
+import com.sky.common.result.Result;
+import com.sky.pojo.vo.OrderReportVO;
+import com.sky.pojo.vo.SalesTop10ReportVO;
+import com.sky.pojo.vo.TurnoverReportVO;
+import com.sky.pojo.vo.UserReportVO;
+import com.sky.service.ReportService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDate;
+
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/admin/report")
+@Slf4j
+@Api(tags = "统计报表相关接口")
+public class ReportController {
+ private final ReportService reportService;
+
+ @GetMapping("/turnoverStatistics")
+ @ApiOperation(value = "营业额数据统计")
+ public Result turnoverStatistics(@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin, @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {
+ log.info("营业额数据统计:开始时间:{},结束时间:{}", begin, end);
+ TurnoverReportVO turnover = reportService.getTurnover(begin, end);
+ return Result.success(turnover);
+ }
+
+ @GetMapping("/userStatistics")
+ @ApiOperation(value = "用户数据统计")
+ public Result userStatistics(
+ @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
+ @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {
+ log.info("用户数据统计:开始时间:{},结束时间:{}", begin, end);
+ UserReportVO userStatistics = reportService.getUserStatistics(begin, end);
+ return Result.success(userStatistics);
+ }
+
+ @GetMapping("ordersStatistics")
+ @ApiOperation(value = "订单统计接口")
+ public Result ordersStatistics(@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
+ @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {
+ log.info("订单统计接口:开始时间:{},结束时间:{}", begin, end);
+ OrderReportVO orderReportVO = reportService.getOrdersStatistics(begin, end);
+ return Result.success(orderReportVO);
+ }
+
+ @GetMapping("top10")
+ @ApiOperation(value = "查询销量排名top10接口")
+ public Result top10(@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,
+ @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end) {
+ log.info("订单统计接口:开始时间:{},结束时间:{}", begin, end);
+ SalesTop10ReportVO top10Report = reportService.getTop10Statistics(begin, end);
+ return Result.success(top10Report);
+ }
+
+ @GetMapping("export")
+ @ApiOperation(value = "导出Excel报表接口")
+ public void export(HttpServletResponse response) {
+ log.info("导出Excel报表接口");
+ reportService.exportBusinessData(response);
+ }
+}
diff --git a/sky-server/src/main/java/com/sky/controller/admin/SetMealController.java b/sky-server/src/main/java/com/sky/controller/admin/SetMealController.java
new file mode 100644
index 0000000..fd8c380
--- /dev/null
+++ b/sky-server/src/main/java/com/sky/controller/admin/SetMealController.java
@@ -0,0 +1,77 @@
+package com.sky.controller.admin;
+
+import com.sky.common.result.PageResult;
+import com.sky.common.result.Result;
+import com.sky.pojo.dto.SetmealDTO;
+import com.sky.pojo.dto.SetmealPageQueryDTO;
+import com.sky.pojo.vo.SetmealVO;
+import com.sky.service.SetmealService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.CacheEvict;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/admin/setmeal")
+@Slf4j
+@Api(tags = "套餐相关接口")
+public class SetMealController {
+ @Autowired
+ SetmealService setmealService;
+
+ @GetMapping("page")
+ @ApiOperation("分页查询")
+ public Result> page(SetmealPageQueryDTO dto) {
+ log.info("分页查询:{}", dto);
+ PageResult pageResult = setmealService.pageQuery(dto);
+ return Result.success(pageResult);
+ }
+
+ @GetMapping("{id}")
+ @ApiOperation("根据id查询套餐")
+ public Result page4Id(@PathVariable Long id) {
+ log.info("根据id查询套餐:{}", id);
+ SetmealVO setmealVO = setmealService.page4Id(id);
+ return Result.success(setmealVO);
+ }
+
+ @PutMapping()
+ @ApiOperation("修改套餐")
+ @CacheEvict(cacheNames = "setmealCache", allEntries = true)
+ public Result update(@RequestBody SetmealDTO setmealDTO) {
+ log.info("修改套餐:{}", setmealDTO);
+ setmealService.update(setmealDTO);
+ return Result.success();
+ }
+
+ @PostMapping("")
+ @ApiOperation("新增套餐")
+ @CacheEvict(cacheNames = "setmealCache", key = "#setmealDTO.categoryId")
+ public Result setmeal(@RequestBody SetmealDTO setmealDTO) {
+ log.info("新增套餐:{}", setmealDTO);
+ setmealService.insert(setmealDTO);
+ return Result.success();
+ }
+
+ @PostMapping("status/{status}")
+ @ApiOperation("套餐起售、停售")
+ @CacheEvict(cacheNames = "setmealCache", allEntries = true)
+ public Result updateStatus(@PathVariable Integer status, Long id) {
+ log.info("套餐起售、停售,状态:{},id:{}", status, id);
+ setmealService.updateStatus(status, id);
+ return Result.success();
+ }
+
+ @DeleteMapping("")
+ @ApiOperation("批量删除套餐")
+ @CacheEvict(cacheNames = "setmealCache", allEntries = true)
+ public Result delete(@RequestParam List ids) {
+ log.info("批量删除套餐:{}", ids);
+ setmealService.delete(ids);
+ return Result.success();
+ }
+}
diff --git a/sky-server/src/main/java/com/sky/controller/admin/ShopController.java b/sky-server/src/main/java/com/sky/controller/admin/ShopController.java
new file mode 100644
index 0000000..dbffe9f
--- /dev/null
+++ b/sky-server/src/main/java/com/sky/controller/admin/ShopController.java
@@ -0,0 +1,40 @@
+package com.sky.controller.admin;
+
+import com.sky.common.constant.MessageConstant;
+import com.sky.common.result.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.bind.annotation.*;
+
+@RestController("adminShopController")
+@RequiredArgsConstructor
+@RequestMapping("/admin/shop")
+@Api(tags = "店铺相关接口")
+@Slf4j
+public class ShopController {
+ public static final String KEY = "SHOP_STATUS";
+ private final RedisTemplate