From 641b03e8e24ab908a7491c15bee4132e2be1324a Mon Sep 17 00:00:00 2001 From: liqi Date: Sun, 11 Jan 2026 18:14:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96v1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 8 + .idea/compiler.xml | 18 + .idea/encodings.xml | 6 + .idea/jarRepositories.xml | 20 + .idea/misc.xml | 12 + .idea/vcs.xml | 6 + 1 | 118 ++++ README.md | 171 +++++ pom.xml | 157 +++++ .../java/com/nlshop/NlShopApplication.java | 13 + .../com/nlshop/config/StartupUrlPrinter.java | 142 ++++ .../java/com/nlshop/config/WebMvcConfig.java | 71 ++ .../merchant/AnnouncementController.java | 59 ++ .../merchant/InventoryController.java | 80 +++ .../merchant/MerchantController.java | 80 +++ .../merchant/MessageController.java | 41 ++ .../merchant/OrderManageController.java | 78 +++ .../merchant/ProductManageController.java | 222 ++++++ .../controller/merchant/ReviewController.java | 67 ++ .../merchant/StatisticsController.java | 79 +++ .../merchant/UserManageController.java | 31 + .../user/AnnouncementController.java | 23 + .../controller/user/CartController.java | 116 ++++ .../controller/user/MessageController.java | 41 ++ .../controller/user/OrderController.java | 88 +++ .../controller/user/ProductController.java | 80 +++ .../controller/user/RecommendController.java | 28 + .../controller/user/ReviewController.java | 97 +++ .../controller/user/UserController.java | 145 ++++ .../nlshop/dto/request/CartAddRequest.java | 19 + .../com/nlshop/dto/request/LoginRequest.java | 13 + .../dto/request/MerchantRegisterRequest.java | 21 + .../dto/request/OrderCreateRequest.java | 17 + .../nlshop/dto/request/PaymentRequest.java | 10 + .../dto/request/UserRegisterRequest.java | 24 + .../com/nlshop/dto/response/ApiResponse.java | 40 ++ .../nlshop/dto/response/LoginResponse.java | 12 + .../dto/response/OrderDetailResponse.java | 25 + .../com/nlshop/dto/response/PageResponse.java | 23 + .../java/com/nlshop/entity/Announcement.java | 15 + src/main/java/com/nlshop/entity/CartItem.java | 21 + .../java/com/nlshop/entity/Inventory.java | 17 + .../java/com/nlshop/entity/InventoryLog.java | 15 + src/main/java/com/nlshop/entity/Merchant.java | 19 + src/main/java/com/nlshop/entity/Message.java | 21 + src/main/java/com/nlshop/entity/Order.java | 25 + .../java/com/nlshop/entity/OrderItem.java | 19 + .../java/com/nlshop/entity/OrderTrack.java | 13 + src/main/java/com/nlshop/entity/Product.java | 18 + .../java/com/nlshop/entity/ProductCustom.java | 13 + .../java/com/nlshop/entity/ProductSpec.java | 12 + .../com/nlshop/entity/ProductTopping.java | 12 + src/main/java/com/nlshop/entity/Review.java | 20 + src/main/java/com/nlshop/entity/User.java | 19 + .../java/com/nlshop/entity/UserAddress.java | 15 + .../java/com/nlshop/entity/UserBehavior.java | 15 + .../com/nlshop/entity/UserSimilarity.java | 13 + .../nlshop/exception/BusinessException.java | 18 + .../exception/GlobalExceptionHandler.java | 54 ++ .../nlshop/interceptor/AuthInterceptor.java | 74 ++ .../com/nlshop/mapper/AnnouncementMapper.java | 15 + .../java/com/nlshop/mapper/CartMapper.java | 21 + .../com/nlshop/mapper/InventoryLogMapper.java | 11 + .../com/nlshop/mapper/InventoryMapper.java | 17 + .../com/nlshop/mapper/MerchantMapper.java | 12 + .../java/com/nlshop/mapper/MessageMapper.java | 14 + .../com/nlshop/mapper/OrderItemMapper.java | 12 + .../java/com/nlshop/mapper/OrderMapper.java | 22 + .../com/nlshop/mapper/OrderTrackMapper.java | 11 + .../nlshop/mapper/ProductCustomMapper.java | 15 + .../java/com/nlshop/mapper/ProductMapper.java | 17 + .../com/nlshop/mapper/ProductSpecMapper.java | 15 + .../nlshop/mapper/ProductToppingMapper.java | 15 + .../java/com/nlshop/mapper/ReviewMapper.java | 17 + .../com/nlshop/mapper/UserAddressMapper.java | 15 + .../com/nlshop/mapper/UserBehaviorMapper.java | 19 + .../java/com/nlshop/mapper/UserMapper.java | 16 + .../nlshop/mapper/UserSimilarityMapper.java | 13 + .../CollaborativeFilteringService.java | 324 +++++++++ .../service/merchant/AnnouncementService.java | 42 ++ .../service/merchant/InventoryService.java | 109 +++ .../service/merchant/MerchantService.java | 47 ++ .../service/merchant/MessageService.java | 34 + .../service/merchant/OrderManageService.java | 126 ++++ .../merchant/ProductManageService.java | 161 +++++ .../service/merchant/ReviewService.java | 57 ++ .../service/merchant/StatisticsService.java | 136 ++++ .../service/merchant/UserManageService.java | 25 + .../com/nlshop/service/user/CartService.java | 127 ++++ .../nlshop/service/user/MessageService.java | 31 + .../com/nlshop/service/user/OrderService.java | 239 +++++++ .../nlshop/service/user/ProductService.java | 77 +++ .../nlshop/service/user/RecommendService.java | 19 + .../com/nlshop/service/user/UserService.java | 113 +++ .../java/com/nlshop/util/FileUploadUtil.java | 70 ++ .../java/com/nlshop/util/OrderNoUtil.java | 16 + .../java/com/nlshop/util/PasswordUtil.java | 25 + src/main/resources/application-dev.yml | 5 + src/main/resources/application.yml | 47 ++ src/main/resources/db/schema.sql | 248 +++++++ .../resources/mapper/AnnouncementMapper.xml | 45 ++ src/main/resources/mapper/CartMapper.xml | 95 +++ .../resources/mapper/InventoryLogMapper.xml | 21 + src/main/resources/mapper/InventoryMapper.xml | 55 ++ src/main/resources/mapper/MerchantMapper.xml | 43 ++ src/main/resources/mapper/MessageMapper.xml | 42 ++ src/main/resources/mapper/OrderItemMapper.xml | 32 + src/main/resources/mapper/OrderMapper.xml | 107 +++ .../resources/mapper/OrderTrackMapper.xml | 20 + .../resources/mapper/ProductCustomMapper.xml | 38 + src/main/resources/mapper/ProductMapper.xml | 71 ++ .../resources/mapper/ProductSpecMapper.xml | 37 + .../resources/mapper/ProductToppingMapper.xml | 37 + src/main/resources/mapper/ReviewMapper.xml | 53 ++ .../resources/mapper/UserAddressMapper.xml | 45 ++ .../resources/mapper/UserBehaviorMapper.xml | 62 ++ src/main/resources/mapper/UserMapper.xml | 51 ++ .../resources/mapper/UserSimilarityMapper.xml | 31 + src/main/resources/static/js/cookie-utils.js | 70 ++ src/main/resources/static/js/custom-modal.js | 356 ++++++++++ .../resources/static/js/merchant-common.js | 338 +++++++++ .../resources/static/js/merchant-sidebar.js | 297 ++++++++ .../resources/static/js/sidebar-replacer.js | 300 ++++++++ .../resources/static/js/ui-enhancements.js | 289 ++++++++ .../3a9cb9e4-97a9-4be5-ba2f-6939bebe5ba5.jpg | Bin 0 -> 117102 bytes .../ad501998-b3c1-4568-ae4f-31e2d9ce0e3d.jpg | Bin 0 -> 235292 bytes .../f6f49393-42c0-4c27-92fe-5d54aa04888f.jpg | Bin 0 -> 136463 bytes .../templates/merchant/announcements.html | 291 ++++++++ .../templates/merchant/common/sidebar.html | 283 ++++++++ .../templates/merchant/dashboard.html | 413 +++++++++++ .../templates/merchant/inventory.html | 466 +++++++++++++ .../resources/templates/merchant/login.html | 81 +++ .../templates/merchant/messages.html | 209 ++++++ .../resources/templates/merchant/orders.html | 503 ++++++++++++++ .../templates/merchant/product-edit.html | 651 +++++++++++++++++ .../templates/merchant/products.html | 470 +++++++++++++ .../templates/merchant/register.html | 120 ++++ .../resources/templates/merchant/reviews.html | 212 ++++++ .../templates/merchant/statistics.html | 491 +++++++++++++ .../resources/templates/merchant/users.html | 163 +++++ src/main/resources/templates/user/cart.html | 389 +++++++++++ .../resources/templates/user/checkout.html | 616 +++++++++++++++++ src/main/resources/templates/user/index.html | 652 ++++++++++++++++++ src/main/resources/templates/user/login.html | 236 +++++++ .../templates/user/order-detail.html | 356 ++++++++++ src/main/resources/templates/user/orders.html | 441 ++++++++++++ .../templates/user/payment-success.html | 214 ++++++ .../resources/templates/user/payment.html | 348 ++++++++++ .../templates/user/product-detail.html | 356 ++++++++++ .../resources/templates/user/profile.html | 401 +++++++++++ .../resources/templates/user/register.html | 184 +++++ target/classes/application-dev.yml | 5 + target/classes/application.yml | 47 ++ .../com/nlshop/NlShopApplication.class | Bin 0 -> 812 bytes .../com/nlshop/config/StartupUrlPrinter.class | Bin 0 -> 8810 bytes .../com/nlshop/config/WebMvcConfig.class | Bin 0 -> 4370 bytes .../merchant/AnnouncementController.class | Bin 0 -> 4058 bytes .../merchant/InventoryController.class | Bin 0 -> 4683 bytes .../merchant/MerchantController.class | Bin 0 -> 4935 bytes .../merchant/MessageController.class | Bin 0 -> 2945 bytes .../merchant/OrderManageController.class | Bin 0 -> 4422 bytes .../merchant/ProductManageController.class | Bin 0 -> 11838 bytes .../merchant/ReviewController.class | Bin 0 -> 3650 bytes .../merchant/StatisticsController.class | Bin 0 -> 4043 bytes .../merchant/UserManageController.class | Bin 0 -> 2273 bytes .../user/AnnouncementController.class | Bin 0 -> 1426 bytes .../controller/user/CartController.class | Bin 0 -> 6002 bytes .../controller/user/MessageController.class | Bin 0 -> 2787 bytes .../controller/user/OrderController.class | Bin 0 -> 5092 bytes .../controller/user/ProductController.class | Bin 0 -> 5153 bytes .../controller/user/RecommendController.class | Bin 0 -> 1860 bytes .../controller/user/ReviewController.class | Bin 0 -> 5692 bytes .../controller/user/UserController.class | Bin 0 -> 8082 bytes .../nlshop/dto/request/CartAddRequest.class | Bin 0 -> 4173 bytes .../com/nlshop/dto/request/LoginRequest.class | Bin 0 -> 2151 bytes .../dto/request/MerchantRegisterRequest.class | Bin 0 -> 4472 bytes .../dto/request/OrderCreateRequest.class | Bin 0 -> 2874 bytes .../nlshop/dto/request/PaymentRequest.class | Bin 0 -> 1711 bytes .../dto/request/UserRegisterRequest.class | Bin 0 -> 4654 bytes .../com/nlshop/dto/response/ApiResponse.class | Bin 0 -> 4313 bytes .../nlshop/dto/response/LoginResponse.class | Bin 0 -> 3308 bytes .../dto/response/OrderDetailResponse.class | Bin 0 -> 4298 bytes .../nlshop/dto/response/PageResponse.class | Bin 0 -> 4695 bytes .../com/nlshop/entity/Announcement.class | Bin 0 -> 4343 bytes .../classes/com/nlshop/entity/CartItem.class | Bin 0 -> 6481 bytes .../classes/com/nlshop/entity/Inventory.class | Bin 0 -> 4924 bytes .../com/nlshop/entity/InventoryLog.class | Bin 0 -> 4005 bytes .../classes/com/nlshop/entity/Merchant.class | Bin 0 -> 6187 bytes .../classes/com/nlshop/entity/Message.class | Bin 0 -> 6359 bytes target/classes/com/nlshop/entity/Order.class | Bin 0 -> 8077 bytes .../classes/com/nlshop/entity/OrderItem.class | Bin 0 -> 6316 bytes .../com/nlshop/entity/OrderTrack.class | Bin 0 -> 3408 bytes .../classes/com/nlshop/entity/Product.class | Bin 0 -> 5374 bytes .../com/nlshop/entity/ProductCustom.class | Bin 0 -> 3460 bytes .../com/nlshop/entity/ProductSpec.class | Bin 0 -> 2970 bytes .../com/nlshop/entity/ProductTopping.class | Bin 0 -> 2961 bytes target/classes/com/nlshop/entity/Review.class | Bin 0 -> 5878 bytes target/classes/com/nlshop/entity/User.class | Bin 0 -> 6172 bytes .../com/nlshop/entity/UserAddress.class | Bin 0 -> 4430 bytes .../com/nlshop/entity/UserBehavior.class | Bin 0 -> 3949 bytes .../com/nlshop/entity/UserSimilarity.class | Bin 0 -> 3089 bytes .../nlshop/exception/BusinessException.class | Bin 0 -> 799 bytes .../exception/GlobalExceptionHandler.class | Bin 0 -> 4223 bytes .../nlshop/interceptor/AuthInterceptor.class | Bin 0 -> 2542 bytes .../nlshop/mapper/AnnouncementMapper.class | Bin 0 -> 775 bytes .../com/nlshop/mapper/CartMapper.class | Bin 0 -> 1371 bytes .../nlshop/mapper/InventoryLogMapper.class | Bin 0 -> 490 bytes .../com/nlshop/mapper/InventoryMapper.class | Bin 0 -> 941 bytes .../com/nlshop/mapper/MerchantMapper.class | Bin 0 -> 514 bytes .../com/nlshop/mapper/MessageMapper.class | Bin 0 -> 638 bytes .../com/nlshop/mapper/OrderItemMapper.class | Bin 0 -> 558 bytes .../com/nlshop/mapper/OrderMapper.class | Bin 0 -> 1445 bytes .../com/nlshop/mapper/OrderTrackMapper.class | Bin 0 -> 476 bytes .../nlshop/mapper/ProductCustomMapper.class | Bin 0 -> 701 bytes .../com/nlshop/mapper/ProductMapper.class | Bin 0 -> 1214 bytes .../com/nlshop/mapper/ProductSpecMapper.class | Bin 0 -> 689 bytes .../nlshop/mapper/ProductToppingMapper.class | Bin 0 -> 707 bytes .../com/nlshop/mapper/ReviewMapper.class | Bin 0 -> 968 bytes .../com/nlshop/mapper/UserAddressMapper.class | Bin 0 -> 690 bytes .../nlshop/mapper/UserBehaviorMapper.class | Bin 0 -> 1245 bytes .../com/nlshop/mapper/UserMapper.class | Bin 0 -> 803 bytes .../nlshop/mapper/UserSimilarityMapper.class | Bin 0 -> 796 bytes .../CollaborativeFilteringService.class | Bin 0 -> 12622 bytes .../merchant/AnnouncementService.class | Bin 0 -> 2191 bytes .../service/merchant/InventoryService.class | Bin 0 -> 4168 bytes .../service/merchant/MerchantService.class | Bin 0 -> 2615 bytes .../service/merchant/MessageService.class | Bin 0 -> 1818 bytes .../service/merchant/OrderManageService.class | Bin 0 -> 6477 bytes .../merchant/ProductManageService.class | Bin 0 -> 7405 bytes .../service/merchant/ReviewService.class | Bin 0 -> 2571 bytes .../service/merchant/StatisticsService.class | Bin 0 -> 9171 bytes .../service/merchant/UserManageService.class | Bin 0 -> 1782 bytes .../com/nlshop/service/user/CartService.class | Bin 0 -> 6362 bytes .../nlshop/service/user/MessageService.class | Bin 0 -> 1675 bytes .../nlshop/service/user/OrderService$1.class | Bin 0 -> 794 bytes .../nlshop/service/user/OrderService$2.class | Bin 0 -> 794 bytes .../nlshop/service/user/OrderService.class | Bin 0 -> 10500 bytes .../nlshop/service/user/ProductService.class | Bin 0 -> 5473 bytes .../service/user/RecommendService.class | Bin 0 -> 948 bytes .../com/nlshop/service/user/UserService.class | Bin 0 -> 4689 bytes .../com/nlshop/util/FileUploadUtil.class | Bin 0 -> 3204 bytes .../classes/com/nlshop/util/OrderNoUtil.class | Bin 0 -> 1410 bytes .../com/nlshop/util/PasswordUtil.class | Bin 0 -> 1711 bytes target/classes/db/schema.sql | 248 +++++++ target/classes/mapper/AnnouncementMapper.xml | 45 ++ target/classes/mapper/CartMapper.xml | 95 +++ target/classes/mapper/InventoryLogMapper.xml | 21 + target/classes/mapper/InventoryMapper.xml | 55 ++ target/classes/mapper/MerchantMapper.xml | 43 ++ target/classes/mapper/MessageMapper.xml | 42 ++ target/classes/mapper/OrderItemMapper.xml | 32 + target/classes/mapper/OrderMapper.xml | 107 +++ target/classes/mapper/OrderTrackMapper.xml | 20 + target/classes/mapper/ProductCustomMapper.xml | 38 + target/classes/mapper/ProductMapper.xml | 71 ++ target/classes/mapper/ProductSpecMapper.xml | 37 + .../classes/mapper/ProductToppingMapper.xml | 37 + target/classes/mapper/ReviewMapper.xml | 53 ++ target/classes/mapper/UserAddressMapper.xml | 45 ++ target/classes/mapper/UserBehaviorMapper.xml | 62 ++ target/classes/mapper/UserMapper.xml | 51 ++ .../classes/mapper/UserSimilarityMapper.xml | 31 + target/classes/static/js/cookie-utils.js | 70 ++ target/classes/static/js/custom-modal.js | 356 ++++++++++ target/classes/static/js/merchant-common.js | 338 +++++++++ target/classes/static/js/merchant-sidebar.js | 297 ++++++++ target/classes/static/js/sidebar-replacer.js | 300 ++++++++ target/classes/static/js/ui-enhancements.js | 289 ++++++++ .../3a9cb9e4-97a9-4be5-ba2f-6939bebe5ba5.jpg | Bin 0 -> 117102 bytes .../ad501998-b3c1-4568-ae4f-31e2d9ce0e3d.jpg | Bin 0 -> 235292 bytes .../f6f49393-42c0-4c27-92fe-5d54aa04888f.jpg | Bin 0 -> 136463 bytes .../templates/merchant/announcements.html | 291 ++++++++ .../templates/merchant/common/sidebar.html | 283 ++++++++ .../classes/templates/merchant/dashboard.html | 413 +++++++++++ .../classes/templates/merchant/inventory.html | 466 +++++++++++++ target/classes/templates/merchant/login.html | 81 +++ .../classes/templates/merchant/messages.html | 209 ++++++ target/classes/templates/merchant/orders.html | 503 ++++++++++++++ .../templates/merchant/product-edit.html | 651 +++++++++++++++++ .../classes/templates/merchant/products.html | 470 +++++++++++++ .../classes/templates/merchant/register.html | 120 ++++ .../classes/templates/merchant/reviews.html | 212 ++++++ .../templates/merchant/statistics.html | 491 +++++++++++++ target/classes/templates/merchant/users.html | 163 +++++ target/classes/templates/user/cart.html | 389 +++++++++++ target/classes/templates/user/checkout.html | 616 +++++++++++++++++ target/classes/templates/user/index.html | 652 ++++++++++++++++++ target/classes/templates/user/login.html | 236 +++++++ .../classes/templates/user/order-detail.html | 356 ++++++++++ target/classes/templates/user/orders.html | 441 ++++++++++++ .../templates/user/payment-success.html | 214 ++++++ target/classes/templates/user/payment.html | 348 ++++++++++ .../templates/user/product-detail.html | 356 ++++++++++ target/classes/templates/user/profile.html | 401 +++++++++++ target/classes/templates/user/register.html | 184 +++++ z_wb_nc_shop.sql | 506 ++++++++++++++ 系统测试报告.md | 584 ++++++++++++++++ 297 files changed, 28656 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100644 1 create mode 100644 README.md create mode 100644 pom.xml create mode 100644 src/main/java/com/nlshop/NlShopApplication.java create mode 100644 src/main/java/com/nlshop/config/StartupUrlPrinter.java create mode 100644 src/main/java/com/nlshop/config/WebMvcConfig.java create mode 100644 src/main/java/com/nlshop/controller/merchant/AnnouncementController.java create mode 100644 src/main/java/com/nlshop/controller/merchant/InventoryController.java create mode 100644 src/main/java/com/nlshop/controller/merchant/MerchantController.java create mode 100644 src/main/java/com/nlshop/controller/merchant/MessageController.java create mode 100644 src/main/java/com/nlshop/controller/merchant/OrderManageController.java create mode 100644 src/main/java/com/nlshop/controller/merchant/ProductManageController.java create mode 100644 src/main/java/com/nlshop/controller/merchant/ReviewController.java create mode 100644 src/main/java/com/nlshop/controller/merchant/StatisticsController.java create mode 100644 src/main/java/com/nlshop/controller/merchant/UserManageController.java create mode 100644 src/main/java/com/nlshop/controller/user/AnnouncementController.java create mode 100644 src/main/java/com/nlshop/controller/user/CartController.java create mode 100644 src/main/java/com/nlshop/controller/user/MessageController.java create mode 100644 src/main/java/com/nlshop/controller/user/OrderController.java create mode 100644 src/main/java/com/nlshop/controller/user/ProductController.java create mode 100644 src/main/java/com/nlshop/controller/user/RecommendController.java create mode 100644 src/main/java/com/nlshop/controller/user/ReviewController.java create mode 100644 src/main/java/com/nlshop/controller/user/UserController.java create mode 100644 src/main/java/com/nlshop/dto/request/CartAddRequest.java create mode 100644 src/main/java/com/nlshop/dto/request/LoginRequest.java create mode 100644 src/main/java/com/nlshop/dto/request/MerchantRegisterRequest.java create mode 100644 src/main/java/com/nlshop/dto/request/OrderCreateRequest.java create mode 100644 src/main/java/com/nlshop/dto/request/PaymentRequest.java create mode 100644 src/main/java/com/nlshop/dto/request/UserRegisterRequest.java create mode 100644 src/main/java/com/nlshop/dto/response/ApiResponse.java create mode 100644 src/main/java/com/nlshop/dto/response/LoginResponse.java create mode 100644 src/main/java/com/nlshop/dto/response/OrderDetailResponse.java create mode 100644 src/main/java/com/nlshop/dto/response/PageResponse.java create mode 100644 src/main/java/com/nlshop/entity/Announcement.java create mode 100644 src/main/java/com/nlshop/entity/CartItem.java create mode 100644 src/main/java/com/nlshop/entity/Inventory.java create mode 100644 src/main/java/com/nlshop/entity/InventoryLog.java create mode 100644 src/main/java/com/nlshop/entity/Merchant.java create mode 100644 src/main/java/com/nlshop/entity/Message.java create mode 100644 src/main/java/com/nlshop/entity/Order.java create mode 100644 src/main/java/com/nlshop/entity/OrderItem.java create mode 100644 src/main/java/com/nlshop/entity/OrderTrack.java create mode 100644 src/main/java/com/nlshop/entity/Product.java create mode 100644 src/main/java/com/nlshop/entity/ProductCustom.java create mode 100644 src/main/java/com/nlshop/entity/ProductSpec.java create mode 100644 src/main/java/com/nlshop/entity/ProductTopping.java create mode 100644 src/main/java/com/nlshop/entity/Review.java create mode 100644 src/main/java/com/nlshop/entity/User.java create mode 100644 src/main/java/com/nlshop/entity/UserAddress.java create mode 100644 src/main/java/com/nlshop/entity/UserBehavior.java create mode 100644 src/main/java/com/nlshop/entity/UserSimilarity.java create mode 100644 src/main/java/com/nlshop/exception/BusinessException.java create mode 100644 src/main/java/com/nlshop/exception/GlobalExceptionHandler.java create mode 100644 src/main/java/com/nlshop/interceptor/AuthInterceptor.java create mode 100644 src/main/java/com/nlshop/mapper/AnnouncementMapper.java create mode 100644 src/main/java/com/nlshop/mapper/CartMapper.java create mode 100644 src/main/java/com/nlshop/mapper/InventoryLogMapper.java create mode 100644 src/main/java/com/nlshop/mapper/InventoryMapper.java create mode 100644 src/main/java/com/nlshop/mapper/MerchantMapper.java create mode 100644 src/main/java/com/nlshop/mapper/MessageMapper.java create mode 100644 src/main/java/com/nlshop/mapper/OrderItemMapper.java create mode 100644 src/main/java/com/nlshop/mapper/OrderMapper.java create mode 100644 src/main/java/com/nlshop/mapper/OrderTrackMapper.java create mode 100644 src/main/java/com/nlshop/mapper/ProductCustomMapper.java create mode 100644 src/main/java/com/nlshop/mapper/ProductMapper.java create mode 100644 src/main/java/com/nlshop/mapper/ProductSpecMapper.java create mode 100644 src/main/java/com/nlshop/mapper/ProductToppingMapper.java create mode 100644 src/main/java/com/nlshop/mapper/ReviewMapper.java create mode 100644 src/main/java/com/nlshop/mapper/UserAddressMapper.java create mode 100644 src/main/java/com/nlshop/mapper/UserBehaviorMapper.java create mode 100644 src/main/java/com/nlshop/mapper/UserMapper.java create mode 100644 src/main/java/com/nlshop/mapper/UserSimilarityMapper.java create mode 100644 src/main/java/com/nlshop/service/algorithm/CollaborativeFilteringService.java create mode 100644 src/main/java/com/nlshop/service/merchant/AnnouncementService.java create mode 100644 src/main/java/com/nlshop/service/merchant/InventoryService.java create mode 100644 src/main/java/com/nlshop/service/merchant/MerchantService.java create mode 100644 src/main/java/com/nlshop/service/merchant/MessageService.java create mode 100644 src/main/java/com/nlshop/service/merchant/OrderManageService.java create mode 100644 src/main/java/com/nlshop/service/merchant/ProductManageService.java create mode 100644 src/main/java/com/nlshop/service/merchant/ReviewService.java create mode 100644 src/main/java/com/nlshop/service/merchant/StatisticsService.java create mode 100644 src/main/java/com/nlshop/service/merchant/UserManageService.java create mode 100644 src/main/java/com/nlshop/service/user/CartService.java create mode 100644 src/main/java/com/nlshop/service/user/MessageService.java create mode 100644 src/main/java/com/nlshop/service/user/OrderService.java create mode 100644 src/main/java/com/nlshop/service/user/ProductService.java create mode 100644 src/main/java/com/nlshop/service/user/RecommendService.java create mode 100644 src/main/java/com/nlshop/service/user/UserService.java create mode 100644 src/main/java/com/nlshop/util/FileUploadUtil.java create mode 100644 src/main/java/com/nlshop/util/OrderNoUtil.java create mode 100644 src/main/java/com/nlshop/util/PasswordUtil.java create mode 100644 src/main/resources/application-dev.yml create mode 100644 src/main/resources/application.yml create mode 100644 src/main/resources/db/schema.sql create mode 100644 src/main/resources/mapper/AnnouncementMapper.xml create mode 100644 src/main/resources/mapper/CartMapper.xml create mode 100644 src/main/resources/mapper/InventoryLogMapper.xml create mode 100644 src/main/resources/mapper/InventoryMapper.xml create mode 100644 src/main/resources/mapper/MerchantMapper.xml create mode 100644 src/main/resources/mapper/MessageMapper.xml create mode 100644 src/main/resources/mapper/OrderItemMapper.xml create mode 100644 src/main/resources/mapper/OrderMapper.xml create mode 100644 src/main/resources/mapper/OrderTrackMapper.xml create mode 100644 src/main/resources/mapper/ProductCustomMapper.xml create mode 100644 src/main/resources/mapper/ProductMapper.xml create mode 100644 src/main/resources/mapper/ProductSpecMapper.xml create mode 100644 src/main/resources/mapper/ProductToppingMapper.xml create mode 100644 src/main/resources/mapper/ReviewMapper.xml create mode 100644 src/main/resources/mapper/UserAddressMapper.xml create mode 100644 src/main/resources/mapper/UserBehaviorMapper.xml create mode 100644 src/main/resources/mapper/UserMapper.xml create mode 100644 src/main/resources/mapper/UserSimilarityMapper.xml create mode 100644 src/main/resources/static/js/cookie-utils.js create mode 100644 src/main/resources/static/js/custom-modal.js create mode 100644 src/main/resources/static/js/merchant-common.js create mode 100644 src/main/resources/static/js/merchant-sidebar.js create mode 100644 src/main/resources/static/js/sidebar-replacer.js create mode 100644 src/main/resources/static/js/ui-enhancements.js create mode 100644 src/main/resources/static/upload/product/3a9cb9e4-97a9-4be5-ba2f-6939bebe5ba5.jpg create mode 100644 src/main/resources/static/upload/product/ad501998-b3c1-4568-ae4f-31e2d9ce0e3d.jpg create mode 100644 src/main/resources/static/upload/product/f6f49393-42c0-4c27-92fe-5d54aa04888f.jpg create mode 100644 src/main/resources/templates/merchant/announcements.html create mode 100644 src/main/resources/templates/merchant/common/sidebar.html create mode 100644 src/main/resources/templates/merchant/dashboard.html create mode 100644 src/main/resources/templates/merchant/inventory.html create mode 100644 src/main/resources/templates/merchant/login.html create mode 100644 src/main/resources/templates/merchant/messages.html create mode 100644 src/main/resources/templates/merchant/orders.html create mode 100644 src/main/resources/templates/merchant/product-edit.html create mode 100644 src/main/resources/templates/merchant/products.html create mode 100644 src/main/resources/templates/merchant/register.html create mode 100644 src/main/resources/templates/merchant/reviews.html create mode 100644 src/main/resources/templates/merchant/statistics.html create mode 100644 src/main/resources/templates/merchant/users.html create mode 100644 src/main/resources/templates/user/cart.html create mode 100644 src/main/resources/templates/user/checkout.html create mode 100644 src/main/resources/templates/user/index.html create mode 100644 src/main/resources/templates/user/login.html create mode 100644 src/main/resources/templates/user/order-detail.html create mode 100644 src/main/resources/templates/user/orders.html create mode 100644 src/main/resources/templates/user/payment-success.html create mode 100644 src/main/resources/templates/user/payment.html create mode 100644 src/main/resources/templates/user/product-detail.html create mode 100644 src/main/resources/templates/user/profile.html create mode 100644 src/main/resources/templates/user/register.html create mode 100644 target/classes/application-dev.yml create mode 100644 target/classes/application.yml create mode 100644 target/classes/com/nlshop/NlShopApplication.class create mode 100644 target/classes/com/nlshop/config/StartupUrlPrinter.class create mode 100644 target/classes/com/nlshop/config/WebMvcConfig.class create mode 100644 target/classes/com/nlshop/controller/merchant/AnnouncementController.class create mode 100644 target/classes/com/nlshop/controller/merchant/InventoryController.class create mode 100644 target/classes/com/nlshop/controller/merchant/MerchantController.class create mode 100644 target/classes/com/nlshop/controller/merchant/MessageController.class create mode 100644 target/classes/com/nlshop/controller/merchant/OrderManageController.class create mode 100644 target/classes/com/nlshop/controller/merchant/ProductManageController.class create mode 100644 target/classes/com/nlshop/controller/merchant/ReviewController.class create mode 100644 target/classes/com/nlshop/controller/merchant/StatisticsController.class create mode 100644 target/classes/com/nlshop/controller/merchant/UserManageController.class create mode 100644 target/classes/com/nlshop/controller/user/AnnouncementController.class create mode 100644 target/classes/com/nlshop/controller/user/CartController.class create mode 100644 target/classes/com/nlshop/controller/user/MessageController.class create mode 100644 target/classes/com/nlshop/controller/user/OrderController.class create mode 100644 target/classes/com/nlshop/controller/user/ProductController.class create mode 100644 target/classes/com/nlshop/controller/user/RecommendController.class create mode 100644 target/classes/com/nlshop/controller/user/ReviewController.class create mode 100644 target/classes/com/nlshop/controller/user/UserController.class create mode 100644 target/classes/com/nlshop/dto/request/CartAddRequest.class create mode 100644 target/classes/com/nlshop/dto/request/LoginRequest.class create mode 100644 target/classes/com/nlshop/dto/request/MerchantRegisterRequest.class create mode 100644 target/classes/com/nlshop/dto/request/OrderCreateRequest.class create mode 100644 target/classes/com/nlshop/dto/request/PaymentRequest.class create mode 100644 target/classes/com/nlshop/dto/request/UserRegisterRequest.class create mode 100644 target/classes/com/nlshop/dto/response/ApiResponse.class create mode 100644 target/classes/com/nlshop/dto/response/LoginResponse.class create mode 100644 target/classes/com/nlshop/dto/response/OrderDetailResponse.class create mode 100644 target/classes/com/nlshop/dto/response/PageResponse.class create mode 100644 target/classes/com/nlshop/entity/Announcement.class create mode 100644 target/classes/com/nlshop/entity/CartItem.class create mode 100644 target/classes/com/nlshop/entity/Inventory.class create mode 100644 target/classes/com/nlshop/entity/InventoryLog.class create mode 100644 target/classes/com/nlshop/entity/Merchant.class create mode 100644 target/classes/com/nlshop/entity/Message.class create mode 100644 target/classes/com/nlshop/entity/Order.class create mode 100644 target/classes/com/nlshop/entity/OrderItem.class create mode 100644 target/classes/com/nlshop/entity/OrderTrack.class create mode 100644 target/classes/com/nlshop/entity/Product.class create mode 100644 target/classes/com/nlshop/entity/ProductCustom.class create mode 100644 target/classes/com/nlshop/entity/ProductSpec.class create mode 100644 target/classes/com/nlshop/entity/ProductTopping.class create mode 100644 target/classes/com/nlshop/entity/Review.class create mode 100644 target/classes/com/nlshop/entity/User.class create mode 100644 target/classes/com/nlshop/entity/UserAddress.class create mode 100644 target/classes/com/nlshop/entity/UserBehavior.class create mode 100644 target/classes/com/nlshop/entity/UserSimilarity.class create mode 100644 target/classes/com/nlshop/exception/BusinessException.class create mode 100644 target/classes/com/nlshop/exception/GlobalExceptionHandler.class create mode 100644 target/classes/com/nlshop/interceptor/AuthInterceptor.class create mode 100644 target/classes/com/nlshop/mapper/AnnouncementMapper.class create mode 100644 target/classes/com/nlshop/mapper/CartMapper.class create mode 100644 target/classes/com/nlshop/mapper/InventoryLogMapper.class create mode 100644 target/classes/com/nlshop/mapper/InventoryMapper.class create mode 100644 target/classes/com/nlshop/mapper/MerchantMapper.class create mode 100644 target/classes/com/nlshop/mapper/MessageMapper.class create mode 100644 target/classes/com/nlshop/mapper/OrderItemMapper.class create mode 100644 target/classes/com/nlshop/mapper/OrderMapper.class create mode 100644 target/classes/com/nlshop/mapper/OrderTrackMapper.class create mode 100644 target/classes/com/nlshop/mapper/ProductCustomMapper.class create mode 100644 target/classes/com/nlshop/mapper/ProductMapper.class create mode 100644 target/classes/com/nlshop/mapper/ProductSpecMapper.class create mode 100644 target/classes/com/nlshop/mapper/ProductToppingMapper.class create mode 100644 target/classes/com/nlshop/mapper/ReviewMapper.class create mode 100644 target/classes/com/nlshop/mapper/UserAddressMapper.class create mode 100644 target/classes/com/nlshop/mapper/UserBehaviorMapper.class create mode 100644 target/classes/com/nlshop/mapper/UserMapper.class create mode 100644 target/classes/com/nlshop/mapper/UserSimilarityMapper.class create mode 100644 target/classes/com/nlshop/service/algorithm/CollaborativeFilteringService.class create mode 100644 target/classes/com/nlshop/service/merchant/AnnouncementService.class create mode 100644 target/classes/com/nlshop/service/merchant/InventoryService.class create mode 100644 target/classes/com/nlshop/service/merchant/MerchantService.class create mode 100644 target/classes/com/nlshop/service/merchant/MessageService.class create mode 100644 target/classes/com/nlshop/service/merchant/OrderManageService.class create mode 100644 target/classes/com/nlshop/service/merchant/ProductManageService.class create mode 100644 target/classes/com/nlshop/service/merchant/ReviewService.class create mode 100644 target/classes/com/nlshop/service/merchant/StatisticsService.class create mode 100644 target/classes/com/nlshop/service/merchant/UserManageService.class create mode 100644 target/classes/com/nlshop/service/user/CartService.class create mode 100644 target/classes/com/nlshop/service/user/MessageService.class create mode 100644 target/classes/com/nlshop/service/user/OrderService$1.class create mode 100644 target/classes/com/nlshop/service/user/OrderService$2.class create mode 100644 target/classes/com/nlshop/service/user/OrderService.class create mode 100644 target/classes/com/nlshop/service/user/ProductService.class create mode 100644 target/classes/com/nlshop/service/user/RecommendService.class create mode 100644 target/classes/com/nlshop/service/user/UserService.class create mode 100644 target/classes/com/nlshop/util/FileUploadUtil.class create mode 100644 target/classes/com/nlshop/util/OrderNoUtil.class create mode 100644 target/classes/com/nlshop/util/PasswordUtil.class create mode 100644 target/classes/db/schema.sql create mode 100644 target/classes/mapper/AnnouncementMapper.xml create mode 100644 target/classes/mapper/CartMapper.xml create mode 100644 target/classes/mapper/InventoryLogMapper.xml create mode 100644 target/classes/mapper/InventoryMapper.xml create mode 100644 target/classes/mapper/MerchantMapper.xml create mode 100644 target/classes/mapper/MessageMapper.xml create mode 100644 target/classes/mapper/OrderItemMapper.xml create mode 100644 target/classes/mapper/OrderMapper.xml create mode 100644 target/classes/mapper/OrderTrackMapper.xml create mode 100644 target/classes/mapper/ProductCustomMapper.xml create mode 100644 target/classes/mapper/ProductMapper.xml create mode 100644 target/classes/mapper/ProductSpecMapper.xml create mode 100644 target/classes/mapper/ProductToppingMapper.xml create mode 100644 target/classes/mapper/ReviewMapper.xml create mode 100644 target/classes/mapper/UserAddressMapper.xml create mode 100644 target/classes/mapper/UserBehaviorMapper.xml create mode 100644 target/classes/mapper/UserMapper.xml create mode 100644 target/classes/mapper/UserSimilarityMapper.xml create mode 100644 target/classes/static/js/cookie-utils.js create mode 100644 target/classes/static/js/custom-modal.js create mode 100644 target/classes/static/js/merchant-common.js create mode 100644 target/classes/static/js/merchant-sidebar.js create mode 100644 target/classes/static/js/sidebar-replacer.js create mode 100644 target/classes/static/js/ui-enhancements.js create mode 100644 target/classes/static/upload/product/3a9cb9e4-97a9-4be5-ba2f-6939bebe5ba5.jpg create mode 100644 target/classes/static/upload/product/ad501998-b3c1-4568-ae4f-31e2d9ce0e3d.jpg create mode 100644 target/classes/static/upload/product/f6f49393-42c0-4c27-92fe-5d54aa04888f.jpg create mode 100644 target/classes/templates/merchant/announcements.html create mode 100644 target/classes/templates/merchant/common/sidebar.html create mode 100644 target/classes/templates/merchant/dashboard.html create mode 100644 target/classes/templates/merchant/inventory.html create mode 100644 target/classes/templates/merchant/login.html create mode 100644 target/classes/templates/merchant/messages.html create mode 100644 target/classes/templates/merchant/orders.html create mode 100644 target/classes/templates/merchant/product-edit.html create mode 100644 target/classes/templates/merchant/products.html create mode 100644 target/classes/templates/merchant/register.html create mode 100644 target/classes/templates/merchant/reviews.html create mode 100644 target/classes/templates/merchant/statistics.html create mode 100644 target/classes/templates/merchant/users.html create mode 100644 target/classes/templates/user/cart.html create mode 100644 target/classes/templates/user/checkout.html create mode 100644 target/classes/templates/user/index.html create mode 100644 target/classes/templates/user/login.html create mode 100644 target/classes/templates/user/order-detail.html create mode 100644 target/classes/templates/user/orders.html create mode 100644 target/classes/templates/user/payment-success.html create mode 100644 target/classes/templates/user/payment.html create mode 100644 target/classes/templates/user/product-detail.html create mode 100644 target/classes/templates/user/profile.html create mode 100644 target/classes/templates/user/register.html create mode 100644 z_wb_nc_shop.sql create mode 100644 系统测试报告.md diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..35410ca --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/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..f41040f --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..63e9001 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..26f4fe2 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ 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/1 b/1 new file mode 100644 index 0000000..b6aa4e5 --- /dev/null +++ b/1 @@ -0,0 +1,118 @@ +# 奶茶店线上订单系统需求规格说明书 + +## 顾客端功能模块 + +### 1. 用户账户管理 +- 实现用户注册功能,支持上传完整个人信息,包括:姓名(必填)、性别(可选)、手机号码(必填,需短信验证)、密码(需符合安全规范)、收货/取餐地址(支持多地址管理,包含省市区、详细地址、联系人、联系电话、是否默认地址)、头像图片(支持JPG/PNG格式,最大2MB) +- 开发登录功能,支持手机号+密码登录及验证码快捷登录 +- 提供个人信息修改界面,允许用户更新除手机号外的所有注册信息,修改手机号需通过原手机号验证 + +### 2. 奶茶产品选购系统 +- 设计产品分类展示功能,按产品类型(如奶茶类、果茶类、咖啡类等)进行分类导航 +- 实现产品详情页,完整展示产品信息:名称、价格、规格(大/中/小杯)、基础配料、产品图片、营养成分、用户评价 +- 开发个性化定制功能,支持: + - 甜度调节(全糖、七分糖、五分糖、三分糖、无糖) + - 冰度选择(正常冰、少冰、去冰、热饮) + - 配料添加/移除(额外收费配料需明确标注价格) +- 实现"加入购物车"功能,支持选择数量(1-10杯)并加入购物车 + +### 3. 购物车管理系统 +- 开发购物车页面,展示所有已选商品,包含:产品名称、定制信息、单价、数量、小计金额 +- 实现购物车商品管理功能: + - 修改商品数量(1-10杯范围内) + - 移除单个商品 + - 清空购物车 + - 选择/取消选择商品 +- 实时计算并展示所选商品的总计金额 + +### 4. 订单下单与支付流程 +- 开发订单确认页面,展示所选商品清单、定制信息、数量、单价、小计、配送费(如适用)、总计金额 +- 实现收货/取餐地址选择功能,支持从地址库选择或临时添加新地址 +- 集成支付系统,支持微信支付和支付宝两种支付方式 +- 开发订单提交功能,提交后生成唯一订单号,跳转至支付页面 +- 实现支付状态同步,支付成功后跳转至订单成功页面,支付失败提供重试入口 + +### 5. 订单信息查询系统 +- 开发订单中心,按状态分类展示订单: + - 待支付订单(30分钟内未支付自动取消) + - 制作中订单 + - 待取餐/配送中订单 + - 已完成订单 + - 已取消订单 +- 实现订单详情页,展示完整订单信息:订单号、下单时间、商品清单、定制信息、数量、单价、总计金额、支付方式、支付时间、取餐/配送地址、订单状态 + +### 6. 公告信息展示系统 +- 开发公告列表页面,按发布时间倒序展示门店公告 +- 实现公告详情页,完整展示公告内容、发布时间、发布人 +- 支持公告分类:活动公告、通知公告、新品上市等 + +### 7. 在线留言反馈系统 +- 开发留言提交功能,支持用户选择留言类型(点单问题、取餐问题、产品问题、其他建议)并输入详细内容(最多500字),可上传图片(最多3张) +- 实现留言记录查询功能,展示历史留言内容、提交时间、处理状态、商家回复 +- 开发留言通知功能,当商家回复后推送消息提醒用户 + +### 8. 订单跟踪系统 +- 实现订单全流程状态跟踪,展示关键节点时间: + - 订单提交时间 + - 支付完成时间 + - 商家接单时间 + - 开始制作时间 + - 制作完成时间 + - 取餐/配送完成时间 +- 开发订单状态实时更新功能,状态变更时推送消息通知用户 + +## 商家端功能模块 + +### 1. 商家账户与门店管理 +- 实现商家注册功能,支持上传完整门店及负责人信息,包括: + - 门店信息:门店名称、详细地址(需定位确认)、联系电话、营业时间、门店图片(3-5张)、门店简介 + - 负责人信息:姓名、手机号码(需验证)、密码(需符合安全规范)、邮箱(需验证)、头像图片 +- 开发商家登录功能,支持手机号+密码登录 +- 提供信息修改界面,允许商家更新门店信息及负责人信息,修改关键信息(如门店地址、联系电话)需审核 + +### 2. 产品管理系统 +- 开发产品管理功能,支持: + - 新增产品:填写产品名称、选择分类、设置价格、规格(大/中/小杯,可分别定价)、上传产品图片、设置基础配料、添加产品描述 + - 编辑产品:修改现有产品的所有信息 + - 下架产品:支持临时下架和永久删除功能 +- 实现配料管理功能,支持添加、编辑、删除配料,设置配料是否收费及单价 +- 开发产品上下架状态管理,支持批量操作 + +### 3. 订单管理系统 +- 开发新订单提醒功能,当有新订单时通过系统通知和声音提醒 +- 实现订单处理功能: + - 接单/拒单操作(拒单需选择原因) + - 更新订单制作状态(开始制作、制作完成) + - 标记订单状态(待取餐、已完成、已取消) +- 开发订单查询功能,支持按时间(今日/昨日/近7天/自定义)、订单状态、订单号进行查询 +- 实现订单详情查看,展示完整订单信息及客户信息 + +### 4. 库存管理系统 +- 开发原料管理功能,支持添加、编辑、删除原料信息(名称、单位、规格、初始库存) +- 实现库存操作功能: + - 入库记录(原料名称、数量、单价、供应商、入库日期) + - 出库记录(原料名称、数量、用途、出库日期) +- 开发库存预警功能,支持设置各原料的低库存阈值,当库存低于阈值时发出预警提醒 +- 实现库存报表功能,展示当前库存余量、库存变动记录、库存预警列表 + +### 5. 公告发布系统 +- 开发公告编辑功能,支持富文本编辑,可插入图片、链接 +- 实现公告发布功能,支持设置公告类型、发布范围、生效时间 +- 开发公告管理功能,支持查看、编辑、删除已发布公告,置顶重要公告 + +### 6. 评价管理系统 +- 开发评价查看功能,展示用户对产品的评价,包括:评价内容、评分(1-5星)、评价时间、评价图片、对应的订单信息 +- 实现评价回复功能,支持商家对用户评价进行文字回复 +- 开发负面评价处理功能,支持对低分评价(1-2星)进行申诉处理,记录处理结果 + +### 7. 数据统计分析系统 +- 开发销售数据统计功能,支持按日、周、月查看: + - 销售总量(杯数) + - 销售总额 + - 订单数量 + - 客单价 +- 实现热门产品排行功能,按销量和销售额分别排行 +- 开发数据可视化功能,通过图表展示销售趋势、产品销售分布、用户评价分析 +- 支持数据导出功能,可导出Excel格式报表 + +所有功能模块需保证界面友好、操作便捷、响应迅速,并确保数据安全与用户隐私保护。 \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..c4bdf38 --- /dev/null +++ b/README.md @@ -0,0 +1,171 @@ +# 奶茶店管理系统 + +基于Spring Boot + MyBatis + MySQL + Thymeleaf的奶茶店管理系统,包含用户端和商家端两个主要模块,集成协同过滤推荐算法。 + +## 技术栈 + +- **后端框架**: Spring Boot 2.7.18 +- **数据库**: MySQL 8.0+ +- **ORM**: MyBatis +- **认证**: JWT Token +- **前端**: HTML + Thymeleaf + Bootstrap 5 +- **算法**: 协同过滤推荐算法(基于用户的协同过滤) + +## 功能模块 + +### 用户端功能 +1. 用户注册登录 +2. 个人信息管理 +3. 商品浏览(支持分类筛选) +4. 商品个性化定制(甜度、冰度、配料) +5. 购物车管理 +6. 订单下单支付(模拟微信/支付宝) +7. 订单跟踪 +8. 个性化商品推荐(协同过滤算法) +9. 公告查看 +10. 留言反馈 + +### 商家端功能 +1. 商家注册登录 +2. 商家信息管理 +3. 商品管理(新增/编辑/下架) +4. 商品规格和配料管理 +5. 订单管理(接单/拒单/状态更新) +6. 库存管理(入库/出库/预警) +7. 公告发布 +8. 评价管理(查看/回复) +9. 数据统计(日/周/月销量、营收、热门商品) + +## 数据库设计 + +数据库表结构请参考 `src/main/resources/db/schema.sql` + +主要表包括: +- user, user_address - 用户相关 +- merchant - 商家 +- product, product_spec, product_topping, product_custom - 商品相关 +- cart - 购物车 +- order, order_item, order_track - 订单相关 +- inventory, inventory_log - 库存相关 +- announcement - 公告 +- message - 留言反馈 +- review - 评价 +- user_behavior, user_similarity - 协同过滤算法相关 + +## 安装和运行 + +### 1. 环境要求 +- JDK 1.8+ +- Maven 3.6+ +- MySQL 8.0+ + +### 2. 数据库配置 +1. 创建数据库: +```sql +CREATE DATABASE nl_shop CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; +``` + +2. 执行建表SQL: +```bash +mysql -u root -p nl_shop < src/main/resources/db/schema.sql +``` + +3. 修改配置文件 `src/main/resources/application.yml`: +```yaml +spring: + datasource: + url: jdbc:mysql://localhost:3306/nl_shop?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai + username: root + password: your_password +``` + +### 3. 编译运行 +```bash +mvn clean install +mvn spring-boot:run +``` + +### 4. 访问系统 +- 用户端登录: http://localhost:8080/user/login.html +- 商家端登录: http://localhost:8080/merchant/login.html + +## 协同过滤算法 + +系统实现了基于用户的协同过滤推荐算法: + +1. **用户行为记录**: 记录用户的浏览、购买、评分行为 +2. **相似度计算**: 使用余弦相似度计算用户之间的相似度 +3. **推荐生成**: 基于相似用户的偏好生成推荐列表 +4. **冷启动处理**: 新用户推荐热门商品 + +算法实现在 `CollaborativeFilteringService` 中。 + +## API接口 + +### 用户端接口 +- POST `/user/register` - 用户注册 +- POST `/user/login` - 用户登录 +- GET `/user/products` - 商品列表 +- GET `/user/products/{id}` - 商品详情 +- GET `/user/recommend` - 个性化推荐 +- POST `/user/cart/add` - 加入购物车 +- POST `/user/order/create` - 创建订单 +- POST `/user/order/{id}/pay` - 支付订单 + +### 商家端接口 +- POST `/merchant/register` - 商家注册 +- POST `/merchant/login` - 商家登录 +- GET `/merchant/products` - 商品列表 +- POST `/merchant/products` - 新增商品 +- GET `/merchant/orders` - 订单列表 +- PUT `/merchant/orders/{id}/accept` - 接单 +- GET `/merchant/statistics/sales` - 销量统计 + +详细API文档请参考Controller代码。 + +## 项目结构 + +``` +nl_shop/ +├── src/main/java/com/nlshop/ +│ ├── config/ # 配置类 +│ ├── controller/ # 控制器层 +│ │ ├── user/ # 用户端控制器 +│ │ └── merchant/ # 商家端控制器 +│ ├── service/ # 业务逻辑层 +│ │ ├── user/ +│ │ ├── merchant/ +│ │ └── algorithm/ # 协同过滤算法 +│ ├── mapper/ # MyBatis Mapper +│ ├── entity/ # 实体类 +│ ├── dto/ # 数据传输对象 +│ ├── util/ # 工具类 +│ └── interceptor/ # 拦截器 +└── src/main/resources/ + ├── mapper/ # MyBatis XML映射 + ├── templates/ # Thymeleaf模板 + └── db/ # 数据库脚本 +``` + +## 注意事项 + +1. JWT Token默认有效期为24小时,可在 `application.yml` 中配置 +2. 文件上传路径配置在 `application.yml` 的 `file.upload-path` +3. 密码使用MD5加密(生产环境建议使用BCrypt) +4. 支付功能为模拟实现,实际项目需要对接真实支付接口 + +## 开发计划 + +- [x] 项目基础架构 +- [x] 数据库设计 +- [x] 用户端功能 +- [x] 商家端功能 +- [x] 协同过滤算法 +- [x] 前端页面 +- [ ] 单元测试 +- [ ] 性能优化 +- [ ] Redis缓存集成 + +## 许可证 + +MIT License diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..09d084f --- /dev/null +++ b/pom.xml @@ -0,0 +1,157 @@ + + + 4.0.0 + + + org.springframework.boot + spring-boot-starter-parent + 2.7.18 + + + + com.nlshop + nl-shop + 1.0.0 + nl-shop + 奶茶店管理系统 + + + 1.8 + 1.8 + 1.8 + UTF-8 + 3.5.3.1 + 1.4.6 + 0.11.5 + + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.3.1 + + + + + mysql + mysql-connector-java + 8.0.33 + + + + + com.github.pagehelper + pagehelper-spring-boot-starter + ${pagehelper.version} + + + + + io.jsonwebtoken + jjwt-api + ${jjwt.version} + + + io.jsonwebtoken + jjwt-impl + ${jjwt.version} + runtime + + + io.jsonwebtoken + jjwt-jackson + ${jjwt.version} + runtime + + + + + org.projectlombok + lombok + true + + + + + org.springframework.boot + spring-boot-starter-validation + + + + + org.apache.commons + commons-lang3 + + + + + com.alibaba + fastjson + 2.0.43 + + + + + commons-fileupload + commons-fileupload + 1.5 + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + UTF-8 + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + + diff --git a/src/main/java/com/nlshop/NlShopApplication.java b/src/main/java/com/nlshop/NlShopApplication.java new file mode 100644 index 0000000..128752b --- /dev/null +++ b/src/main/java/com/nlshop/NlShopApplication.java @@ -0,0 +1,13 @@ +package com.nlshop; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +@MapperScan("com.nlshop.mapper") +public class NlShopApplication { + public static void main(String[] args) { + SpringApplication.run(NlShopApplication.class, args); + } +} diff --git a/src/main/java/com/nlshop/config/StartupUrlPrinter.java b/src/main/java/com/nlshop/config/StartupUrlPrinter.java new file mode 100644 index 0000000..d4f0b3a --- /dev/null +++ b/src/main/java/com/nlshop/config/StartupUrlPrinter.java @@ -0,0 +1,142 @@ +package com.nlshop.config; + +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.ApplicationListener; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.mvc.method.RequestMappingInfo; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +@Component +@Order(1) +public class StartupUrlPrinter implements ApplicationListener { + + @Override + public void onApplicationEvent(ApplicationReadyEvent event) { + RequestMappingHandlerMapping mapping = event.getApplicationContext() + .getBean(RequestMappingHandlerMapping.class); + + String baseUrl = "http://localhost:14001"; + int port = event.getApplicationContext().getEnvironment() + .getProperty("server.port", Integer.class, 14001); + if (port != 14001) { + baseUrl = "http://localhost:" + port; + } + + List userPages = new ArrayList<>(); + List userApis = new ArrayList<>(); + List merchantPages = new ArrayList<>(); + List merchantApis = new ArrayList<>(); + + Map handlerMethods = mapping.getHandlerMethods(); + + for (Map.Entry entry : handlerMethods.entrySet()) { + RequestMappingInfo mappingInfo = entry.getKey(); + HandlerMethod handlerMethod = entry.getValue(); + + // 检查patternsCondition是否为null + if (mappingInfo.getPatternsCondition() == null) { + continue; + } + + Set patterns = mappingInfo.getPatternsCondition().getPatterns(); + if (patterns == null || patterns.isEmpty()) { + continue; + } + + for (String pattern : patterns) { + String url = baseUrl + pattern; + String className = handlerMethod.getBeanType().getSimpleName(); + + if (pattern.startsWith("/merchant")) { + if (pattern.endsWith(".html")) { + merchantPages.add(url); + } else { + merchantApis.add(url + " [" + getHttpMethods(mappingInfo) + "]"); + } + } else if (!pattern.startsWith("/error") && !pattern.startsWith("/static") + && !pattern.startsWith("/upload") && !pattern.equals("/")) { + if (pattern.endsWith(".html")) { + userPages.add(url); + } else { + userApis.add(url + " [" + getHttpMethods(mappingInfo) + "]"); + } + } + } + } + + // 添加视图控制器映射的页面 + userPages.add(baseUrl + "/login.html"); + userPages.add(baseUrl + "/register.html"); + userPages.add(baseUrl + "/index.html"); + userPages.add(baseUrl + "/cart.html"); + userPages.add(baseUrl + "/orders.html"); + userPages.add(baseUrl + "/order-detail.html"); + userPages.add(baseUrl + "/product-detail.html"); + userPages.add(baseUrl + "/checkout.html"); + userPages.add(baseUrl + "/profile.html"); + + merchantPages.add(baseUrl + "/merchant/login.html"); + merchantPages.add(baseUrl + "/merchant/dashboard.html"); + merchantPages.add(baseUrl + "/merchant/products.html"); + merchantPages.add(baseUrl + "/merchant/orders.html"); + + // 打印所有URL + printUrls("用户端页面", userPages, baseUrl); + printUrls("用户端API", userApis, baseUrl); + printUrls("商家端页面", merchantPages, baseUrl); + printUrls("商家端API", merchantApis, baseUrl); + } + + private String getHttpMethods(RequestMappingInfo mappingInfo) { + if (mappingInfo.getMethodsCondition() == null) { + return "GET"; + } + + Set methods = mappingInfo.getMethodsCondition().getMethods().stream() + .map(m -> m.name()) + .collect(Collectors.toSet()); + if (methods.isEmpty()) { + return "GET"; + } + StringBuilder sb = new StringBuilder(); + for (String method : methods) { + if (sb.length() > 0) { + sb.append(","); + } + sb.append(method); + } + return sb.toString(); + } + + private void printUrls(String category, List urls, String baseUrl) { + if (urls.isEmpty()) return; + + String separator = createSeparator(80); + System.out.println("\n" + separator); + System.out.println("📋 " + category + " (" + urls.size() + " 个)"); + System.out.println(separator); + + for (int i = 0; i < urls.size(); i++) { + String url = urls.get(i); + System.out.println(String.format("%3d. %s", i + 1, url)); + } + + System.out.println(separator); + } + + private String createSeparator(int length) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < length; i++) { + sb.append("="); + } + return sb.toString(); + } +} diff --git a/src/main/java/com/nlshop/config/WebMvcConfig.java b/src/main/java/com/nlshop/config/WebMvcConfig.java new file mode 100644 index 0000000..83a2ddc --- /dev/null +++ b/src/main/java/com/nlshop/config/WebMvcConfig.java @@ -0,0 +1,71 @@ +package com.nlshop.config; + +import com.nlshop.interceptor.AuthInterceptor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebMvcConfig implements WebMvcConfigurer { + + @Autowired + private AuthInterceptor authInterceptor; + + @Override + public void addViewControllers(ViewControllerRegistry registry) { + // 用户端页面(去掉/user前缀) + registry.addViewController("/login.html").setViewName("user/login"); + registry.addViewController("/register.html").setViewName("user/register"); + registry.addViewController("/index.html").setViewName("user/index"); + registry.addViewController("/cart.html").setViewName("user/cart"); + registry.addViewController("/orders.html").setViewName("user/orders"); + registry.addViewController("/order-detail.html").setViewName("user/order-detail"); + registry.addViewController("/product-detail.html").setViewName("user/product-detail"); + registry.addViewController("/checkout.html").setViewName("user/checkout"); + registry.addViewController("/payment.html").setViewName("user/payment"); + registry.addViewController("/payment-success.html").setViewName("user/payment-success"); + registry.addViewController("/profile.html").setViewName("user/profile"); + + // 商家端页面(保持/merchant前缀) + registry.addViewController("/merchant/login.html").setViewName("merchant/login"); + registry.addViewController("/merchant/register.html").setViewName("merchant/register"); + registry.addViewController("/merchant/dashboard.html").setViewName("merchant/dashboard"); + registry.addViewController("/merchant/products.html").setViewName("merchant/products"); + registry.addViewController("/merchant/product-edit.html").setViewName("merchant/product-edit"); + registry.addViewController("/merchant/orders.html").setViewName("merchant/orders"); + registry.addViewController("/merchant/inventory.html").setViewName("merchant/inventory"); + registry.addViewController("/merchant/statistics.html").setViewName("merchant/statistics"); + registry.addViewController("/merchant/announcements.html").setViewName("merchant/announcements"); + registry.addViewController("/merchant/messages.html").setViewName("merchant/messages"); + registry.addViewController("/merchant/reviews.html").setViewName("merchant/reviews"); + registry.addViewController("/merchant/users.html").setViewName("merchant/users"); + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(authInterceptor) + .addPathPatterns("/**") + .excludePathPatterns( + // 登录/注册API接口 + "/login", "/register", + "/merchant/login", "/merchant/register", + // 登录/注册HTML页面 + "/login.html", "/register.html", + "/merchant/login.html", "/merchant/register.html", + // 静态资源 + "/static/**", "/upload/**", + "/error", "/favicon.ico" + ); + } + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/upload/**") + .addResourceLocations("file:src/main/resources/static/upload/"); + registry.addResourceHandler("/static/**") + .addResourceLocations("classpath:/static/"); + } +} diff --git a/src/main/java/com/nlshop/controller/merchant/AnnouncementController.java b/src/main/java/com/nlshop/controller/merchant/AnnouncementController.java new file mode 100644 index 0000000..d3acaec --- /dev/null +++ b/src/main/java/com/nlshop/controller/merchant/AnnouncementController.java @@ -0,0 +1,59 @@ +package com.nlshop.controller.merchant; + +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.entity.Announcement; +import com.nlshop.service.merchant.AnnouncementService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@RestController("merchantAnnouncementController") +@RequestMapping("/merchant/announcements") +public class AnnouncementController { + + @Autowired + private AnnouncementService announcementService; + + @PostMapping + public ApiResponse createAnnouncement(@RequestBody Announcement announcement, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + Announcement created = announcementService.createAnnouncement(merchantId, announcement); + return ApiResponse.success(created); + } + + @GetMapping + public ApiResponse> getAnnouncements(HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + List announcements = announcementService.getAnnouncements(merchantId); + return ApiResponse.success(announcements); + } + + @GetMapping("/{id}") + public ApiResponse getAnnouncement(@PathVariable Long id) { + Announcement announcement = announcementService.getAnnouncement(id); + return ApiResponse.success(announcement); + } + + @PutMapping("/{id}") + public ApiResponse updateAnnouncement(@PathVariable Long id, + @RequestBody Announcement announcement) { + announcement.setId(id); + announcementService.updateAnnouncement(announcement); + return ApiResponse.success(null); + } + + @DeleteMapping("/{id}") + public ApiResponse deleteAnnouncement(@PathVariable Long id) { + announcementService.deleteAnnouncement(id); + return ApiResponse.success(null); + } +} diff --git a/src/main/java/com/nlshop/controller/merchant/InventoryController.java b/src/main/java/com/nlshop/controller/merchant/InventoryController.java new file mode 100644 index 0000000..c068ef0 --- /dev/null +++ b/src/main/java/com/nlshop/controller/merchant/InventoryController.java @@ -0,0 +1,80 @@ +package com.nlshop.controller.merchant; + +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.entity.Inventory; +import com.nlshop.service.merchant.InventoryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.List; + +@RestController +@RequestMapping("/merchant/inventory") +public class InventoryController { + + @Autowired + private InventoryService inventoryService; + + @GetMapping + public ApiResponse> getInventory(HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + List inventory = inventoryService.getInventory(merchantId); + return ApiResponse.success(inventory); + } + + @PostMapping + public ApiResponse addInventory(@RequestBody Inventory inventory, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + Inventory added = inventoryService.addInventory(merchantId, inventory); + return ApiResponse.success(added); + } + + @PostMapping("/{id}/in") + public ApiResponse stockIn(@PathVariable Long id, + @RequestParam BigDecimal quantity, + @RequestParam String operator) { + inventoryService.stockIn(id, quantity, operator); + return ApiResponse.success(null); + } + + @PostMapping("/{id}/out") + public ApiResponse stockOut(@PathVariable Long id, + @RequestParam BigDecimal quantity, + @RequestParam String operator) { + inventoryService.stockOut(id, quantity, operator); + return ApiResponse.success(null); + } + + @GetMapping("/alerts") + public ApiResponse> getLowStockAlerts(HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + List alerts = inventoryService.getLowStockAlerts(merchantId); + return ApiResponse.success(alerts); + } + + @PutMapping("/{id}") + public ApiResponse updateInventory(@PathVariable Long id, + @RequestBody Inventory inventory) { + inventory.setId(id); + inventoryService.updateInventory(inventory); + return ApiResponse.success(null); + } + + @DeleteMapping("/{id}") + public ApiResponse deleteInventory(@PathVariable Long id) { + inventoryService.deleteInventory(id); + return ApiResponse.success(null); + } +} diff --git a/src/main/java/com/nlshop/controller/merchant/MerchantController.java b/src/main/java/com/nlshop/controller/merchant/MerchantController.java new file mode 100644 index 0000000..b3b7053 --- /dev/null +++ b/src/main/java/com/nlshop/controller/merchant/MerchantController.java @@ -0,0 +1,80 @@ +package com.nlshop.controller.merchant; + +import com.nlshop.dto.request.LoginRequest; +import com.nlshop.dto.request.MerchantRegisterRequest; +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.dto.response.LoginResponse; +import com.nlshop.entity.Merchant; +import com.nlshop.service.merchant.MerchantService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +@RestController +@RequestMapping("/merchant") +public class MerchantController { + + @Autowired + private MerchantService merchantService; + + @PostMapping("/register") + public ApiResponse register(@Validated @RequestBody MerchantRegisterRequest request) { + Merchant merchant = merchantService.register(request); + return ApiResponse.success(merchant); + } + + @PostMapping("/login") + public ApiResponse login(@Validated @RequestBody LoginRequest request, + HttpServletRequest httpRequest) { + Merchant merchant = merchantService.login(request.getUsername(), request.getPassword()); + + // 将用户信息存入Session + HttpSession session = httpRequest.getSession(true); + session.setAttribute("userId", merchant.getId()); + session.setAttribute("userType", "merchant"); + session.setAttribute("username", merchant.getUsername()); + + LoginResponse response = new LoginResponse(); + response.setToken(""); // 不再使用token,设为空字符串 + response.setUserId(merchant.getId()); + response.setUserType("merchant"); + response.setUsername(merchant.getUsername()); + response.setName(merchant.getStoreName()); + + return ApiResponse.success(response); + } + + @PostMapping("/logout") + public ApiResponse logout(HttpServletRequest request) { + HttpSession session = request.getSession(false); + if (session != null) { + session.invalidate(); + } + return ApiResponse.success(null); + } + + @GetMapping("/profile") + public ApiResponse getProfile(HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + Merchant merchant = merchantService.getProfile(merchantId); + return ApiResponse.success(merchant); + } + + @PutMapping("/profile") + public ApiResponse updateProfile(@RequestBody Merchant merchant, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + Merchant updated = merchantService.updateProfile(merchantId, merchant); + return ApiResponse.success(updated); + } +} diff --git a/src/main/java/com/nlshop/controller/merchant/MessageController.java b/src/main/java/com/nlshop/controller/merchant/MessageController.java new file mode 100644 index 0000000..a8a9b12 --- /dev/null +++ b/src/main/java/com/nlshop/controller/merchant/MessageController.java @@ -0,0 +1,41 @@ +package com.nlshop.controller.merchant; + +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.entity.Message; +import com.nlshop.service.merchant.MessageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@RestController("merchantMessageController") +@RequestMapping("/merchant/messages") +public class MessageController { + + @Autowired + private MessageService messageService; + + @GetMapping + public ApiResponse> getMessages(HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + List messages = messageService.getMessages(merchantId); + return ApiResponse.success(messages); + } + + @GetMapping("/{id}") + public ApiResponse getMessage(@PathVariable Long id) { + Message message = messageService.getMessage(id); + return ApiResponse.success(message); + } + + @PostMapping("/{id}/reply") + public ApiResponse replyMessage(@PathVariable Long id, + @RequestParam String reply) { + messageService.replyMessage(id, reply); + return ApiResponse.success(null); + } +} diff --git a/src/main/java/com/nlshop/controller/merchant/OrderManageController.java b/src/main/java/com/nlshop/controller/merchant/OrderManageController.java new file mode 100644 index 0000000..d578d71 --- /dev/null +++ b/src/main/java/com/nlshop/controller/merchant/OrderManageController.java @@ -0,0 +1,78 @@ +package com.nlshop.controller.merchant; + +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.dto.response.OrderDetailResponse; +import com.nlshop.dto.response.PageResponse; +import com.nlshop.entity.Order; +import com.nlshop.service.merchant.OrderManageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; + +@RestController +@RequestMapping("/merchant/orders") +public class OrderManageController { + + @Autowired + private OrderManageService orderManageService; + + @GetMapping + public ApiResponse> getOrders( + @RequestParam(required = false) String status, + @RequestParam(defaultValue = "1") Integer pageNum, + @RequestParam(defaultValue = "10") Integer pageSize, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + PageResponse response = orderManageService.getOrders(merchantId, status, pageNum, pageSize); + return ApiResponse.success(response); + } + + @GetMapping("/{id}") + public ApiResponse getOrderDetail(@PathVariable Long id, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + OrderDetailResponse orderDetail = orderManageService.getOrderDetail(id, merchantId); + return ApiResponse.success(orderDetail); + } + + @PutMapping("/{id}/accept") + public ApiResponse acceptOrder(@PathVariable Long id, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + orderManageService.acceptOrder(id, merchantId); + return ApiResponse.success(null); + } + + @PutMapping("/{id}/reject") + public ApiResponse rejectOrder(@PathVariable Long id, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + orderManageService.rejectOrder(id, merchantId); + return ApiResponse.success(null); + } + + @PutMapping("/{id}/status") + public ApiResponse updateOrderStatus(@PathVariable Long id, + @RequestParam String status, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + orderManageService.updateOrderStatus(id, merchantId, status); + return ApiResponse.success(null); + } +} diff --git a/src/main/java/com/nlshop/controller/merchant/ProductManageController.java b/src/main/java/com/nlshop/controller/merchant/ProductManageController.java new file mode 100644 index 0000000..6e4e75d --- /dev/null +++ b/src/main/java/com/nlshop/controller/merchant/ProductManageController.java @@ -0,0 +1,222 @@ +package com.nlshop.controller.merchant; + +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.dto.response.PageResponse; +import com.nlshop.entity.Product; +import com.nlshop.entity.ProductCustom; +import com.nlshop.entity.ProductSpec; +import com.nlshop.entity.ProductTopping; +import com.nlshop.service.merchant.ProductManageService; +import com.nlshop.util.FileUploadUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/merchant/products") +public class ProductManageController { + + @Autowired + private ProductManageService productManageService; + + @Autowired + private FileUploadUtil fileUploadUtil; + + @GetMapping + public ApiResponse> getProducts( + @RequestParam(defaultValue = "1") Integer pageNum, + @RequestParam(defaultValue = "10") Integer pageSize, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + PageResponse response = productManageService.getProducts(merchantId, pageNum, pageSize); + return ApiResponse.success(response); + } + + @GetMapping("/{id}") + public ApiResponse> getProduct(@PathVariable Long id, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + Map product = productManageService.getProduct(id, merchantId); + return ApiResponse.success(product); + } + + @PostMapping + public ApiResponse createProduct(@RequestParam String name, + @RequestParam(required = false) String category, + @RequestParam(required = false) String description, + @RequestParam String basePrice, + @RequestParam(required = false) MultipartFile image, + HttpServletRequest httpRequest) { + Long merchantId = (Long) httpRequest.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + + Product product = new Product(); + product.setName(name); + product.setCategory(category); + product.setDescription(description); + if (basePrice != null && !basePrice.isEmpty()) { + product.setBasePrice(new java.math.BigDecimal(basePrice)); + } + + if (image != null && !image.isEmpty()) { + try { + String imagePath = fileUploadUtil.uploadProductImage(image); + product.setImage(imagePath); + } catch (Exception e) { + return ApiResponse.error("图片上传失败: " + e.getMessage()); + } + } + + Product created = productManageService.createProduct(merchantId, product); + return ApiResponse.success(created); + } + + @PutMapping("/{id}") + public ApiResponse updateProduct(@PathVariable Long id, + @RequestParam String name, + @RequestParam(required = false) String category, + @RequestParam(required = false) String description, + @RequestParam String basePrice, + @RequestParam(required = false) MultipartFile image, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + + Product product = new Product(); + product.setName(name); + product.setCategory(category); + product.setDescription(description); + if (basePrice != null && !basePrice.isEmpty()) { + product.setBasePrice(new java.math.BigDecimal(basePrice)); + } + + if (image != null && !image.isEmpty()) { + try { + String imagePath = fileUploadUtil.uploadProductImage(image); + product.setImage(imagePath); + } catch (Exception e) { + return ApiResponse.error("图片上传失败: " + e.getMessage()); + } + } + + Product updated = productManageService.updateProduct(id, merchantId, product); + return ApiResponse.success(updated); + } + + @PutMapping("/{id}/offline") + public ApiResponse offlineProduct(@PathVariable Long id, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + productManageService.offlineProduct(id, merchantId); + return ApiResponse.success(null); + } + + @PutMapping("/{id}/online") + public ApiResponse onlineProduct(@PathVariable Long id, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + productManageService.onlineProduct(id, merchantId); + return ApiResponse.success(null); + } + + @GetMapping("/{id}/specs") + public ApiResponse> getSpecs(@PathVariable Long id) { + List specs = productManageService.getSpecs(id); + return ApiResponse.success(specs); + } + + @PostMapping("/{id}/specs") + public ApiResponse addSpec(@PathVariable Long id, + @RequestBody ProductSpec spec) { + ProductSpec added = productManageService.addSpec(id, spec); + return ApiResponse.success(added); + } + + @PutMapping("/specs/{specId}") + public ApiResponse updateSpec(@PathVariable Long specId, + @RequestBody ProductSpec spec) { + spec.setId(specId); + productManageService.updateSpec(spec); + return ApiResponse.success(null); + } + + @DeleteMapping("/specs/{specId}") + public ApiResponse deleteSpec(@PathVariable Long specId) { + productManageService.deleteSpec(specId); + return ApiResponse.success(null); + } + + @GetMapping("/{id}/toppings") + public ApiResponse> getToppings(@PathVariable Long id) { + List toppings = productManageService.getToppings(id); + return ApiResponse.success(toppings); + } + + @PostMapping("/{id}/toppings") + public ApiResponse addTopping(@PathVariable Long id, + @RequestBody ProductTopping topping) { + ProductTopping added = productManageService.addTopping(id, topping); + return ApiResponse.success(added); + } + + @PutMapping("/toppings/{toppingId}") + public ApiResponse updateTopping(@PathVariable Long toppingId, + @RequestBody ProductTopping topping) { + topping.setId(toppingId); + productManageService.updateTopping(topping); + return ApiResponse.success(null); + } + + @DeleteMapping("/toppings/{toppingId}") + public ApiResponse deleteTopping(@PathVariable Long toppingId) { + productManageService.deleteTopping(toppingId); + return ApiResponse.success(null); + } + + @GetMapping("/{id}/customs") + public ApiResponse> getCustoms(@PathVariable Long id) { + List customs = productManageService.getCustoms(id); + return ApiResponse.success(customs); + } + + @PostMapping("/{id}/customs") + public ApiResponse addCustom(@PathVariable Long id, + @RequestBody ProductCustom custom) { + ProductCustom added = productManageService.addCustom(id, custom); + return ApiResponse.success(added); + } + + @PutMapping("/customs/{customId}") + public ApiResponse updateCustom(@PathVariable Long customId, + @RequestBody ProductCustom custom) { + custom.setId(customId); + productManageService.updateCustom(custom); + return ApiResponse.success(null); + } + + @DeleteMapping("/customs/{customId}") + public ApiResponse deleteCustom(@PathVariable Long customId) { + productManageService.deleteCustom(customId); + return ApiResponse.success(null); + } +} diff --git a/src/main/java/com/nlshop/controller/merchant/ReviewController.java b/src/main/java/com/nlshop/controller/merchant/ReviewController.java new file mode 100644 index 0000000..d75de18 --- /dev/null +++ b/src/main/java/com/nlshop/controller/merchant/ReviewController.java @@ -0,0 +1,67 @@ +package com.nlshop.controller.merchant; + +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.entity.Review; +import com.nlshop.exception.BusinessException; +import com.nlshop.service.merchant.ReviewService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@RestController("merchantReviewController") +@RequestMapping("/merchant/reviews") +public class ReviewController { + + @Autowired + private ReviewService reviewService; + + @GetMapping + public ApiResponse> getReviews(HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + List reviews = reviewService.getReviews(merchantId); + return ApiResponse.success(reviews); + } + + @GetMapping("/{id}") + public ApiResponse getReview(@PathVariable Long id) { + Review review = reviewService.getReview(id); + return ApiResponse.success(review); + } + + @PostMapping("/{id}/reply") + public ApiResponse replyReview(@PathVariable Long id, + @RequestParam String reply, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + try { + reviewService.replyReview(merchantId, id, reply); + return ApiResponse.success(null); + } catch (BusinessException e) { + return ApiResponse.error(e.getMessage()); + } + } + + @PutMapping("/{id}/handle") + public ApiResponse handleComplaint(@PathVariable Long id, + @RequestParam String reply, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + try { + reviewService.handleComplaint(merchantId, id, reply); + return ApiResponse.success(null); + } catch (BusinessException e) { + return ApiResponse.error(e.getMessage()); + } + } +} diff --git a/src/main/java/com/nlshop/controller/merchant/StatisticsController.java b/src/main/java/com/nlshop/controller/merchant/StatisticsController.java new file mode 100644 index 0000000..fdbc7e3 --- /dev/null +++ b/src/main/java/com/nlshop/controller/merchant/StatisticsController.java @@ -0,0 +1,79 @@ +package com.nlshop.controller.merchant; + +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.service.merchant.StatisticsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/merchant/statistics") +public class StatisticsController { + + @Autowired + private StatisticsService statisticsService; + + @GetMapping("/sales") + public ApiResponse> getSalesStatistics( + @RequestParam(defaultValue = "day") String period, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + Map stats = statisticsService.getSalesStatistics(merchantId, period); + return ApiResponse.success(stats); + } + + @GetMapping("/revenue") + public ApiResponse> getRevenueStatistics( + @RequestParam(defaultValue = "day") String period, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + Map stats = statisticsService.getRevenueStatistics(merchantId, period); + return ApiResponse.success(stats); + } + + @GetMapping("/hot-products") + public ApiResponse>> getHotProducts( + @RequestParam(defaultValue = "10") int limit, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + List> products = statisticsService.getHotProducts(merchantId, limit); + return ApiResponse.success(products); + } + + @GetMapping("/active-users") + public ApiResponse>> getActiveUsers( + @RequestParam(defaultValue = "30") int days, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + List> users = statisticsService.getActiveUsers(merchantId, days); + return ApiResponse.success(users); + } + + @GetMapping("/sticky-users") + public ApiResponse>> getStickyUsers( + @RequestParam(defaultValue = "30") int days, + @RequestParam(defaultValue = "5") int minOrders, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + List> users = statisticsService.getStickyUsers(merchantId, days, minOrders); + return ApiResponse.success(users); + } +} diff --git a/src/main/java/com/nlshop/controller/merchant/UserManageController.java b/src/main/java/com/nlshop/controller/merchant/UserManageController.java new file mode 100644 index 0000000..83601e3 --- /dev/null +++ b/src/main/java/com/nlshop/controller/merchant/UserManageController.java @@ -0,0 +1,31 @@ +package com.nlshop.controller.merchant; + +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.dto.response.PageResponse; +import com.nlshop.entity.User; +import com.nlshop.service.merchant.UserManageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; + +@RestController +@RequestMapping("/merchant/users") +public class UserManageController { + + @Autowired + private UserManageService userManageService; + + @GetMapping + public ApiResponse> getUsers( + @RequestParam(defaultValue = "1") Integer pageNum, + @RequestParam(defaultValue = "10") Integer pageSize, + HttpServletRequest request) { + Long merchantId = (Long) request.getAttribute("userId"); + if (merchantId == null) { + return ApiResponse.error("请先登录"); + } + PageResponse response = userManageService.getUsers(pageNum, pageSize); + return ApiResponse.success(response); + } +} diff --git a/src/main/java/com/nlshop/controller/user/AnnouncementController.java b/src/main/java/com/nlshop/controller/user/AnnouncementController.java new file mode 100644 index 0000000..0958c84 --- /dev/null +++ b/src/main/java/com/nlshop/controller/user/AnnouncementController.java @@ -0,0 +1,23 @@ +package com.nlshop.controller.user; + +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.entity.Announcement; +import com.nlshop.service.merchant.AnnouncementService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController("userAnnouncementController") +@RequestMapping("/announcements") +public class AnnouncementController { + + @Autowired + private AnnouncementService announcementService; + + @GetMapping + public ApiResponse> getAnnouncements() { + List announcements = announcementService.getPublishedAnnouncements(); + return ApiResponse.success(announcements); + } +} diff --git a/src/main/java/com/nlshop/controller/user/CartController.java b/src/main/java/com/nlshop/controller/user/CartController.java new file mode 100644 index 0000000..f1e61a7 --- /dev/null +++ b/src/main/java/com/nlshop/controller/user/CartController.java @@ -0,0 +1,116 @@ +package com.nlshop.controller.user; + +import com.nlshop.dto.request.CartAddRequest; +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.entity.CartItem; +import com.nlshop.service.user.CartService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@RestController +@RequestMapping("/cart") +public class CartController { + + @Autowired + private CartService cartService; + + @PostMapping("/add") + public ApiResponse addToCart(@Validated @RequestBody CartAddRequest request, + HttpServletRequest httpRequest) { + Long userId = (Long) httpRequest.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + CartItem item = cartService.addToCart(userId, request); + return ApiResponse.success(item); + } + + @GetMapping + public ApiResponse> getCart(HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + List items = cartService.getCart(userId); + return ApiResponse.success(items); + } + + @PutMapping("/{id}") + public ApiResponse updateQuantity(@PathVariable Long id, + @RequestParam Integer quantity, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + try { + cartService.updateQuantity(userId, id, quantity); + return ApiResponse.success(null); + } catch (RuntimeException e) { + return ApiResponse.error(e.getMessage()); + } + } + + @DeleteMapping("/{id}") + public ApiResponse deleteCartItem(@PathVariable Long id, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + try { + cartService.deleteCartItem(userId, id); + return ApiResponse.success(null); + } catch (RuntimeException e) { + return ApiResponse.error(e.getMessage()); + } + } + + @DeleteMapping("/batch") + public ApiResponse deleteBatch(@RequestBody List ids, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + if (ids == null || ids.isEmpty()) { + return ApiResponse.error("请选择要删除的商品"); + } + try { + cartService.deleteBatch(userId, ids); + return ApiResponse.success(null); + } catch (RuntimeException e) { + return ApiResponse.error(e.getMessage()); + } + } + + /** + * 同步cookies中的购物车数据(用于登录后同步) + */ + @PostMapping("/sync") + public ApiResponse syncCart(@RequestBody List items, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + + if (items == null || items.isEmpty()) { + return ApiResponse.success(null); + } + + try { + cartService.syncCartFromCookies(userId, items); + return ApiResponse.success(null); + } catch (Exception e) { + // 同步失败不应该影响登录流程,只记录日志 + System.err.println("同步购物车失败: userId=" + userId + ", error=" + e.getMessage()); + e.printStackTrace(); + return ApiResponse.success(null); // 返回成功,避免影响登录流程 + } + } +} diff --git a/src/main/java/com/nlshop/controller/user/MessageController.java b/src/main/java/com/nlshop/controller/user/MessageController.java new file mode 100644 index 0000000..abd83c3 --- /dev/null +++ b/src/main/java/com/nlshop/controller/user/MessageController.java @@ -0,0 +1,41 @@ +package com.nlshop.controller.user; + +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.entity.Message; +import com.nlshop.service.user.MessageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@RestController("userMessageController") +@RequestMapping("/message") +public class MessageController { + + @Autowired + private MessageService messageService; + + @PostMapping + public ApiResponse createMessage(@RequestParam Long merchantId, + @RequestParam(required = false) Long orderId, + @RequestParam String content, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + Message message = messageService.createMessage(userId, merchantId, orderId, content); + return ApiResponse.success(message); + } + + @GetMapping + public ApiResponse> getMessages(HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + List messages = messageService.getMessages(userId); + return ApiResponse.success(messages); + } +} diff --git a/src/main/java/com/nlshop/controller/user/OrderController.java b/src/main/java/com/nlshop/controller/user/OrderController.java new file mode 100644 index 0000000..6e55b0b --- /dev/null +++ b/src/main/java/com/nlshop/controller/user/OrderController.java @@ -0,0 +1,88 @@ +package com.nlshop.controller.user; + +import com.nlshop.dto.request.OrderCreateRequest; +import com.nlshop.dto.request.PaymentRequest; +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.dto.response.OrderDetailResponse; +import com.nlshop.entity.Order; +import com.nlshop.entity.OrderTrack; +import com.nlshop.exception.BusinessException; +import com.nlshop.service.user.OrderService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@RestController +@RequestMapping("/order") +public class OrderController { + + @Autowired + private OrderService orderService; + + @PostMapping("/create") + public ApiResponse createOrder(@Validated @RequestBody OrderCreateRequest request, + HttpServletRequest httpRequest) { + Long userId = (Long) httpRequest.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + Order order = orderService.createOrder(userId, request); + return ApiResponse.success(order); + } + + @PostMapping("/{id}/pay") + public ApiResponse payOrder(@PathVariable Long id, + @Validated @RequestBody PaymentRequest request, + HttpServletRequest httpRequest) { + Long userId = (Long) httpRequest.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + try { + orderService.payOrder(userId, id, request); + return ApiResponse.success(null); + } catch (BusinessException e) { + return ApiResponse.error(e.getMessage()); + } + } + + @GetMapping("/orders") + public ApiResponse> getOrders(@RequestParam(required = false) String status, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + List orders = orderService.getOrders(userId, status); + return ApiResponse.success(orders); + } + + @GetMapping("/orders/{id}") + public ApiResponse getOrderDetail(@PathVariable Long id, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + OrderDetailResponse orderDetail = orderService.getOrderDetail(id, userId); + return ApiResponse.success(orderDetail); + } + + @GetMapping("/orders/{id}/track") + public ApiResponse> getOrderTrack(@PathVariable Long id, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + try { + List tracks = orderService.getOrderTrack(userId, id); + return ApiResponse.success(tracks); + } catch (BusinessException e) { + return ApiResponse.error(e.getMessage()); + } + } +} diff --git a/src/main/java/com/nlshop/controller/user/ProductController.java b/src/main/java/com/nlshop/controller/user/ProductController.java new file mode 100644 index 0000000..4bf20c5 --- /dev/null +++ b/src/main/java/com/nlshop/controller/user/ProductController.java @@ -0,0 +1,80 @@ +package com.nlshop.controller.user; + +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.dto.response.PageResponse; +import com.nlshop.entity.Product; +import com.nlshop.service.algorithm.CollaborativeFilteringService; +import com.nlshop.service.user.ProductService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/products") +public class ProductController { + + @Autowired + private ProductService productService; + + @Autowired + private CollaborativeFilteringService cfService; + + @GetMapping + public ApiResponse> getProducts( + @RequestParam(required = false) String category, + @RequestParam(defaultValue = "1") Integer pageNum, + @RequestParam(defaultValue = "10") Integer pageSize) { + PageResponse response = productService.getProducts(category, pageNum, pageSize); + return ApiResponse.success(response); + } + + @GetMapping("/{id}") + public ApiResponse> getProductDetail(@PathVariable Long id, + HttpServletRequest request) { + Long userId = null; + try { + userId = (Long) request.getAttribute("userId"); + } catch (Exception e) { + // 未登录用户也可以查看商品详情 + } + Map detail = productService.getProductDetail(id, userId); + return ApiResponse.success(detail); + } + + @GetMapping("/hot") + public ApiResponse> getHotProducts(@RequestParam(defaultValue = "10") int limit) { + List products = productService.getHotProducts(limit); + return ApiResponse.success(products); + } + + /** + * 批量记录浏览行为(用于登录后同步cookies中的浏览历史) + */ + @PostMapping("/record-views") + public ApiResponse recordViews(@RequestBody List productIds, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + + if (productIds == null || productIds.isEmpty()) { + return ApiResponse.success(null); + } + + // 批量记录浏览行为 + for (Long productId : productIds) { + try { + cfService.recordView(userId, productId); + } catch (Exception e) { + // 单个失败不影响其他,只记录日志 + System.err.println("记录浏览行为失败: userId=" + userId + ", productId=" + productId + ", error=" + e.getMessage()); + } + } + + return ApiResponse.success(null); + } +} diff --git a/src/main/java/com/nlshop/controller/user/RecommendController.java b/src/main/java/com/nlshop/controller/user/RecommendController.java new file mode 100644 index 0000000..4b9d326 --- /dev/null +++ b/src/main/java/com/nlshop/controller/user/RecommendController.java @@ -0,0 +1,28 @@ +package com.nlshop.controller.user; + +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.entity.Product; +import com.nlshop.service.user.RecommendService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@RestController +@RequestMapping("/recommend") +public class RecommendController { + + @Autowired + private RecommendService recommendService; + + @GetMapping + public ApiResponse> getRecommendations( + @RequestParam(defaultValue = "10") int limit, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + // 推荐功能可以允许未登录用户,userId可以为null + List products = recommendService.getRecommendations(userId, limit); + return ApiResponse.success(products); + } +} diff --git a/src/main/java/com/nlshop/controller/user/ReviewController.java b/src/main/java/com/nlshop/controller/user/ReviewController.java new file mode 100644 index 0000000..9518f09 --- /dev/null +++ b/src/main/java/com/nlshop/controller/user/ReviewController.java @@ -0,0 +1,97 @@ +package com.nlshop.controller.user; + +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.entity.Review; +import com.nlshop.mapper.ReviewMapper; +import com.nlshop.service.algorithm.CollaborativeFilteringService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +@RestController("userReviewController") +@RequestMapping("/review") +public class ReviewController { + + @Autowired + private ReviewMapper reviewMapper; + + @Autowired + private CollaborativeFilteringService cfService; + + @PostMapping + public ApiResponse createReview(@RequestParam Long orderId, + @RequestParam Long productId, + @RequestParam Integer rating, + @RequestParam(required = false) String content, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + + // 检查是否已经评价过 + Review existing = reviewMapper.selectByOrderId(orderId); + if (existing != null) { + return ApiResponse.error("该订单已评价"); + } + + Review review = new Review(); + review.setUserId(userId); + review.setOrderId(orderId); + review.setProductId(productId); + review.setRating(rating); + review.setContent(content); + reviewMapper.insert(review); + + // 记录评分行为到user_behavior表(用于协同过滤算法) + cfService.recordRating(userId, productId, new BigDecimal(rating)); + + return ApiResponse.success(review); + } + + @GetMapping("/by-orders") + public ApiResponse> getReviewsByOrders(@RequestParam String orderIds, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + + try { + List orderIdList = Arrays.stream(orderIds.split(",")) + .map(Long::parseLong) + .collect(Collectors.toList()); + + List reviews = reviewMapper.selectByOrderIdList(orderIdList); + return ApiResponse.success(reviews); + } catch (Exception e) { + return ApiResponse.error("参数错误"); + } + } + + @GetMapping("/by-order") + public ApiResponse getReviewByOrder(@RequestParam Long orderId, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + + Review review = reviewMapper.selectByOrderId(orderId); + if (review == null) { + return ApiResponse.error("未找到评论"); + } + + // 验证评论是否属于当前用户 + if (!review.getUserId().equals(userId)) { + return ApiResponse.error("无权访问"); + } + + return ApiResponse.success(review); + } +} diff --git a/src/main/java/com/nlshop/controller/user/UserController.java b/src/main/java/com/nlshop/controller/user/UserController.java new file mode 100644 index 0000000..b5777fa --- /dev/null +++ b/src/main/java/com/nlshop/controller/user/UserController.java @@ -0,0 +1,145 @@ +package com.nlshop.controller.user; + +import com.nlshop.dto.request.LoginRequest; +import com.nlshop.dto.request.UserRegisterRequest; +import com.nlshop.dto.response.ApiResponse; +import com.nlshop.dto.response.LoginResponse; +import com.nlshop.entity.User; +import com.nlshop.entity.UserAddress; +import com.nlshop.exception.BusinessException; +import com.nlshop.service.user.UserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import java.util.List; + +@RestController +@RequestMapping("/") +public class UserController { + + @Autowired + private UserService userService; + + @PostMapping("/register") + public ApiResponse register(@Validated @RequestBody UserRegisterRequest request) { + User user = userService.register(request); + return ApiResponse.success(user); + } + + @PostMapping("/login") + public ApiResponse login(@Validated @RequestBody LoginRequest request, + HttpServletRequest httpRequest) { + User user = userService.login(request.getUsername(), request.getPassword()); + + // 将用户信息存入Session + HttpSession session = httpRequest.getSession(true); + session.setAttribute("userId", user.getId()); + session.setAttribute("userType", "user"); + session.setAttribute("username", user.getUsername()); + + LoginResponse response = new LoginResponse(); + response.setToken(""); // 不再使用token,设为空字符串 + response.setUserId(user.getId()); + response.setUserType("user"); + response.setUsername(user.getUsername()); + response.setName(user.getName()); + + return ApiResponse.success(response); + } + + @PostMapping("/logout") + public ApiResponse logout(HttpServletRequest request) { + HttpSession session = request.getSession(false); + if (session != null) { + session.invalidate(); + } + return ApiResponse.success(null); + } + + @GetMapping("/profile") + public ApiResponse getProfile(HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + User user = userService.getProfile(userId); + return ApiResponse.success(user); + } + + @PutMapping("/profile") + public ApiResponse updateProfile(@RequestBody User user, HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + User updated = userService.updateProfile(userId, user); + return ApiResponse.success(updated); + } + + @PostMapping("/avatar") + public ApiResponse uploadAvatar(@RequestParam("file") MultipartFile file, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + // 文件上传逻辑在Controller中处理,这里简化 + return ApiResponse.success("上传成功"); + } + + @GetMapping("/address") + public ApiResponse> getAddresses(HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + List addresses = userService.getAddresses(userId); + return ApiResponse.success(addresses); + } + + @PostMapping("/address") + public ApiResponse addAddress(@RequestBody UserAddress address, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + UserAddress added = userService.addAddress(userId, address); + return ApiResponse.success(added); + } + + @PutMapping("/address/{id}") + public ApiResponse updateAddress(@PathVariable Long id, + @RequestBody UserAddress address, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + try { + UserAddress updated = userService.updateAddress(userId, id, address); + return ApiResponse.success(updated); + } catch (BusinessException e) { + return ApiResponse.error(e.getMessage()); + } + } + + @DeleteMapping("/address/{id}") + public ApiResponse deleteAddress(@PathVariable Long id, + HttpServletRequest request) { + Long userId = (Long) request.getAttribute("userId"); + if (userId == null) { + return ApiResponse.error("请先登录"); + } + try { + userService.deleteAddress(userId, id); + return ApiResponse.success(null); + } catch (BusinessException e) { + return ApiResponse.error(e.getMessage()); + } + } +} diff --git a/src/main/java/com/nlshop/dto/request/CartAddRequest.java b/src/main/java/com/nlshop/dto/request/CartAddRequest.java new file mode 100644 index 0000000..4f67b45 --- /dev/null +++ b/src/main/java/com/nlshop/dto/request/CartAddRequest.java @@ -0,0 +1,19 @@ +package com.nlshop.dto.request; + +import lombok.Data; +import javax.validation.constraints.NotNull; + +@Data +public class CartAddRequest { + @NotNull(message = "商品ID不能为空") + private Long productId; + + private Long specId; + + @NotNull(message = "数量不能为空") + private Integer quantity; + + private String customSweetness; + private String customIce; + private String toppings; // JSON格式 +} diff --git a/src/main/java/com/nlshop/dto/request/LoginRequest.java b/src/main/java/com/nlshop/dto/request/LoginRequest.java new file mode 100644 index 0000000..3f0fc8e --- /dev/null +++ b/src/main/java/com/nlshop/dto/request/LoginRequest.java @@ -0,0 +1,13 @@ +package com.nlshop.dto.request; + +import lombok.Data; +import javax.validation.constraints.NotBlank; + +@Data +public class LoginRequest { + @NotBlank(message = "用户名不能为空") + private String username; + + @NotBlank(message = "密码不能为空") + private String password; +} diff --git a/src/main/java/com/nlshop/dto/request/MerchantRegisterRequest.java b/src/main/java/com/nlshop/dto/request/MerchantRegisterRequest.java new file mode 100644 index 0000000..b627d6a --- /dev/null +++ b/src/main/java/com/nlshop/dto/request/MerchantRegisterRequest.java @@ -0,0 +1,21 @@ +package com.nlshop.dto.request; + +import lombok.Data; +import javax.validation.constraints.NotBlank; + +@Data +public class MerchantRegisterRequest { + @NotBlank(message = "用户名不能为空") + private String username; + + @NotBlank(message = "密码不能为空") + private String password; + + @NotBlank(message = "门店名称不能为空") + private String storeName; + + private String address; + private String phone; + private String email; + private String managerName; +} diff --git a/src/main/java/com/nlshop/dto/request/OrderCreateRequest.java b/src/main/java/com/nlshop/dto/request/OrderCreateRequest.java new file mode 100644 index 0000000..6b7dcf6 --- /dev/null +++ b/src/main/java/com/nlshop/dto/request/OrderCreateRequest.java @@ -0,0 +1,17 @@ +package com.nlshop.dto.request; + +import lombok.Data; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Data +public class OrderCreateRequest { + @NotNull(message = "商家ID不能为空") + private Long merchantId; + + @NotBlank(message = "收货地址不能为空") + private String address; + + @NotBlank(message = "联系电话不能为空") + private String contactPhone; +} diff --git a/src/main/java/com/nlshop/dto/request/PaymentRequest.java b/src/main/java/com/nlshop/dto/request/PaymentRequest.java new file mode 100644 index 0000000..b915b3d --- /dev/null +++ b/src/main/java/com/nlshop/dto/request/PaymentRequest.java @@ -0,0 +1,10 @@ +package com.nlshop.dto.request; + +import lombok.Data; +import javax.validation.constraints.NotBlank; + +@Data +public class PaymentRequest { + @NotBlank(message = "支付方式不能为空") + private String paymentMethod; // wechat/alipay +} diff --git a/src/main/java/com/nlshop/dto/request/UserRegisterRequest.java b/src/main/java/com/nlshop/dto/request/UserRegisterRequest.java new file mode 100644 index 0000000..f5d5f48 --- /dev/null +++ b/src/main/java/com/nlshop/dto/request/UserRegisterRequest.java @@ -0,0 +1,24 @@ +package com.nlshop.dto.request; + +import lombok.Data; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Pattern; + +@Data +public class UserRegisterRequest { + @NotBlank(message = "用户名不能为空") + private String username; + + @NotBlank(message = "密码不能为空") + @Pattern(regexp = ".{6,}", message = "密码长度至少6位") + private String password; + + private String name; + private Integer gender; + + @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确") + private String phone; + + private String email; + private String address; +} diff --git a/src/main/java/com/nlshop/dto/response/ApiResponse.java b/src/main/java/com/nlshop/dto/response/ApiResponse.java new file mode 100644 index 0000000..c1fb95b --- /dev/null +++ b/src/main/java/com/nlshop/dto/response/ApiResponse.java @@ -0,0 +1,40 @@ +package com.nlshop.dto.response; + +import lombok.Data; + +@Data +public class ApiResponse { + private Integer code; + private String message; + private T data; + + public static ApiResponse success(T data) { + ApiResponse response = new ApiResponse<>(); + response.setCode(200); + response.setMessage("操作成功"); + response.setData(data); + return response; + } + + public static ApiResponse success(String message, T data) { + ApiResponse response = new ApiResponse<>(); + response.setCode(200); + response.setMessage(message); + response.setData(data); + return response; + } + + public static ApiResponse error(String message) { + ApiResponse response = new ApiResponse<>(); + response.setCode(500); + response.setMessage(message); + return response; + } + + public static ApiResponse error(Integer code, String message) { + ApiResponse response = new ApiResponse<>(); + response.setCode(code); + response.setMessage(message); + return response; + } +} diff --git a/src/main/java/com/nlshop/dto/response/LoginResponse.java b/src/main/java/com/nlshop/dto/response/LoginResponse.java new file mode 100644 index 0000000..2f03ef9 --- /dev/null +++ b/src/main/java/com/nlshop/dto/response/LoginResponse.java @@ -0,0 +1,12 @@ +package com.nlshop.dto.response; + +import lombok.Data; + +@Data +public class LoginResponse { + private String token; + private Long userId; + private String userType; // user/merchant + private String username; + private String name; +} diff --git a/src/main/java/com/nlshop/dto/response/OrderDetailResponse.java b/src/main/java/com/nlshop/dto/response/OrderDetailResponse.java new file mode 100644 index 0000000..9d9810e --- /dev/null +++ b/src/main/java/com/nlshop/dto/response/OrderDetailResponse.java @@ -0,0 +1,25 @@ +package com.nlshop.dto.response; + +import com.nlshop.entity.Order; +import com.nlshop.entity.OrderItem; +import com.nlshop.entity.OrderTrack; +import lombok.Data; +import java.util.List; +import java.util.Map; + +@Data +public class OrderDetailResponse { + private Order order; + private List items; + private List tracks; + private Map productImages; // 商品ID到图片URL的映射 + + public static OrderDetailResponse of(Order order, List items, List tracks, Map productImages) { + OrderDetailResponse response = new OrderDetailResponse(); + response.setOrder(order); + response.setItems(items); + response.setTracks(tracks); + response.setProductImages(productImages); + return response; + } +} diff --git a/src/main/java/com/nlshop/dto/response/PageResponse.java b/src/main/java/com/nlshop/dto/response/PageResponse.java new file mode 100644 index 0000000..d56c9d4 --- /dev/null +++ b/src/main/java/com/nlshop/dto/response/PageResponse.java @@ -0,0 +1,23 @@ +package com.nlshop.dto.response; + +import lombok.Data; +import java.util.List; + +@Data +public class PageResponse { + private List list; + private Long total; + private Integer pageNum; + private Integer pageSize; + private Integer pages; + + public static PageResponse of(List list, Long total, Integer pageNum, Integer pageSize) { + PageResponse response = new PageResponse<>(); + response.setList(list); + response.setTotal(total); + response.setPageNum(pageNum); + response.setPageSize(pageSize); + response.setPages((int) Math.ceil((double) total / pageSize)); + return response; + } +} diff --git a/src/main/java/com/nlshop/entity/Announcement.java b/src/main/java/com/nlshop/entity/Announcement.java new file mode 100644 index 0000000..84f722d --- /dev/null +++ b/src/main/java/com/nlshop/entity/Announcement.java @@ -0,0 +1,15 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.time.LocalDateTime; + +@Data +public class Announcement { + private Long id; + private Long merchantId; + private String title; + private String content; + private String type; // ACTIVITY-活动,NOTICE-通知 + private Integer status; // 0-下架,1-发布 + private LocalDateTime createTime; +} diff --git a/src/main/java/com/nlshop/entity/CartItem.java b/src/main/java/com/nlshop/entity/CartItem.java new file mode 100644 index 0000000..517a924 --- /dev/null +++ b/src/main/java/com/nlshop/entity/CartItem.java @@ -0,0 +1,21 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.time.LocalDateTime; + +@Data +public class CartItem { + private Long id; + private Long userId; + private Long productId; + private Long specId; + private Integer quantity; + private String customSweetness; + private String customIce; + private String toppings; // JSON格式 + private LocalDateTime createTime; + + // 关联查询字段 + private Product product; + private ProductSpec spec; +} diff --git a/src/main/java/com/nlshop/entity/Inventory.java b/src/main/java/com/nlshop/entity/Inventory.java new file mode 100644 index 0000000..f6e89fb --- /dev/null +++ b/src/main/java/com/nlshop/entity/Inventory.java @@ -0,0 +1,17 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class Inventory { + private Long id; + private Long merchantId; + private String materialName; + private BigDecimal quantity; + private String unit; + private BigDecimal minThreshold; + private LocalDateTime lastInTime; + private LocalDateTime lastOutTime; +} diff --git a/src/main/java/com/nlshop/entity/InventoryLog.java b/src/main/java/com/nlshop/entity/InventoryLog.java new file mode 100644 index 0000000..e99f3a7 --- /dev/null +++ b/src/main/java/com/nlshop/entity/InventoryLog.java @@ -0,0 +1,15 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class InventoryLog { + private Long id; + private Long inventoryId; + private String operationType; // IN-入库,OUT-出库 + private BigDecimal quantity; + private String operator; + private LocalDateTime createTime; +} diff --git a/src/main/java/com/nlshop/entity/Merchant.java b/src/main/java/com/nlshop/entity/Merchant.java new file mode 100644 index 0000000..52369a2 --- /dev/null +++ b/src/main/java/com/nlshop/entity/Merchant.java @@ -0,0 +1,19 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.time.LocalDateTime; + +@Data +public class Merchant { + private Long id; + private String username; + private String password; + private String storeName; + private String address; + private String phone; + private String email; + private String managerName; + private String avatar; + private LocalDateTime createTime; + private LocalDateTime updateTime; +} diff --git a/src/main/java/com/nlshop/entity/Message.java b/src/main/java/com/nlshop/entity/Message.java new file mode 100644 index 0000000..3bc7e3d --- /dev/null +++ b/src/main/java/com/nlshop/entity/Message.java @@ -0,0 +1,21 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.time.LocalDateTime; + +@Data +public class Message { + private Long id; + private Long userId; + private Long merchantId; + private Long orderId; + private String content; + private String reply; + private Integer status; // 0-未回复,1-已回复 + private LocalDateTime createTime; + private LocalDateTime replyTime; + + // 关联查询字段 + private User user; + private Order order; +} diff --git a/src/main/java/com/nlshop/entity/Order.java b/src/main/java/com/nlshop/entity/Order.java new file mode 100644 index 0000000..f6c49a2 --- /dev/null +++ b/src/main/java/com/nlshop/entity/Order.java @@ -0,0 +1,25 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class Order { + private Long id; + private String orderNo; + private Long userId; + private Long merchantId; + private BigDecimal totalAmount; + private String paymentMethod; // wechat/alipay + private Integer paymentStatus; // 0-未支付,1-已支付 + private String orderStatus; // PENDING_PAY, MAKING, READY, COMPLETED, CANCELLED + private String address; + private String contactPhone; + private LocalDateTime createTime; + private LocalDateTime payTime; + private LocalDateTime completeTime; + + // 关联查询字段 + private Merchant merchant; +} diff --git a/src/main/java/com/nlshop/entity/OrderItem.java b/src/main/java/com/nlshop/entity/OrderItem.java new file mode 100644 index 0000000..8dd3d70 --- /dev/null +++ b/src/main/java/com/nlshop/entity/OrderItem.java @@ -0,0 +1,19 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.math.BigDecimal; + +@Data +public class OrderItem { + private Long id; + private Long orderId; + private Long productId; + private String productName; + private String specName; + private Integer quantity; + private BigDecimal price; + private String customSweetness; + private String customIce; + private String toppings; // JSON格式 + private BigDecimal subtotal; +} diff --git a/src/main/java/com/nlshop/entity/OrderTrack.java b/src/main/java/com/nlshop/entity/OrderTrack.java new file mode 100644 index 0000000..9b3bc53 --- /dev/null +++ b/src/main/java/com/nlshop/entity/OrderTrack.java @@ -0,0 +1,13 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.time.LocalDateTime; + +@Data +public class OrderTrack { + private Long id; + private Long orderId; + private String status; + private String description; + private LocalDateTime createTime; +} diff --git a/src/main/java/com/nlshop/entity/Product.java b/src/main/java/com/nlshop/entity/Product.java new file mode 100644 index 0000000..94f7a51 --- /dev/null +++ b/src/main/java/com/nlshop/entity/Product.java @@ -0,0 +1,18 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class Product { + private Long id; + private Long merchantId; + private String name; + private String category; + private String description; + private BigDecimal basePrice; + private String image; + private Integer status; // 0-下架,1-上架 + private LocalDateTime createTime; +} diff --git a/src/main/java/com/nlshop/entity/ProductCustom.java b/src/main/java/com/nlshop/entity/ProductCustom.java new file mode 100644 index 0000000..a412f1a --- /dev/null +++ b/src/main/java/com/nlshop/entity/ProductCustom.java @@ -0,0 +1,13 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.math.BigDecimal; + +@Data +public class ProductCustom { + private Long id; + private Long productId; + private String optionType; // sweetness-甜度,ice-冰度 + private String optionValue; + private BigDecimal priceAdjust; +} diff --git a/src/main/java/com/nlshop/entity/ProductSpec.java b/src/main/java/com/nlshop/entity/ProductSpec.java new file mode 100644 index 0000000..a0ab34a --- /dev/null +++ b/src/main/java/com/nlshop/entity/ProductSpec.java @@ -0,0 +1,12 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.math.BigDecimal; + +@Data +public class ProductSpec { + private Long id; + private Long productId; + private String specName; + private BigDecimal priceAdjust; +} diff --git a/src/main/java/com/nlshop/entity/ProductTopping.java b/src/main/java/com/nlshop/entity/ProductTopping.java new file mode 100644 index 0000000..1ff533c --- /dev/null +++ b/src/main/java/com/nlshop/entity/ProductTopping.java @@ -0,0 +1,12 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.math.BigDecimal; + +@Data +public class ProductTopping { + private Long id; + private Long productId; + private String toppingName; + private BigDecimal price; +} diff --git a/src/main/java/com/nlshop/entity/Review.java b/src/main/java/com/nlshop/entity/Review.java new file mode 100644 index 0000000..6dfcffc --- /dev/null +++ b/src/main/java/com/nlshop/entity/Review.java @@ -0,0 +1,20 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.time.LocalDateTime; + +@Data +public class Review { + private Long id; + private Long userId; + private Long orderId; + private Long productId; + private Integer rating; // 1-5 + private String content; + private String reply; + private LocalDateTime createTime; + + // 关联查询字段 + private User user; + private Product product; +} diff --git a/src/main/java/com/nlshop/entity/User.java b/src/main/java/com/nlshop/entity/User.java new file mode 100644 index 0000000..fb261fa --- /dev/null +++ b/src/main/java/com/nlshop/entity/User.java @@ -0,0 +1,19 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.time.LocalDateTime; + +@Data +public class User { + private Long id; + private String username; + private String password; + private String name; + private Integer gender; // 0-女,1-男 + private String phone; + private String email; + private String avatar; + private String address; + private LocalDateTime createTime; + private LocalDateTime updateTime; +} diff --git a/src/main/java/com/nlshop/entity/UserAddress.java b/src/main/java/com/nlshop/entity/UserAddress.java new file mode 100644 index 0000000..c96ac78 --- /dev/null +++ b/src/main/java/com/nlshop/entity/UserAddress.java @@ -0,0 +1,15 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.time.LocalDateTime; + +@Data +public class UserAddress { + private Long id; + private Long userId; + private String address; + private String contactName; + private String contactPhone; + private Integer isDefault; // 0-否,1-是 + private LocalDateTime createTime; +} diff --git a/src/main/java/com/nlshop/entity/UserBehavior.java b/src/main/java/com/nlshop/entity/UserBehavior.java new file mode 100644 index 0000000..e270003 --- /dev/null +++ b/src/main/java/com/nlshop/entity/UserBehavior.java @@ -0,0 +1,15 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class UserBehavior { + private Long id; + private Long userId; + private Long productId; + private String behaviorType; // VIEW-浏览,PURCHASE-购买,RATING-评分 + private BigDecimal score; // 0-5 + private LocalDateTime createTime; +} diff --git a/src/main/java/com/nlshop/entity/UserSimilarity.java b/src/main/java/com/nlshop/entity/UserSimilarity.java new file mode 100644 index 0000000..67b0a68 --- /dev/null +++ b/src/main/java/com/nlshop/entity/UserSimilarity.java @@ -0,0 +1,13 @@ +package com.nlshop.entity; + +import lombok.Data; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +@Data +public class UserSimilarity { + private Long user1Id; + private Long user2Id; + private BigDecimal similarityScore; + private LocalDateTime updateTime; +} diff --git a/src/main/java/com/nlshop/exception/BusinessException.java b/src/main/java/com/nlshop/exception/BusinessException.java new file mode 100644 index 0000000..f967af4 --- /dev/null +++ b/src/main/java/com/nlshop/exception/BusinessException.java @@ -0,0 +1,18 @@ +package com.nlshop.exception; + +import lombok.Getter; + +@Getter +public class BusinessException extends RuntimeException { + private Integer code; + + public BusinessException(String message) { + super(message); + this.code = 500; + } + + public BusinessException(Integer code, String message) { + super(message); + this.code = code; + } +} diff --git a/src/main/java/com/nlshop/exception/GlobalExceptionHandler.java b/src/main/java/com/nlshop/exception/GlobalExceptionHandler.java new file mode 100644 index 0000000..ca62595 --- /dev/null +++ b/src/main/java/com/nlshop/exception/GlobalExceptionHandler.java @@ -0,0 +1,54 @@ +package com.nlshop.exception; + +import com.nlshop.dto.response.ApiResponse; +import org.springframework.validation.BindException; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.validation.ConstraintViolation; +import javax.validation.ConstraintViolationException; +import java.util.Set; + +@ControllerAdvice +public class GlobalExceptionHandler { + + @ExceptionHandler(Exception.class) + @ResponseBody + public ApiResponse handleException(Exception e) { + e.printStackTrace(); + return ApiResponse.error("系统错误: " + e.getMessage()); + } + + @ExceptionHandler(BusinessException.class) + @ResponseBody + public ApiResponse handleBusinessException(BusinessException e) { + return ApiResponse.error(e.getCode(), e.getMessage()); + } + + @ExceptionHandler(MethodArgumentNotValidException.class) + @ResponseBody + public ApiResponse handleValidationException(MethodArgumentNotValidException e) { + FieldError fieldError = e.getBindingResult().getFieldError(); + String message = fieldError != null ? fieldError.getDefaultMessage() : "参数验证失败"; + return ApiResponse.error(400, message); + } + + @ExceptionHandler(BindException.class) + @ResponseBody + public ApiResponse handleBindException(BindException e) { + FieldError fieldError = e.getBindingResult().getFieldError(); + String message = fieldError != null ? fieldError.getDefaultMessage() : "参数验证失败"; + return ApiResponse.error(400, message); + } + + @ExceptionHandler(ConstraintViolationException.class) + @ResponseBody + public ApiResponse handleConstraintViolationException(ConstraintViolationException e) { + Set> violations = e.getConstraintViolations(); + String message = violations.iterator().next().getMessage(); + return ApiResponse.error(400, message); + } +} diff --git a/src/main/java/com/nlshop/interceptor/AuthInterceptor.java b/src/main/java/com/nlshop/interceptor/AuthInterceptor.java new file mode 100644 index 0000000..1ff34ee --- /dev/null +++ b/src/main/java/com/nlshop/interceptor/AuthInterceptor.java @@ -0,0 +1,74 @@ +package com.nlshop.interceptor; + +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.IOException; + +@Component +public class AuthInterceptor implements HandlerInterceptor { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + // 允许OPTIONS请求 + if ("OPTIONS".equals(request.getMethod())) { + return true; + } + + String requestPath = request.getRequestURI(); + boolean isHtmlPage = requestPath.endsWith(".html"); + boolean isMerchantPath = requestPath.startsWith("/merchant"); + + // 从Session中获取用户信息 + HttpSession session = request.getSession(false); + Long userId = null; + String userType = null; + + if (session != null) { + userId = (Long) session.getAttribute("userId"); + userType = (String) session.getAttribute("userType"); + + if (userId != null && userType != null) { + // 将用户信息存入request + request.setAttribute("userId", userId); + request.setAttribute("userType", userType); + } + } + + // 检查用户是否已登录 + boolean isLoggedIn = (userId != null && userType != null); + + // 如果未登录,进行拦截 + if (!isLoggedIn) { + // 保存原始URL到session,登录后可以跳转回来 + if (session != null && !requestPath.equals("/login.html") && + !requestPath.equals("/register.html") && + !requestPath.equals("/merchant/login.html") && + !requestPath.equals("/merchant/register.html")) { + session.setAttribute("returnUrl", requestPath); + } + + if (isHtmlPage) { + // HTML页面请求:重定向到登录页 + if (isMerchantPath) { + response.sendRedirect("/merchant/login.html"); + } else { + response.sendRedirect("/login.html"); + } + return false; + } else { + // API请求:返回401 JSON错误 + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + response.setContentType("application/json;charset=UTF-8"); + response.getWriter().write("{\"code\":401,\"message\":\"请先登录\"}"); + return false; + } + } + + // 已登录,允许继续 + return true; + } +} diff --git a/src/main/java/com/nlshop/mapper/AnnouncementMapper.java b/src/main/java/com/nlshop/mapper/AnnouncementMapper.java new file mode 100644 index 0000000..31dd757 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/AnnouncementMapper.java @@ -0,0 +1,15 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.Announcement; +import org.apache.ibatis.annotations.Mapper; +import java.util.List; + +@Mapper +public interface AnnouncementMapper { + int insert(Announcement announcement); + List selectByMerchantId(Long merchantId); + List selectPublished(); + Announcement selectById(Long id); + int update(Announcement announcement); + int delete(Long id); +} diff --git a/src/main/java/com/nlshop/mapper/CartMapper.java b/src/main/java/com/nlshop/mapper/CartMapper.java new file mode 100644 index 0000000..590f2b4 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/CartMapper.java @@ -0,0 +1,21 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.CartItem; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +@Mapper +public interface CartMapper { + int insert(CartItem item); + List selectByUserId(Long userId); + CartItem selectById(Long id); + CartItem selectByUserAndProduct(@Param("userId") Long userId, @Param("productId") Long productId, + @Param("specId") Long specId, @Param("customSweetness") String customSweetness, + @Param("customIce") String customIce, @Param("toppings") String toppings); + int update(CartItem item); + int updateQuantity(@Param("id") Long id, @Param("quantity") Integer quantity); + int delete(Long id); + int deleteByUserId(Long userId); + int deleteBatch(@Param("ids") List ids, @Param("userId") Long userId); +} diff --git a/src/main/java/com/nlshop/mapper/InventoryLogMapper.java b/src/main/java/com/nlshop/mapper/InventoryLogMapper.java new file mode 100644 index 0000000..2a72a8e --- /dev/null +++ b/src/main/java/com/nlshop/mapper/InventoryLogMapper.java @@ -0,0 +1,11 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.InventoryLog; +import org.apache.ibatis.annotations.Mapper; +import java.util.List; + +@Mapper +public interface InventoryLogMapper { + int insert(InventoryLog log); + List selectByInventoryId(Long inventoryId); +} diff --git a/src/main/java/com/nlshop/mapper/InventoryMapper.java b/src/main/java/com/nlshop/mapper/InventoryMapper.java new file mode 100644 index 0000000..78a532b --- /dev/null +++ b/src/main/java/com/nlshop/mapper/InventoryMapper.java @@ -0,0 +1,17 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.Inventory; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +@Mapper +public interface InventoryMapper { + int insert(Inventory inventory); + List selectByMerchantId(Long merchantId); + Inventory selectById(Long id); + Inventory selectByMerchantAndMaterial(@Param("merchantId") Long merchantId, @Param("materialName") String materialName); + int update(Inventory inventory); + int delete(Long id); + List selectLowStock(Long merchantId); +} diff --git a/src/main/java/com/nlshop/mapper/MerchantMapper.java b/src/main/java/com/nlshop/mapper/MerchantMapper.java new file mode 100644 index 0000000..4c545c9 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/MerchantMapper.java @@ -0,0 +1,12 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.Merchant; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface MerchantMapper { + int insert(Merchant merchant); + Merchant selectById(Long id); + Merchant selectByUsername(String username); + int update(Merchant merchant); +} diff --git a/src/main/java/com/nlshop/mapper/MessageMapper.java b/src/main/java/com/nlshop/mapper/MessageMapper.java new file mode 100644 index 0000000..afc7d65 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/MessageMapper.java @@ -0,0 +1,14 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.Message; +import org.apache.ibatis.annotations.Mapper; +import java.util.List; + +@Mapper +public interface MessageMapper { + int insert(Message message); + List selectByUserId(Long userId); + List selectByMerchantId(Long merchantId); + Message selectById(Long id); + int update(Message message); +} diff --git a/src/main/java/com/nlshop/mapper/OrderItemMapper.java b/src/main/java/com/nlshop/mapper/OrderItemMapper.java new file mode 100644 index 0000000..2bbe7f2 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/OrderItemMapper.java @@ -0,0 +1,12 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.OrderItem; +import org.apache.ibatis.annotations.Mapper; +import java.util.List; + +@Mapper +public interface OrderItemMapper { + int insert(OrderItem item); + List selectByOrderId(Long orderId); + OrderItem selectById(Long id); +} diff --git a/src/main/java/com/nlshop/mapper/OrderMapper.java b/src/main/java/com/nlshop/mapper/OrderMapper.java new file mode 100644 index 0000000..067b112 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/OrderMapper.java @@ -0,0 +1,22 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.Order; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +@Mapper +public interface OrderMapper { + int insert(Order order); + Order selectById(Long id); + Order selectByOrderNo(String orderNo); + List selectByUserId(@Param("userId") Long userId, @Param("status") String status); + List selectByMerchantId(@Param("merchantId") Long merchantId, @Param("status") String status); + int update(Order order); + int updateStatus(@Param("id") Long id, @Param("status") String status); + int updatePayment(@Param("id") Long id, @Param("paymentStatus") Integer paymentStatus, + @Param("paymentMethod") String paymentMethod); + List> selectStickyUsers(@Param("merchantId") Long merchantId, + @Param("days") int days, + @Param("minOrders") int minOrders); +} diff --git a/src/main/java/com/nlshop/mapper/OrderTrackMapper.java b/src/main/java/com/nlshop/mapper/OrderTrackMapper.java new file mode 100644 index 0000000..6bf8e99 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/OrderTrackMapper.java @@ -0,0 +1,11 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.OrderTrack; +import org.apache.ibatis.annotations.Mapper; +import java.util.List; + +@Mapper +public interface OrderTrackMapper { + int insert(OrderTrack track); + List selectByOrderId(Long orderId); +} diff --git a/src/main/java/com/nlshop/mapper/ProductCustomMapper.java b/src/main/java/com/nlshop/mapper/ProductCustomMapper.java new file mode 100644 index 0000000..017e0b7 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/ProductCustomMapper.java @@ -0,0 +1,15 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.ProductCustom; +import org.apache.ibatis.annotations.Mapper; +import java.util.List; + +@Mapper +public interface ProductCustomMapper { + int insert(ProductCustom custom); + List selectByProductId(Long productId); + ProductCustom selectById(Long id); + int update(ProductCustom custom); + int delete(Long id); + int deleteByProductId(Long productId); +} diff --git a/src/main/java/com/nlshop/mapper/ProductMapper.java b/src/main/java/com/nlshop/mapper/ProductMapper.java new file mode 100644 index 0000000..0f271b8 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/ProductMapper.java @@ -0,0 +1,17 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.Product; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +@Mapper +public interface ProductMapper { + int insert(Product product); + Product selectById(Long id); + List selectByMerchantId(@Param("merchantId") Long merchantId, @Param("status") Integer status); + List selectAll(@Param("category") String category, @Param("status") Integer status); + int update(Product product); + int updateStatus(@Param("id") Long id, @Param("status") Integer status); + List selectHotProducts(int limit); +} diff --git a/src/main/java/com/nlshop/mapper/ProductSpecMapper.java b/src/main/java/com/nlshop/mapper/ProductSpecMapper.java new file mode 100644 index 0000000..95fab65 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/ProductSpecMapper.java @@ -0,0 +1,15 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.ProductSpec; +import org.apache.ibatis.annotations.Mapper; +import java.util.List; + +@Mapper +public interface ProductSpecMapper { + int insert(ProductSpec spec); + List selectByProductId(Long productId); + ProductSpec selectById(Long id); + int update(ProductSpec spec); + int delete(Long id); + int deleteByProductId(Long productId); +} diff --git a/src/main/java/com/nlshop/mapper/ProductToppingMapper.java b/src/main/java/com/nlshop/mapper/ProductToppingMapper.java new file mode 100644 index 0000000..86e7f8e --- /dev/null +++ b/src/main/java/com/nlshop/mapper/ProductToppingMapper.java @@ -0,0 +1,15 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.ProductTopping; +import org.apache.ibatis.annotations.Mapper; +import java.util.List; + +@Mapper +public interface ProductToppingMapper { + int insert(ProductTopping topping); + List selectByProductId(Long productId); + ProductTopping selectById(Long id); + int update(ProductTopping topping); + int delete(Long id); + int deleteByProductId(Long productId); +} diff --git a/src/main/java/com/nlshop/mapper/ReviewMapper.java b/src/main/java/com/nlshop/mapper/ReviewMapper.java new file mode 100644 index 0000000..9364e37 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/ReviewMapper.java @@ -0,0 +1,17 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.Review; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +@Mapper +public interface ReviewMapper { + int insert(Review review); + List selectByMerchantId(Long merchantId); + List selectByProductId(Long productId); + Review selectById(Long id); + Review selectByOrderId(Long orderId); + List selectByOrderIdList(@Param("orderIds") List orderIds); + int update(Review review); +} diff --git a/src/main/java/com/nlshop/mapper/UserAddressMapper.java b/src/main/java/com/nlshop/mapper/UserAddressMapper.java new file mode 100644 index 0000000..1277dd0 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/UserAddressMapper.java @@ -0,0 +1,15 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.UserAddress; +import org.apache.ibatis.annotations.Mapper; +import java.util.List; + +@Mapper +public interface UserAddressMapper { + int insert(UserAddress address); + List selectByUserId(Long userId); + UserAddress selectById(Long id); + int update(UserAddress address); + int delete(Long id); + UserAddress selectDefaultByUserId(Long userId); +} diff --git a/src/main/java/com/nlshop/mapper/UserBehaviorMapper.java b/src/main/java/com/nlshop/mapper/UserBehaviorMapper.java new file mode 100644 index 0000000..d910c84 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/UserBehaviorMapper.java @@ -0,0 +1,19 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.UserBehavior; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +@Mapper +public interface UserBehaviorMapper { + int insert(UserBehavior behavior); + List selectByUserId(Long userId); + List selectByProductId(Long productId); + UserBehavior selectByUserAndProduct(@Param("userId") Long userId, @Param("productId") Long productId, + @Param("behaviorType") String behaviorType); + int update(UserBehavior behavior); + List selectProductIdsByUserId(Long userId); + List selectUserIdsByProductId(Long productId); + List> selectActiveUsers(@Param("merchantId") Long merchantId, @Param("days") int days); +} diff --git a/src/main/java/com/nlshop/mapper/UserMapper.java b/src/main/java/com/nlshop/mapper/UserMapper.java new file mode 100644 index 0000000..2321887 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/UserMapper.java @@ -0,0 +1,16 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.User; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +@Mapper +public interface UserMapper { + int insert(User user); + User selectById(Long id); + User selectByUsername(String username); + int update(User user); + int updatePassword(@Param("id") Long id, @Param("password") String password); + List selectAll(); +} diff --git a/src/main/java/com/nlshop/mapper/UserSimilarityMapper.java b/src/main/java/com/nlshop/mapper/UserSimilarityMapper.java new file mode 100644 index 0000000..07f44c1 --- /dev/null +++ b/src/main/java/com/nlshop/mapper/UserSimilarityMapper.java @@ -0,0 +1,13 @@ +package com.nlshop.mapper; + +import com.nlshop.entity.UserSimilarity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +@Mapper +public interface UserSimilarityMapper { + int insertOrUpdate(UserSimilarity similarity); + UserSimilarity selectByUserIds(@Param("user1Id") Long user1Id, @Param("user2Id") Long user2Id); + List selectSimilarUsers(@Param("userId") Long userId, @Param("limit") int limit); +} diff --git a/src/main/java/com/nlshop/service/algorithm/CollaborativeFilteringService.java b/src/main/java/com/nlshop/service/algorithm/CollaborativeFilteringService.java new file mode 100644 index 0000000..e025e3b --- /dev/null +++ b/src/main/java/com/nlshop/service/algorithm/CollaborativeFilteringService.java @@ -0,0 +1,324 @@ +package com.nlshop.service.algorithm; + +import com.nlshop.entity.Product; +import com.nlshop.entity.UserBehavior; +import com.nlshop.entity.UserSimilarity; +import com.nlshop.mapper.ProductMapper; +import com.nlshop.mapper.UserBehaviorMapper; +import com.nlshop.mapper.UserSimilarityMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class CollaborativeFilteringService { + + @Autowired + private UserBehaviorMapper userBehaviorMapper; + + @Autowired + private UserSimilarityMapper userSimilarityMapper; + + @Autowired + private ProductMapper productMapper; + + /** + * 计算用户相似度矩阵 + */ + public void calculateUserSimilarity(Long userId) { + List productIds = userBehaviorMapper.selectProductIdsByUserId(userId); + if (productIds.isEmpty()) { + return; + } + + // 获取所有用户 + Set allUserIds = new HashSet<>(); + for (Long productId : productIds) { + allUserIds.addAll(userBehaviorMapper.selectUserIdsByProductId(productId)); + } + allUserIds.remove(userId); + + // 计算与每个用户的相似度 + Map> userProductScores = buildUserProductMatrix(userId, allUserIds); + + for (Long otherUserId : allUserIds) { + BigDecimal similarity = calculateCosineSimilarity( + userProductScores.get(userId), + userProductScores.get(otherUserId) + ); + + if (similarity.compareTo(BigDecimal.ZERO) > 0) { + UserSimilarity userSimilarity = new UserSimilarity(); + userSimilarity.setUser1Id(Math.min(userId, otherUserId)); + userSimilarity.setUser2Id(Math.max(userId, otherUserId)); + userSimilarity.setSimilarityScore(similarity); + userSimilarityMapper.insertOrUpdate(userSimilarity); + } + } + } + + /** + * 构建用户-商品评分矩阵 + */ + private Map> buildUserProductMatrix(Long userId, Set otherUserIds) { + Map> matrix = new HashMap<>(); + + // 当前用户的评分 + Map userScores = new HashMap<>(); + List userBehaviors = userBehaviorMapper.selectByUserId(userId); + for (UserBehavior behavior : userBehaviors) { + BigDecimal score = calculateBehaviorScore(behavior); + userScores.put(behavior.getProductId(), score); + } + matrix.put(userId, userScores); + + // 其他用户的评分 + for (Long otherUserId : otherUserIds) { + Map otherScores = new HashMap<>(); + List otherBehaviors = userBehaviorMapper.selectByUserId(otherUserId); + for (UserBehavior behavior : otherBehaviors) { + BigDecimal score = calculateBehaviorScore(behavior); + otherScores.put(behavior.getProductId(), score); + } + matrix.put(otherUserId, otherScores); + } + + return matrix; + } + + /** + * 计算行为评分(综合购买、评分、浏览) + */ + private BigDecimal calculateBehaviorScore(UserBehavior behavior) { + BigDecimal score = BigDecimal.ZERO; + + if ("PURCHASE".equals(behavior.getBehaviorType())) { + score = score.add(new BigDecimal("3.0")); // 购买权重3 + } else if ("RATING".equals(behavior.getBehaviorType())) { + score = score.add(behavior.getScore()); // 评分直接使用 + } else if ("VIEW".equals(behavior.getBehaviorType())) { + score = score.add(new BigDecimal("1.0")); // 浏览权重1 + } + + return score; + } + + /** + * 计算余弦相似度 + */ + private BigDecimal calculateCosineSimilarity(Map user1Scores, Map user2Scores) { + Set commonProducts = new HashSet<>(user1Scores.keySet()); + commonProducts.retainAll(user2Scores.keySet()); + + if (commonProducts.isEmpty()) { + return BigDecimal.ZERO; + } + + BigDecimal dotProduct = BigDecimal.ZERO; + BigDecimal norm1 = BigDecimal.ZERO; + BigDecimal norm2 = BigDecimal.ZERO; + + for (Long productId : commonProducts) { + BigDecimal score1 = user1Scores.get(productId); + BigDecimal score2 = user2Scores.get(productId); + dotProduct = dotProduct.add(score1.multiply(score2)); + norm1 = norm1.add(score1.multiply(score1)); + norm2 = norm2.add(score2.multiply(score2)); + } + + if (norm1.compareTo(BigDecimal.ZERO) == 0 || norm2.compareTo(BigDecimal.ZERO) == 0) { + return BigDecimal.ZERO; + } + + BigDecimal denominator = BigDecimal.valueOf(Math.sqrt(norm1.doubleValue() * norm2.doubleValue())); + return dotProduct.divide(denominator, 6, RoundingMode.HALF_UP); + } + + /** + * 获取推荐商品列表 + */ + public List getRecommendations(Long userId, int limit) { + // 获取用户已购买的商品 + List purchasedProductIds = userBehaviorMapper.selectProductIdsByUserId(userId); + Set purchasedSet = new HashSet<>(purchasedProductIds); + + // 获取相似用户 + List similarUsers = userSimilarityMapper.selectSimilarUsers(userId, 10); + + // 用于存储已推荐的商品ID,避免重复 + Set recommendedProductIds = new HashSet<>(); + List recommendations = new ArrayList<>(); + + if (similarUsers.isEmpty()) { + // 冷启动:返回热门商品(排除已购买的) + List hotProducts = productMapper.selectHotProducts(limit * 2); // 多取一些,避免过滤后不足 + for (Product product : hotProducts) { + if (recommendations.size() >= limit) { + break; + } + if (!purchasedSet.contains(product.getId()) + && product.getStatus() == 1 + && !recommendedProductIds.contains(product.getId())) { + recommendations.add(product); + recommendedProductIds.add(product.getId()); + } + } + return recommendations; + } + + // 计算推荐分数 + Map productScores = new HashMap<>(); + + for (UserSimilarity similarity : similarUsers) { + Long similarUserId = similarity.getUser1Id().equals(userId) ? + similarity.getUser2Id() : similarity.getUser1Id(); + + List behaviors = userBehaviorMapper.selectByUserId(similarUserId); + for (UserBehavior behavior : behaviors) { + if (!purchasedSet.contains(behavior.getProductId())) { + BigDecimal score = calculateBehaviorScore(behavior) + .multiply(similarity.getSimilarityScore()); + productScores.merge(behavior.getProductId(), score, BigDecimal::add); + } + } + } + + // 按分数排序,获取Top N + List> sorted = productScores.entrySet().stream() + .sorted((e1, e2) -> e2.getValue().compareTo(e1.getValue())) + .limit(limit) + .collect(Collectors.toList()); + + // 添加协同过滤推荐的商品 + for (Map.Entry entry : sorted) { + Product product = productMapper.selectById(entry.getKey()); + if (product != null && product.getStatus() == 1) { + recommendations.add(product); + recommendedProductIds.add(product.getId()); + } + } + + // 如果推荐数量不足,补充热门商品(排除已购买和已推荐的) + if (recommendations.size() < limit) { + int needCount = limit - recommendations.size(); + List hotProducts = productMapper.selectHotProducts(needCount * 2); // 多取一些,避免过滤后不足 + for (Product product : hotProducts) { + if (recommendations.size() >= limit) { + break; + } + if (!purchasedSet.contains(product.getId()) + && product.getStatus() == 1 + && !recommendedProductIds.contains(product.getId())) { + recommendations.add(product); + recommendedProductIds.add(product.getId()); + } + } + } + + return recommendations; + } + + /** + * 更新用户偏好(购买后) + */ + public void updateUserPreference(Long userId, Long productId) { + if (userId == null || productId == null) { + return; // 参数无效,不记录 + } + + try { + // 记录购买行为 + UserBehavior behavior = userBehaviorMapper.selectByUserAndProduct(userId, productId, "PURCHASE"); + if (behavior == null) { + behavior = new UserBehavior(); + behavior.setUserId(userId); + behavior.setProductId(productId); + behavior.setBehaviorType("PURCHASE"); + behavior.setScore(new BigDecimal("3.0")); + int result = userBehaviorMapper.insert(behavior); + if (result <= 0) { + System.err.println("警告: 用户购买行为记录插入失败 - userId: " + userId + ", productId: " + productId); + } + } + + // 重新计算相似度 + calculateUserSimilarity(userId); + } catch (Exception e) { + // 记录行为失败不应该影响主流程,只打印错误日志 + System.err.println("记录用户购买行为失败: " + e.getMessage()); + e.printStackTrace(); + } + } + + /** + * 记录浏览行为 + */ + public void recordView(Long userId, Long productId) { + if (userId == null || productId == null) { + return; // 参数无效,不记录 + } + + try { + UserBehavior behavior = userBehaviorMapper.selectByUserAndProduct(userId, productId, "VIEW"); + if (behavior == null) { + behavior = new UserBehavior(); + behavior.setUserId(userId); + behavior.setProductId(productId); + behavior.setBehaviorType("VIEW"); + behavior.setScore(new BigDecimal("1.0")); + int result = userBehaviorMapper.insert(behavior); + if (result <= 0) { + System.err.println("警告: 用户行为记录插入失败 - userId: " + userId + ", productId: " + productId); + } + } + } catch (Exception e) { + // 记录行为失败不应该影响主流程,只打印错误日志 + System.err.println("记录用户浏览行为失败: " + e.getMessage()); + e.printStackTrace(); + } + } + + /** + * 记录评分行为 + */ + public void recordRating(Long userId, Long productId, BigDecimal rating) { + if (userId == null || productId == null || rating == null) { + return; // 参数无效,不记录 + } + + try { + // 查找是否已有该商品的评分记录 + UserBehavior behavior = userBehaviorMapper.selectByUserAndProduct(userId, productId, "RATING"); + if (behavior == null) { + // 新建评分记录 + behavior = new UserBehavior(); + behavior.setUserId(userId); + behavior.setProductId(productId); + behavior.setBehaviorType("RATING"); + behavior.setScore(rating); + int result = userBehaviorMapper.insert(behavior); + if (result <= 0) { + System.err.println("警告: 用户评分行为记录插入失败 - userId: " + userId + ", productId: " + productId); + } + } else { + // 更新已有评分记录 + behavior.setScore(rating); + int result = userBehaviorMapper.update(behavior); + if (result <= 0) { + System.err.println("警告: 用户评分行为记录更新失败 - userId: " + userId + ", productId: " + productId); + } + } + + // 重新计算相似度 + calculateUserSimilarity(userId); + } catch (Exception e) { + // 记录行为失败不应该影响主流程,只打印错误日志 + System.err.println("记录用户评分行为失败: " + e.getMessage()); + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/nlshop/service/merchant/AnnouncementService.java b/src/main/java/com/nlshop/service/merchant/AnnouncementService.java new file mode 100644 index 0000000..91f64a6 --- /dev/null +++ b/src/main/java/com/nlshop/service/merchant/AnnouncementService.java @@ -0,0 +1,42 @@ +package com.nlshop.service.merchant; + +import com.nlshop.entity.Announcement; +import com.nlshop.mapper.AnnouncementMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class AnnouncementService { + + @Autowired + private AnnouncementMapper announcementMapper; + + public Announcement createAnnouncement(Long merchantId, Announcement announcement) { + announcement.setMerchantId(merchantId); + announcement.setStatus(1); // 默认发布 + announcementMapper.insert(announcement); + return announcement; + } + + public List getAnnouncements(Long merchantId) { + return announcementMapper.selectByMerchantId(merchantId); + } + + public Announcement getAnnouncement(Long id) { + return announcementMapper.selectById(id); + } + + public void updateAnnouncement(Announcement announcement) { + announcementMapper.update(announcement); + } + + public void deleteAnnouncement(Long id) { + announcementMapper.delete(id); + } + + public List getPublishedAnnouncements() { + return announcementMapper.selectPublished(); + } +} diff --git a/src/main/java/com/nlshop/service/merchant/InventoryService.java b/src/main/java/com/nlshop/service/merchant/InventoryService.java new file mode 100644 index 0000000..3edac76 --- /dev/null +++ b/src/main/java/com/nlshop/service/merchant/InventoryService.java @@ -0,0 +1,109 @@ +package com.nlshop.service.merchant; + +import com.nlshop.entity.Inventory; +import com.nlshop.entity.InventoryLog; +import com.nlshop.exception.BusinessException; +import com.nlshop.mapper.InventoryLogMapper; +import com.nlshop.mapper.InventoryMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +@Service +public class InventoryService { + + @Autowired + private InventoryMapper inventoryMapper; + + @Autowired + private InventoryLogMapper inventoryLogMapper; + + public List getInventory(Long merchantId) { + return inventoryMapper.selectByMerchantId(merchantId); + } + + public Inventory getInventoryById(Long inventoryId) { + return inventoryMapper.selectById(inventoryId); + } + + @Transactional + public Inventory addInventory(Long merchantId, Inventory inventory) { + // 检查是否已存在 + Inventory existing = inventoryMapper.selectByMerchantAndMaterial( + merchantId, inventory.getMaterialName()); + + if (existing != null) { + // 更新数量 + existing.setQuantity(existing.getQuantity().add(inventory.getQuantity())); + existing.setLastInTime(LocalDateTime.now()); + inventoryMapper.update(existing); + return existing; + } else { + // 新增 + inventory.setMerchantId(merchantId); + inventory.setLastInTime(LocalDateTime.now()); + inventoryMapper.insert(inventory); + return inventory; + } + } + + @Transactional + public void stockIn(Long inventoryId, BigDecimal quantity, String operator) { + Inventory inventory = inventoryMapper.selectById(inventoryId); + if (inventory == null) { + throw new BusinessException(404, "库存记录不存在"); + } + + inventory.setQuantity(inventory.getQuantity().add(quantity)); + inventory.setLastInTime(LocalDateTime.now()); + inventoryMapper.update(inventory); + + // 记录日志 + InventoryLog log = new InventoryLog(); + log.setInventoryId(inventoryId); + log.setOperationType("IN"); + log.setQuantity(quantity); + log.setOperator(operator); + inventoryLogMapper.insert(log); + } + + @Transactional + public void stockOut(Long inventoryId, BigDecimal quantity, String operator) { + Inventory inventory = inventoryMapper.selectById(inventoryId); + if (inventory == null) { + throw new BusinessException(404, "库存记录不存在"); + } + + if (inventory.getQuantity().compareTo(quantity) < 0) { + throw new BusinessException(400, "库存不足"); + } + + inventory.setQuantity(inventory.getQuantity().subtract(quantity)); + inventory.setLastOutTime(LocalDateTime.now()); + inventoryMapper.update(inventory); + + // 记录日志 + InventoryLog log = new InventoryLog(); + log.setInventoryId(inventoryId); + log.setOperationType("OUT"); + log.setQuantity(quantity); + log.setOperator(operator); + inventoryLogMapper.insert(log); + } + + public List getLowStockAlerts(Long merchantId) { + return inventoryMapper.selectLowStock(merchantId); + } + + public void updateInventory(Inventory inventory) { + inventoryMapper.update(inventory); + } + + public void deleteInventory(Long inventoryId) { + inventoryMapper.delete(inventoryId); + } +} diff --git a/src/main/java/com/nlshop/service/merchant/MerchantService.java b/src/main/java/com/nlshop/service/merchant/MerchantService.java new file mode 100644 index 0000000..bc1a263 --- /dev/null +++ b/src/main/java/com/nlshop/service/merchant/MerchantService.java @@ -0,0 +1,47 @@ +package com.nlshop.service.merchant; + +import com.nlshop.dto.request.MerchantRegisterRequest; +import com.nlshop.entity.Merchant; +import com.nlshop.exception.BusinessException; +import com.nlshop.mapper.MerchantMapper; +import com.nlshop.util.PasswordUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class MerchantService { + + @Autowired + private MerchantMapper merchantMapper; + + public Merchant register(MerchantRegisterRequest request) { + if (merchantMapper.selectByUsername(request.getUsername()) != null) { + throw new BusinessException(400, "用户名已存在"); + } + + Merchant merchant = new Merchant(); + BeanUtils.copyProperties(request, merchant); + merchant.setPassword(PasswordUtil.encrypt(request.getPassword())); + merchantMapper.insert(merchant); + return merchant; + } + + public Merchant login(String username, String password) { + Merchant merchant = merchantMapper.selectByUsername(username); + if (merchant == null || !PasswordUtil.verify(password, merchant.getPassword())) { + throw new BusinessException(401, "用户名或密码错误"); + } + return merchant; + } + + public Merchant getProfile(Long merchantId) { + return merchantMapper.selectById(merchantId); + } + + public Merchant updateProfile(Long merchantId, Merchant merchant) { + merchant.setId(merchantId); + merchantMapper.update(merchant); + return merchantMapper.selectById(merchantId); + } +} diff --git a/src/main/java/com/nlshop/service/merchant/MessageService.java b/src/main/java/com/nlshop/service/merchant/MessageService.java new file mode 100644 index 0000000..455ce84 --- /dev/null +++ b/src/main/java/com/nlshop/service/merchant/MessageService.java @@ -0,0 +1,34 @@ +package com.nlshop.service.merchant; + +import com.nlshop.entity.Message; +import com.nlshop.mapper.MessageMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; + +@Service("merchantMessageService") +public class MessageService { + + @Autowired + private MessageMapper messageMapper; + + public List getMessages(Long merchantId) { + return messageMapper.selectByMerchantId(merchantId); + } + + public Message getMessage(Long id) { + return messageMapper.selectById(id); + } + + public void replyMessage(Long messageId, String reply) { + Message message = messageMapper.selectById(messageId); + if (message != null) { + message.setReply(reply); + message.setStatus(1); + message.setReplyTime(LocalDateTime.now()); + messageMapper.update(message); + } + } +} diff --git a/src/main/java/com/nlshop/service/merchant/OrderManageService.java b/src/main/java/com/nlshop/service/merchant/OrderManageService.java new file mode 100644 index 0000000..3de2486 --- /dev/null +++ b/src/main/java/com/nlshop/service/merchant/OrderManageService.java @@ -0,0 +1,126 @@ +package com.nlshop.service.merchant; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.nlshop.dto.response.OrderDetailResponse; +import com.nlshop.dto.response.PageResponse; +import com.nlshop.entity.Order; +import com.nlshop.entity.OrderItem; +import com.nlshop.entity.OrderTrack; +import com.nlshop.exception.BusinessException; +import com.nlshop.entity.Product; +import com.nlshop.mapper.OrderItemMapper; +import com.nlshop.mapper.OrderMapper; +import com.nlshop.mapper.OrderTrackMapper; +import com.nlshop.mapper.ProductMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class OrderManageService { + + @Autowired + private OrderMapper orderMapper; + + @Autowired + private OrderTrackMapper orderTrackMapper; + + @Autowired + private OrderItemMapper orderItemMapper; + + @Autowired + private ProductMapper productMapper; + + public PageResponse getOrders(Long merchantId, String status, Integer pageNum, Integer pageSize) { + PageHelper.startPage(pageNum, pageSize); + List orders = orderMapper.selectByMerchantId(merchantId, status); + PageInfo pageInfo = new PageInfo<>(orders); + return PageResponse.of(orders, pageInfo.getTotal(), pageNum, pageSize); + } + + public OrderDetailResponse getOrderDetail(Long orderId, Long merchantId) { + Order order = orderMapper.selectById(orderId); + if (order == null || !order.getMerchantId().equals(merchantId)) { + throw new BusinessException(404, "订单不存在"); + } + List items = orderItemMapper.selectByOrderId(orderId); + List tracks = orderTrackMapper.selectByOrderId(orderId); + + // 获取商品图片信息 + Map productImages = new HashMap<>(); + for (OrderItem item : items) { + Product product = productMapper.selectById(item.getProductId()); + if (product != null) { + productImages.put(item.getProductId(), product.getImage()); + } + } + + return OrderDetailResponse.of(order, items, tracks, productImages); + } + + @Transactional + public void acceptOrder(Long orderId, Long merchantId) { + Order order = orderMapper.selectById(orderId); + if (order == null || !order.getMerchantId().equals(merchantId)) { + throw new BusinessException(404, "订单不存在"); + } + if (!"MAKING".equals(order.getOrderStatus())) { + throw new BusinessException(400, "订单状态不正确"); + } + + // 订单状态已经是MAKING,这里可以添加其他业务逻辑 + addOrderTrack(orderId, "MAKING", "商家已接单,正在制作中"); + } + + @Transactional + public void rejectOrder(Long orderId, Long merchantId) { + Order order = orderMapper.selectById(orderId); + if (order == null || !order.getMerchantId().equals(merchantId)) { + throw new BusinessException(404, "订单不存在"); + } + if (!"MAKING".equals(order.getOrderStatus())) { + throw new BusinessException(400, "订单状态不正确"); + } + + orderMapper.updateStatus(orderId, "CANCELLED"); + addOrderTrack(orderId, "CANCELLED", "商家拒单"); + } + + @Transactional + public void updateOrderStatus(Long orderId, Long merchantId, String status) { + Order order = orderMapper.selectById(orderId); + if (order == null || !order.getMerchantId().equals(merchantId)) { + throw new BusinessException(404, "订单不存在"); + } + + String currentStatus = order.getOrderStatus(); + String description = ""; + + if ("READY".equals(status) && "MAKING".equals(currentStatus)) { + description = "制作完成,等待取餐"; + } else if ("COMPLETED".equals(status) && "READY".equals(currentStatus)) { + description = "订单已完成"; + order.setCompleteTime(LocalDateTime.now()); + orderMapper.update(order); + } else { + throw new BusinessException(400, "订单状态转换不正确"); + } + + orderMapper.updateStatus(orderId, status); + addOrderTrack(orderId, status, description); + } + + private void addOrderTrack(Long orderId, String status, String description) { + OrderTrack track = new OrderTrack(); + track.setOrderId(orderId); + track.setStatus(status); + track.setDescription(description); + orderTrackMapper.insert(track); + } +} diff --git a/src/main/java/com/nlshop/service/merchant/ProductManageService.java b/src/main/java/com/nlshop/service/merchant/ProductManageService.java new file mode 100644 index 0000000..8bb1652 --- /dev/null +++ b/src/main/java/com/nlshop/service/merchant/ProductManageService.java @@ -0,0 +1,161 @@ +package com.nlshop.service.merchant; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.nlshop.dto.response.PageResponse; +import com.nlshop.entity.Product; +import com.nlshop.entity.ProductCustom; +import com.nlshop.entity.ProductSpec; +import com.nlshop.entity.ProductTopping; +import com.nlshop.mapper.ProductCustomMapper; +import com.nlshop.mapper.ProductMapper; +import com.nlshop.mapper.ProductSpecMapper; +import com.nlshop.mapper.ProductToppingMapper; +import com.nlshop.exception.BusinessException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ProductManageService { + + @Autowired + private ProductMapper productMapper; + + @Autowired + private ProductSpecMapper productSpecMapper; + + @Autowired + private ProductToppingMapper productToppingMapper; + + @Autowired + private ProductCustomMapper productCustomMapper; + + public PageResponse getProducts(Long merchantId, Integer pageNum, Integer pageSize) { + PageHelper.startPage(pageNum, pageSize); + List products = productMapper.selectByMerchantId(merchantId, null); + PageInfo pageInfo = new PageInfo<>(products); + return PageResponse.of(products, pageInfo.getTotal(), pageNum, pageSize); + } + + /** + * 获取商品完整信息(包括规格、配料、定制选项) + */ + public Map getProduct(Long productId, Long merchantId) { + Product product = productMapper.selectById(productId); + if (product == null) { + throw new BusinessException(404, "商品不存在"); + } + + // 验证商品归属 + validateProductOwnership(productId, merchantId); + + Map result = new HashMap<>(); + result.put("product", product); + result.put("specs", productSpecMapper.selectByProductId(productId)); + result.put("toppings", productToppingMapper.selectByProductId(productId)); + result.put("customs", productCustomMapper.selectByProductId(productId)); + + return result; + } + + /** + * 验证商品是否属于指定商家 + */ + public void validateProductOwnership(Long productId, Long merchantId) { + Product product = productMapper.selectById(productId); + if (product == null) { + throw new BusinessException(404, "商品不存在"); + } + if (!product.getMerchantId().equals(merchantId)) { + throw new BusinessException(403, "无权操作此商品"); + } + } + + @Transactional + public Product createProduct(Long merchantId, Product product) { + product.setMerchantId(merchantId); + product.setStatus(1); // 默认上架 + productMapper.insert(product); + return product; + } + + public Product updateProduct(Long productId, Long merchantId, Product product) { + // 验证商品归属 + validateProductOwnership(productId, merchantId); + + product.setId(productId); + productMapper.update(product); + return productMapper.selectById(productId); + } + + public void offlineProduct(Long productId, Long merchantId) { + // 验证商品归属 + validateProductOwnership(productId, merchantId); + productMapper.updateStatus(productId, 0); + } + + public void onlineProduct(Long productId, Long merchantId) { + // 验证商品归属 + validateProductOwnership(productId, merchantId); + productMapper.updateStatus(productId, 1); + } + + public List getSpecs(Long productId) { + return productSpecMapper.selectByProductId(productId); + } + + public ProductSpec addSpec(Long productId, ProductSpec spec) { + spec.setProductId(productId); + productSpecMapper.insert(spec); + return spec; + } + + public void updateSpec(ProductSpec spec) { + productSpecMapper.update(spec); + } + + public void deleteSpec(Long specId) { + productSpecMapper.delete(specId); + } + + public List getToppings(Long productId) { + return productToppingMapper.selectByProductId(productId); + } + + public ProductTopping addTopping(Long productId, ProductTopping topping) { + topping.setProductId(productId); + productToppingMapper.insert(topping); + return topping; + } + + public void updateTopping(ProductTopping topping) { + productToppingMapper.update(topping); + } + + public void deleteTopping(Long toppingId) { + productToppingMapper.delete(toppingId); + } + + public List getCustoms(Long productId) { + return productCustomMapper.selectByProductId(productId); + } + + public ProductCustom addCustom(Long productId, ProductCustom custom) { + custom.setProductId(productId); + productCustomMapper.insert(custom); + return custom; + } + + public void updateCustom(ProductCustom custom) { + productCustomMapper.update(custom); + } + + public void deleteCustom(Long customId) { + productCustomMapper.delete(customId); + } +} diff --git a/src/main/java/com/nlshop/service/merchant/ReviewService.java b/src/main/java/com/nlshop/service/merchant/ReviewService.java new file mode 100644 index 0000000..c23acc5 --- /dev/null +++ b/src/main/java/com/nlshop/service/merchant/ReviewService.java @@ -0,0 +1,57 @@ +package com.nlshop.service.merchant; + +import com.nlshop.entity.Product; +import com.nlshop.entity.Review; +import com.nlshop.exception.BusinessException; +import com.nlshop.mapper.ProductMapper; +import com.nlshop.mapper.ReviewMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; + +@Service +public class ReviewService { + + @Autowired + private ReviewMapper reviewMapper; + + @Autowired + private ProductMapper productMapper; + + public List getReviews(Long merchantId) { + return reviewMapper.selectByMerchantId(merchantId); + } + + public Review getReview(Long id) { + return reviewMapper.selectById(id); + } + + public void replyReview(Long merchantId, Long reviewId, String reply) { + Review review = reviewMapper.selectById(reviewId); + if (review == null) { + throw new BusinessException(404, "评价不存在"); + } + + // 验证评价对应的商品是否属于当前商家 + Product product = productMapper.selectById(review.getProductId()); + if (product == null) { + throw new BusinessException(404, "商品不存在"); + } + if (!product.getMerchantId().equals(merchantId)) { + throw new BusinessException(403, "无权回复该评价"); + } + + review.setReply(reply); + reviewMapper.update(review); + } + + public void handleComplaint(Long merchantId, Long reviewId, String reply) { + replyReview(merchantId, reviewId, reply); + } + + public List getProductReviews(Long productId) { + return reviewMapper.selectByProductId(productId); + } +} diff --git a/src/main/java/com/nlshop/service/merchant/StatisticsService.java b/src/main/java/com/nlshop/service/merchant/StatisticsService.java new file mode 100644 index 0000000..56a8fb8 --- /dev/null +++ b/src/main/java/com/nlshop/service/merchant/StatisticsService.java @@ -0,0 +1,136 @@ +package com.nlshop.service.merchant; + +import com.nlshop.entity.Order; +import com.nlshop.entity.OrderItem; +import com.nlshop.entity.Product; +import com.nlshop.mapper.OrderItemMapper; +import com.nlshop.mapper.OrderMapper; +import com.nlshop.mapper.ProductMapper; +import com.nlshop.mapper.UserBehaviorMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +public class StatisticsService { + + @Autowired + private OrderMapper orderMapper; + + @Autowired + private OrderItemMapper orderItemMapper; + + @Autowired + private ProductMapper productMapper; + + @Autowired + private UserBehaviorMapper userBehaviorMapper; + + public Map getSalesStatistics(Long merchantId, String period) { + LocalDateTime startTime = getStartTime(period); + List orders = orderMapper.selectByMerchantId(merchantId, null); + + // 过滤时间范围和已完成订单 + orders = orders.stream() + .filter(order -> order.getOrderStatus() != null && + order.getOrderStatus().equals("COMPLETED") && + order.getCompleteTime() != null && + order.getCompleteTime().isAfter(startTime)) + .collect(Collectors.toList()); + + BigDecimal totalAmount = orders.stream() + .map(Order::getTotalAmount) + .reduce(BigDecimal.ZERO, BigDecimal::add); + + BigDecimal avgOrderAmount = orders.size() > 0 ? + totalAmount.divide(new BigDecimal(orders.size()), 2, RoundingMode.HALF_UP) : + BigDecimal.ZERO; + + Map result = new HashMap<>(); + result.put("totalOrders", orders.size()); + result.put("totalAmount", totalAmount); + result.put("avgOrderAmount", avgOrderAmount); + + return result; + } + + public Map getRevenueStatistics(Long merchantId, String period) { + Map salesStats = getSalesStatistics(merchantId, period); + BigDecimal totalRevenue = (BigDecimal) salesStats.get("totalAmount"); + + // 简化处理:假设成本为收入的70%(实际应该从库存等计算) + BigDecimal totalCost = totalRevenue.multiply(new BigDecimal("0.7")); + BigDecimal netProfit = totalRevenue.subtract(totalCost); + + Map result = new HashMap<>(); + result.put("totalRevenue", totalRevenue); + result.put("totalCost", totalCost); + result.put("netProfit", netProfit); + + return result; + } + + public List> getHotProducts(Long merchantId, int limit) { + List orders = orderMapper.selectByMerchantId(merchantId, "COMPLETED"); + + // 统计商品销量和销售额 + Map productSales = new HashMap<>(); + Map productAmounts = new HashMap<>(); + + for (Order order : orders) { + List items = orderItemMapper.selectByOrderId(order.getId()); + for (OrderItem item : items) { + productSales.merge(item.getProductId(), item.getQuantity(), Integer::sum); + BigDecimal itemAmount = item.getSubtotal(); + productAmounts.merge(item.getProductId(), itemAmount, BigDecimal::add); + } + } + + // 按销量排序并获取商品信息 + return productSales.entrySet().stream() + .sorted((e1, e2) -> e2.getValue().compareTo(e1.getValue())) + .limit(limit) + .map(entry -> { + Long productId = entry.getKey(); + Product product = productMapper.selectById(productId); + + Map map = new HashMap<>(); + map.put("productId", productId); + map.put("productName", product != null ? product.getName() : "未知商品"); + map.put("salesCount", entry.getValue()); + map.put("salesAmount", productAmounts.getOrDefault(productId, BigDecimal.ZERO)); + return map; + }) + .collect(Collectors.toList()); + } + + public List> getActiveUsers(Long merchantId, int days) { + return userBehaviorMapper.selectActiveUsers(merchantId, days); + } + + public List> getStickyUsers(Long merchantId, int days, int minOrders) { + return orderMapper.selectStickyUsers(merchantId, days, minOrders); + } + + private LocalDateTime getStartTime(String period) { + LocalDateTime now = LocalDateTime.now(); + switch (period) { + case "day": + return now.minusDays(1); + case "week": + return now.minusWeeks(1); + case "month": + return now.minusMonths(1); + default: + return now.minusDays(1); + } + } +} diff --git a/src/main/java/com/nlshop/service/merchant/UserManageService.java b/src/main/java/com/nlshop/service/merchant/UserManageService.java new file mode 100644 index 0000000..c26dd8d --- /dev/null +++ b/src/main/java/com/nlshop/service/merchant/UserManageService.java @@ -0,0 +1,25 @@ +package com.nlshop.service.merchant; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.nlshop.dto.response.PageResponse; +import com.nlshop.entity.User; +import com.nlshop.mapper.UserMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class UserManageService { + + @Autowired + private UserMapper userMapper; + + public PageResponse getUsers(Integer pageNum, Integer pageSize) { + PageHelper.startPage(pageNum, pageSize); + List users = userMapper.selectAll(); + PageInfo pageInfo = new PageInfo<>(users); + return PageResponse.of(users, pageInfo.getTotal(), pageNum, pageSize); + } +} diff --git a/src/main/java/com/nlshop/service/user/CartService.java b/src/main/java/com/nlshop/service/user/CartService.java new file mode 100644 index 0000000..4dc1245 --- /dev/null +++ b/src/main/java/com/nlshop/service/user/CartService.java @@ -0,0 +1,127 @@ +package com.nlshop.service.user; + +import com.nlshop.dto.request.CartAddRequest; +import com.nlshop.entity.CartItem; +import com.nlshop.mapper.CartMapper; +import com.nlshop.service.algorithm.CollaborativeFilteringService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class CartService { + + @Autowired + private CartMapper cartMapper; + + @Autowired + private CollaborativeFilteringService cfService; + + public CartItem addToCart(Long userId, CartAddRequest request) { + // 检查是否已存在相同的商品配置 + CartItem existing = cartMapper.selectByUserAndProduct( + userId, request.getProductId(), request.getSpecId(), + request.getCustomSweetness(), request.getCustomIce(), request.getToppings() + ); + + if (existing != null) { + // 更新数量 + existing.setQuantity(existing.getQuantity() + request.getQuantity()); + cartMapper.updateQuantity(existing.getId(), existing.getQuantity()); + return cartMapper.selectById(existing.getId()); + } else { + // 新增 + CartItem item = new CartItem(); + item.setUserId(userId); + item.setProductId(request.getProductId()); + item.setSpecId(request.getSpecId()); + item.setQuantity(request.getQuantity()); + item.setCustomSweetness(request.getCustomSweetness()); + item.setCustomIce(request.getCustomIce()); + item.setToppings(request.getToppings()); + cartMapper.insert(item); + + // 记录用户行为(加入购物车表示用户对商品有兴趣) + // 如果用户已经浏览过该商品,recordView不会重复记录 + // 使用try-catch确保行为记录失败不影响购物车添加 + try { + cfService.recordView(userId, request.getProductId()); + } catch (Exception e) { + // 记录行为失败不应该影响购物车添加,只打印错误日志 + System.err.println("记录购物车行为失败: " + e.getMessage()); + } + + return cartMapper.selectById(item.getId()); + } + } + + public List getCart(Long userId) { + return cartMapper.selectByUserId(userId); + } + + public void updateQuantity(Long userId, Long cartId, Integer quantity) { + // 验证购物车项是否属于当前用户 + CartItem item = cartMapper.selectById(cartId); + if (item == null) { + throw new RuntimeException("购物车项不存在"); + } + if (!item.getUserId().equals(userId)) { + throw new RuntimeException("无权修改该商品"); + } + cartMapper.updateQuantity(cartId, quantity); + } + + public void deleteCartItem(Long userId, Long cartId) { + // 验证购物车项是否属于当前用户 + CartItem item = cartMapper.selectById(cartId); + if (item == null) { + throw new RuntimeException("购物车项不存在"); + } + if (!item.getUserId().equals(userId)) { + throw new RuntimeException("无权删除该商品"); + } + cartMapper.delete(cartId); + } + + public void deleteBatch(Long userId, List cartIds) { + if (cartIds == null || cartIds.isEmpty()) { + return; + } + // 验证所有商品都属于当前用户 + List items = cartMapper.selectByUserId(userId); + for (Long cartId : cartIds) { + boolean belongsToUser = items.stream().anyMatch(item -> item.getId().equals(cartId)); + if (!belongsToUser) { + throw new RuntimeException("无权删除该商品"); + } + } + // 执行批量删除 + cartMapper.deleteBatch(cartIds, userId); + } + + public void clearCart(Long userId) { + cartMapper.deleteByUserId(userId); + } + + /** + * 从cookies同步购物车数据(登录后同步) + * 相同商品会自动合并数量 + */ + public void syncCartFromCookies(Long userId, List items) { + if (items == null || items.isEmpty()) { + return; + } + + // 遍历每个商品,调用addToCart会自动合并相同商品 + for (CartAddRequest request : items) { + try { + addToCart(userId, request); + } catch (Exception e) { + // 单个商品同步失败不影响其他,只记录日志 + System.err.println("同步购物车商品失败: userId=" + userId + + ", productId=" + request.getProductId() + ", error=" + e.getMessage()); + } + } + } +} diff --git a/src/main/java/com/nlshop/service/user/MessageService.java b/src/main/java/com/nlshop/service/user/MessageService.java new file mode 100644 index 0000000..a019621 --- /dev/null +++ b/src/main/java/com/nlshop/service/user/MessageService.java @@ -0,0 +1,31 @@ +package com.nlshop.service.user; + +import com.nlshop.entity.Message; +import com.nlshop.mapper.MessageMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; + +@Service("userMessageService") +public class MessageService { + + @Autowired + private MessageMapper messageMapper; + + public Message createMessage(Long userId, Long merchantId, Long orderId, String content) { + Message message = new Message(); + message.setUserId(userId); + message.setMerchantId(merchantId); + message.setOrderId(orderId); + message.setContent(content); + message.setStatus(0); + messageMapper.insert(message); + return message; + } + + public List getMessages(Long userId) { + return messageMapper.selectByUserId(userId); + } +} diff --git a/src/main/java/com/nlshop/service/user/OrderService.java b/src/main/java/com/nlshop/service/user/OrderService.java new file mode 100644 index 0000000..41bb6e2 --- /dev/null +++ b/src/main/java/com/nlshop/service/user/OrderService.java @@ -0,0 +1,239 @@ +package com.nlshop.service.user; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.nlshop.dto.request.OrderCreateRequest; +import com.nlshop.dto.request.PaymentRequest; +import com.nlshop.dto.response.OrderDetailResponse; +import com.nlshop.entity.*; +import com.nlshop.exception.BusinessException; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.TypeReference; +import com.nlshop.mapper.*; +import com.nlshop.service.algorithm.CollaborativeFilteringService; +import com.nlshop.util.OrderNoUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; + +@Service +public class OrderService { + + @Autowired + private OrderMapper orderMapper; + + @Autowired + private OrderItemMapper orderItemMapper; + + @Autowired + private OrderTrackMapper orderTrackMapper; + + @Autowired + private CartMapper cartMapper; + + @Autowired + private ProductMapper productMapper; + + @Autowired + private ProductSpecMapper productSpecMapper; + + @Autowired + private ProductToppingMapper productToppingMapper; + + @Autowired + private CollaborativeFilteringService cfService; + + @Transactional + public Order createOrder(Long userId, OrderCreateRequest request) { + // 获取购物车商品 + List cartItems = cartMapper.selectByUserId(userId); + if (cartItems.isEmpty()) { + throw new BusinessException(400, "购物车为空"); + } + + // 计算总金额 + BigDecimal totalAmount = BigDecimal.ZERO; + Long merchantId = null; + + for (CartItem item : cartItems) { + Product product = productMapper.selectById(item.getProductId()); + if (product == null || product.getStatus() == 0) { + throw new BusinessException(400, "商品不存在或已下架: " + product.getName()); + } + + if (merchantId == null) { + merchantId = product.getMerchantId(); + } else if (!merchantId.equals(product.getMerchantId())) { + throw new BusinessException(400, "购物车中包含不同商家的商品"); + } + + BigDecimal price = product.getBasePrice(); + if (item.getSpecId() != null) { + ProductSpec spec = productSpecMapper.selectById(item.getSpecId()); + if (spec != null) { + price = price.add(spec.getPriceAdjust()); + } + } + + // 计算配料价格 + if (item.getToppings() != null && !item.getToppings().isEmpty()) { + try { + List toppingIds = JSON.parseObject(item.getToppings(), new TypeReference>(){}); + if (toppingIds != null && !toppingIds.isEmpty()) { + for (Long toppingId : toppingIds) { + ProductTopping topping = productToppingMapper.selectById(toppingId); + if (topping != null && topping.getPrice() != null) { + price = price.add(topping.getPrice()); + } + } + } + } catch (Exception e) { + // 如果解析失败,忽略配料价格 + } + } + + totalAmount = totalAmount.add(price.multiply(new BigDecimal(item.getQuantity()))); + } + + // 创建订单 + Order order = new Order(); + order.setOrderNo(OrderNoUtil.generate()); + order.setUserId(userId); + order.setMerchantId(merchantId); + order.setTotalAmount(totalAmount); + order.setOrderStatus("PENDING_PAY"); + order.setPaymentStatus(0); + order.setAddress(request.getAddress()); + order.setContactPhone(request.getContactPhone()); + orderMapper.insert(order); + + // 创建订单明细 + for (CartItem item : cartItems) { + Product product = productMapper.selectById(item.getProductId()); + BigDecimal price = product.getBasePrice(); + String specName = null; + + if (item.getSpecId() != null) { + ProductSpec spec = productSpecMapper.selectById(item.getSpecId()); + if (spec != null) { + price = price.add(spec.getPriceAdjust()); + specName = spec.getSpecName(); + } + } + + // 计算配料价格 + if (item.getToppings() != null && !item.getToppings().isEmpty()) { + try { + List toppingIds = JSON.parseObject(item.getToppings(), new TypeReference>(){}); + if (toppingIds != null && !toppingIds.isEmpty()) { + for (Long toppingId : toppingIds) { + ProductTopping topping = productToppingMapper.selectById(toppingId); + if (topping != null && topping.getPrice() != null) { + price = price.add(topping.getPrice()); + } + } + } + } catch (Exception e) { + // 如果解析失败,忽略配料价格 + } + } + + OrderItem orderItem = new OrderItem(); + orderItem.setOrderId(order.getId()); + orderItem.setProductId(item.getProductId()); + orderItem.setProductName(product.getName()); + orderItem.setSpecName(specName); + orderItem.setQuantity(item.getQuantity()); + orderItem.setPrice(price); + orderItem.setCustomSweetness(item.getCustomSweetness()); + orderItem.setCustomIce(item.getCustomIce()); + orderItem.setToppings(item.getToppings()); + orderItem.setSubtotal(price.multiply(new BigDecimal(item.getQuantity()))); + orderItemMapper.insert(orderItem); + } + + // 记录订单跟踪 + addOrderTrack(order.getId(), "PENDING_PAY", "订单已创建,等待支付"); + + // 清空购物车 + cartMapper.deleteByUserId(userId); + + return orderMapper.selectById(order.getId()); + } + + @Transactional + public void payOrder(Long userId, Long orderId, PaymentRequest request) { + Order order = orderMapper.selectById(orderId); + if (order == null) { + throw new BusinessException(404, "订单不存在"); + } + if (!order.getUserId().equals(userId)) { + throw new BusinessException(403, "无权操作该订单"); + } + if (!"PENDING_PAY".equals(order.getOrderStatus())) { + throw new BusinessException(400, "订单状态不正确"); + } + + // 更新支付信息 + orderMapper.updatePayment(orderId, 1, request.getPaymentMethod()); + orderMapper.updateStatus(orderId, "MAKING"); + + // 记录订单跟踪 + addOrderTrack(orderId, "MAKING", "支付成功,商家开始制作"); + + // 更新用户偏好(协同过滤) + List items = orderItemMapper.selectByOrderId(orderId); + for (OrderItem item : items) { + cfService.updateUserPreference(order.getUserId(), item.getProductId()); + } + } + + public List getOrders(Long userId, String status) { + return orderMapper.selectByUserId(userId, status); + } + + public OrderDetailResponse getOrderDetail(Long orderId, Long userId) { + Order order = orderMapper.selectById(orderId); + if (order == null || !order.getUserId().equals(userId)) { + throw new BusinessException(404, "订单不存在"); + } + List items = orderItemMapper.selectByOrderId(orderId); + List tracks = orderTrackMapper.selectByOrderId(orderId); + + // 获取商品图片信息 + Map productImages = new java.util.HashMap<>(); + for (OrderItem item : items) { + Product product = productMapper.selectById(item.getProductId()); + if (product != null) { + productImages.put(item.getProductId(), product.getImage()); + } + } + + return OrderDetailResponse.of(order, items, tracks, productImages); + } + + public List getOrderTrack(Long userId, Long orderId) { + // 验证订单是否属于当前用户 + Order order = orderMapper.selectById(orderId); + if (order == null) { + throw new BusinessException(404, "订单不存在"); + } + if (!order.getUserId().equals(userId)) { + throw new BusinessException(403, "无权查看该订单"); + } + return orderTrackMapper.selectByOrderId(orderId); + } + + private void addOrderTrack(Long orderId, String status, String description) { + OrderTrack track = new OrderTrack(); + track.setOrderId(orderId); + track.setStatus(status); + track.setDescription(description); + orderTrackMapper.insert(track); + } +} diff --git a/src/main/java/com/nlshop/service/user/ProductService.java b/src/main/java/com/nlshop/service/user/ProductService.java new file mode 100644 index 0000000..508c33e --- /dev/null +++ b/src/main/java/com/nlshop/service/user/ProductService.java @@ -0,0 +1,77 @@ +package com.nlshop.service.user; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.nlshop.dto.response.PageResponse; +import com.nlshop.entity.Product; +import com.nlshop.entity.ProductCustom; +import com.nlshop.entity.ProductSpec; +import com.nlshop.entity.ProductTopping; +import com.nlshop.mapper.ProductCustomMapper; +import com.nlshop.mapper.ProductMapper; +import com.nlshop.mapper.ProductSpecMapper; +import com.nlshop.mapper.ProductToppingMapper; +import com.nlshop.service.algorithm.CollaborativeFilteringService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ProductService { + + @Autowired + private ProductMapper productMapper; + + @Autowired + private ProductSpecMapper productSpecMapper; + + @Autowired + private ProductToppingMapper productToppingMapper; + + @Autowired + private ProductCustomMapper productCustomMapper; + + @Autowired + private CollaborativeFilteringService cfService; + + public PageResponse getProducts(String category, Integer pageNum, Integer pageSize) { + PageHelper.startPage(pageNum, pageSize); + List products = productMapper.selectAll(category, 1); // 只查询上架商品 + PageInfo pageInfo = new PageInfo<>(products); + return PageResponse.of(products, pageInfo.getTotal(), pageNum, pageSize); + } + + public Map getProductDetail(Long productId, Long userId) { + Product product = productMapper.selectById(productId); + if (product == null || product.getStatus() == 0) { + throw new com.nlshop.exception.BusinessException(404, "商品不存在或已下架"); + } + + // 记录浏览行为 + if (userId != null) { + cfService.recordView(userId, productId); + } + + Map result = new HashMap<>(); + result.put("product", product); + result.put("specs", productSpecMapper.selectByProductId(productId)); + result.put("toppings", productToppingMapper.selectByProductId(productId)); + + // 获取定制选项 + List customs = productCustomMapper.selectByProductId(productId); + Map> customMap = new HashMap<>(); + for (ProductCustom custom : customs) { + customMap.computeIfAbsent(custom.getOptionType(), k -> new java.util.ArrayList<>()).add(custom); + } + result.put("customs", customMap); + + return result; + } + + public List getHotProducts(int limit) { + return productMapper.selectHotProducts(limit); + } +} diff --git a/src/main/java/com/nlshop/service/user/RecommendService.java b/src/main/java/com/nlshop/service/user/RecommendService.java new file mode 100644 index 0000000..fbafd99 --- /dev/null +++ b/src/main/java/com/nlshop/service/user/RecommendService.java @@ -0,0 +1,19 @@ +package com.nlshop.service.user; + +import com.nlshop.entity.Product; +import com.nlshop.service.algorithm.CollaborativeFilteringService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class RecommendService { + + @Autowired + private CollaborativeFilteringService cfService; + + public List getRecommendations(Long userId, int limit) { + return cfService.getRecommendations(userId, limit); + } +} diff --git a/src/main/java/com/nlshop/service/user/UserService.java b/src/main/java/com/nlshop/service/user/UserService.java new file mode 100644 index 0000000..f2b11e5 --- /dev/null +++ b/src/main/java/com/nlshop/service/user/UserService.java @@ -0,0 +1,113 @@ +package com.nlshop.service.user; + +import com.nlshop.dto.request.UserRegisterRequest; +import com.nlshop.entity.User; +import com.nlshop.entity.UserAddress; +import com.nlshop.exception.BusinessException; +import com.nlshop.mapper.UserAddressMapper; +import com.nlshop.mapper.UserMapper; +import com.nlshop.util.PasswordUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +@Service +public class UserService { + + @Autowired + private UserMapper userMapper; + + @Autowired + private UserAddressMapper userAddressMapper; + + public User register(UserRegisterRequest request) { + // 检查用户名是否已存在 + if (userMapper.selectByUsername(request.getUsername()) != null) { + throw new BusinessException(400, "用户名已存在"); + } + + User user = new User(); + BeanUtils.copyProperties(request, user); + user.setPassword(PasswordUtil.encrypt(request.getPassword())); + userMapper.insert(user); + return user; + } + + public User login(String username, String password) { + User user = userMapper.selectByUsername(username); + if (user == null || !PasswordUtil.verify(password, user.getPassword())) { + throw new BusinessException(401, "用户名或密码错误"); + } + return user; + } + + public User getProfile(Long userId) { + return userMapper.selectById(userId); + } + + public User updateProfile(Long userId, User user) { + user.setId(userId); + userMapper.update(user); + return userMapper.selectById(userId); + } + + public List getAddresses(Long userId) { + return userAddressMapper.selectByUserId(userId); + } + + @Transactional + public UserAddress addAddress(Long userId, UserAddress address) { + address.setUserId(userId); + // 如果设置为默认地址,取消其他默认地址 + if (address.getIsDefault() != null && address.getIsDefault() == 1) { + UserAddress defaultAddr = userAddressMapper.selectDefaultByUserId(userId); + if (defaultAddr != null) { + defaultAddr.setIsDefault(0); + userAddressMapper.update(defaultAddr); + } + } + userAddressMapper.insert(address); + return address; + } + + public UserAddress updateAddress(Long userId, Long addressId, UserAddress address) { + // 验证地址是否属于当前用户 + UserAddress existing = userAddressMapper.selectById(addressId); + if (existing == null) { + throw new BusinessException(404, "地址不存在"); + } + if (!existing.getUserId().equals(userId)) { + throw new BusinessException(403, "无权修改该地址"); + } + + address.setId(addressId); + address.setUserId(userId); + + // 如果设置为默认地址,取消其他默认地址 + if (address.getIsDefault() != null && address.getIsDefault() == 1) { + UserAddress defaultAddr = userAddressMapper.selectDefaultByUserId(userId); + if (defaultAddr != null && !defaultAddr.getId().equals(addressId)) { + defaultAddr.setIsDefault(0); + userAddressMapper.update(defaultAddr); + } + } + + userAddressMapper.update(address); + return userAddressMapper.selectById(addressId); + } + + public void deleteAddress(Long userId, Long addressId) { + // 验证地址是否属于当前用户 + UserAddress existing = userAddressMapper.selectById(addressId); + if (existing == null) { + throw new BusinessException(404, "地址不存在"); + } + if (!existing.getUserId().equals(userId)) { + throw new BusinessException(403, "无权删除该地址"); + } + userAddressMapper.delete(addressId); + } +} diff --git a/src/main/java/com/nlshop/util/FileUploadUtil.java b/src/main/java/com/nlshop/util/FileUploadUtil.java new file mode 100644 index 0000000..b27ccec --- /dev/null +++ b/src/main/java/com/nlshop/util/FileUploadUtil.java @@ -0,0 +1,70 @@ +package com.nlshop.util; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.UUID; + +@Component +public class FileUploadUtil { + + @Value("${file.upload-path}") + private String uploadPath; + + public String uploadAvatar(MultipartFile file) throws IOException { + return uploadFile(file, "avatar"); + } + + public String uploadProductImage(MultipartFile file) throws IOException { + return uploadFile(file, "product"); + } + + private String uploadFile(MultipartFile file, String subDir) throws IOException { + if (file == null || file.isEmpty()) { + return null; + } + + // 创建目录 + String dir = uploadPath + File.separator + subDir; + Path path = Paths.get(dir); + if (!Files.exists(path)) { + Files.createDirectories(path); + } + + // 生成文件名 + String originalFilename = file.getOriginalFilename(); + String extension = ""; + if (originalFilename != null && originalFilename.contains(".")) { + extension = originalFilename.substring(originalFilename.lastIndexOf(".")); + } + String filename = UUID.randomUUID().toString() + extension; + + // 保存文件 + Path filePath = Paths.get(dir, filename); + Files.write(filePath, file.getBytes()); + + // 返回相对路径 + return "/upload/" + subDir + "/" + filename; + } + + public boolean deleteFile(String filePath) { + if (filePath == null || filePath.isEmpty()) { + return false; + } + + try { + // 移除开头的 /upload/ + String relativePath = filePath.replace("/upload/", ""); + Path path = Paths.get(uploadPath, relativePath); + return Files.deleteIfExists(path); + } catch (IOException e) { + return false; + } + } +} diff --git a/src/main/java/com/nlshop/util/OrderNoUtil.java b/src/main/java/com/nlshop/util/OrderNoUtil.java new file mode 100644 index 0000000..7b0d379 --- /dev/null +++ b/src/main/java/com/nlshop/util/OrderNoUtil.java @@ -0,0 +1,16 @@ +package com.nlshop.util; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.concurrent.atomic.AtomicInteger; + +public class OrderNoUtil { + private static final AtomicInteger counter = new AtomicInteger(0); + private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); + + public static String generate() { + String timestamp = LocalDateTime.now().format(formatter); + int seq = counter.incrementAndGet() % 10000; + return "ORD" + timestamp + String.format("%04d", seq); + } +} diff --git a/src/main/java/com/nlshop/util/PasswordUtil.java b/src/main/java/com/nlshop/util/PasswordUtil.java new file mode 100644 index 0000000..989fafa --- /dev/null +++ b/src/main/java/com/nlshop/util/PasswordUtil.java @@ -0,0 +1,25 @@ +package com.nlshop.util; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +public class PasswordUtil { + + public static String encrypt(String password) { + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + byte[] bytes = md.digest(password.getBytes()); + StringBuilder sb = new StringBuilder(); + for (byte b : bytes) { + sb.append(String.format("%02x", b)); + } + return sb.toString(); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException("密码加密失败", e); + } + } + + public static boolean verify(String password, String encryptedPassword) { + return encrypt(password).equals(encryptedPassword); + } +} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml new file mode 100644 index 0000000..c312981 --- /dev/null +++ b/src/main/resources/application-dev.yml @@ -0,0 +1,5 @@ +spring: + datasource: + url: jdbc:mysql://localhost:3306/nl_shop?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai + username: root + password: root diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..d1cd230 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,47 @@ +server: + port: 14001 + +spring: + application: + name: nl-shop + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/z_wb_nc_shop?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true + username: root + password: root + redis: + host: 127.0.0.1 + port: 6379 + password: redis_pBjaRs + timeout: 3000ms + lettuce: + pool: + max-active: 8 + max-idle: 8 + min-idle: 0 + servlet: + multipart: + enabled: true + max-file-size: 10MB + max-request-size: 10MB + thymeleaf: + prefix: classpath:/templates/ + suffix: .html + mode: HTML + encoding: UTF-8 + cache: false + +mybatis: + mapper-locations: classpath:mapper/*.xml + type-aliases-package: com.nlshop.entity + configuration: + map-underscore-to-camel-case: true + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + +pagehelper: + helper-dialect: mysql + reasonable: true + support-methods-arguments: true + +file: + upload-path: ${user.dir}/src/main/resources/static/upload diff --git a/src/main/resources/db/schema.sql b/src/main/resources/db/schema.sql new file mode 100644 index 0000000..4e3a445 --- /dev/null +++ b/src/main/resources/db/schema.sql @@ -0,0 +1,248 @@ +-- 奶茶店管理系统数据库表结构 + +-- 用户表 +CREATE TABLE IF NOT EXISTS `user` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `username` VARCHAR(50) UNIQUE NOT NULL COMMENT '用户名', + `password` VARCHAR(255) NOT NULL COMMENT '密码(加密)', + `name` VARCHAR(50) COMMENT '姓名', + `gender` TINYINT COMMENT '性别:0-女,1-男', + `phone` VARCHAR(20) COMMENT '手机号', + `email` VARCHAR(100) COMMENT '邮箱', + `avatar` VARCHAR(255) COMMENT '头像路径', + `address` VARCHAR(255) COMMENT '默认地址', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'; + +-- 用户地址表 +CREATE TABLE IF NOT EXISTS `user_address` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `user_id` BIGINT NOT NULL COMMENT '用户ID', + `address` VARCHAR(255) NOT NULL COMMENT '详细地址', + `contact_name` VARCHAR(50) COMMENT '联系人姓名', + `contact_phone` VARCHAR(20) COMMENT '联系人电话', + `is_default` TINYINT DEFAULT 0 COMMENT '是否默认:0-否,1-是', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户地址表'; + +-- 商家表 +CREATE TABLE IF NOT EXISTS `merchant` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `username` VARCHAR(50) UNIQUE NOT NULL COMMENT '用户名', + `password` VARCHAR(255) NOT NULL COMMENT '密码(加密)', + `store_name` VARCHAR(100) NOT NULL COMMENT '门店名称', + `address` VARCHAR(255) COMMENT '门店地址', + `phone` VARCHAR(20) COMMENT '联系电话', + `email` VARCHAR(100) COMMENT '邮箱', + `manager_name` VARCHAR(50) COMMENT '负责人姓名', + `avatar` VARCHAR(255) COMMENT '头像路径', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商家表'; + +-- 商品表 +CREATE TABLE IF NOT EXISTS `product` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `merchant_id` BIGINT NOT NULL COMMENT '商家ID', + `name` VARCHAR(100) NOT NULL COMMENT '商品名称', + `category` VARCHAR(50) COMMENT '分类', + `description` TEXT COMMENT '商品描述', + `base_price` DECIMAL(10,2) NOT NULL COMMENT '基础价格', + `image` VARCHAR(255) COMMENT '商品图片', + `status` TINYINT DEFAULT 1 COMMENT '状态:0-下架,1-上架', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (`merchant_id`) REFERENCES `merchant`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表'; + +-- 商品规格表 +CREATE TABLE IF NOT EXISTS `product_spec` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `product_id` BIGINT NOT NULL COMMENT '商品ID', + `spec_name` VARCHAR(50) NOT NULL COMMENT '规格名称(大杯/中杯/小杯)', + `price_adjust` DECIMAL(10,2) DEFAULT 0 COMMENT '价格调整(相对于基础价格)', + FOREIGN KEY (`product_id`) REFERENCES `product`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品规格表'; + +-- 配料表 +CREATE TABLE IF NOT EXISTS `product_topping` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `product_id` BIGINT NOT NULL COMMENT '商品ID', + `topping_name` VARCHAR(50) NOT NULL COMMENT '配料名称', + `price` DECIMAL(10,2) DEFAULT 0 COMMENT '配料价格', + FOREIGN KEY (`product_id`) REFERENCES `product`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配料表'; + +-- 商品定制选项表 +CREATE TABLE IF NOT EXISTS `product_custom` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `product_id` BIGINT NOT NULL COMMENT '商品ID', + `option_type` VARCHAR(20) NOT NULL COMMENT '选项类型:sweetness-甜度,ice-冰度', + `option_value` VARCHAR(50) NOT NULL COMMENT '选项值', + `price_adjust` DECIMAL(10,2) DEFAULT 0 COMMENT '价格调整', + FOREIGN KEY (`product_id`) REFERENCES `product`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品定制选项表'; + +-- 购物车表 +CREATE TABLE IF NOT EXISTS `cart` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `user_id` BIGINT NOT NULL COMMENT '用户ID', + `product_id` BIGINT NOT NULL COMMENT '商品ID', + `spec_id` BIGINT COMMENT '规格ID', + `quantity` INT DEFAULT 1 COMMENT '数量', + `custom_sweetness` VARCHAR(20) COMMENT '甜度定制', + `custom_ice` VARCHAR(20) COMMENT '冰度定制', + `toppings` TEXT COMMENT '配料JSON', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE CASCADE, + FOREIGN KEY (`product_id`) REFERENCES `product`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='购物车表'; + +-- 订单表 +CREATE TABLE IF NOT EXISTS `order` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `order_no` VARCHAR(50) UNIQUE NOT NULL COMMENT '订单号', + `user_id` BIGINT NOT NULL COMMENT '用户ID', + `merchant_id` BIGINT NOT NULL COMMENT '商家ID', + `total_amount` DECIMAL(10,2) NOT NULL COMMENT '订单总金额', + `payment_method` VARCHAR(20) COMMENT '支付方式:wechat/alipay', + `payment_status` TINYINT DEFAULT 0 COMMENT '支付状态:0-未支付,1-已支付', + `order_status` VARCHAR(20) DEFAULT 'PENDING_PAY' COMMENT '订单状态:PENDING_PAY-待支付,MAKING-制作中,READY-待取餐,COMPLETED-已完成,CANCELLED-已取消', + `address` VARCHAR(255) NOT NULL COMMENT '收货地址', + `contact_phone` VARCHAR(20) NOT NULL COMMENT '联系电话', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `pay_time` DATETIME COMMENT '支付时间', + `complete_time` DATETIME COMMENT '完成时间', + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`), + FOREIGN KEY (`merchant_id`) REFERENCES `merchant`(`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表'; + +-- 订单明细表 +CREATE TABLE IF NOT EXISTS `order_item` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `order_id` BIGINT NOT NULL COMMENT '订单ID', + `product_id` BIGINT NOT NULL COMMENT '商品ID', + `product_name` VARCHAR(100) NOT NULL COMMENT '商品名称', + `spec_name` VARCHAR(50) COMMENT '规格名称', + `quantity` INT NOT NULL COMMENT '数量', + `price` DECIMAL(10,2) NOT NULL COMMENT '单价', + `custom_sweetness` VARCHAR(20) COMMENT '甜度', + `custom_ice` VARCHAR(20) COMMENT '冰度', + `toppings` TEXT COMMENT '配料JSON', + `subtotal` DECIMAL(10,2) NOT NULL COMMENT '小计', + FOREIGN KEY (`order_id`) REFERENCES `order`(`id`) ON DELETE CASCADE, + FOREIGN KEY (`product_id`) REFERENCES `product`(`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单明细表'; + +-- 订单跟踪表 +CREATE TABLE IF NOT EXISTS `order_track` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `order_id` BIGINT NOT NULL COMMENT '订单ID', + `status` VARCHAR(20) NOT NULL COMMENT '状态', + `description` VARCHAR(255) COMMENT '描述', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (`order_id`) REFERENCES `order`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单跟踪表'; + +-- 公告表 +CREATE TABLE IF NOT EXISTS `announcement` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `merchant_id` BIGINT NOT NULL COMMENT '商家ID', + `title` VARCHAR(200) NOT NULL COMMENT '标题', + `content` TEXT COMMENT '内容', + `type` VARCHAR(20) DEFAULT 'NOTICE' COMMENT '类型:ACTIVITY-活动,NOTICE-通知', + `status` TINYINT DEFAULT 1 COMMENT '状态:0-下架,1-发布', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (`merchant_id`) REFERENCES `merchant`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公告表'; + +-- 留言反馈表 +CREATE TABLE IF NOT EXISTS `message` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `user_id` BIGINT NOT NULL COMMENT '用户ID', + `merchant_id` BIGINT NOT NULL COMMENT '商家ID', + `order_id` BIGINT COMMENT '订单ID', + `content` TEXT NOT NULL COMMENT '留言内容', + `reply` TEXT COMMENT '回复内容', + `status` TINYINT DEFAULT 0 COMMENT '状态:0-未回复,1-已回复', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, + `reply_time` DATETIME COMMENT '回复时间', + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`), + FOREIGN KEY (`merchant_id`) REFERENCES `merchant`(`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='留言反馈表'; + +-- 评价表 +CREATE TABLE IF NOT EXISTS `review` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `user_id` BIGINT NOT NULL COMMENT '用户ID', + `order_id` BIGINT NOT NULL COMMENT '订单ID', + `product_id` BIGINT NOT NULL COMMENT '商品ID', + `rating` TINYINT NOT NULL COMMENT '评分:1-5', + `content` TEXT COMMENT '评价内容', + `reply` TEXT COMMENT '商家回复', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`), + FOREIGN KEY (`order_id`) REFERENCES `order`(`id`), + FOREIGN KEY (`product_id`) REFERENCES `product`(`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='评价表'; + +-- 库存表 +CREATE TABLE IF NOT EXISTS `inventory` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `merchant_id` BIGINT NOT NULL COMMENT '商家ID', + `material_name` VARCHAR(100) NOT NULL COMMENT '原料名称', + `quantity` DECIMAL(10,2) NOT NULL COMMENT '数量', + `unit` VARCHAR(20) COMMENT '单位', + `min_threshold` DECIMAL(10,2) DEFAULT 0 COMMENT '最低库存阈值', + `last_in_time` DATETIME COMMENT '最后入库时间', + `last_out_time` DATETIME COMMENT '最后出库时间', + FOREIGN KEY (`merchant_id`) REFERENCES `merchant`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存表'; + +-- 库存操作日志表 +CREATE TABLE IF NOT EXISTS `inventory_log` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `inventory_id` BIGINT NOT NULL COMMENT '库存ID', + `operation_type` VARCHAR(20) NOT NULL COMMENT '操作类型:IN-入库,OUT-出库', + `quantity` DECIMAL(10,2) NOT NULL COMMENT '操作数量', + `operator` VARCHAR(50) COMMENT '操作人', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (`inventory_id`) REFERENCES `inventory`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='库存操作日志表'; + +-- 用户行为表(用于协同过滤) +CREATE TABLE IF NOT EXISTS `user_behavior` ( + `id` BIGINT PRIMARY KEY AUTO_INCREMENT, + `user_id` BIGINT NOT NULL COMMENT '用户ID', + `product_id` BIGINT NOT NULL COMMENT '商品ID', + `behavior_type` VARCHAR(20) NOT NULL COMMENT '行为类型:VIEW-浏览,PURCHASE-购买,RATING-评分', + `score` DECIMAL(5,2) DEFAULT 0 COMMENT '评分(0-5)', + `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP, + FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE CASCADE, + FOREIGN KEY (`product_id`) REFERENCES `product`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户行为表'; + +-- 用户相似度缓存表(可选) +CREATE TABLE IF NOT EXISTS `user_similarity` ( + `user1_id` BIGINT NOT NULL COMMENT '用户1ID', + `user2_id` BIGINT NOT NULL COMMENT '用户2ID', + `similarity_score` DECIMAL(10,6) NOT NULL COMMENT '相似度分数', + `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`user1_id`, `user2_id`), + FOREIGN KEY (`user1_id`) REFERENCES `user`(`id`) ON DELETE CASCADE, + FOREIGN KEY (`user2_id`) REFERENCES `user`(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户相似度缓存表'; + +-- 创建索引 +CREATE INDEX idx_user_username ON `user`(`username`); +CREATE INDEX idx_merchant_username ON `merchant`(`username`); +CREATE INDEX idx_product_merchant ON `product`(`merchant_id`); +CREATE INDEX idx_product_status ON `product`(`status`); +CREATE INDEX idx_cart_user ON `cart`(`user_id`); +CREATE INDEX idx_order_user ON `order`(`user_id`); +CREATE INDEX idx_order_merchant ON `order`(`merchant_id`); +CREATE INDEX idx_order_status ON `order`(`order_status`); +CREATE INDEX idx_order_no ON `order`(`order_no`); +CREATE INDEX idx_user_behavior_user ON `user_behavior`(`user_id`); +CREATE INDEX idx_user_behavior_product ON `user_behavior`(`product_id`); diff --git a/src/main/resources/mapper/AnnouncementMapper.xml b/src/main/resources/mapper/AnnouncementMapper.xml new file mode 100644 index 0000000..7beccba --- /dev/null +++ b/src/main/resources/mapper/AnnouncementMapper.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + INSERT INTO announcement (merchant_id, title, content, type, status) + VALUES (#{merchantId}, #{title}, #{content}, #{type}, #{status}) + + + + + + + + + + UPDATE announcement + + title = #{title}, + content = #{content}, + type = #{type}, + status = #{status}, + + WHERE id = #{id} + + + + DELETE FROM announcement WHERE id = #{id} + + diff --git a/src/main/resources/mapper/CartMapper.xml b/src/main/resources/mapper/CartMapper.xml new file mode 100644 index 0000000..5d0cd6b --- /dev/null +++ b/src/main/resources/mapper/CartMapper.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO cart (user_id, product_id, spec_id, quantity, custom_sweetness, custom_ice, toppings) + VALUES (#{userId}, #{productId}, #{specId}, #{quantity}, #{customSweetness}, #{customIce}, #{toppings}) + + + + + + + + + + UPDATE cart + + quantity = #{quantity}, + custom_sweetness = #{customSweetness}, + custom_ice = #{customIce}, + toppings = #{toppings}, + + WHERE id = #{id} + + + + UPDATE cart SET quantity = #{quantity} WHERE id = #{id} + + + + DELETE FROM cart WHERE id = #{id} + + + + DELETE FROM cart WHERE user_id = #{userId} + + + + DELETE FROM cart + WHERE id IN + + #{id} + + AND user_id = #{userId} + + diff --git a/src/main/resources/mapper/InventoryLogMapper.xml b/src/main/resources/mapper/InventoryLogMapper.xml new file mode 100644 index 0000000..7d8e843 --- /dev/null +++ b/src/main/resources/mapper/InventoryLogMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + INSERT INTO inventory_log (inventory_id, operation_type, quantity, operator) + VALUES (#{inventoryId}, #{operationType}, #{quantity}, #{operator}) + + + + diff --git a/src/main/resources/mapper/InventoryMapper.xml b/src/main/resources/mapper/InventoryMapper.xml new file mode 100644 index 0000000..3b5442e --- /dev/null +++ b/src/main/resources/mapper/InventoryMapper.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + INSERT INTO inventory (merchant_id, material_name, quantity, unit, min_threshold) + VALUES (#{merchantId}, #{materialName}, #{quantity}, #{unit}, #{minThreshold}) + + + + + + + + + + + + UPDATE inventory + + quantity = #{quantity}, + unit = #{unit}, + min_threshold = #{minThreshold}, + last_in_time = #{lastInTime}, + last_out_time = #{lastOutTime}, + + WHERE id = #{id} + + + + DELETE FROM inventory WHERE id = #{id} + + diff --git a/src/main/resources/mapper/MerchantMapper.xml b/src/main/resources/mapper/MerchantMapper.xml new file mode 100644 index 0000000..c01565a --- /dev/null +++ b/src/main/resources/mapper/MerchantMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + INSERT INTO merchant (username, password, store_name, address, phone, email, manager_name, avatar) + VALUES (#{username}, #{password}, #{storeName}, #{address}, #{phone}, #{email}, #{managerName}, #{avatar}) + + + + + + + + UPDATE merchant + + store_name = #{storeName}, + address = #{address}, + phone = #{phone}, + email = #{email}, + manager_name = #{managerName}, + avatar = #{avatar}, + + WHERE id = #{id} + + diff --git a/src/main/resources/mapper/MessageMapper.xml b/src/main/resources/mapper/MessageMapper.xml new file mode 100644 index 0000000..8c2a5f1 --- /dev/null +++ b/src/main/resources/mapper/MessageMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + INSERT INTO message (user_id, merchant_id, order_id, content, status) + VALUES (#{userId}, #{merchantId}, #{orderId}, #{content}, #{status}) + + + + + + + + + + UPDATE message + + reply = #{reply}, + status = #{status}, + reply_time = #{replyTime}, + + WHERE id = #{id} + + diff --git a/src/main/resources/mapper/OrderItemMapper.xml b/src/main/resources/mapper/OrderItemMapper.xml new file mode 100644 index 0000000..bc83853 --- /dev/null +++ b/src/main/resources/mapper/OrderItemMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + INSERT INTO order_item (order_id, product_id, product_name, spec_name, quantity, price, + custom_sweetness, custom_ice, toppings, subtotal) + VALUES (#{orderId}, #{productId}, #{productName}, #{specName}, #{quantity}, #{price}, + #{customSweetness}, #{customIce}, #{toppings}, #{subtotal}) + + + + + + diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml new file mode 100644 index 0000000..a440055 --- /dev/null +++ b/src/main/resources/mapper/OrderMapper.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO `order` (order_no, user_id, merchant_id, total_amount, payment_method, + payment_status, order_status, address, contact_phone, pay_time, complete_time) + VALUES (#{orderNo}, #{userId}, #{merchantId}, #{totalAmount}, #{paymentMethod}, + #{paymentStatus}, #{orderStatus}, #{address}, #{contactPhone}, #{payTime}, #{completeTime}) + + + + + + + + + + + + UPDATE `order` + + total_amount = #{totalAmount}, + payment_method = #{paymentMethod}, + payment_status = #{paymentStatus}, + order_status = #{orderStatus}, + address = #{address}, + contact_phone = #{contactPhone}, + pay_time = #{payTime}, + complete_time = #{completeTime}, + + WHERE id = #{id} + + + + UPDATE `order` SET order_status = #{status} WHERE id = #{id} + + + + UPDATE `order` + SET payment_status = #{paymentStatus}, + payment_method = #{paymentMethod}, + pay_time = NOW() + WHERE id = #{id} + + + + diff --git a/src/main/resources/mapper/OrderTrackMapper.xml b/src/main/resources/mapper/OrderTrackMapper.xml new file mode 100644 index 0000000..6f371e3 --- /dev/null +++ b/src/main/resources/mapper/OrderTrackMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + INSERT INTO order_track (order_id, status, description) + VALUES (#{orderId}, #{status}, #{description}) + + + + diff --git a/src/main/resources/mapper/ProductCustomMapper.xml b/src/main/resources/mapper/ProductCustomMapper.xml new file mode 100644 index 0000000..e166c67 --- /dev/null +++ b/src/main/resources/mapper/ProductCustomMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + INSERT INTO product_custom (product_id, option_type, option_value, price_adjust) + VALUES (#{productId}, #{optionType}, #{optionValue}, #{priceAdjust}) + + + + + + + + UPDATE product_custom + SET option_type = #{optionType}, option_value = #{optionValue}, price_adjust = #{priceAdjust} + WHERE id = #{id} + + + + DELETE FROM product_custom WHERE id = #{id} + + + + DELETE FROM product_custom WHERE product_id = #{productId} + + diff --git a/src/main/resources/mapper/ProductMapper.xml b/src/main/resources/mapper/ProductMapper.xml new file mode 100644 index 0000000..cc78848 --- /dev/null +++ b/src/main/resources/mapper/ProductMapper.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + INSERT INTO product (merchant_id, name, category, description, base_price, image, status) + VALUES (#{merchantId}, #{name}, #{category}, #{description}, #{basePrice}, #{image}, #{status}) + + + + + + + + + + + + UPDATE product + + name = #{name}, + category = #{category}, + description = #{description}, + base_price = #{basePrice}, + image = #{image}, + status = #{status}, + + WHERE id = #{id} + + + + UPDATE product SET status = #{status} WHERE id = #{id} + + diff --git a/src/main/resources/mapper/ProductSpecMapper.xml b/src/main/resources/mapper/ProductSpecMapper.xml new file mode 100644 index 0000000..412e9ab --- /dev/null +++ b/src/main/resources/mapper/ProductSpecMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + INSERT INTO product_spec (product_id, spec_name, price_adjust) + VALUES (#{productId}, #{specName}, #{priceAdjust}) + + + + + + + + UPDATE product_spec + SET spec_name = #{specName}, price_adjust = #{priceAdjust} + WHERE id = #{id} + + + + DELETE FROM product_spec WHERE id = #{id} + + + + DELETE FROM product_spec WHERE product_id = #{productId} + + diff --git a/src/main/resources/mapper/ProductToppingMapper.xml b/src/main/resources/mapper/ProductToppingMapper.xml new file mode 100644 index 0000000..eed4f8a --- /dev/null +++ b/src/main/resources/mapper/ProductToppingMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + INSERT INTO product_topping (product_id, topping_name, price) + VALUES (#{productId}, #{toppingName}, #{price}) + + + + + + + + UPDATE product_topping + SET topping_name = #{toppingName}, price = #{price} + WHERE id = #{id} + + + + DELETE FROM product_topping WHERE id = #{id} + + + + DELETE FROM product_topping WHERE product_id = #{productId} + + diff --git a/src/main/resources/mapper/ReviewMapper.xml b/src/main/resources/mapper/ReviewMapper.xml new file mode 100644 index 0000000..e53b279 --- /dev/null +++ b/src/main/resources/mapper/ReviewMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + INSERT INTO review (user_id, order_id, product_id, rating, content) + VALUES (#{userId}, #{orderId}, #{productId}, #{rating}, #{content}) + + + + + + + + + + + + + + UPDATE review + + reply = #{reply}, + + WHERE id = #{id} + + diff --git a/src/main/resources/mapper/UserAddressMapper.xml b/src/main/resources/mapper/UserAddressMapper.xml new file mode 100644 index 0000000..7ce2cd7 --- /dev/null +++ b/src/main/resources/mapper/UserAddressMapper.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + INSERT INTO user_address (user_id, address, contact_name, contact_phone, is_default) + VALUES (#{userId}, #{address}, #{contactName}, #{contactPhone}, #{isDefault}) + + + + + + + + + + UPDATE user_address + + address = #{address}, + contact_name = #{contactName}, + contact_phone = #{contactPhone}, + is_default = #{isDefault}, + + WHERE id = #{id} + + + + DELETE FROM user_address WHERE id = #{id} + + diff --git a/src/main/resources/mapper/UserBehaviorMapper.xml b/src/main/resources/mapper/UserBehaviorMapper.xml new file mode 100644 index 0000000..87a8fb4 --- /dev/null +++ b/src/main/resources/mapper/UserBehaviorMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + INSERT INTO user_behavior (user_id, product_id, behavior_type, score) + VALUES (#{userId}, #{productId}, #{behaviorType}, #{score}) + + + + + + + + + + UPDATE user_behavior + SET score = #{score}, create_time = NOW() + WHERE id = #{id} + + + + + + + + diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml new file mode 100644 index 0000000..516dd07 --- /dev/null +++ b/src/main/resources/mapper/UserMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + INSERT INTO user (username, password, name, gender, phone, email, avatar, address) + VALUES (#{username}, #{password}, #{name}, #{gender}, #{phone}, #{email}, #{avatar}, #{address}) + + + + + + + + UPDATE user + + name = #{name}, + gender = #{gender}, + phone = #{phone}, + email = #{email}, + avatar = #{avatar}, + address = #{address}, + + WHERE id = #{id} + + + + UPDATE user SET password = #{password} WHERE id = #{id} + + + + diff --git a/src/main/resources/mapper/UserSimilarityMapper.xml b/src/main/resources/mapper/UserSimilarityMapper.xml new file mode 100644 index 0000000..104f24f --- /dev/null +++ b/src/main/resources/mapper/UserSimilarityMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + INSERT INTO user_similarity (user1_id, user2_id, similarity_score) + VALUES (#{user1Id}, #{user2Id}, #{similarityScore}) + ON DUPLICATE KEY UPDATE + similarity_score = #{similarityScore}, update_time = NOW() + + + + + + diff --git a/src/main/resources/static/js/cookie-utils.js b/src/main/resources/static/js/cookie-utils.js new file mode 100644 index 0000000..8d12a57 --- /dev/null +++ b/src/main/resources/static/js/cookie-utils.js @@ -0,0 +1,70 @@ +// Cookie工具类 +const CookieUtils = { + /** + * 设置Cookie + * @param {string} name Cookie名称 + * @param {string} value Cookie值 + * @param {number} days 过期天数,默认7天 + */ + set(name, value, days = 7) { + const expires = new Date(); + expires.setTime(expires.getTime() + days * 24 * 60 * 60 * 1000); + document.cookie = `${name}=${encodeURIComponent(value)};expires=${expires.toUTCString()};path=/`; + }, + + /** + * 获取Cookie + * @param {string} name Cookie名称 + * @returns {string|null} Cookie值,不存在返回null + */ + get(name) { + const nameEQ = name + "="; + const ca = document.cookie.split(';'); + for (let i = 0; i < ca.length; i++) { + let c = ca[i]; + while (c.charAt(0) === ' ') c = c.substring(1, c.length); + if (c.indexOf(nameEQ) === 0) { + return decodeURIComponent(c.substring(nameEQ.length, c.length)); + } + } + return null; + }, + + /** + * 删除Cookie + * @param {string} name Cookie名称 + */ + remove(name) { + document.cookie = `${name}=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/;`; + }, + + /** + * 获取JSON格式的Cookie + * @param {string} name Cookie名称 + * @returns {any|null} 解析后的JSON对象,不存在或解析失败返回null + */ + getJSON(name) { + const value = this.get(name); + if (!value) return null; + try { + return JSON.parse(value); + } catch (e) { + console.error(`Failed to parse cookie ${name}:`, e); + return null; + } + }, + + /** + * 设置JSON格式的Cookie + * @param {string} name Cookie名称 + * @param {any} value 要存储的对象 + * @param {number} days 过期天数,默认7天 + */ + setJSON(name, value, days = 7) { + try { + this.set(name, JSON.stringify(value), days); + } catch (e) { + console.error(`Failed to stringify cookie ${name}:`, e); + } + } +}; diff --git a/src/main/resources/static/js/custom-modal.js b/src/main/resources/static/js/custom-modal.js new file mode 100644 index 0000000..e71a063 --- /dev/null +++ b/src/main/resources/static/js/custom-modal.js @@ -0,0 +1,356 @@ +/** + * 自定义模态框组件 + * 符合项目UI设计规范,具有平滑过渡动画和响应式显示 + */ + +class CustomModal { + constructor(options = {}) { + this.id = options.id || 'customModal_' + Date.now(); + this.title = options.title || ''; + this.content = options.content || ''; + this.size = options.size || 'medium'; // small, medium, large + this.showClose = options.showClose !== false; + this.onClose = options.onClose || null; + this.onConfirm = options.onConfirm || null; + this.confirmText = options.confirmText || '确定'; + this.cancelText = options.cancelText || '取消'; + this.showFooter = options.showFooter !== false; + this.backdrop = options.backdrop !== false; + this.modal = null; + } + + show() { + // 创建模态框HTML + const modalHtml = this._createModalHtml(); + + // 移除已存在的模态框 + const existing = document.getElementById(this.id); + if (existing) { + existing.remove(); + } + + // 添加到body + document.body.insertAdjacentHTML('beforeend', modalHtml); + this.modal = document.getElementById(this.id); + this.backdropEl = document.getElementById(this.id + '_backdrop'); + + // 添加显示动画 + requestAnimationFrame(() => { + this.modal.classList.add('show'); + if (this.backdropEl) { + this.backdropEl.classList.add('show'); + } + document.body.style.overflow = 'hidden'; + }); + + // 绑定事件 + this._bindEvents(); + } + + hide() { + if (!this.modal) return; + + this.modal.classList.remove('show'); + if (this.backdropEl) { + this.backdropEl.classList.remove('show'); + } + document.body.style.overflow = ''; + + // 动画结束后移除 + setTimeout(() => { + if (this.modal && this.modal.parentNode) { + this.modal.remove(); + } + if (this.backdropEl && this.backdropEl.parentNode) { + this.backdropEl.remove(); + } + if (this.onClose) { + this.onClose(); + } + }, 300); + } + + _createModalHtml() { + const sizeClass = { + small: 'modal-sm', + medium: '', + large: 'modal-lg' + }[this.size]; + + const backdropHtml = this.backdrop ? + `
` : ''; + + return backdropHtml + ` +
+
+
+ ${this.title || this.showClose ? ` +
+ ${this.title ? `
${this.title}
` : ''} + ${this.showClose ? `` : ''} +
+ ` : ''} +
+ ${this.content} +
+ ${this.showFooter ? ` + + ` : ''} +
+
+
+ `; + } + + _bindEvents() { + // 关闭按钮 + const closeBtn = this.modal.querySelector('[data-dismiss="modal"]'); + if (closeBtn) { + closeBtn.addEventListener('click', () => this.hide()); + } + + // 确认按钮 + const confirmBtn = this.modal.querySelector('.custom-modal-btn-confirm'); + if (confirmBtn && this.onConfirm) { + confirmBtn.addEventListener('click', () => { + if (this.onConfirm() !== false) { + this.hide(); + } + }); + } + + // 点击背景关闭 + if (this.backdropEl) { + this.backdropEl.addEventListener('click', () => this.hide()); + } + + // 点击内容区域不关闭 + const content = this.modal.querySelector('.custom-modal-content'); + if (content) { + content.addEventListener('click', (e) => e.stopPropagation()); + } + } + + updateContent(content) { + const body = this.modal?.querySelector('.custom-modal-body'); + if (body) { + body.innerHTML = content; + } + } +} + +// CSS样式(通过JavaScript注入,或单独引入CSS文件) +const customModalStyles = ` + +`; + +// 注入样式 +if (!document.getElementById('custom-modal-styles')) { + document.head.insertAdjacentHTML('beforeend', customModalStyles); +} + +// 导出到全局 +window.CustomModal = CustomModal; + +// 便捷方法 +window.showCustomModal = function(options) { + const modal = new CustomModal(options); + modal.show(); + return modal; +}; + +window.showCustomConfirm = function(message, title = '确认操作', onConfirm = null) { + return new CustomModal({ + title: title, + content: `

${message}

`, + onConfirm: onConfirm, + showFooter: true + }); +}; diff --git a/src/main/resources/static/js/merchant-common.js b/src/main/resources/static/js/merchant-common.js new file mode 100644 index 0000000..c302084 --- /dev/null +++ b/src/main/resources/static/js/merchant-common.js @@ -0,0 +1,338 @@ +/** + * 商家后台通用脚本 + * 提供侧边栏、加载状态、交互反馈等功能 + */ + +// 侧边栏HTML模板 +function getSidebarHTML(activePage) { + const menuItems = [ + { href: '/merchant/dashboard.html', icon: 'bi-speedometer2', text: '首页', page: 'dashboard' }, + { href: '/merchant/products.html', icon: 'bi-box-seam', text: '商品管理', page: 'products' }, + { href: '/merchant/orders.html', icon: 'bi-receipt-cutoff', text: '订单管理', page: 'orders' }, + { href: '/merchant/inventory.html', icon: 'bi-archive', text: '库存管理', page: 'inventory' }, + { href: '/merchant/statistics.html', icon: 'bi-bar-chart', text: '数据统计', page: 'statistics' }, + { href: '/merchant/announcements.html', icon: 'bi-megaphone', text: '公告管理', page: 'announcements' }, + { href: '/merchant/messages.html', icon: 'bi-chat-dots', text: '留言管理', page: 'messages' }, + { href: '/merchant/reviews.html', icon: 'bi-star', text: '评价管理', page: 'reviews' }, + { href: '/merchant/users.html', icon: 'bi-people', text: '用户管理', page: 'users' } + ]; + + const menuHTML = menuItems.map(item => { + const activeClass = item.page === activePage ? 'active' : ''; + return ` + + `; + }).join(''); + + return ` + + + + `; +} + +// 侧边栏CSS样式 +const sidebarCSS = ` + .sidebar { + position: fixed; + top: 0; + left: 0; + width: 260px; + height: 100vh; + background: linear-gradient(180deg, #2c3e50 0%, #34495e 100%); + color: #fff; + z-index: 1050; + display: flex; + flex-direction: column; + transition: transform 0.3s ease; + box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1); + } + .sidebar-header { + padding: 1.5rem; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + display: flex; + justify-content: space-between; + align-items: center; + } + .sidebar-brand { + font-size: 1.25rem; + font-weight: 600; + } + .sidebar-nav { + flex: 1; + overflow-y: auto; + padding: 1rem 0; + } + .sidebar-nav .nav-link { + color: rgba(255, 255, 255, 0.8); + padding: 0.75rem 1.5rem; + transition: all 0.3s; + border-left: 3px solid transparent; + display: flex; + align-items: center; + text-decoration: none; + } + .sidebar-nav .nav-link:hover { + background-color: rgba(255, 255, 255, 0.1); + color: #fff; + border-left-color: #0d6efd; + } + .sidebar-nav .nav-link.active { + background-color: rgba(13, 110, 253, 0.2); + color: #fff; + border-left-color: #0d6efd; + font-weight: 600; + } + .sidebar-nav .nav-link i { + width: 24px; + font-size: 1.1rem; + margin-right: 0.75rem; + } + .sidebar-nav .nav-text { + flex: 1; + } + .sidebar-footer { + padding: 1rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); + } + @media (max-width: 767.98px) { + .sidebar { + transform: translateX(-100%); + } + .sidebar.show { + transform: translateX(0); + } + .sidebar-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.5); + z-index: 1049; + display: none; + transition: opacity 0.3s; + } + .sidebar-overlay.show { + display: block; + } + .top-navbar { + position: fixed; + top: 0; + left: 0; + right: 0; + height: 56px; + background: linear-gradient(180deg, #2c3e50 0%, #34495e 100%); + z-index: 1048; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + } + body { + padding-top: 56px; + } + } + @media (min-width: 768px) { + .main-content { + margin-left: 260px; + min-height: 100vh; + } + } + .sidebar-nav::-webkit-scrollbar { + width: 6px; + } + .sidebar-nav::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.05); + } + .sidebar-nav::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.2); + border-radius: 3px; + } + .sidebar-nav::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.3); + } +`; + +// 初始化侧边栏 +function initSidebar(activePage) { + // 添加CSS样式 + if (!document.getElementById('merchant-sidebar-styles')) { + const style = document.createElement('style'); + style.id = 'merchant-sidebar-styles'; + style.textContent = sidebarCSS; + document.head.appendChild(style); + } + + // 替换导航栏 + const oldNav = document.querySelector('nav.navbar'); + if (oldNav) { + oldNav.outerHTML = getSidebarHTML(activePage); + + // 初始化交互 + const sidebar = document.getElementById('sidebar'); + const sidebarOverlay = document.getElementById('sidebarOverlay'); + const sidebarToggleBtn = document.getElementById('sidebarToggleBtn'); + const sidebarCloseBtn = document.getElementById('sidebarCloseBtn'); + + if (sidebarToggleBtn) { + sidebarToggleBtn.addEventListener('click', function() { + sidebar.classList.add('show'); + sidebarOverlay.classList.add('show'); + document.body.style.overflow = 'hidden'; + }); + } + + function closeSidebar() { + sidebar.classList.remove('show'); + sidebarOverlay.classList.remove('show'); + document.body.style.overflow = ''; + } + + if (sidebarCloseBtn) { + sidebarCloseBtn.addEventListener('click', closeSidebar); + } + + if (sidebarOverlay) { + sidebarOverlay.addEventListener('click', closeSidebar); + } + + const navLinks = document.querySelectorAll('.sidebar-nav .nav-link'); + navLinks.forEach(link => { + link.addEventListener('click', function() { + if (window.innerWidth < 768) { + closeSidebar(); + } + }); + }); + } + + // 包装主内容区域 + const container = document.querySelector('.container, .container-fluid'); + if (container && !container.closest('.main-content')) { + const mainContent = document.createElement('div'); + mainContent.className = 'main-content'; + container.parentNode.insertBefore(mainContent, container); + mainContent.appendChild(container); + } +} + +// 显示加载状态 +function showLoading(elementId, message = '加载中...') { + const element = document.getElementById(elementId); + if (element) { + element.innerHTML = ` +
+
+ ${message} +
+

${message}

+
+ `; + } +} + +// 显示成功提示 +function showSuccess(message, duration = 3000) { + const toast = document.createElement('div'); + toast.className = 'toast align-items-center text-white bg-success border-0'; + toast.setAttribute('role', 'alert'); + toast.innerHTML = ` +
+
${message}
+ +
+ `; + + const toastContainer = document.getElementById('toastContainer') || createToastContainer(); + toastContainer.appendChild(toast); + + const bsToast = new bootstrap.Toast(toast); + bsToast.show(); + + toast.addEventListener('hidden.bs.toast', () => toast.remove()); +} + +// 显示错误提示 +function showError(message, duration = 3000) { + const toast = document.createElement('div'); + toast.className = 'toast align-items-center text-white bg-danger border-0'; + toast.setAttribute('role', 'alert'); + toast.innerHTML = ` +
+
${message}
+ +
+ `; + + const toastContainer = document.getElementById('toastContainer') || createToastContainer(); + toastContainer.appendChild(toast); + + const bsToast = new bootstrap.Toast(toast); + bsToast.show(); + + toast.addEventListener('hidden.bs.toast', () => toast.remove()); +} + +// 创建Toast容器 +function createToastContainer() { + const container = document.createElement('div'); + container.id = 'toastContainer'; + container.className = 'toast-container position-fixed top-0 end-0 p-3'; + container.style.zIndex = '1060'; + document.body.appendChild(container); + return container; +} + +// 检测当前页面 +function detectCurrentPage() { + const path = window.location.pathname; + if (path.includes('products')) return 'products'; + if (path.includes('orders')) return 'orders'; + if (path.includes('inventory')) return 'inventory'; + if (path.includes('statistics')) return 'statistics'; + if (path.includes('announcements')) return 'announcements'; + if (path.includes('messages')) return 'messages'; + if (path.includes('reviews')) return 'reviews'; + if (path.includes('users')) return 'users'; + return 'dashboard'; +} + +// 自动初始化 +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', function() { + initSidebar(detectCurrentPage()); + }); +} else { + initSidebar(detectCurrentPage()); +} diff --git a/src/main/resources/static/js/merchant-sidebar.js b/src/main/resources/static/js/merchant-sidebar.js new file mode 100644 index 0000000..26871e6 --- /dev/null +++ b/src/main/resources/static/js/merchant-sidebar.js @@ -0,0 +1,297 @@ +/** + * 商家后台侧边栏通用脚本 + * 提供侧边栏的HTML结构和交互逻辑 + */ + +// 生成侧边栏HTML +function generateSidebarHTML(currentPage) { + const menuItems = [ + { href: '/merchant/dashboard.html', icon: 'bi-speedometer2', text: '首页', page: 'dashboard' }, + { href: '/merchant/products.html', icon: 'bi-box-seam', text: '商品管理', page: 'products' }, + { href: '/merchant/orders.html', icon: 'bi-receipt-cutoff', text: '订单管理', page: 'orders' }, + { href: '/merchant/inventory.html', icon: 'bi-archive', text: '库存管理', page: 'inventory' }, + { href: '/merchant/statistics.html', icon: 'bi-bar-chart', text: '数据统计', page: 'statistics' }, + { href: '/merchant/announcements.html', icon: 'bi-megaphone', text: '公告管理', page: 'announcements' }, + { href: '/merchant/messages.html', icon: 'bi-chat-dots', text: '留言管理', page: 'messages' }, + { href: '/merchant/reviews.html', icon: 'bi-star', text: '评价管理', page: 'reviews' }, + { href: '/merchant/users.html', icon: 'bi-people', text: '用户管理', page: 'users' } + ]; + + const menuHTML = menuItems.map(item => { + const activeClass = item.page === currentPage ? 'active' : ''; + return ` + + `; + }).join(''); + + return ` + + + + + + + + + `; +} + +// 添加侧边栏CSS样式 +function addSidebarStyles() { + if (document.getElementById('sidebar-styles')) return; + + const style = document.createElement('style'); + style.id = 'sidebar-styles'; + style.textContent = ` + /* 侧边栏样式 */ + .sidebar { + position: fixed; + top: 0; + left: 0; + width: 260px; + height: 100vh; + background: linear-gradient(180deg, #2c3e50 0%, #34495e 100%); + color: #fff; + z-index: 1050; + display: flex; + flex-direction: column; + transition: transform 0.3s ease; + box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1); + } + + .sidebar-header { + padding: 1.5rem; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + display: flex; + justify-content: space-between; + align-items: center; + } + + .sidebar-brand { + font-size: 1.25rem; + font-weight: 600; + } + + .sidebar-nav { + flex: 1; + overflow-y: auto; + padding: 1rem 0; + } + + .sidebar-nav .nav-link { + color: rgba(255, 255, 255, 0.8); + padding: 0.75rem 1.5rem; + transition: all 0.3s; + border-left: 3px solid transparent; + display: flex; + align-items: center; + text-decoration: none; + } + + .sidebar-nav .nav-link:hover { + background-color: rgba(255, 255, 255, 0.1); + color: #fff; + border-left-color: #0d6efd; + } + + .sidebar-nav .nav-link.active { + background-color: rgba(13, 110, 253, 0.2); + color: #fff; + border-left-color: #0d6efd; + font-weight: 600; + } + + .sidebar-nav .nav-link i { + width: 24px; + font-size: 1.1rem; + margin-right: 0.75rem; + } + + .sidebar-nav .nav-text { + flex: 1; + } + + .sidebar-footer { + padding: 1rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); + } + + /* 移动端样式 */ + @media (max-width: 767.98px) { + .sidebar { + transform: translateX(-100%); + } + + .sidebar.show { + transform: translateX(0); + } + + .sidebar-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.5); + z-index: 1049; + display: none; + transition: opacity 0.3s; + } + + .sidebar-overlay.show { + display: block; + } + + .top-navbar { + position: fixed; + top: 0; + left: 0; + right: 0; + height: 56px; + background: linear-gradient(180deg, #2c3e50 0%, #34495e 100%); + z-index: 1048; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + } + + body { + padding-top: 56px; + } + } + + /* 桌面端主内容区域 */ + @media (min-width: 768px) { + .main-content { + margin-left: 260px; + min-height: 100vh; + } + } + + /* 滚动条样式 */ + .sidebar-nav::-webkit-scrollbar { + width: 6px; + } + + .sidebar-nav::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.05); + } + + .sidebar-nav::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.2); + border-radius: 3px; + } + + .sidebar-nav::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.3); + } + `; + document.head.appendChild(style); +} + +// 初始化侧边栏交互 +function initSidebar() { + const sidebar = document.getElementById('sidebar'); + const sidebarOverlay = document.getElementById('sidebarOverlay'); + const sidebarToggleBtn = document.getElementById('sidebarToggleBtn'); + const sidebarCloseBtn = document.getElementById('sidebarCloseBtn'); + + if (!sidebar) return; + + // 移动端切换侧边栏 + if (sidebarToggleBtn) { + sidebarToggleBtn.addEventListener('click', function() { + sidebar.classList.add('show'); + if (sidebarOverlay) sidebarOverlay.classList.add('show'); + document.body.style.overflow = 'hidden'; + }); + } + + // 关闭侧边栏 + function closeSidebar() { + sidebar.classList.remove('show'); + if (sidebarOverlay) sidebarOverlay.classList.remove('show'); + document.body.style.overflow = ''; + } + + if (sidebarCloseBtn) { + sidebarCloseBtn.addEventListener('click', closeSidebar); + } + + if (sidebarOverlay) { + sidebarOverlay.addEventListener('click', closeSidebar); + } + + // 点击导航项时,移动端自动关闭侧边栏 + const navLinks = document.querySelectorAll('.sidebar-nav .nav-link'); + navLinks.forEach(link => { + link.addEventListener('click', function() { + if (window.innerWidth < 768) { + closeSidebar(); + } + }); + }); +} + +// 初始化侧边栏(自动检测当前页面) +function initMerchantSidebar() { + addSidebarStyles(); + + // 检测当前页面 + const path = window.location.pathname; + let currentPage = 'dashboard'; + + if (path.includes('products')) currentPage = 'products'; + else if (path.includes('orders')) currentPage = 'orders'; + else if (path.includes('inventory')) currentPage = 'inventory'; + else if (path.includes('statistics')) currentPage = 'statistics'; + else if (path.includes('announcements')) currentPage = 'announcements'; + else if (path.includes('messages')) currentPage = 'messages'; + else if (path.includes('reviews')) currentPage = 'reviews'; + else if (path.includes('users')) currentPage = 'users'; + + // 查找并替换旧的导航栏 + const oldNav = document.querySelector('nav.navbar'); + if (oldNav) { + oldNav.outerHTML = generateSidebarHTML(currentPage); + initSidebar(); + } +} + +// 页面加载完成后初始化 +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initMerchantSidebar); +} else { + initMerchantSidebar(); +} diff --git a/src/main/resources/static/js/sidebar-replacer.js b/src/main/resources/static/js/sidebar-replacer.js new file mode 100644 index 0000000..d3186e1 --- /dev/null +++ b/src/main/resources/static/js/sidebar-replacer.js @@ -0,0 +1,300 @@ +/** + * 侧边栏自动替换脚本 + * 自动检测并替换旧的导航栏为侧边栏 + */ +(function() { + 'use strict'; + + // 侧边栏CSS + const sidebarCSS = ` + .sidebar { + position: fixed; + top: 0; + left: 0; + width: 260px; + height: 100vh; + background: linear-gradient(180deg, #2c3e50 0%, #34495e 100%); + color: #fff; + z-index: 1000; + display: flex; + flex-direction: column; + transition: transform 0.3s ease; + box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1); + } + .sidebar-header { + padding: 1.5rem; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + display: flex; + justify-content: space-between; + align-items: center; + } + .sidebar-brand { + font-size: 1.25rem; + font-weight: 600; + } + .sidebar-nav { + flex: 1; + overflow-y: auto; + padding: 1rem 0; + } + .sidebar-nav .nav-link { + color: rgba(255, 255, 255, 0.8); + padding: 0.75rem 1.5rem; + transition: all 0.3s; + border-left: 3px solid transparent; + display: flex; + align-items: center; + text-decoration: none; + } + .sidebar-nav .nav-link:hover { + background-color: rgba(255, 255, 255, 0.1); + color: #fff; + border-left-color: #0d6efd; + } + .sidebar-nav .nav-link.active { + background-color: rgba(13, 110, 253, 0.2); + color: #fff; + border-left-color: #0d6efd; + font-weight: 600; + } + .sidebar-nav .nav-link i { + width: 24px; + font-size: 1.1rem; + margin-right: 0.75rem; + } + .sidebar-nav .nav-text { + flex: 1; + } + .sidebar-footer { + padding: 1rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); + } + @media (max-width: 767.98px) { + .sidebar { + transform: translateX(-100%); + } + .sidebar.show { + transform: translateX(0); + } + .sidebar-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.5); + z-index: 1049; + display: none; + transition: opacity 0.3s; + } + .sidebar-overlay.show { + display: block; + } + .top-navbar { + position: fixed; + top: 0; + left: 0; + right: 0; + height: 56px; + background: linear-gradient(180deg, #2c3e50 0%, #34495e 100%); + z-index: 1048; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + } + body { + padding-top: 56px; + } + } + @media (min-width: 768px) { + .main-content { + margin-left: 260px; + min-height: 100vh; + position: relative; + z-index: 1; + width: calc(100% - 260px); + } + } + .sidebar-nav::-webkit-scrollbar { + width: 6px; + } + .sidebar-nav::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.05); + } + .sidebar-nav::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.2); + border-radius: 3px; + } + .sidebar-nav::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.3); + } + `; + + // 菜单配置 + const menuConfig = [ + { href: '/merchant/dashboard.html', icon: 'bi-speedometer2', text: '首页', page: 'dashboard' }, + { href: '/merchant/products.html', icon: 'bi-box-seam', text: '商品管理', page: 'products' }, + { href: '/merchant/orders.html', icon: 'bi-receipt-cutoff', text: '订单管理', page: 'orders' }, + { href: '/merchant/inventory.html', icon: 'bi-archive', text: '库存管理', page: 'inventory' }, + { href: '/merchant/statistics.html', icon: 'bi-bar-chart-line', text: '数据统计', page: 'statistics' }, + { href: '/merchant/announcements.html', icon: 'bi-megaphone', text: '公告管理', page: 'announcements' }, + { href: '/merchant/messages.html', icon: 'bi-chat-dots', text: '留言管理', page: 'messages' }, + { href: '/merchant/reviews.html', icon: 'bi-star', text: '评价管理', page: 'reviews' }, + { href: '/merchant/users.html', icon: 'bi-people', text: '用户管理', page: 'users' } + ]; + + // 检测当前页面 + function detectCurrentPage() { + const path = window.location.pathname; + for (const item of menuConfig) { + if (path.includes(item.page)) { + return item.page; + } + } + return 'dashboard'; + } + + // 生成侧边栏HTML + function generateSidebar(activePage) { + const menuHTML = menuConfig.map(item => { + const activeClass = item.page === activePage ? 'active' : ''; + return ` + + `; + }).join(''); + + return ` + + + + `; + } + + // 初始化侧边栏 + function initSidebar() { + // 添加CSS + if (!document.getElementById('merchant-sidebar-styles')) { + const style = document.createElement('style'); + style.id = 'merchant-sidebar-styles'; + style.textContent = sidebarCSS; + document.head.appendChild(style); + } + + // 替换导航栏 + const oldNav = document.querySelector('nav.navbar'); + if (oldNav && !document.getElementById('sidebar')) { + const activePage = detectCurrentPage(); + oldNav.outerHTML = generateSidebar(activePage); + + // 包装主内容 - 确保不重复包装 + let mainContent = document.querySelector('.main-content'); + if (!mainContent) { + // 查找body的直接子元素中的container + const bodyChildren = Array.from(document.body.children); + let container = null; + + // 优先查找container-fluid,然后是container + for (const child of bodyChildren) { + if (child.classList.contains('container-fluid') || child.classList.contains('container')) { + if (!child.closest('.main-content') && !child.closest('.sidebar') && !child.closest('.sidebar-overlay') && !child.closest('.top-navbar')) { + container = child; + break; + } + } + } + + if (container) { + mainContent = document.createElement('div'); + mainContent.className = 'main-content'; + container.parentNode.insertBefore(mainContent, container); + mainContent.appendChild(container); + } + } + + // 初始化交互 + setupSidebarInteractions(); + } + } + + // 设置侧边栏交互 + function setupSidebarInteractions() { + const sidebar = document.getElementById('sidebar'); + const sidebarOverlay = document.getElementById('sidebarOverlay'); + const sidebarToggleBtn = document.getElementById('sidebarToggleBtn'); + const sidebarCloseBtn = document.getElementById('sidebarCloseBtn'); + + if (!sidebar) return; + + function openSidebar() { + sidebar.classList.add('show'); + if (sidebarOverlay) sidebarOverlay.classList.add('show'); + document.body.style.overflow = 'hidden'; + } + + function closeSidebar() { + sidebar.classList.remove('show'); + if (sidebarOverlay) sidebarOverlay.classList.remove('show'); + document.body.style.overflow = ''; + } + + if (sidebarToggleBtn) { + sidebarToggleBtn.addEventListener('click', openSidebar); + } + + if (sidebarCloseBtn) { + sidebarCloseBtn.addEventListener('click', closeSidebar); + } + + if (sidebarOverlay) { + sidebarOverlay.addEventListener('click', closeSidebar); + } + + // 点击导航项时,移动端自动关闭 + const navLinks = document.querySelectorAll('.sidebar-nav .nav-link'); + navLinks.forEach(link => { + link.addEventListener('click', function() { + if (window.innerWidth < 768) { + closeSidebar(); + } + }); + }); + } + + // 页面加载完成后初始化 + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initSidebar); + } else { + initSidebar(); + } +})(); diff --git a/src/main/resources/static/js/ui-enhancements.js b/src/main/resources/static/js/ui-enhancements.js new file mode 100644 index 0000000..7313a68 --- /dev/null +++ b/src/main/resources/static/js/ui-enhancements.js @@ -0,0 +1,289 @@ +/** + * UI交互增强脚本 + * 提供加载状态、视觉反馈、操作提示等功能 + */ + +// 创建Toast容器 +function ensureToastContainer() { + let container = document.getElementById('toastContainer'); + if (!container) { + container = document.createElement('div'); + container.id = 'toastContainer'; + container.className = 'toast-container position-fixed top-0 end-0 p-3'; + container.style.zIndex = '1060'; + document.body.appendChild(container); + } + return container; +} + +// 显示成功提示 +function showSuccess(message, duration = 3000) { + const container = ensureToastContainer(); + const toast = document.createElement('div'); + toast.className = 'toast align-items-center text-white bg-success border-0'; + toast.setAttribute('role', 'alert'); + toast.setAttribute('aria-live', 'assertive'); + toast.setAttribute('aria-atomic', 'true'); + toast.innerHTML = ` +
+
+ ${message} +
+ +
+ `; + container.appendChild(toast); + const bsToast = new bootstrap.Toast(toast, { delay: duration }); + bsToast.show(); + toast.addEventListener('hidden.bs.toast', () => toast.remove()); +} + +// 显示错误提示 +function showError(message, duration = 4000) { + const container = ensureToastContainer(); + const toast = document.createElement('div'); + toast.className = 'toast align-items-center text-white bg-danger border-0'; + toast.setAttribute('role', 'alert'); + toast.setAttribute('aria-live', 'assertive'); + toast.setAttribute('aria-atomic', 'true'); + toast.innerHTML = ` +
+
+ ${message} +
+ +
+ `; + container.appendChild(toast); + const bsToast = new bootstrap.Toast(toast, { delay: duration }); + bsToast.show(); + toast.addEventListener('hidden.bs.toast', () => toast.remove()); +} + +// 显示警告提示 +function showWarning(message, duration = 3000) { + const container = ensureToastContainer(); + const toast = document.createElement('div'); + toast.className = 'toast align-items-center text-white bg-warning border-0'; + toast.setAttribute('role', 'alert'); + toast.setAttribute('aria-live', 'assertive'); + toast.setAttribute('aria-atomic', 'true'); + toast.innerHTML = ` +
+
+ ${message} +
+ +
+ `; + container.appendChild(toast); + const bsToast = new bootstrap.Toast(toast, { delay: duration }); + bsToast.show(); + toast.addEventListener('hidden.bs.toast', () => toast.remove()); +} + +// 显示信息提示 +function showInfo(message, duration = 3000) { + const container = ensureToastContainer(); + const toast = document.createElement('div'); + toast.className = 'toast align-items-center text-white bg-info border-0'; + toast.setAttribute('role', 'alert'); + toast.setAttribute('aria-live', 'assertive'); + toast.setAttribute('aria-atomic', 'true'); + toast.innerHTML = ` +
+
+ ${message} +
+ +
+ `; + container.appendChild(toast); + const bsToast = new bootstrap.Toast(toast, { delay: duration }); + bsToast.show(); + toast.addEventListener('hidden.bs.toast', () => toast.remove()); +} + +// 显示加载状态 +function showLoading(elementId, message = '加载中...') { + const element = document.getElementById(elementId); + if (element) { + element.innerHTML = ` +
+
+ ${message} +
+

${message}

+
+ `; + } +} + +// 按钮加载状态 +function setButtonLoading(button, loading = true, originalText = null) { + if (loading) { + if (!button.dataset.originalText) { + button.dataset.originalText = button.innerHTML; + } + button.disabled = true; + button.innerHTML = ` + + 处理中... + `; + } else { + button.disabled = false; + button.innerHTML = button.dataset.originalText || originalText || '提交'; + delete button.dataset.originalText; + } +} + +// 增强的fetch函数(带加载状态和错误处理) +async function enhancedFetch(url, options = {}) { + const { showLoading: showLoadingId, button: loadingButton, ...fetchOptions } = options; + + // 显示加载状态 + if (showLoadingId) { + showLoading(showLoadingId); + } + + // 按钮加载状态 + if (loadingButton) { + setButtonLoading(loadingButton, true); + } + + try { + const response = await fetch(url, fetchOptions); + const data = await response.json(); + + // 恢复按钮状态 + if (loadingButton) { + setButtonLoading(loadingButton, false); + } + + return { response, data }; + } catch (error) { + // 恢复按钮状态 + if (loadingButton) { + setButtonLoading(loadingButton, false); + } + + showError('网络请求失败,请检查网络连接'); + throw error; + } +} + +// 确认对话框(使用自定义模态框) +function confirmAction(message, title = '确认操作', confirmText = '确定', cancelText = '取消') { + return new Promise((resolve) => { + // 确保自定义模态框已加载 + if (typeof CustomModal === 'undefined') { + console.error('CustomModal未加载,请先引入custom-modal.js'); + // 降级到原生confirm + resolve(confirm(message)); + return; + } + + const modal = new CustomModal({ + title: title, + content: `

${message}

`, + confirmText: confirmText, + cancelText: cancelText, + onConfirm: () => { + resolve(true); + return true; + }, + onClose: () => { + resolve(false); + } + }); + modal.show(); + }); +} + +// 表单验证增强 +function validateForm(formId) { + const form = document.getElementById(formId); + if (!form) return false; + + const requiredFields = form.querySelectorAll('[required]'); + let isValid = true; + + requiredFields.forEach(field => { + if (!field.value.trim()) { + field.classList.add('is-invalid'); + isValid = false; + } else { + field.classList.remove('is-invalid'); + field.classList.add('is-valid'); + } + }); + + return isValid; +} + +// 数字格式化 +function formatNumber(num, decimals = 2) { + return parseFloat(num || 0).toFixed(decimals); +} + +// 日期格式化 +function formatDate(date, format = 'YYYY-MM-DD HH:mm:ss') { + if (!date) return '-'; + const d = new Date(date); + const year = d.getFullYear(); + const month = String(d.getMonth() + 1).padStart(2, '0'); + const day = String(d.getDate()).padStart(2, '0'); + const hours = String(d.getHours()).padStart(2, '0'); + const minutes = String(d.getMinutes()).padStart(2, '0'); + const seconds = String(d.getSeconds()).padStart(2, '0'); + + return format + .replace('YYYY', year) + .replace('MM', month) + .replace('DD', day) + .replace('HH', hours) + .replace('mm', minutes) + .replace('ss', seconds); +} + +// 防抖函数 +function debounce(func, wait) { + let timeout; + return function executedFunction(...args) { + const later = () => { + clearTimeout(timeout); + func(...args); + }; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + }; +} + +// 节流函数 +function throttle(func, limit) { + let inThrottle; + return function(...args) { + if (!inThrottle) { + func.apply(this, args); + inThrottle = true; + setTimeout(() => inThrottle = false, limit); + } + }; +} + +// 导出到全局 +window.UIEnhancements = { + showSuccess, + showError, + showWarning, + showInfo, + showLoading, + setButtonLoading, + enhancedFetch, + confirmAction, + validateForm, + formatNumber, + formatDate, + debounce, + throttle +}; diff --git a/src/main/resources/static/upload/product/3a9cb9e4-97a9-4be5-ba2f-6939bebe5ba5.jpg b/src/main/resources/static/upload/product/3a9cb9e4-97a9-4be5-ba2f-6939bebe5ba5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..21985b817397bc10886533e7c6d603fd3a209a79 GIT binary patch literal 117102 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
OGz=Hl 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

n%oGzn2=v->XZ!= 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

;(kk7Dd<%xPh?67`x4zA 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

y-VC~#i4;dEd%vkWIOlGZ9Z@& zsBm&Gc&RQGcnU8+Z2zru z()Nydp(vBqL(F7oUz7wEH&k&s^I8h1;_LROcZ;m3+s0U1fzbj)az z=NRBaAaLU0rD7s7t86p0Yxu;-)8xHG(;stM+lv!0-Terrd6jpeMg~u@9n=j5#A7rK5Ucl*)a0a#u%4sRwq`-pOuuM z-~0n`3>w#Rx*6Iw&Y8DC$kG?nf}-TOy#$^$)x@BWp`yQ)bFixCKTKQSW!UkI1cPmTsQr#QjAam`> zavk7T2BvbT^Zsh|Ik3QV)|A_z7&Z||&S%}*m-&X5Gaqxu7uLtbMR&+Ejc#3aAFbiGfSEqBrhcH< z|FqWSZQ$+CclTfGncNw%w>aj%5;f<`EfD<~hfDF&p32nG5ngV)C&g9V-vPPT2wVEd zZumAAyA1Z3bo%!9ZEOtPq7b| zgwKA6P9UCVi<)Sz9-zNbQMgp}c7X(*7Fc&a+ZquFH98USux#7cG)puk7}aRO@!L7N47`f(ZA}` zgv2tvxB4(OcZ^m)#Y8Ue59r>-7n(PJtHwQE*nsWx?b!>iHhWBxQJ%Y_36IZy6f9Gxa8!)|36Y<^V(eVEU(7=yC?FuJ~TNjJa2r`MDMr zTW3=J@;J7|?*eA1w6veU06pKTp$*bdxSlOwpHv%RTxvdang1tzv%w8{RX8-=--g1pj!H zDI2p|O@vPI4D6_>R6ptwd<^TfNGpGL7QA{0&w9`s5hFAt_o)5{9Yt{F26rnW{pXp9 z*`+C4BAv^~8>xg|+O=$B*3BRu;&BYLI`K{JPIOa&`0o+>$Y&a!D<`?gH%9if&S)p& zJD}?ngRU>JXUEPQdV5Y4>bXT`Jc1i=J9_6d(M| z%6BBCY>XfMn!Y4kw9r1W@PRKWYHMQ(S|PiukFJCRn;u5}MB%Y(Y|iVE@lzh}BK$`a z%a56>j$U-zHMwUU^Og&CqxnK%`Jhy7w&2GK*rM1q!wk2Klps+|PvmJ>jsnnao{6GD-w%)YEd@ zyJzUI>3@N-&e=5Zjj(v?T=0T#kzps`)@L7B{<$dLLj-}f++)7n7{)CzObz@#Eng*i{AOd?Y7=WccCvpYu&H`iYJ z@Ib0nJP{XgQdf*Mmei}Q3W$6OmwPh3L(djf8<)Y|$9LY4oSV3@>(O84b# zNR_o!Mp8i5e`C7-i;|!za}Uq&`U^@BvdRd({db1_`=b5JKgsTT@_*W=|KIQ7?-D`* zul~-@|2dDtDpwQFSwOjf09YfqRvtm6R$e;MvPfm6#w{&J^)8z9yI8I%|7YC1!!e`L zoe}35@}~x|p@1*bGP7^O{{gfri0B&z4n=>v(D`1Olx;?Bt~*wwU;ftU5?-8a(ZmAl z)Jf3{3cUy33?4OZo(OA+w-E5dKbw?8m^m z__@j-W!}o$NcXt|v7^ZZwZ76+&*}njaAo6LbUPyv^c7$>qMqSLuON~9*Yv#JkHiQ* zYJoRF=SshWABy{5H5CZ)XbHbZ_#LwUJz%%+CCUFn&$x26tN;U`Ew2CS?TC8LFhQJx zL@2;s4fLNOSo!zsM?>)glWf)X6hA!NVE+8xy!T&z?-__UuKbr7$%ML{L U7ZmqDd;I_U{P*q@{%7ic0lui=`v3p{ literal 0 HcmV?d00001 diff --git a/src/main/resources/templates/merchant/announcements.html b/src/main/resources/templates/merchant/announcements.html new file mode 100644 index 0000000..ca4525a --- /dev/null +++ b/src/main/resources/templates/merchant/announcements.html @@ -0,0 +1,291 @@ + + + + + + 公告管理 - 商家后台 + + + + + + +
+
+

公告管理

+ +
+
+
+
+
+
+
+ + + + + + + + + + diff --git a/src/main/resources/templates/merchant/common/sidebar.html b/src/main/resources/templates/merchant/common/sidebar.html new file mode 100644 index 0000000..bd9bc82 --- /dev/null +++ b/src/main/resources/templates/merchant/common/sidebar.html @@ -0,0 +1,283 @@ + + + + + + + + + + + + diff --git a/src/main/resources/templates/merchant/dashboard.html b/src/main/resources/templates/merchant/dashboard.html new file mode 100644 index 0000000..443cb8d --- /dev/null +++ b/src/main/resources/templates/merchant/dashboard.html @@ -0,0 +1,413 @@ + + + + + + 商家后台 - 奶茶店管理系统 + + + + + + + + + + + + + + +
+
+

数据概览

+
+
+
+
+
+
+
今日订单
+

-

+
+ +
+
+
+
+
+
+
+
+
+
今日营收
+

-

+
+ +
+
+
+
+
+
+
+
+
+
待处理订单
+

-

+
+ +
+
+
+
+
+
+ + + + + + + diff --git a/src/main/resources/templates/merchant/inventory.html b/src/main/resources/templates/merchant/inventory.html new file mode 100644 index 0000000..e9f8cd6 --- /dev/null +++ b/src/main/resources/templates/merchant/inventory.html @@ -0,0 +1,466 @@ + + + + + + 库存管理 - 商家后台 + + + + + + + +
+
+

库存管理

+ +
+ +
+ +
+ +
+
+ + + + + + + + + + + + + diff --git a/src/main/resources/templates/merchant/login.html b/src/main/resources/templates/merchant/login.html new file mode 100644 index 0000000..f692850 --- /dev/null +++ b/src/main/resources/templates/merchant/login.html @@ -0,0 +1,81 @@ + + + + + + 商家登录 - 奶茶店管理系统 + + + + + +
+
+
+ +
+
+
+ + + + diff --git a/src/main/resources/templates/merchant/messages.html b/src/main/resources/templates/merchant/messages.html new file mode 100644 index 0000000..03fc047 --- /dev/null +++ b/src/main/resources/templates/merchant/messages.html @@ -0,0 +1,209 @@ + + + + + + 留言管理 - 商家后台 + + + + + + +
+

留言管理

+
+
+
+
+
+
+ + + + + + + + + + diff --git a/src/main/resources/templates/merchant/orders.html b/src/main/resources/templates/merchant/orders.html new file mode 100644 index 0000000..216168f --- /dev/null +++ b/src/main/resources/templates/merchant/orders.html @@ -0,0 +1,503 @@ + + + + + + 订单管理 - 商家后台 + + + + + + + +
+
+

订单管理

+
+ + + + +
+
+ +
+
+ + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/merchant/product-edit.html b/src/main/resources/templates/merchant/product-edit.html new file mode 100644 index 0000000..8203bcb --- /dev/null +++ b/src/main/resources/templates/merchant/product-edit.html @@ -0,0 +1,651 @@ + + + + + + 商品编辑 - 商家后台 + + + + + +
+

新增商品

+ +
+ + +
+
基本信息
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+
+ +
+
+ 规格管理 + +
+
+
+
+
+ +
+
+ 配料管理 + +
+
+
+
+
+ +
+
+ 定制选项管理(甜度、冰度) +
+ + +
+
+
+
+
甜度选项
+
+
+
+
冰度选项
+
+
+
+
+ +
+ + 取消 +
+
+
+ + + + + + + diff --git a/src/main/resources/templates/merchant/products.html b/src/main/resources/templates/merchant/products.html new file mode 100644 index 0000000..254e191 --- /dev/null +++ b/src/main/resources/templates/merchant/products.html @@ -0,0 +1,470 @@ + + + + + + 商品管理 - 商家后台 + + + + + + + + + + + + + + +
+
+
+

商品管理

+ +
+
+
+
+
+
+
+ + + + + + + diff --git a/src/main/resources/templates/merchant/register.html b/src/main/resources/templates/merchant/register.html new file mode 100644 index 0000000..c439806 --- /dev/null +++ b/src/main/resources/templates/merchant/register.html @@ -0,0 +1,120 @@ + + + + + + 商家注册 - 奶茶店管理系统 + + + + + +
+
+
+
+
+

+ 商家后台 +

+

商家注册

+
+
+
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ + +
+ +
+ +
+
+
+
+
+ + + + diff --git a/src/main/resources/templates/merchant/reviews.html b/src/main/resources/templates/merchant/reviews.html new file mode 100644 index 0000000..e146a67 --- /dev/null +++ b/src/main/resources/templates/merchant/reviews.html @@ -0,0 +1,212 @@ + + + + + + 评价管理 - 商家后台 + + + + + + +
+

评价管理

+
+
+
+
+
+
+ + + + + + + + + + diff --git a/src/main/resources/templates/merchant/statistics.html b/src/main/resources/templates/merchant/statistics.html new file mode 100644 index 0000000..819087b --- /dev/null +++ b/src/main/resources/templates/merchant/statistics.html @@ -0,0 +1,491 @@ + + + + + + 数据统计 - 商家后台 + + + + + + + +
+

数据统计

+ +
+
+ + + +
+
+ +
+
+
+
+
销售统计
+
+
+

请选择时间段

+
+
+
+
+
+
+
营收统计
+
+
+

请选择时间段

+
+
+
+
+ +
+
+
+
+
活跃用户
+
+
+

加载中...

+
+
+
+
+
+
+
粘性用户
+
+
+

加载中...

+
+
+
+
+ +
+
+
热销商品
+
+
+
+
+
+
+ + + + + + + diff --git a/src/main/resources/templates/merchant/users.html b/src/main/resources/templates/merchant/users.html new file mode 100644 index 0000000..c3fd638 --- /dev/null +++ b/src/main/resources/templates/merchant/users.html @@ -0,0 +1,163 @@ + + + + + + 用户管理 - 商家后台 + + + + + + +
+

用户管理

+
+
+
+ +
+
+
+ + + + + + diff --git a/src/main/resources/templates/user/cart.html b/src/main/resources/templates/user/cart.html new file mode 100644 index 0000000..904399b --- /dev/null +++ b/src/main/resources/templates/user/cart.html @@ -0,0 +1,389 @@ + + + + + + 购物袋 + + + + + +
购物袋
+
+
+ +
加载中...
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/user/checkout.html b/src/main/resources/templates/user/checkout.html new file mode 100644 index 0000000..490e3fa --- /dev/null +++ b/src/main/resources/templates/user/checkout.html @@ -0,0 +1,616 @@ + + + + + + 确认订单 + + + + + + + + +
+ + +
+
配送地址
+
+
+
+
+ 加载地址... +
+
+ +
+ +
+ + +
+
订单商品
+
+
+ + + + +
+
订单备注
+ +
+ + +
+
+ 合计 + ¥0.00 +
+ +
+ + + + +
+ + +
+ +
+ + +
+ + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/user/index.html b/src/main/resources/templates/user/index.html new file mode 100644 index 0000000..f798e08 --- /dev/null +++ b/src/main/resources/templates/user/index.html @@ -0,0 +1,652 @@ + + + + + + 首页 - 荣光奶茶店 + + + + + +
+ +
+
+ +
+
+

荣光奶茶店

+
+ + 科技园南区C栋 + + + 4.9 + +
+
+
+ +
+
+ + + + + +
+ +

店长推荐

+
+
+ + +
+ +

全部饮品

+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/user/login.html b/src/main/resources/templates/user/login.html new file mode 100644 index 0000000..2782cd6 --- /dev/null +++ b/src/main/resources/templates/user/login.html @@ -0,0 +1,236 @@ + + + + + + 登录 + + + + + +
+
欢迎回来
+
登录您的账号以享受美味
+
+ +
+
+ + +
+ +
+ + +
+ + +
+ + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/user/order-detail.html b/src/main/resources/templates/user/order-detail.html new file mode 100644 index 0000000..92c447c --- /dev/null +++ b/src/main/resources/templates/user/order-detail.html @@ -0,0 +1,356 @@ + + + + + + 订单详情 + + + + + + + + +
加载中...
+ + + +
+ +
+ + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/user/orders.html b/src/main/resources/templates/user/orders.html new file mode 100644 index 0000000..407da0b --- /dev/null +++ b/src/main/resources/templates/user/orders.html @@ -0,0 +1,441 @@ + + + + + + 我的订单 + + + + + +
+
全部
+
待支付
+
制作中
+
待取餐
+
已完成
+
+ +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/user/payment-success.html b/src/main/resources/templates/user/payment-success.html new file mode 100644 index 0000000..b4bbb63 --- /dev/null +++ b/src/main/resources/templates/user/payment-success.html @@ -0,0 +1,214 @@ + + + + + + 支付成功 + + + + + +
+
+ +
+
支付成功
+
感谢您的购买,订单已提交成功
+ +
+
+ 订单编号 + -- +
+
+ 支付金额 + -- +
+
+ +
+ + +
+
+ + + + diff --git a/src/main/resources/templates/user/payment.html b/src/main/resources/templates/user/payment.html new file mode 100644 index 0000000..2f7a69c --- /dev/null +++ b/src/main/resources/templates/user/payment.html @@ -0,0 +1,348 @@ + + + + + + 支付订单 + + + + + + + + +
+ + +
+
+
需支付
+
¥0.00
+
+
+ + +
+
订单商品
+
+
+ + +
+
选择支付方式
+ + +
+ + +
+
+ 合计 + ¥0.00 +
+ +
+ + + + + + + diff --git a/src/main/resources/templates/user/product-detail.html b/src/main/resources/templates/user/product-detail.html new file mode 100644 index 0000000..51bf1e0 --- /dev/null +++ b/src/main/resources/templates/user/product-detail.html @@ -0,0 +1,356 @@ + + + + + + 商品详情 + + + + + + + + + + +
+

Loading...

+

+ +
+ + + +
+ +
+
数量
+
+ + + +
+
+
+
+ +
+
+ 总计金额 + ¥0.00 +
+ +
+ + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/user/profile.html b/src/main/resources/templates/user/profile.html new file mode 100644 index 0000000..94ef48d --- /dev/null +++ b/src/main/resources/templates/user/profile.html @@ -0,0 +1,401 @@ + + + + + + 个人中心 + + + + + + +
+
+
--
+
--
+ +
+ + + + +
+ +
+ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/user/register.html b/src/main/resources/templates/user/register.html new file mode 100644 index 0000000..03eb5bb --- /dev/null +++ b/src/main/resources/templates/user/register.html @@ -0,0 +1,184 @@ + + + + + + 注册 + + + + + +
+
创建账号
+
填写以下信息完成注册
+
+ +
+ +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + + + + \ No newline at end of file diff --git a/target/classes/application-dev.yml b/target/classes/application-dev.yml new file mode 100644 index 0000000..c312981 --- /dev/null +++ b/target/classes/application-dev.yml @@ -0,0 +1,5 @@ +spring: + datasource: + url: jdbc:mysql://localhost:3306/nl_shop?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai + username: root + password: root diff --git a/target/classes/application.yml b/target/classes/application.yml new file mode 100644 index 0000000..d1cd230 --- /dev/null +++ b/target/classes/application.yml @@ -0,0 +1,47 @@ +server: + port: 14001 + +spring: + application: + name: nl-shop + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://127.0.0.1:3306/z_wb_nc_shop?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true + username: root + password: root + redis: + host: 127.0.0.1 + port: 6379 + password: redis_pBjaRs + timeout: 3000ms + lettuce: + pool: + max-active: 8 + max-idle: 8 + min-idle: 0 + servlet: + multipart: + enabled: true + max-file-size: 10MB + max-request-size: 10MB + thymeleaf: + prefix: classpath:/templates/ + suffix: .html + mode: HTML + encoding: UTF-8 + cache: false + +mybatis: + mapper-locations: classpath:mapper/*.xml + type-aliases-package: com.nlshop.entity + configuration: + map-underscore-to-camel-case: true + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + +pagehelper: + helper-dialect: mysql + reasonable: true + support-methods-arguments: true + +file: + upload-path: ${user.dir}/src/main/resources/static/upload diff --git a/target/classes/com/nlshop/NlShopApplication.class b/target/classes/com/nlshop/NlShopApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..5613cd1d44af300bbd283abfc0a8b5020e42f8b4 GIT binary patch literal 812 zcmaJfgc5Ph5GtEr)F3V}i?a7%N@UJ#d{N)U;YTM$O!(9_!8I$P{rYrQV;vp9h` z@B{c!h*>wHmWZ(A8SQ+$nRzq6e*gFh;2E9_(85L!?EoEg8FntkmEf7sDSs1R%EU2r zUns5IF~i3AXwgHT;UFLCbl3%402#-_Y1tkUU) z6}kLm>_;9O<9JjX8<|wWR+=Fmhc{i!Gf|eavxX&d9&C0Lu0u|YcJj01bE7X*T3Hci zvQdJ}-aTVz&&|1H*bbGJr&S(H``*Vg3`3KMY$2@j@0GFbma1ep4F5N|N6m$z2}a{} z4KK(qY)UwLYuv>BiF8YI{#JONoU{};h)iV@`C9qTM*na<^*k}`zpJ!Uxm>7H`FXWA zuHFS99IvIRUVx~aA--y!f_r|I>DO!GPbPtl`O^Ir=Th%U)(dU4W>bZ7Dn>}&1bA?e+~CU!{%*8vz}ueRO6 zT>|mR&ucKCKkQAuWAnpJzQ1c=i;4yfj6O!VNA~;lcZg9^E$r9w0UnYb())n)BPw}# I23F$nA4M|NTmS$7 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/config/StartupUrlPrinter.class b/target/classes/com/nlshop/config/StartupUrlPrinter.class new file mode 100644 index 0000000000000000000000000000000000000000..3d8b112cbc0e5a477b08b3be1ad88c7aaa020b7f GIT binary patch literal 8810 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 Mx%jPgj4lKJ0b0pGsQ>@~ literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/controller/merchant/AnnouncementController.class b/target/classes/com/nlshop/controller/merchant/AnnouncementController.class new file mode 100644 index 0000000000000000000000000000000000000000..569efb8b0f4bfed4807ba2b639946f490cb5ea51 GIT binary patch literal 4058 zcmcgvZEqA+6n^e@%eH0u;-W2xLJNhyGg1l#wqjdetJ_jrEU&)I?q0S7+nIG{7Ho`P zOicXf7h_EP4`N~fH5$K}_&bI*OAbIv_;=J&sU`~|=S z3T=p?DS^0#X6z8?x?|ik^nzjK^~;$%GV2NKm@+NXJ0s9EIJDA&7S5Dh>CEMJq76F} z&@{B8L*S6w`jO71dj;v~tDaZXFY&b;Of1O{OVXu2Eib(p&vVR7$&&(y2h)`^mpN_a zQ$vxd07fc-E`g4UWZJg!El5(`pWi-u^4aHqeErjtpTBIwi+Cx4ZVf%yEpRYvujy97 zUA2pP&a-t#x<%V^r9M+Mm%_e4vveHW5ja&BNdqcUt#}!G6L>|#tJo)SJhCTiTb^SV z3ewTnq?27WEKi@YEW2c7<(jm-v*mSxT}EUrcruDpU@2-IW&TtY7^#@vdKERgF>-P}0p+g48U`>ZkZ?=ctaRN? zehA%PrRr&}^ob8^7{MqbS%q1|o>Y9GhCvu;CC@DAY18$54M#NScuk;llLmqDItsR= zIF4fpOlUZc69W65EzV$cr8k#jEYu#gqWpSN!zrAmi%P{@jf)NrZe{TyU&)k)*A<#% zPV%a5^7Edh5`DQQS4`K;6#PZc@J!wtfs<+5$?I-W-O}5Ru_o`^&Rsnt4a?PU8(GhG z)^!!c!3KS%$;v zqkI~_N<7Zm(iDD<*)m^M2k}!Qk9jD1c?Ei-$m_*EBi`9ai31H{5op^;A}U6@B5BgU zkklF6TrRdRdq(!|yip7-+BGk|RXew6D7Sgip>hO8GiZpnBM0A<;R%=+nbWiYjU2+Fq;4g2<@jJS5PHY-LW=^58EX7Wy4 z|99IPGHdfaqfp{SYSuqCbDs#DXqe%m;jM0@Kbq!h4ag|Pda0zbkE4M3-)Ig)z%LqC zY%`bIo`V-l5eLuJKx~LyT?ms6d*Gb^8LVWGwq?8IWaR}@eV_KKyir@O9Z|LD)4quH zk`xQhNVP{t@7u`b^$*ydZojy$FzBgNh*kLoeJoXDEd2%FELPc`;b;fjH^P?x0US+p zq_Y)ln};7ke8)}gH;v7e;xN)9864UH|g(miZfzf2*2eiiUD>@g( zenV^Wg~!exiyOjuj^%AH@KDm0=P+K)9f!&aTD7P zuCQ8+N_yZ+%F6uQCZ zy_*m&-uI20P=WOU1zGLG2oYTi5hX_n=cs~3OHPU^R2@Ewquephzs_S3WXUqJWQYt% zMv&2;3Yl_yfG$%;m)(S}UAaC$rvgB*Sl+POd16#{X%DTIs)iRB?Ife^ln<>t5H3S& n522|TtTI)u3`TAOQ#Mr$x4A2Zyf50r-l`IHVd74C&)t6jW3PPB literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/controller/merchant/InventoryController.class b/target/classes/com/nlshop/controller/merchant/InventoryController.class new file mode 100644 index 0000000000000000000000000000000000000000..6769aa9faec29fb39d4f75f2079c555ace6ee586 GIT binary patch literal 4683 zcmcgwTW=dh6h31+aguK0G%4vNl(y+5_bjw&dU1M5?*S(bNeP8gVC|ha+t|C#?rhS4 z5Kl;mcZ87m4-^Td1q9*^iT_c-k3fiTcGv55?Yb_aJa~6!cIM1?zVn?kv;O_>AAcdD zN&2XRViZqOLZKFFWz>C7+tAd4X6DtK*?T-E7`09trXkKViVqDhw^18ZC44N9EM}Dqd|AxKLMxD5*DaS@Js;`MS#;*i-Uc%m`r{SyymI$A&VMHJ8wB z=F`KGE+0lZN!^UPDkC$NnQx;WnEUhFhmSw|{Ex4Hdi?X39kh#HN>ZOfyJ-)j!#S&{ zngwUoDyh1#RGT{`%XGLpQ!*BVXGSgDwk?~{nYu`tFp+Mjebk?%mlfJiuP{0unUk|j zVOxa)x78xIbE}#u)LC#&lN;+;X#~tSh7K7joM;&=u zAUymd3XRej&}h0IL6fOL6SW934Y5_B6;LC-*SwWHO(>+&s}i@ca%;0Dqjc>Op4y6< zSXD0>`71nU6tzM+BF(Z|m!-wy3Z0M^+dPXmT_HP9Dl{cyu@jolSer|7u^DJVI30AF z&LruqLTQ?2)ZYLw6zXs>t264Y!8q)#eO{ppbdgcYE$N!z5#kOGHKf9yeo3Lr5=2Vp z$lU1ky^AimE%If%t*LDgrp{$im9$>N>GmMue1%WP=b&-( zGmhG#G93b{e{`rn)%$9wpzEz1fWtkL4&nSA!}kos6(?}qub|b6`&HcAaL30DuGi2~ zac8)zfx*$ z>^Exf+4+ciAB=oYd&jov!2I|lI{E;-z0;ZUlQ2gLaT+r0MRmjF?u`X;WpX~ zN9%WBOtSD5CQDF*V--i{$EzF}AKj+mvx&Wlz?XQ$mqWlY0ACKnm!qKnnCHu+Z!+{{ z5V+sPvRKCRDu!A8o>y_qX{9@Oo2cUhcwNAxiXZQVe%wX>`}ko9_6j^mw^aHtaO)22 z$@rvXBu2-^w`rUO@cl5$&t0N%e7R0U=ud@^Q>1}(UkX{ud81RL69-?C-p)7%5M}Yx z@$+e3@!)k~+FktecZfN(>cQ-dqr<>JM)xAu6Ab{rRuAw=0G@iWfY%xUo_fv%t zX~cgTsyPSMT!4x%Mm#zahM;~16lyY{Kuu?W49)E@G(|jJATyB6ZNxZ^*z}A+@27$c zK35%tE^ov&%(#yKI&OHd5Bjr0*gc_gdOX?3JiS1tQZG`@zE-SIE2R+7x<`Gdl(erE zDQt#sGCRO{6&R&%J3U!%(@ZryU(|D`1oIxWK7VistuufY)CUR32jhfb#1mkWvPeoW UF><}@hBvea?M<}rhr_r20TYJhzW@LL literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/controller/merchant/MerchantController.class b/target/classes/com/nlshop/controller/merchant/MerchantController.class new file mode 100644 index 0000000000000000000000000000000000000000..4ede4c5351e21c4f282f94ad1cbae64d74aac33c GIT binary patch literal 4935 zcmcgv`EwLS7=67tb~hP9T$C75K{=9;4a4OD36X$unJh8EpyD;zog_mxGwaN3Fy6O# zpNI#Z|A1I!Euf|4Pg>>wVd)=XQNEs;OlFcz3KcCXOm}a8U%&Uhulwu%_2PFw0@#kP z8jwIu6158IP%qGYT$|R^qGpb(hewa=c~_vm$1n}ISD>c7VMCLj;{8Vj3M1`3nZO#KCe5Dz>fC*`O?SNTg(X;z6Pt3 zxK_b+xW3xLKB<0d+%N+s0*&LkdpD&vwJ8SR%Jz=P>cg&WnB$(`H41K!PUZAL&2dgx zc0uaDR>3-~7pN;ruL66b=mYzO9+%Xw5p8HsqC>$(bPBAOYCNjSY$)okI^nt{^#K2q zS-^piNCS}#Q$fQbjJ56e`9!K3dXu_S=weQn>G&Y2sMwsu76n_eP2ieH%;trcRJqW> zf$!q(9<3VomB) z_NpovJ4WQ>I~DX}Kp@S@GNYtME26VKiTt^T6%0zpjlo>WL;4s}FdQA9<#4xx5t)99 z46?ns_%xAt51xaySTkuqj8R6If^)lpqD9d%60GpIAF78bOpE0tuq;m+Z(15hS|%4 zEYZ!8xn3y|C|+hTkyOGZ|J$;$ z?48f=?`b$#j%e60Y?bZ2zR$Z=v@Cq2ZIW5PSnaNUK05B)8;`-QUiPb-dR1_)45Y)S zAKxA+K2HI`|M}kJ_YwB$`L%;DAFb>;?5X_n{))Pd=ODgeBLO#<1gt=rZRvm$FpU%Z z3cep7WltIp%2zPIO&h;Ova^C^1KIOfah4;#7x_vC-&tv_@;t5aX9u2WhZ#IZk7@eb zg~vJj3C^z*90s2B+&txBZ{nn<`S;8*2nWyNIsVot={?WJ3;Yv&SiKmay2w@PIW`@j zY9+GO72KH1)?UDd1a{W8)@HI@6>PeI?KNO$XQpSi*~{_WUgvxC-FpsuchHz7~Ix@onj>@su0L{)}|?0`6nZ1XOFhbji>F zd`zTpGfCfq40c2U-V#!2A*z#HB8BB1>;&GST?*n)WRkRB5dL?ozxuzhNu9t*D7cMk?#4>&!D{UFKyUQ@g`n33 zpcPz=_i>8rtq$_FW)A+!B(#O_KM3KUCTKrw|C9p>eCAEgu=P3nUxWr<{sj<3ipl^0 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/controller/merchant/MessageController.class b/target/classes/com/nlshop/controller/merchant/MessageController.class new file mode 100644 index 0000000000000000000000000000000000000000..885c2a421bd12d7c216bcb9b05c1f304a14dcfcb GIT binary patch literal 2945 zcmb_eTW=dh6#mAsCj%XBGtT7woz;-DKI*oZTrk~*{ozHLQ72; znK%XoQf;bV>m8wretksX3eQub*-!{ z&6ZBxG99VS*Ns*GTOcNF+p-0&?}?-X6PaGTgcEVRoWv`5Rp3HMr(~JRwrVwLYa7xo zRdrKoIq5ihMJ@!txU-GsnoE{ZA}!O|kP(+tuI{qnOJ@=|iBoZ$PT~yC3QTscD$vJp z_<$UN(_s!=j$5&4D5Iuj4M)-05sW4=hH-(o((_{k)uFfEX1 zgAth7150RU(o}}pZjtGkIiG}v3(N^y)@$4Tu9%s-42ANmm2w4v;nfChZpeb+7{!{L zH%&|F%3#I_T+3Q^MRV$Ie%`V54Y_66_q3waO-H+_W!SQu5r{5W zWkz%$YnXDmu~C%vnojcqLs_e&*9y9AxO0Cos;UP4T?}*AQ4-P9a&x1H9zq5+MC87a zVSMe@sU7nuJKQp3*vj*zGV4i*X)m1wdi+%9CjGzd+!9FdtIf*s#RXm-QX!{(|vE=sF=EH*o?*f=Stn|Gl6yCUfMIiwq#K& z8fH11T8liddcE$}Nr9`oQoGa8Mhu20?#Dvl!~t{)to=VXhs7wisn;4LKc;^y)$tahBlD;+bnqN{4_bdjs2U7H9cXR8c^X*l3u#JmdQ9^rON@=XY=KQBjq8hP!w zU>W6%n<rZAAgWqv1{0=R;!obmdBYc%32e@E#k$FoyI@t@Ee!S5Kz zP5*)3p%)(G#Rro=VtD!?MwVwD(NjqOK4kvN$95Kr~8^V+SH~gSdhZd_)Y9 ri)bZ4wHlzx2dLIORQ-_v)rS<1py0hf@)VA7{;{jz;1hfrXs-VUc8o!^ literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/controller/merchant/OrderManageController.class b/target/classes/com/nlshop/controller/merchant/OrderManageController.class new file mode 100644 index 0000000000000000000000000000000000000000..acfbb2e3de81cf62241b6f66d005ec85bc1700d1 GIT binary patch literal 4422 zcmd5=Yi|@)7=F%Py1guIDOkIJax3&gm!VK9bjziJ(CU_!F0KlS&hDOW2evcI>@0}J zFD4pe;zy(Y3NbN&8jXn`jQ$UzKf)NFIWxOE3tL(eG&Y&bIdjf?-sgFr_dRF(``_RH z1YiQIod_WuLnMwU+5~#9={I$)q?<);A$LvY9f7uK!!(?e0^#A2Y&+W7Q>{pQuF!=} zbj1*lV-vas_PJBv)%fXVNjln!DX4OByDX~+W8gTbhHJ#AnkeG)Qj>={j)%y)#!IgGxDV8PD<(9oIE%`H2o!Eul zG3<$BF9rn;KG}4E4u(fLSP>`(8F3j;1p?#8D$p}$IF^=Ef#cs zEB41RgkgbLrJB#n3f*W5jIW2a4F+PX$QX^|0LCbu8nCm{(T$S8!sE~>v}-S-81f7S zoZp3macDRs(52J&vPUF!xc*96H*SaHIHG3T(#<`!h}(ZOj!C>Au(?_;=#EtV8Ao@j zBLz?Q)0 zT5brmyWca$d!#95*XrcZ23-{BtW}n|0xNi61tnsduhl(P+coht<)J`-bGUAoYayH2 zkcH{sC`q9?x4p8LI?1qYqImPy=k>BLgWh@RtXPFb-PM{SZAzjeV-!s)+$JZ#{V$^2 z1gS|1LF$@DJp|l^KG8C@ZpoaMGt5FTtIkV@43*veP+(7Uw$_<3RTjY0+$+-14@V693ggGy?m zy;Ths`0QWxu_?UkdgBH>deb8@s=aR%K5%PYtJ>O10E@b_QmdCVw8m!ql*peBl#Q%q z6jYvWT&#=LfLP-Ss^)EhRFl{A_Ovx|c!$nl4S!0=NZp66HSw=4*^*43hT2BanX#&N zUY;}D&2gL3^20~MgYI#6t=+hlVt5pB8YfBuZ@rPXo~n-Ljf&ITIAyAQtY9}!xgk{_ zLhd=2b>bLXZG0a0pZp2I))ZSBpMuZm=sk#U_!2_O9|ZJZn(uLM08Zc}TRbG;6n}%b zlYike#%D4S>5F}bju3uE&r~!K{S_U3o9|=GozZWRNJI~eCGTSAR9m9$KK9+=gos+C zpVL8KyRjWxumcJDI)t5S(OJ*1zbKc$Y0M}`l6Vnk6uu}iMi3yByZUSMl;gyuoRph?geu)r&X#X5Bt*l`I`lzqcz=?l8(0v#G_kaQv0M9~5AGcpxPM0|e20e<$;`~B#p z|NR(YY)2J86Q0RBKSQ`o+-@X?6c-`R+OD_=b50ws;7#&VN8VpU&X`^1qz2-*6yk20 zy2$J56^IJnR>(P2;2jQj;c0bvpAue#eS?pOmlQ3q9io@x#CDk2CK$V;3frh>ua0f7 zj%~1xZNSI20YrKoQLc_C|0tp(Pl{-~6`~XoO%u@xB05Dxr~fNNg+~!hLi!T?l8m|% z98NYQ=*q2Ggo()5T}-q>b)Nq@m_;8mYJmB)7wLcohwE_~uE%LuWoyV?QAI4w`JNgB v8XTx;a8p=m@HB@vbhz9iYDI;yC+zFc%|rJugcWr+)RaE9ud#i-9_-RT3tz2~ literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/controller/merchant/ProductManageController.class b/target/classes/com/nlshop/controller/merchant/ProductManageController.class new file mode 100644 index 0000000000000000000000000000000000000000..5c2073e6a375058f3cc07f71112f217bf72cb1f6 GIT binary patch literal 11838 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/controller/merchant/ReviewController.class b/target/classes/com/nlshop/controller/merchant/ReviewController.class new file mode 100644 index 0000000000000000000000000000000000000000..c348adedd145ac5862b08f95facbb60884e3107f GIT binary patch literal 3650 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/controller/merchant/UserManageController.class b/target/classes/com/nlshop/controller/merchant/UserManageController.class new file mode 100644 index 0000000000000000000000000000000000000000..4be2a32b64244a91efde6b5c2466f5add010a6eb GIT binary patch literal 2273 zcmc&$U31$+6g}(Mk&`+fbxVk$1=`RyPMfNsAGC1@HG#GPr*vY-3s17VvDMm=kyZ)e zof-ZB5Bv(s473FXhBs#TA07A+48vL3j-?rAFi$*4tG#>gx%ZyCcUQmv{o^kHuAwrC z6vhmsbI4#^VD_Q4XPGU_ZI~a{9!gsYjITMaqt*q+7K=MsWGM*)>2KDLVG_p-l)5kFRQ1uq{6gWk9@KL#nb;zEca86ga^4fpn5Y{@ z$-u0@^gy%Xxs5FHg!}WGr_aCm@{g~7dj9iQlQ@YN49w;5BIX4aY_Dy)t)S_3%)0VS zUj`k|4WwD_INQB%fsFKh&lk8gG?Eb@N)vbqFB>?O!)d%Ca5ZLQd#>`mR!jP3Tl#j> za+UcpIoh&Zt06ZIR|Sr1R=Z+NnPZb2vl4^ivX&0R=^2zJ@fyw;IGe))UKd#YPu2oi zmPQ8`2;7g8vFR$=kbWsvmcFPMk1)aU1LoH!nSq_e`5Z1_QNRd7+m->HBpB}%`e?vd z(Mke^?a)w3yk4$CWWv*P&;GwA5ewCh`Kx$pUp%$l^^z}&TL<@pDu zb!cFgL*?x|zN`~Az2VhK{7l7h<^8Z-lm15*;RW&)&$e1Smhb3!PncFshyJd|Nf@=_ zbf!imIpY0aTZ?TIt9POnN$QLaOT**@P7J9iw}D=-I-fIZ!|%84g%N`gnCx%#%{mX1 zmXli6TG^bDP*4E++!-Ip&iT-0+{EuT|l1k&f^q; zPe%^dyP!RXgvScrh=M5MD!+7YMgBNkr~4_|-N2hfU7*!X+#>EO*LBccNr{p*O0p1t zVcx(D-r{U(jG!Q#{sRHl`K0jnAyKzEFY_sk5$7E~8v))Oe7+Z{--+ILBcnXc?{U6K LrT0I92=Ku_)jOX& literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/controller/user/AnnouncementController.class b/target/classes/com/nlshop/controller/user/AnnouncementController.class new file mode 100644 index 0000000000000000000000000000000000000000..0036f5006abbcf6a3233e0db3598f6d61abce4fb GIT binary patch literal 1426 zcmb7ETTfF#5T0#;LT#mjfPi;YT2R&t51JAZLZUDA5-|9{)1K3%T|C`$+_MM5ztY60 z@xdS9k1~FHTFQYyQeI|uXLr7Dc4l_|{`>uhh*s%ok#dwT&`^nnX@pT_UmOS?2;JiE zy?yChMk8xVE4$7pU#;zo(I|}-s92&aRAThZ4?A23aXXB-A8KpDAdrS9F~o+}VWNH6 zk=kzd&lpXL%)z!a2g;W~YGk0`?yS5cjo%j9p2F(6)QfbL#tT#_(KVW21pa;~gZML= zZAtqf@d6dMWiuOX%xI!oYow`2tO|HT#TIa7_S;>7o548&K}E?_3N^;-7P7lG6f=~kkx>c|}xD=&~PRx7Lm9ix|x(6o3Q8Kql$ zMs(z1Xg+gK3LW!3;oHz0ahLI~1K&t&c&LnQ0(NLKY$EmJ4W;F~q~l5RQ2-vVZ-l-G zc7#!G-!l%`wgTUaY|Mkz98?wL`b>%!k>UYz2_(vHpmWfeQIPZ4acBlTy!4aUxAgcXq&p@m(=A8`fD3e+?m#oT z3xa&={0TcpR9^Z{g&$OIEdQd(uQ24vfw-AS`0b-Kl>$w7FZX~(0ePPm0Pz5~97)&m k5UWS9zn7ytkO literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/controller/user/CartController.class b/target/classes/com/nlshop/controller/user/CartController.class new file mode 100644 index 0000000000000000000000000000000000000000..8db47737fbe6d3871ec5e7582b2d72e370cbcb66 GIT binary patch literal 6002 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/controller/user/OrderController.class b/target/classes/com/nlshop/controller/user/OrderController.class new file mode 100644 index 0000000000000000000000000000000000000000..4990e23b24166afd6361f6bdbab8b802aa8afd01 GIT binary patch literal 5092 zcmd5Y9wGjrx#-skeZbI$L7|L`+_ zLENiD1kpHR8mdq&&~(dKG4!;NS=6T%Zkb6>pnAy4Sl(HIXlK`a4Qkkub4}+`svdQy zk3-YYfJT8sa_C*1uU68gr!RS4R=>!9vwp*jc_(MOoKIUcy;)0cH?%XRi@+Ej=-sskyJ26q86`WcN}{(?8QET?$DT| zo$(wyoi-g^vZhZtDbpD(G%|i$wn&n!q@-g!G+1)U*3ihHU!o4LqdkuO8V=x~z`;re z3DhSY)9_3cgTQ-LC97{e2 zjWKV@;(EPd^FAX(xyD*&xc@T}LzS*)mciouDeHY^kdv>QJ^vyIrn;=Zg__$@VO0D8 zgi5cn4eO&VD-;zB2T+vqw8*SSYfKo~fas zMu*B`I7^|AmGt4Nxu7ptnN-+<)3)moZB~A*$k2+B&Jk8z_Y17R{$jTmcqp=c>E$?= zl~S1zUU1%TRh}c98pFK5HE%;jFYN10C9*>Il&>(M?=9mHq^igOX1=;^ zt+(tRu~GsZVd1t3Rp7z@0p(CAjpl7Dm5}zT)$duUPjr661ddm3HN#uVmoZLqBMdM2 zR6J*Ws$Ev*98b(bgN#)LgDcm_@-IJiQEt~Ea6Qb7zh{$Q+UNJZsaGNAcNKkG zvo6>{Pswk>ragl|k#NsFydu*SeKSi%BZbof1ythEx}My?(7Hz}wWHecsO0_pg)(2U zBl7`Cbj@LOy28dy>8zb|lI8_VZh~4AF&oE?BhoD8_FJVtAg;GDoNJces+At94i6jY zQ0<3{cAl0Z%FPjZUZShtPj^5_@_o$8F7wnkq`wg|tFFnT2huzVtubqyy#UA6( zLw1d->08yXJ)C+kniyd#xAE=#lgkbIQwGa%a*W}k3ZVm+aG3#W*o_*z&AHl%V;mER zVUi{6+ANqM?yf&G0vS4Z_77uJBz$gs*-xbmyj4wSG85GLznnD(JpyRS}B4k)JO7;Xf#e9bj0P<|k!d@Q8=32Jzf%Acb0 z392|$MtK7Z3b6FRR^^jOQ5}20K!Z=5X`W#VTV7y~xQ0HYXjXDFn9LBuFKE`YbjCT}9 zriL%Cgmq z<|rMz0@KGxdVj(6{RPwa7d+rwJzAu^12Ad*~x0o5P1T(qK%tWxlNFrEO Rott@gm(Oct%(u(O{{YUyk*5Fv literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/controller/user/ProductController.class b/target/classes/com/nlshop/controller/user/ProductController.class new file mode 100644 index 0000000000000000000000000000000000000000..e58cbd9589e333623547c7cb71d9210a843ab6cb GIT binary patch literal 5153 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/controller/user/ReviewController.class b/target/classes/com/nlshop/controller/user/ReviewController.class new file mode 100644 index 0000000000000000000000000000000000000000..e6332c64fd46ed6e87cf612bfa454143b8d1e166 GIT binary patch literal 5692 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 f@(uiiN}`?rb1c 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 MbRh7uzd>I4A01c}@&Et; literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/dto/request/LoginRequest.class b/target/classes/com/nlshop/dto/request/LoginRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..f4baf1de8870c823489029dc4079ebbf6c3f1b98 GIT binary patch literal 2151 zcma)7T~8cU7=F&~%@HLRsiguXP)YR4VRyn#yUfs;*{YYu z#CX%h3$MKLN;Dx+6NLt&(VLq18@z1AAK<06K4)ik*@eAm7S5dWp7-NEGm_Yk2Oo(=L^K9EZg$02t-rE>j`K`#L=Xq8M?qg z&e=-aMX%s&r}Ms(cFj8_)AQ4d&ZcFr1`7eL_}PiE-Taki3Sr3xd0=XCVr9AOj;uQ2E2*#((ch+{yY=Xf`>C99Y> z-6otzRKxQE-L+JtDnv|6hm?+Cj1Ysdy=~fgf$`ezLa-~F z%l5tWvg6NE61TGg@h#Kyj7@UTb@=($e|@_D=(Bqd@8A3T4SzTC~XXyp1#5KKAk@qoClQA)P6x_7tl-!(o)snn* z)XMInR4L9;;}Kr^2!Fi19AD(B83Hfyf5OAdc!h=*h*LN+MdZai={tGScM=Ka;ah~` zt4x&UQ}C&d>_dFdNd%WU%56DjIO>4|vY6tEmjyi>>w|wl{5x*e1}7Q@^YS(bZaE&T zHw>P}6_${dGki*#Vk4tJBHkExci<7?mfc7~1zuyEO5LEHi`N^cYd!sy6XP?g=$-=KW~HM%?cE3~Dtkv+7RmzC8G=f3A z!QU)nM@Yv!XA0h=6t8loVhO!m&62-s%-_#1i}o*C{5^1ei0;L5frdE-v#3zx4CpK56m#=x6qzL|G3YE`Hdv;2hE|b{T zo-L31Z91hAyZThl-Cr{J@Q(<2M%jHA3@jso7mt6n= literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/dto/request/MerchantRegisterRequest.class b/target/classes/com/nlshop/dto/request/MerchantRegisterRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..3d706218c0d343ea613df4f8ee04d2e3580e48ef GIT binary patch literal 4472 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 W;bR3yHqVgY=o|E@5tw&Noc#~l!aw2w literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/dto/request/PaymentRequest.class b/target/classes/com/nlshop/dto/request/PaymentRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..3afdb1737c8fefe16f219000e1738c22dce3a766 GIT binary patch literal 1711 zcma)6U2oe|7=BJ-$8PF&S--YGM%mV}d^9s3g{@0FSgTE{w3e!!D!~ zZVNs%?^+F~*4;F#G=#q8xM5(fc;N!i`F2G>YuZ6zZISuOC!c+@`}m6|pa1aZkDu&5 z`uOjUe%gJs^VioqWZGZq=Dk*bIVI}du^WzSue6(+wtv$iBze|e)oN^5z9aQ`Qwi%% z7vujLAY#k}hfcX~G@dtdgRapStXjU+v_sox9pUxQTs%kusu$L6pGJvis_*m!M!Uv? zyF=@tRlU7zwPGsj>e|xsHP%?-A^UdFZt&6!AB;+`du_jJUw33nM*FAcf*doP=1eDe zDFr1j7iE#!AoUXe(*er3z>Oh@QS5JNwDIOrnlzeR1y{BB5aL^YB=9PwG)ws!r4c#c zb-Y21STIJ}AN(D(2Q>Bu4;&dhgE#3VgD-QH=u^eg_t1_mJrQ}tr6nNAQ{XMese(#| z3h!r}@&Q+sro~e6E2zqL=~w7qLQQU$eu2I`UF=|}tMcRc$~47grTjYvv&wHceji3T zt8_5l^-#8%CV8k8Gg10IJd3!9ON21aM$fW62~1&<%q}suh%74nQZUC{<49@xQw(d+ z|G|WY1b_M-k&C3D$d@c8GRvH@H>zYHq4YL3I+dt3>K+u803?*SHM8B;@SWn8?DnTj zp>UndROXcVZUb_eN}creOzA$fat9|rn9m(eyBLMWwUT^U=5d9IRX&7o^DBWg3BJ>% zEyNA~rEkWm01#4_z%`zS3dv% literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/dto/request/UserRegisterRequest.class b/target/classes/com/nlshop/dto/request/UserRegisterRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..20a24fafa3dfc0aa842a6470f3e0c90efec02563 GIT binary patch literal 4654 zcmbVQ>vJ1d6+bI$wJUigD|T#W+l1O6T0bM|l8~&DK+-0uA$Cn3F6oPItgWp?mK14~ zrcDBrLLamt4YZVD7^Vy}4KRV0N9~SD3;j}N_{=Bx#7yjzzkn}<@;i6$N-K5gc$i6c z&pqdNe)ryU&pCJHzx-$AT_XA{{V+ih>d+`^kV-Ly(kJaRcD87j=Ck*mIO)u}3dMF6 zN(Fb1LLEcHvvJZXu2I6EPBIi4nJX`5OU2qkxsuJhpRYQ#S^~O3 zgFZ>0!ZPOU(*DzRyQom_P+$%(GP&Ug82o92Zl^mGiqAXlLAjvbq2U1BUlNCU*q{-n zjv**^QOq`G&^T>Xs1pPnH!ngPTPS3Vc)rgVbf*uWkzr!}T?UR5G#Y585h>PfH|TS$ z)1jN;7_f4uL6)!F&tYKYE`xTnG6CdXKN1o8yg^@}y&zbyYYTUm^Ef(W!K6laE7ae9 zg!}4+BF-a0`=~>w0}5>kNrNFj33fB?UV|p-iwK8ZsUUU=jR)f_cO8tSr;;<}bUK8% zjScwevRkKVL||-yV~D{Fj%94XOA|5QVV>_u+cf@h29B(Knqvq7rr{8R_I@!EDTL8+ zL~U$9rVqvsDx?ha<{mca5fNy&?C~jN9>0aQ$O~n54hFYs7fNm|J6(47p)OD5u)#$nsy&ax=)Ljs&)1$?UVZ7}^|vp6@bo*^ z-(I=#ixot^b)KV7R9ffiUVY=48?Qap>U8_ZFJQ)YQOzaHAFHCo&Q?%ZThDDDyP!~? zNB7TH{Ss58`fHT8mtI|m3MFT{zIei^9<>o7?iJ-ZyEtoC3p|#}sJl==%*GC_ zzX4(4owZ5t^uQ^{T`1>g>?*PdTgE)>=ocH}j}ey`vI~-5^nJn9^=qE_ zbav*{@kCK`$Qfv5r6FO;tvykuBqCgP7r4cB@_sXZ!!v}oF-!`hUswvIJabdw0sJay z0Gf)pVDLIm!t<5`VGxOrMR*oDN(hsvf`&w1cB2CXc#8yaz?>I~l;j2x&adS!LG*%$d1tvTx2)o5nTJ;gW-Gn#pG`xG@iEACt zQy69OR`6CwmPz@IfEDp%GjDtmPs0OHiOLwEPtsOATb+MT+M6&&sOg*tb;dOn;+$-E zPK7$-E(>u^w>zgpopB+DIQO(WZwPh9jTz$H-|oCI)EPHxi1RJ&&V8ZIxPe2Qx3oL= zhdNj2G|q&N%EFs-IW{u-7HQ!J-RB|XL30vt)+NET$yL&z>=u-DIuo|>p7m04!8Is*1?A)6tL$GdCD(3)(iD_u!zpiBFC`atgL1Q= zd?K83%X%rfM>HsJ6O{Ni^uag?RI{F^zKO(i`>gbIF|qfl`wAsZ)rF)kC?P>{GZ6r7vpNCVW*KHDgA56R6aek8k^t?nQf87tDG5rN zsQ@Tvbpe#K(q2LIPNGeUyU+Ei=VqkuYo`R&IHs7FcLel9ny+lt#iqos~9r_le z1TCTVzYVFAuHm+L29iO4rvvmXq$K?V-|^2uN}<;e(({nIlo;I#?{hf#7qEx>X_Kb^ zn^GF-H>nTzApYsfO=yJ}|9?flr96pwqWrr`7VAz#gS(WtBjw7t-CDjM`m}sj? z!eRkf6WOknV67G0#D^H9i~bRprdPO4I^s_m-UfjW{uBF+@?Sc_&C)&bKkUufKMnyB z93Orndije(M4XYo`9ILUe1$mxn#_m@05%kq>bPq2KSCuf%E%iTvkc^m6z iJ$VPqU-9G|%MakOL=UxpQv^T%@-oE~`hh6RSN{t=RAs&Z literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/dto/response/ApiResponse.class b/target/classes/com/nlshop/dto/response/ApiResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..74948d0a4a511be4bc26b87355b2363d44e80ff8 GIT binary patch literal 4313 zcmbtYTW=dh6#mBEwbx-&5;sX}NZXXA#fcNbtw5YKG|(18leRQz%AIVTC2{N6#+P!Z zJR+n@NW38=-snpoK!SikAb0`9?*M)QkKDeqGqyLEf)P^dJu~ObIp2Ke%-Pxe^yin~ z0Js-##Su|BkSnc?6${nXQh98-RvN4L)pDs=^~a{m`LjmufP&@1Mob|#nJ?yRQwq`a z&|(K1B;x3BaT8pH?u*`KZ>-=ISH@iwSYQ!^O?$ zqH)!)JzQG$#dsUjp+yHt1^3tYuKxV>2fx1k?l13rD9d|X^rBCpgUjdqYSmkzhu*M< z`C27kT$vEW3cFpTaEp$1%&U2uY)@af=;vyIZ9l9y_9%3wiUVGEq=b#_=xU2~}j``xXD$DP4aX%g)uUy{bwP%9|gI}z(E+#OkgK1hf znl?Alk0}=q;wU$<>Qz^D!dXr;aXh53tHrf;{!l$%SoSL&n1;BZ8V-aMNx z`lsq^7yQbCccH)_$=OoQD=d1Iyo}AH(>U`A2WQ(0(6`agE9Hi-;dUHMa;sB>*)`|a zR!hrgyo$Hx*Zc~1eSC5u8)Dk*dn(NpL;uC~$uN7SNVocJ%O!!HzX7U{M-$_};_k9KRnrJ4B%y;E|aSae_yub|t{FYOs`vM2PEY5=R7` zLf6g^T^hy#!Wd*e4-(3u5LG>jFClqu|iJFr^WbrBTMJ5D6LRvFRoKbQQ;_pUxpJH#T2DH0)o9=io+Q!{&o838W zy5q%(%x^|_XtTRSTkdpXFA*Ov)yC~CpHgJ8;ml{)yFH10+QN`X+aQtpAZj{e)Crv) z|MU0_&^@o8JO~>5h9I}K8$=q;KLi;Jg7Cs_N^~*2lSAzW(cP@oQW`svUFtJy_LOEg zO<;kjcq7((Qww}1xb3T%;g4Wj*E8Qiy$?HjJ@YNpoOG4pU`XMPQzQJzTBASUrj+$P zy05_yJ2xSYt!U#HkPu*CiXp&*U*`=Q?ZcIcs5R>@vM`Ii;-iD;wh(LWL+m9 zD`>Fc!|;p-+RWostOdQi7cZk2bgV(-QQ}+_!^ojb$-*Nzffp&+n8Q(2D8*3VJE2M` z&hf3NQF21v?y9KO^LS(sv*f1Q#Y>TBoB-h}X%5c`WJ{8Cj)kz_vpqJ!2r zA``u^8wL#C}NK38+bDqUHKbc=t|uH literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/dto/response/LoginResponse.class b/target/classes/com/nlshop/dto/response/LoginResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..9c3d73721804edcca07ac3543b5ff739c7a31981 GIT binary patch literal 3308 zcma)8TW=dh6#mxUo9#`Ty1CS}l$0hk&ZUL|g|3^@3vCHFX-V2ZOIx~0me{T1O>L(V zk4Ok1c!4J*egJ(b5(r2oK&bFgB>q5u0Q?L}`DSNqZ_G+WvS!Yl^L=OLTxQmP{PW{4 z0A4^djRcYwbO#1Z4ZSzK+g_pS)m94U7H{}VO%3MJO0Cj7rXe|+Ur515%0k*f29Ac2 zrC_yCt2WBPT4A{v6zYCsEvPm8LMd3O)aKMmgV79b`ZW#NQpf*%vtFsK6otoa4z{D0 zTdgcabLzM%Fy7-%bN-fF1a`}1^6ikL)fPwwcB$2uO4u*wa(-%$~g8htx z0~qC2WM7a`_iZApxCM61!MMO?)J`HOp`UbcFsg5b@vMXAgx(^4HViF+=N*>uMebMj z8s$^LvL6;|+QLg32D`I;a=lVr_UmaJM$(3>p>I>6M#C~q3G-10Q()0eZ*9%5u_Tkx ze5n|sIgu*0LD9x>CU9a%7BuvDQg}So<*1eTNOHR!oo0TdBaxmd8)w@JkryhanURSh zwRl5=mKPDsIG7C!(F~+Z_JhpN_EM$h&#td7vW>jODl?WX1xsFa!K+uqS}FBrxzf;Z zptPkXFR}!UcF8w&S1Vf!Z0s4oSq_%ZdvzYY>DTE$MOLfLc1DvNc3GaJj6#U`J1Y?{ z1E)>20;3K#-!GL~UcR7N_Uj~yc!p&~G&rHQy-bHjbxkwUrdB;|o;<*|4pS;R0C}be zKq^w92Pvl|TP}L$o8HpR8E;Lc+&DisJ#(6|u%sp*ll3YeAgg^yb66cI6{_U!QkMRV zVYSJ8uwGyC&s0=#BahKRaVM~kw=BUI(BR0Ij8Z~8LE+3tCY<@MgfpKK&fCFE!sK|4 zs{&_@voUrL+P5L>JV#*`PT%C{D0vR^T(OTZ%5gLKdsyGlm_UbY#gh3T#gKct$#yK6 zZ%hn%M>jbYOXfoqL+QnX0hrCeN!Kjn_Cx)j~kcDXb3e>vV|-&S3U#%;SC z2wlDt?{aXfF2x;ayUc|y`Qekf)b4ZcVVWO~k9`G0zdQab>@Q&??~dPxJu@-3fhWQx zg}t*A99(_!cVu$<1MIj1XELX6;OQ1(#5D*Ram}0|Fy;ef@1Q4Vt?^*=qT{~w9 zkgY&g&W?a4+!R3*ZaS9|ptJ&|a_I=D;ARLaxK1u3K#l@YYJv2-3@sVCq4IivC_`@d z+e2KzRpzK4zu_9Me1iWBzQeoJB{7Dtah;Nmv-k`iB?B|~1dEhRRB;nalq}TYW0{hT z&vAzGRiy9*j^jN_X>9NfSfP}`&)AJJB?lFr?F6!x{WrE*upeQ-LV`bAdxTw5O#Q#u zx+GUvSY7;6QkUci;|X6$QBjeG=tCvbAg`U#PJ_YVMHms7d9Pz z+FLxTPlXM!r?*&UJJ`MBcVJC!;LvrUA8~bI$mz;rizbn#ylaFe_D4vvb4JTF;hLez zY@66Ml2vf6(8PvOEGsnai7)S*Jf?~(iH~uEWfGr&kHUf_Sdb5}%2<=w&tlXl={Ux+ z29yk3!Xd0tGSS2!Zc(zrV*QEqV=8nDwx+Q_(6q;N(OD;iq8~;J(8B1ORSITCU>#() zR)MX};0`{>V3jYOu2|GZ?yaa+X5ikE)E;Y;`Ma`wmuilV@rvad*a?*>j} oUzKuR=+8)*H?x?1P09r!zs_L;rS9)X^n+VcCDVADM8h`z1#oULX8-^I literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/dto/response/OrderDetailResponse.class b/target/classes/com/nlshop/dto/response/OrderDetailResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..b4386ac274930614f6e8fb84caaf52f194cd5263 GIT binary patch literal 4298 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 I9Lrb!0}CMYR{#J2 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/CartItem.class b/target/classes/com/nlshop/entity/CartItem.class new file mode 100644 index 0000000000000000000000000000000000000000..b33ebecf8f34d9355583b9bb7e4182a3e8c70a60 GIT binary patch literal 6481 zcmcgw>wgqi8GcT(m)YIfWZ7H?D21}EAs6DMUOEAk0+rMRD50^%TQ|u_7D6`NY+CEB zD&DKLD7K19@m9Q`wpxO=T3avFpP&0lzvy4!XMeWh^PV#^J6Q(ECx5^F?Y#58&-0u) z=Y8KZXZNrFeeMMSx8g5Zw4gPOgpDLp3WcNP2g<{9<@qDS`=^e2({+W^w#s~^zC)q4 zZ_8u`7BXpMZRB7ptevhNAD*9EoUJYld-L^5{h{GqxZq72SC5TeI11MNOJzNxLPunb z(fPV}#H;CH*4bE(8x-27mlo^Q;}Z{hUVYwMTvRAV7!&nc#ec3FZEO@m#t=rQJ$ba7 zY-|> ziVEw-u3WzZX8xKnWMeCa6%sOig&VI9pCDi)%jbH7jW^;=eAwyo{2ngRoI+P$WVR-& zBU=s&_{}!ng10Ipk9b^gE=%8*2vny_>f<&Wu4tw_5nL4JHXGZ8nIZFToka1z-Nrk_ zYt!q`V{}FWx7*kiz~xbmcaM!b@J@vs;dh1E>{{^px`2fwUTL}$~qd{X!e5b7VhWM4Q}+CWORleb}Rvlx^Q^A#GDOo4Empr2U!z? z8=JbE{)e3Wzc49DmFCz%^FI&V%Ws4X(t&)E2^R1bFr zGat68$wK>BW!~GjbbQLI9V$=FF)u~E8BCUI6}k7FiTZ4X6I&ls9zkwK*qV!`H9Ml& z(4DzulDq4;SD&rU94Oby$Gy5&lZ7I|bR;KFJM2RfGTp~jV5re^-BI&VOO-; ziVY>G41#62u*1v{L0@r|B^WL<=j{&}(@ZjOmhiBNHuS|Tk{=xrbed?>J2zbes#{0k ziWL`q1^6|})vnfOy&Cl-Hzj$0S=yt`oOYTrAHC(WwDVHO|f5;I8nS=P_>Xcj5CyJZ8wC7s4SMj&?I-BxwbIw1~@&PMm2r z2!GnFIUSZ+GN&eHZt@fL^7OIs@`B$E$pZ&R$M-NdquhgP-r~|6&mOIM;nSsHm9wSD zdZtUk;$=#Wbt;suSc|Oh((8~ZH71xVH5#9(4#ZgpTAEKhQC+G{dv{c%i}OKSZk62? zo49wk@DP>bHxEO!TI5utuRO}=D-SRF$`gye@;IWeJZ0!B&lUR0qlCWle4wv<>+`w} zd=jMi{W;zZ^Qw4F_Fsg0M#DbOZwbry7x--(0KSMvc&Fs$&hM4vXOVuI!4@>gRxFwC z_ZV`%nVg9w^B53AE;N&~v1A?L0j(bbN7l8-!onQu5Mu3XhVPwHK>t%nCe9DM1nV@Ct>*_`gf%|czl_)G zTN=0S8|0Up7<;Dg$oLIkwmT|>}*x9F@9P|*jiaf%VpLAQgTgKnqOA)rnl z)ZuhSK$C74L6dH`(0 zXs~~(3pj%(Spi+@EY9-4(1MaWiSN?aihlJ7zDFy;pXc-VKCL9i)hvEMD}^~ViXYNS zqo#J@DOwgzsuIr8%HRpL0Y9RZ#WF7A$Fy?zE&h$4(6aG&{0%>)mB&Bv3eMANaEbpRfINvl&;`4_^kXmzP2{`c@K zt!{OSXR`~mdemv2p_Xa&;v(1N1WIY^RkWpHy@u{ITKKWlYv?s*=Ko;^ud6d`xP<&w zRTwyj^w2Wif1mhA+=K+2gdee_c}-}Co75rpttMGcG6?N-Q#zCiL+ob5 z+U=%wh>h&C(m`miYw3^`hS=VQHRfh?h@I`TGC^p+o7JIg7-GL0)-*B0est?c6YC%?Q#`DZZD>kbv z%UxP$2mXcM(Ms}w^$K2~l|r59-_uI-q;du?(z4hXC-4%j4E~H+{DD>$|G+r@NGpf` zut@$y%U0d!AwpV*#oTfc-IwV|q+uz=0)|qTIeg>3MI2p727myQSn2X%sR*orZ1(!# z^h$689~1B?))kZnD?a8E`ERqCAo0z13{spm0u??ucM zy=5Gct!f#^iu1-E5qrVdJH)OTd#BiSWA7IG0b}pwrT8IZkBR+ZWA7LHqsBfc_>UWV hQtVF{`>@!bqP>hyH~)r-{=`1zZv_gM^j7`y{{SHlo(}*3 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/Inventory.class b/target/classes/com/nlshop/entity/Inventory.class new file mode 100644 index 0000000000000000000000000000000000000000..4f1164904b43018bafbb5b059b755039159a3bc2 GIT binary patch literal 4924 zcmb_g`*Ryt75-MQT}i8l)!5C}PH|He{H#(^2&@uA(%8jdCux%gQeIu#!cr`R=3f;T3K#gq1EnOH4tlTP;sR%xzcWJRz)Ij zqagguR;{yM_gdZM4RMdyDB%_Z_LkSJbsAptjJH)YPzp($?{*r#$f%7m+-ksjY?lfg z+rXGcl3uTzYHXgatv9y3rW(?*ahqr-cDWiEY{JGNq1#)H)`fbf#zi#MEZ$&a5_fQN zO>d{W+`7<^IXGIm%a_VZd);fE<`gBQ#P76G7D`qqXLq|2$Z(7|+ISPDIK_3Zwa95U z4UA5OR-_@Z8qKxmun&AfgrO7d+_1h3gx(s6EccP%0o=A_}*dT zog$+~4rN$kr)=DZ(|W!up(Ky@28l?s@Rn@cFT6a*5nhn#7?y3k8}DJJ>)uZNzV-&U zjP<%~V%5N{{R-6UJhj_sZqzy%tRQaT948V~?Nnpqg!mt{aUK_#Wp8`C*5Yo=hxg4- zS9pI0l&d0fQ6%0w#O&>OXlDnR7A|o+%CWfU@!ay=cP6^^#*TqQE3eZisx0{(UGletldLL!`XXD%YOPyuZ=CZw zYzJ%%6wHy(uXHX|-b3jbI%mE8qF9#5epx&IfWuWS!(_ z34~~I!xxd6@S+9tgfr)3!;ThWMEtpB> ze0#UEUR!EN+2@1SaksP?+`&E-K(e4DyV#AIWpTffa(DvCl9IfFk48xz*sr9V!$5LONq#JPmIwDMDMvbx zyiG}7jh^NBekG+l1d@l8y6+lL~>3x+XzKUCS{AWceV|u|l9@ZknKDZpKLqDC2|D zP9_AZx>o3W;c_1@^jXm{ zpUD5f=mioV{!{Bs$UkVJ!#+Lp8u9+ zSh@5P&XmsX;Q=`|dw8hyK5ZWn`(bS#<)icgZ66c=hqPT4|0CL75dWICPl~;v?M1Oa YLVFMO;jdZYuhZLp4IB8rY6(C14|!K{l>h($ literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/InventoryLog.class b/target/classes/com/nlshop/entity/InventoryLog.class new file mode 100644 index 0000000000000000000000000000000000000000..4d6d3e04a5822f56e56c3a3c276f72b030d66d78 GIT binary patch literal 4005 zcmb7HOK;p%6#hJ8k3BPpvWn$T?+$Y~fn?Va_i4X?RWJ$&l4UyC&4b_LBKx?MwdeByW>7V;(vHj1z{ zTwV*8tIfu0JzS~!%_xY@Rp**#X@#wG^Wl<)Ot8qL^WCiTVRLC#WGUMi5Gjg5n=rR1 z{6jV>*rcHpuJ|o43c}{Gb1S}vN+QY8s1?L%hHZ@C5)IZKrtTbgcXW~u`mvmL4 zHobQ(Xe|0%Zx6B-_VcivB2Zl8!QyTaI%wlA+|9aqD=U7J^_@v}B0hey;yuaP&ONwC zq`0?_+3sPYSG`ON3vA8wXhOidEga@Hr$>9lOYeOw;q+)*qjVgVjny zt_L+}6JmcSZ9F8pU`3(Yf(Bg`Z(u%X`iIt*Px-B5-l>LsPlQ^Jd#yk`$4)(}2df%J z=l}bCWkZcsCDKjFB1(-;9Ouav{HPu-9`Rb^<}3?BSDVDp(Wl6scca}ArYjQK z6`~U_*{?&fut2u;$3pQbsk&`3GevZQtcAVfBkn8@8%A}%rNI>C855(*k{)ReDrfR& zLvb|et4LT+zcp-9z&>wDLfax>=@hE#PyodWxvv<|bqvT1U6HWbDo4^)IvRPkGYj5I z+IYaKz{p;h`X1K8^yE6OkdHL3J~YjXtIzy|qND$aq4Th39DN(vG01eR1ZcaPCuqA{aPk6Fh(UR$kO1v)iv;a( zZKo(eb_}AG0PS>31nqRoPDy~uF{tE}+aUb{&!0_<6*ZIIS9R&={36bv!9ot>4=i&| zWiWt`D&kvyJv>dz#%~@!OFu4w%f{Op#}z zPX=dq>AR(O9Pub?kaV_$OUm1ROn%SVCwjG~*gFM2$(3-1XDMJ)p%re`dovtNARwqO$lC>>e7>}qE#7EBJV?2lFc|HRl;RRY5w(>)~ z$TDPcHD1F@v~+$y*YPqf11BksS7_xZfE)2DEfa5ZlDtOC63x}Fg8ergx(Q3u*idNN z-%Qqh&Irdaj5eT+(R*DnESG?Fk^SBnZ1#e?_>@3QvHnHrveIKQk^hpa0}`M7k>}OL zf2`?Y(phhQTPszuhAa_Pb>bWBIr$a#R`#vqfDqR@<|^~b=Hp!Dkg}<=1C=An-Y)$2 iD|?6VA5->D;Xh7$9Vhz#j3z%?PQ*IU@Vb0K-uMTaciEx< literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/Merchant.class b/target/classes/com/nlshop/entity/Merchant.class new file mode 100644 index 0000000000000000000000000000000000000000..6126be5b9d1e721e8f0dbc7014d142430701dd2e GIT binary patch literal 6187 zcmcgwTX!2*72e0zWh5QhvV5H+EiO@uuQikc>DX!7q)y|;cAX{;O)1ccJw!@u$(7`m zaw`yMfkN9r+CaFKTf-$l3ylLU1bCpV#WPRv0>6M~7A@i1=bRah#U#-aYiZ5dXYcRZ zn%S4LNBZ-BUcE#_x6<#@)JE+|ib;x7LQw9w`-nTS;+Bt1+=b8EFnE7fJD_e$zxWvW)MRK0odSvw%f zW^K}4Uaoqz8tb-7+Qz#0TCq}AsOu%YMQOZMx3t2T8zjAzHJMen>>l%~zQ2N`8(E(~ zMCxvpp>LBkM8ks8OI6RUdxuJV=eEA{IyMutl_huOE@M)UIx1;QQP$U%jXn)eH%pqJ zw<7{eZh89Qb$3Nj?@%ZNI{1^r4>0%^N$;dv@f63r`V3;49~urpRa7~R@0Ro)_L=b5 zVU3x$Npffs&j#jV5bK^zd=qVk@04`A4_`0=XZ;AgO0F_elnIwI)-dLM4K=+=sRD$7VIDt#tN?-$hHC|(_=-Rq^5 zWv`m12dUknhY%9K-iJ!dJ6U~H(h?y_33qMHD?=C$=hXx|oWD(uC)ve^*u}9Xre6`E z%x`8|R6?T12K}DeY0(L#@LLCpRow8{V9++uRFJ%}LDMqWKa4<(4XSp*uBLXXRj^w} zp2h}4Z35k+ND%lcKiEEo%!~~-+5@VODpjNWq58NWG0ac;xTH_2ny6Rw!w8D$6m-s( z%HI6?>QS$H$UVBEP6%$U!)~?2d!vliizVFTw%IEmL@1$nO*c+=I2EdIh7aS2n)B+# z%JPC+#Ys~4s_>Tqq0uj!I@8Y}h>Y^v1cAjaXbwabThkHV(eBr*CxoKo&1_uL% z)A|bLW4j7@s?dmTs?Z2zx)2JPRS3e9D41X*3g*#eVbdcf3%VN-p+fk^GllRSrVm!u zt4rSA61P^?Kg4e4^Nw!7dD({7gAA@1^N`wjUaJ+;SgjbqYQ@M^E5@u^FsCS`QUcdcVK;$QV2zJlB=NF>eHvFb^YtXIQUmBS^jYi#&qG`{lV73a zOE9)kgKR~TF%l!l*=BMol8gZvLGEfMrz6Rjq7metW^yKyj7b|o?r$c`NHXSe1bIs{ zIU7mF+>Rh$*G%q+BxAlukO!N|osnd`0Ys3uHGIs2B>N-bq+>UL~yL`kBCl1ICCt=4KlX#u-=O}B(?L-JPHa#8^8a?*B+L1_a@+365yx03;Aw{(+SW%CuesuC}%*Ob}j_k?{opQ-^tru49Xi&mz@uR=ACYU=A9n9n?XGW)NS{K zKnI*&fDSl)b}xha45-)c3xO7$et;I80lS|;0|wM@5BQ+id7Oytq4};~4&KlS_0Lan zfu5u1Q31W;1v-NlhBhjQQ}k8n+G#{QMPGvyqq{|!&O(aQoG8-QAth)<%+NO=C8;X* z&^IAjbV?NHTaZ$8MqE$dhLolax=b%X%Fu7L`k)EX&A$5sSbmKWld2tV&pdUi&77OIjk0AAk3hkvIL+TalbO-$e zQlB`DceC@5`o&qiL;V!e0R0RxIZ1`2^#*k$$$FFelGKKeCEla~EvEh-qCc*lL&L@R z-wkst+=fi>1dMa1aRS3HXgYy<0LJ|UA|+?=Xh92~Q7w!g=}=*&#-4|Z4z%!iZgMKN zQ#In6S zaHKNHz$AUsqLWo7^uA$bm1$da>pZOkX(Hb)Mo^|NAOT#DM5AmHQIt(=NYuiMMxIP_ayxaQi}daMcBD@{*FI!s;-k?u3|Aq4gm8I1yF z3t;v@h`|sr;Fv9DF_1tkLjoaTark)76THAL;F*sEb8c04Pix$^=ZWu|Z~9iz|g^QEfk?zGV*-N|xg-iP+s=!L_+xpJw>K^1bLL8hyf zqBqQD8(RbzuM}36PRJ-X+qeZ=Iq+&VUtL>O=m;^#skTt4=o!As#&+~^I&+mmzFIg^ zT;>Zo23%!hbfP?$U)txnH09McZWT&Ok0uNmalpnPh7@A*stUamS1;H-^k{_<8#^(| z`RbRI@va6>$vTXssr*_SufyvVthsz?{{w6JC55j3(Ce7+jSU9{_=~+xQ)B&?Vlt#Li)IV&SIBs! z*I%69CB2I_ia5q-=2untz}czY_I9ISJG^MfU7XPRo4<*C$yfaS~fqd^=h@ru8%Tg z9$q5Go`)DKGY2+4q2=^&Y@Jk41M+^Kw(%LAI@Pjy1y-tA_tuGGsc>*@dA3kFlAm2- zByzguXY!Szw7t$)b+O1-*&Gp8FB)U4x>Zwk9pUxYMK>_REpoC@T`bQZ%2)Esg=(Qf zxfBVe*!ZHfYbC~2Vq0g7)Uh;z0@+ahet0>6MUbuwBkY%7cX&2_^~r=}#Bj-M@qiH( zBXHZ7mv!fwvuWyMbAQCD=<*Pn%u2t90tdKORR~fso5EYXmw&QRRu`oZlM;kJIc_Z7 zqs@%&G%3hQ8i(I()y`T%G71I|?y@z=OHnS1K?H3xfXT^VfS{?l!3pJYgLYcGb#}9E zjj-1;Q>*26Ftu=3OO0<Fy;hdFF?W12zv5+g{Lta? z$^DGLICqgsVRdbZr){%d-ejM@mYKfrqFH^x0ww$W)v)@4H&68WZ`~Jup|t5XQ;%zH z4r#PF|LO8tWv*~nQR>k43Tvlqh}g!Rwux7n48M6Lq17ap3;pDcLO*$h&`(|)^pm#& z{p4LhKY7&aC(m#F3}zY<{QfLkqkJkp1;xcY(Bk~uATDq6CmQAycW0?95d`4xOMYAw4Pm6RPSknGix zr=uk|H7Y5aT_CwdOMVSskDBF8jY`VC8A#ruB_G2#q9nI9Dk)oVAh}&jeluEfN28Lm zn+KA&YRNPBR@5x}8Xz&Td zV;6>AfOQ7(<_km5!lN6BUfs&3D0_|~A1nqItPD(&&50rA!A<#ZIL(o3g zb}|C8JrJ!B=zyCg=z!beWChgXfwE3Z2sGig5;WnqIjsU}^FXamTL?7ewi7hv=A3o` z#-Mr_-=h`d zFXs}zPb-c|wTK_kN?=Ki)mBl~t5-!kc;r-Am#TV$D9ZA0gg99hSE@0b2DHzp1z=6NhBUgO&B z#&xJ*^~fDrfOLEsKS5 z5--q7;m=saA84iV4@}~Zv@-Y)ljKjdY}Jh(BBXSf%uScjeT5ydBrK(vz)w7(LawE8gk8pSt>nci(747qg{Lk0CAo1ake&3kSc z=;>?tYolKe;fZ9fEmG6D0mzfGuPaqkyD`oa%-%?_rr8kGla)@{*R<(}fxstKR#9lG>Zm}!I-XnI^*a!H?J!tF+ zu|H_+eS-Orv8TlTh_R=|{+O|6#QwOkkBa?C+UxjK{co7?Pwdm)R-kZMZ`CjU509K` AumAu6 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/Order.class b/target/classes/com/nlshop/entity/Order.class new file mode 100644 index 0000000000000000000000000000000000000000..581e889aacd83e383519bf921b6077e95f1f4253 GIT binary patch literal 8077 zcmd5>Yjj*y72anuk2^DW9+^CElZF%qO`C)Wg1`+$pe;2uO>0}Cg=(23(_~;W6DAY1 zqWHikilE>N6;Y8YRt2PKOOb~UP<$(jil8XIUCXun=L7NE=bU@z&TuKyf3B4^cb~n# zZ=Z9|-e;dZlZXF%_q{}PD*Y`+0cwd*(4-KB1*I>^U7i~$=1Q|8Tc$3_Pgezn&nlD( z)w2b)46L4vl0nf3#Y~EmDX43@JU>z@F3yz~M)IXU)wz-L3bX6;(}nq5QLdraq?Npe#6oWGJQlt=U!5z< z8ICilpH|f@+pD?i(xRX?&l<-{)%boZf2&EUtDC} zYLnKm&YUins=4Xv*12*i&xRqBhUp}{)^sJGtLAqU=JSFqHDeWnk@50$uDD*C13uv@CJ-$H!n63QRv`*exaCGj@a-LlTN2I1R2h@3F;kxcIY&3g!he&a8czNn@-{K?R9XScZ}X{(hj;nP!i}J-h}FQ7>y~#tXG=!DxSl$FqKtoywIeJ*vKyB0@Rw> z^lFn{+{JO=FOTk$2{H!>>Z~K zt1mI>QdX;}YMH~fd6PI%IoD?Y83>k4@#b{ z5Ey@0^J+1M@}r1u?H!=_m>{v5H|-N9-NZR)RLg2#1O-(nQ{#nFeqw2UDqq==n<^r> z8CjwxbCm**wK7h13{Ac z4A)g8ClSDl0;H-5HU+Yix?G!*7}p(ZOHbW+s^tOz)@4R51#7CQRDf{Pco**!9;WkL za~o;mJ$us!+3{8jEy4=3^X7t%8}JE(V;*I90z2xx zi}m?Hkjm9LzSJWe&n(~UhSW$gE|uy?;OcYIedaz6{JpAH=z^P`UxGa@+c>8R;E4H>D0RP33b=yj$7rryayIL ztrk|VOevtJsO$Zzoono|1Yu{mg1eKsV`nmND!7w*l?my`i3GA$t*E9*;FYH@-JDy{ z=Q*@>+t}s}NR%-YV{|o3MYLHhG7BPEC*<+0<3OIaY(oT%tQ##eTNjn219kS^R8VK% zjjX$$iERD0#k1c1G1!sb8vwnp9Ca6m)3d$2RGH47U*P%`+rr)GNqjTWDqMU4w8u$& zqRoXA;FeWB(UHn0+EDpK-zlGHC*>2(qkN(%lutB)@`=VzKGEmNCz?0;M8hVZ=+E$6 zML28}#^)z78o^WG8Cr9Y#2pfLGd|f&6roSy(^LTZG<^mm!Ce?W>&bUf8=|diDB)9pJ(SG`n zM;giPzGO71KIBsx$sN9Abg@3<(;CU$zT{izvp7C{s%$*DG=$d-9-xT-ne0>ueJ1(H zaS;)8D|jK?%BTc__R;73Tqc@z$@R!}sRp0-UuA2vF1fV1F59I4+x%U&H|vtCr0cR% zy8Hs|_j~cKW?gc@bzNH0T)SPDYValcvfnEEnsv$7fa|hf`oGSQZ{ap?;>yqy|*QFYKh3@j(%fV({@|Eej9G3nM_`4iw z)+OJ*uFI39%VmF;r!?!5FLKxAsnX>^I^_4_r#0)6dji+x>Cz>BK2a`%Sv-%!t)3lR zb1Q{{`v)H&<3>s?JjLk!9mg!76gs^sE2p@KE_#uj0!3U{zADP2eaGB0^5bNy_ zAnWb06=F>ILCWl-gcY*F9?(WR0?*j9?&K`3eYAyW+!|L>artB_&rtEI3 zi$UEQ)Ma&hKznQppgr~q%VN+94YI5i9#FyV0jOa2T0IQv)u0}$*8?irD*-Cneb!0_ z^=Z&btIq)i_v7Yi@w9)kcNAx+{BiE7K$Z^E-AK5OK#Go_pA1kISKU3(wa^;zFZwE^ zAZ-+n)4h;F_!aI^x(`yAisBI64=F+waVI?hiGQQGp1uYtieDYBp|3-V(XuGfHz397 z9x+GXgk;iVVvHVyl%OZYI(i6F5?ybWz6B{I!lIA94Jj>7q-W@1NUdU!{z>0~lo6Zg zm-JmoZDK1uLf?bbF3NO(z7MHGETM+~08*#8fv%$;Lh2GX($(}MNZsNve)Re=Bum_f zzTzj4R){C?TjV2I=$)9Ig}hDJ-Ck|!^^aAG3(dcK{i-HZ85kI zDbq$fBu%J6l4MvR$F#`~OHzN>kD`p}MKL z3U*4GP}npp<(P_gTAI?X3FQu~Uf+X`hD%09hq6UnLBGJk!8c8@mmY%@pqQxAuMplA zIze1Sk3$O5+2R~}0#b-};_&?%QkbeDM!$g+p=;^y^duyMZo`rJEu<(8^kMoPB*xrC zPeF>)zv(LaJtR|f;>YJdKuU;{@wMrXkdk7YPN6?RN{LzOqCZ1Q^Wkdw2lYM!MKD5! z5I9gI#4}i2Z5&`l2ZbDfg9+BFG%W0a)sT%^4UW`9W59QNAmM?+{Q@#l6@^Yc6)?aDl=tD3jx$7zR&=W|%|*%VZ}<)SU~ z3iPA==_oXd*3MJSIj^n!7zlcbbkkGRW;r&Fo~ZR$CaTSK%rs1gdW3&AsM`ef1VmvmT)V#hD)FY8V6b^Eo)KM;+ZFSfnUHgi1bIy#$$~4gv%U+s2dw<_I zXU^XHoFo0^zt6u&L~o@(rYJ%^35uE&qqv~l$hslVngbK`E2cWD43+Zmdq%YpqISZQ7~3RrkT^L(OHUIqy2Ff+E#rC?04_9%$58 zW>_L?QZMrp4T)Z6U!O^N_9fSvjpg;SJ1@NhCJj%X-E~%+rX1EAOd6pZ1jW{x)iNGaP`K5STbbTd zUAf&US653l3Egf|kssAtUT?XL)x`%K$E`c97C-TgCf&rbq>9a#VG{sLeTI(m=hFhwoz@IkhP4s3s%cc5WjJhUha5OMvm6@5byBYiz6KQ-K#=PQS z$}lyfV*#j~anA8OOnN74#vK-HG1E3_hM6faRo0f-z00Iq*=@po*h>WmZZqj!v7xQrR2WMA7+U#=A|LX9hoEQKyjo?=k5B9mIr4C7GIG zPopzAj6Y=3Vb;k5KestQ9KO?}MGo^DsxVT-f%lqp)O-Gt&Jz3YGU+%!UyjR9RD|AV z();NH7+0m#s?0T(Q8H+f`2>AX&``VV)f?_vuh!5SDY}Px3_2kwxl}cca!oAOH^2*+QIY+CQulgnFgIg9ZZhscHCtU+Si;M@mmp| z1~Tb;IFaz(hdG%X@wyF;mUMWX2FE&PhgnD(?jAr+CPzA22L1=-)BJXU=c7`{YZW*? zt{$alAC89vi7|fVPnq;-&YIyi)LRLPs$}#YsMei@_07N3qTwblgf~`EaR;sd1eq1XCdB#=`sI#&0J~ zW&2h&#ikDTQVrcSfL<@CyLRstf+O)-j|XE&b=fGE#&q@x!}5T2^oJU#-xcbKUN7j; z=p11FQ4_(XSl1b*s^M0gCf0YJ*&=TPhV)3&luli0Xag1T@3S)OS00vF1qgUD65>@E zCQ~8Wj$BYf&2Qf(73EVpUitbuZAVJ$$eB!g3i571hB`_a3$+4W;a6{^-1EG*=(h@Z z)M&ht_eaxq=;8X)uV35SIxv-sZmE3gU};SkcI@z-^9T1LPxDw)noeuIhW)%p<)i3N zc&Zqf+GMdki>4P)vz08iCnk=NoQ7QSidRi(mwe4+u|0kW_+w8kHrAVE=Z-3OWma_w z4h=W+s!2Cs&5huElEx>_8L%RJUXWLu5#$x80(r%TFR$3+{ioI7} zvEAajg;1mv$LDF>P2(zXjg4O-@k5OS`QoC+mlLk=PLcaqbgWbDl$N~`Pa9Y6rTF;7MM{JhcR?X^adXLY*9rO(crh&cl*7%#;gXqdCAoop$zCb><#5Sd zx01XT_>y@k`4xI3?8W=LmE>i`mmHLmkA_PQbt}m$lrL#X$;aqS*eI{-R+1MxUvjII z{3?AdOmbVdlDuyEk|R>`Z1{`c*sUZl!M$M}*{QW9UjRC;>u!qvhSa&cn(X^KTJOuS6SIg0gMn0SedgOlSM zbhEsLam&IaKJ4h!pDArcU!lJ9WKLPp4SKtW*lEWA*=fhE7-QnEQ2sn+te6!KfM)Fk zK(n@CB^YFAP{J|-pxt&7pxt)LN-`*=K}jnW0L|HHfaYw|N;AmRAXov=K05=@K09k= z7?jnZjFk<5_S?Mx?YDDQFN1O#)NADepar`RpanZ`^)V=~L48&}06Jp#19Ze5u=*J^ zph5lCKmfF44+6Ag7py@B6*OqjDg;2s>>+@T*~8WlgN8L|$Qt%Q(F<4+djk8rIvl*J z66&p=;vzjs-#`Tnil^ut4h#`0iZk?0_KBLc{qX{<0nxzj^>bK* zVx4ZIU%)Dev#9K6U=4|LI72-PYnZqzPE#>qyh_;w8Lv?xK@t2L;x!spX7c}GdfU~L zXt*fMoyY|5fHCegPGInWrV^+&z?hdnq~si4&2QmzvW4+gA1>^v(Z?Z?MGH^m zW@e+iWTS4)%~a5)MsDIfC8jp$?t9t4(~fe$it32L&8tGQc1(uQw~}O7F)y^+j>}No z522eCYtBx{5E@yt5?*MZZOD+}htS@Nwck$45IS44l3r-RPRUTp524=`>xi9}A+)+? zrM=LSZOV}8hfFVY%+AOVdSA0LGPE_kbskX@sb{`NjMJ~^*O=y*7^UZ6MJOeoU+-R#n^cmUQ$ zc6v29u^HUPhXgdmxPsDVg~v1zKjf+x1U~pL-#5y?^M;2tJ@q>A_S3J1&?4#A7isHU z1Ei(Qt4g)iu8q@znQIBQHM@dpSzaV%U4ed;f1QPH(GW-5;D<1^Mxn4#w^;1XzCiaJ zzeM-uOB+ literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/OrderTrack.class b/target/classes/com/nlshop/entity/OrderTrack.class new file mode 100644 index 0000000000000000000000000000000000000000..866bc662609d22ec260a3ee61d562d037c7e88dc GIT binary patch literal 3408 zcma)8+in|G6kW%j@r>2Sz!%k}#1pkg|}5B`{oS ztmf;rR;96)ck5o&doO>sS$3Njn@;JvK&)D(%VO7Ou~A={l|Hsv=$8(RhJ??TrEa^0 zEOzjPEzj}RTLRe-bJ1&71MYx@L5WM3-BzhtUGu7qy5#S&VB-;iRH^AYo_n#n>I&Gt z509ICu~BkrCj!%Kij-jskK!=_v*grI-dJ~P0t4frxB5Al&0Ut@5erY?NdbMu_2wB^ zc03n?s?cOMM=d-heI{J#uqByKTNszj6qzbN^JS@?urP@!fh5(7LCiaQoCZ-#@Lmgf z3EoEViEiN1^o)glcvhf~rsJX5cei~-Mjyj-7M{lojK1QuD#sgTri(S6H*ip3s9QAu z5XaW5HI^!c1BjbA#DjDzJzg!(NyA|aFX9M8ch=V2I#Vi0PEX^ub4?%HhzT_egQgR(zSFmK_GxAI%Oha<*7i1|jG;H(98(a&9&UtqHcc0{7-w$^JLadH3jqn+a!qwTX; zqdo6TkA|J678~o$l6$Hu+n`@nMNPiF^73$4m>dV-V2#OXNhv0Wo?1ER)XG7oRt_$% z{a{v+;PX6pd9H%1K5+-)8wI<-r!>pwBA=EIz(u^uosjd1&tCF(FutZShA!ERBy&VX zkoz{1laXW&vIuf!GdUGW=3t8;@7zpIN0K@EBFICV$yOwJ39m6TGGPU-vRa9W$?suA zr+d&x1nHJVkaZP!ojjc%BxJa`6z#Hat1e}WbX@i;mzVKI)G0Gtbt${8<1(vUz8URu z=T=?H#_hNqR4(7b+fk<++Nw)=2Rbfo<&qy#-=(|b%{ybL-rQ>Y~4-~Wra;M+!;|i`aM+5j34zE0aY~WigQy0eszCwwThST^IWlB00@G)FU3Dj^M z?@%((q-KSZiO+Bf6-r5bjw7g2N@0T|B)8Jn_y^{u=!OJuR*UnL`!e25} zo#zz%lP*j;`Xn=ZNSjj)F`SvLupP|IcwCCSV!LG#p*t3;r>KxZ?N-tEe*w9Ur1WDaL}lk2S^` z#~zmI1|7u)jNyPy4HlU5s zdQ|}|5rTD*o3#Ph=mmH25r%+b{)^IOMcYVZn)n0FuQ+bX7#Vo+M;y3x2ZikH22|lU wa5Q_um&c@h%9nFovM>2EyJ0T-vMi&TRgEgg>~&pkxB;s$p;b1H7$NQ~&?~ literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/Product.class b/target/classes/com/nlshop/entity/Product.class new file mode 100644 index 0000000000000000000000000000000000000000..e4378f5d4acce352700bc7137aa84c4ead1519e4 GIT binary patch literal 5374 zcmb_gS#um$75;j*?wRS)j7E#yu`n_j6Kjhg2uxZwPGrkQL2^Va1P)uqqee59G^310 z0SB{&Etq{v2>TX8Fa=Z*rC5rB2SOE3JopJ-;0N$RQAJTjFyFbid!{wC6FpF6cb|LC zcfPszEceXl5C8eauK`TqM;XKrH<7TBM9M(nV)>!+*an)pETxw<79Z8%6XPNYu+4o`GV>^<1l2^PLB53<}Dslw00vqj^bO_uFtp znO*U=D$UwvtJbKC{(y}kyvRWMLV3$uY}P8|9n`!VuO^!wlOR; zNorO-A$W<6TTx;Vwp!)Z_LhOZ(5~j{+=16rt}nH58;)eQ>+HZeZX@h+ZdPdgOiq-)>_PFXPr$J%)?XIWiK0s?bU* z@38R-;Y@i#xFw#iwDBtO%+Yh99dNO{+Qyx5868^A`R5zh#T%SZ(8p{X2g|@D`mD-O z|1PYbBZ1y!<8Faw2|ekjN%SXeoDzKx^`| ztT8m>!>Td3+F;d;59_AjvY|e+Q~FdrXuueeb8OjYsVub`daLYk9pC(Xt?r%O-nig3 zm&zB`xv`?^lI3!%4k!;BXdp~`jqjdT~TY{w#06)dAjG3dR) z@ZN*g6TIv-T+2f~Frt(NZZI9;+tV)^2C31idQF~HB3hFB*-{!M=9RKjH;kG#hE-Vw z(s}2RH6U1~l~Lc`8Ew*woH7I@$Jl9OM^R9KPzf67)tFtn9tCSxrGdN#g)|ujQDw@E zX|un|>s^HI1pk1Yx@D-DjLOL>Sxm|7|9O69}sNN0|{2iwa=-AURqf2a1Bm5GR@{?LOaG8EdHa7}fyeFD6w^vGOn>J-$ zQN9=Ni`r#juawe(ZOWpee19}$|6VDjncI|uit+=|l>7EdDfdE~(ovKj#3NA$zh$qK za>cYMhZN<9qIY?4uat6IwJC=c<%jW+s9he~E2Ug~ZOU5}$i5)6J%>RP zG5)iR=dfRk>Hn`7T)>aA&=c|#*6*D=8B4j-lTzW5g7DziDbQDXGDrb~dWDB*x6T#S zI{X<%6{ke}aZ<>)ntv9ik0p+)1{o?$SJ@s`VeBf*i5)CHAo?jcAqFSmTP$fBZ93{E zm5KeLoGd39n5Ny7GNsxkc9Hfv;hM_C2J*ekz%=7p%4D@oY%A?G>!y{79p!ta1Jj(F zQKn4W#6Htr^KMp|*kZm{R+)yP%lKg(5HyN-b{*G@^im~wihHo>jasKV% zI=(|G!S4${$9E|uah@gfJxVG5EPDh`QZiZARa~WH;VCTO`;^l79qzynC}r>$em#7O zQdWvB7Dw?06$ulTVX(kp7&rJ)opnqU14ssd0F&6Q@?ohEtb^><`e1W6xPy-{_%7D} zxOBXtZN4M_%%u-VeE6R_Z$kbG7H#(3GdHn!KK=O+K1ufGBpsd?0Qpq*^HO!#UKmG0 zmK%T5>n>#pu?EsxT56~BELh+Ga^^D qJS+H%TAmaAx|WZMzOLnYkvA#tpxOQXGyEgvvfnBOeyA>`YySley|={x literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/ProductCustom.class b/target/classes/com/nlshop/entity/ProductCustom.class new file mode 100644 index 0000000000000000000000000000000000000000..951ee8a896416af405cb7461dc1022a7790c2bb3 GIT binary patch literal 3460 zcma)8+in|G6kTJ_c*gc5aoi@UX`#0e;#}%b3bamBdM|;bO`8&ExwI2|h$nSy*B%$~ zh=dS=7kEPA1L#YUKtL)1LWPGS@dNz;_zX%}=gin1yCXGHGH0K?*V=RTn5tLt{bRS-MsR2=u1g6Md5B@P2|9SIXjm`$Tb_ zXHhWhIoYt>QtqU)cG@mD8&-KXLBcK*PvaQ{M!~9_x!JVJ3Wml5@AOhJo4qQ)dra)b zJ_XvE?ani}^msM^mEnn`j+%H@_>9@YVM8#VGchihCYgSk=8M8GVPX)lKPXPD%vJ?+MtGjNXCo!ZlBDyrt0q?SsikGj{TF3>mBEh40A?79M7L_8{HfFU(f?3c=RbrcMEwxC8rI^|->9;Qnb z0QsjM45EBp%70y87WlA0otd#^*DBmtv}%5_w53b)i)Ln*a$((;7E8#Btw(3%}NZaLrba@qThn+IDRhOdM+Ah=5 zV>$z0!aqVN8A52bs15Ld%`8$lS zp+)aZ-h;6?HL;1Ea!XhzyTX4Lx_ybW_Yqi$k<3o(}02pP-AGMd1|?jwC0 zeHkqi3xKkDouF*q$mjxO_#i!F1VGdII6>3-L?$jk2_F>CBm$tBe3GD&(#*{(!|R&tE3^0jtzSF@bMUprqm)zCe+ZhDCe^ zn^FvA+`#*kbkwO?qh#PqoJEOJ9ADu$97+jna)hi?O5#`SB(9!3q*`w;5Y=~W{*%I5qNKM{`KD~)U*M)v8uL?s(^(}^I63>*) zYtqF2kR&6cwM^6bm^8)OCU%X-n#t?Z#D?)%x-{(yFYhJqn0{PQe2NWJ7=(sTP^A=M zK|Vr_u|~0u)3;QK9NE6omzXqCBFD&ORa( zL(p1)7Dnw>`LI|3)Df)l!f)b4`m`sH3HhuiXSt+b^<;L#T>3Rno)MS@%9}Xf`~3)ha2NcNDQL=uz4bpp CZ))EF literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/ProductSpec.class b/target/classes/com/nlshop/entity/ProductSpec.class new file mode 100644 index 0000000000000000000000000000000000000000..b3a48ecd3f0a5494a0011bd1c13b6d4f78fc24a6 GIT binary patch literal 2970 zcma)8U2hvz5Ixu4FFTvWb(^$?mbN5>#7Sx>rBJ&m>30oD8k!Q?^3{#KjW=~{W3Q2r zct$)S@q~obS0bT4Kn1A;5`vc^@tY{++}*XkHVdj0?VX)_=IqRwx!3vg@1K7KZ~}Le zh#{^+F`+^eNNri4Sh=cI+ss|v*s@EmfOgucIqn&O`1H(r0tON~k|u^=3LGlcw{x{> zt5R>|?3(MipXOGZ^>Vx9t~KnEK+GwVbE!wVRIhCoB*}=0QOS^K`1oR3diR(}W3PbG zV)%-+Z40DB(Q9tg3F600jAOsRP^0OT?6c*qc8j@=``~TMt>n%*n-}bovu#xiNm6G_ zJcDORU9xHyKWGVvS^3#gm6TVx68>6sAJD?$o))Wq|WQ?n&u zOGZwbctJ**j0~hGmgUBaCZ;jNgt;Nb@vGa{M;z2A;j<>@FfTCT@q|h|(24kWkul^< zyo8roWW{P#&ezM-k6kP3ctv1;uM7Tn&b6It*={Cr9B~6D1x7=?n|8_za_4mur;ulf zR-<9pD8+nOv>@TIIDOny{y0uciiLs5j@%(x`y&m!K^5nYbmwEiz*)*Scce2LbeyL^ z64KR&zKa54Mt=9Qi7QfZ!>#+&0*bH6=#o>jSK8YfcJsQmQT3**Ub3p|R@0I1fm3lS zPD|kM(*I6*fn(D0$7F9<8*fTx);a&nwp*!}SFI)o+O?acG#SvH4i?4N-c0n3Wk+H1 zjCeuaQUx->=LRQ1epJ-^k4~UBbFI4-yD6Z{;wI(!G(3-Ij(EZ(tYnARUTa7?$b@f_tS@y2TVQbp0c9rKj?q!vn41GT_+542q zjSyvWt=?{y>`RX9Xe!WG>UvC$K92HO#dzx}eDe096_a<6xANBUR^BOGhe4g7@mb_s zj;r9RW*6083crn~;|WpZ&oh~RyL!9$V3E4a$yWX*Z5QfMtZ`xEqN#m0R^pqSKAwnSi+aVk#) zQha$knsWGQDP?!Nl%pQyHLOKtnR;4EIVfGqv`2Xz??h4Vds<34b6v`DkCMMCKBf4K z>ku`0Fq{1rs&aq!cNpJ5jo+XB4aV|Zb{7Y{R~iRb=J?1f^M7C{qddZ%9hmbOWfw;} zh>5&P$V6Vts1l<+LV5?o88xGYKvQ|0psBo((IvDJCojT$SCBb%qbMU#CCcYPU|6)yX=8`M%+`nZMO^@yLkJNuiUd zkt&>47QAL2Ocg3@rIDK5fj+;BW4EP$BCp7ej1ue^vcdk=R9^MA*jq2i$f%vIY+m!W zwC)x=&ZvXYO}gUe5+onTHa1XVrYhS|rWK>Cci0HoqzSg<4lM;|_?x>)OJ)1^qe4sb z#QzS)6FL+fh7c4SLOfw$?>#0RV^BMQ4o2yB1u!iH>mdid0a)(`_wW%L3}KD@m%;A| zwq&a8$>J|Ke)Aztq+i{|YqB-FD5TH$_Jp(-eS3;a`kZeQR!CoTJ J!12at>mQ%f3Nruz literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/ProductTopping.class b/target/classes/com/nlshop/entity/ProductTopping.class new file mode 100644 index 0000000000000000000000000000000000000000..c85312eaea1aec1492832bc64112a1474b0204a6 GIT binary patch literal 2961 zcma)8U2hvj6g^|_mz_=Gx=q@J0%;RM;v_YcQowFX=(izBLsLRqzPhou@urS#oDC8Z z&xj`^o{*4ur4s4`RFFy_A$Tbgzll=L%&wiaF`|;Sb7$_kXXl=KXV!oI{qwH?PT+PL z2_#KuHgp&QnN9a&H(zt>8~MxYn_f8(Fi!b(KR7LroSI%s!9vPJ+QtBEfw6L9D_^f| zR~yZ|R}cK)ll)4nQQ0X6R~yZyU*8Z&_!ZJF?(r@*>KjGLGh|~}lBAkpNU0)M_u0r| zzra8cGAz4Wo&pjcJ*wdLOocrl8F}u4({n6zTwP{U#obnG>#)_;UrV+F5Hw~nU~I2Y`lsBQ*@h6 zuTClE;-W>njf>MoPvwu}l%$yNiEPUqleIh2!fRAXt5J4qYi`Sz^Jq~Es{XdX z(Z&C3@gmz~J8YBvacxwWOs}!|m%O0bsI0gxwsPRL$Z9j7(;ZBT)2^QA>ddytq_R|; zY6T~HS8pfCH;P90iHXGKMjJuZYYCV#xe0kPEw!S|A+^}iTVOc!#a1#35-Whfz7W*4 zmX4UzMhDs~YBsnUxaHeRZZncuU%66Rl2t3Q$6DU@PK{SiQtc-_5qq;e(e(y{KE;<_ zZS1tl-UVM4a(|?0q~$T$^fkp!ISx>h zdo#Ijp=)<%euwon^yJ-{-(W4x=5}#NO=%onp5>#U&HaG^M|*&McVN#s+AhZ0i1C6> z$aukUbcrz@AbSUcj_w#S&}6|RXtH2ArUY3L$aJh2C|5`klq;m2lmw+CP|8WSLE2sJ zIvH#B@T4@uY&vznhc&#z^hfXwuJQCFFo7>{ooh+t@HuYK(r^*C@h&Z$2oLYkGEl<> zyidzS3k&#wmW3~Q$Umf&!dF!ACapAF?&BneP3tcVnXn#W)I@?mOFYD(&`kY@+3vi~*JU+ip7BE+<{9?4-pNyEb~4YXzptq>^DE6I9vSf&DNGVIGsRQd zyej75OtH#RTA7(UFz0r0?512FFKE)?XpzT~1rA-41zovVTNPwEdfSyN7|LaIT&y^w z4)-t8rEo9N=9AdMI?CLs&N5VJB`E7H7D5(joF%zMOT%e?Z8vD?EZ;#?X&FlV?_fRR zf@Z=Jf`UVcM-1GXC*;Bi^fsW4(Ylu+m=S~RA$wONu-OgX!}oD8ggNrhLRb@Q%B`{{ z3%}s__4_!HeQ6gj%hK$km^~fZPui9wy EAE>(r?*IS* literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/Review.class b/target/classes/com/nlshop/entity/Review.class new file mode 100644 index 0000000000000000000000000000000000000000..b047375fd8f64ff9237d9f052b9ef841fedbffad GIT binary patch literal 5878 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 ME)`zTm*b271Eb{=BLDyZ literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/User.class b/target/classes/com/nlshop/entity/User.class new file mode 100644 index 0000000000000000000000000000000000000000..51b4c0fc60c29c05cacb746459c6213839ee1dc8 GIT binary patch literal 6172 zcmcgw>317f75_b1%Sak|k=G$1I7FphYba~RaUo4o;}EB&&e9YpRcv7^aU@rkTgnb$ zFSG;#EnzEL!xCtL#(@?}%Q=*D_{=Bx0)GLYIkbe|eeaDl7SqI^IQG%I@7~|<&dlB3 zNPqs%)6W8U1OAXf3~edIT_liH=sZ=tuQ;(%tSn93e)3dlp{|hJQ?8Wjwj0RH>Ki4@?|gE7cTY)bw_!T3MPDcDsuXbSgOO z1XhY?N(%W9ZoXbCTV&ovw??iO*VgW@))s}{>!MGTaiNN0z=elb@HUr9l|{L9cgWjJ zrCwSp)%1n8yLhEA6RXSBil)BG#h})d&J@cl;_THfc8Mm*DAbEJQQhF;HKIxt7Z+=# zwKdTVxfsTXLS~^>D%ML!%JLMRxo(}Ci9^+e;>vz&(pMjIF|H}=tBY2jp{EHKuf^*a zjfG<6z`g6m6@}iR&;ytxOb*{A;Mcp%*c zqMO6amgwH@Vn%chb#syjQNF{)p+I>+QX$I2E^Zg4-11(X4bi^S#T}x}h}I-T)JI$# z#W95()%!v@*%sV$L{@}%r;8H-?`SA7F}%ygyYU|0=yGvwd0%yr31uIGtKa3^&1qv$UkdHU+*BAqP;U)DQ<2sl%!J7pw%urhEX3erH3?i&Dpk@^}Kw(vGzFu57JzHG0)tQ*PV`laMGcdy` zz(Ztxh39IU4sWUu#4=rIhAmxaMkrA*0ZA6@<0lLDVN-?R$(%ytDYAv|?Pd$%`^wB$ z*J}%<+se{MX({fTWRzhiM`4Wb16h9ZT&EP1Lt3vqg7wN%SFb#5^~$qUuRKBZ%5zh% zJS_Ff15&R%^|)>W%M3|=p5<_%uGlosxr(pPR`~ zA@wAUF*M0eB$=mK1Uc7APDhe?wndP;TFIG6G7rEAa!)Hc8%gGo9YOAICA*Pi97B$>x?1bIg*xjmB1V>^Ppvz6QtN#^MuK`ykCJ0r<_2Z$iw*h=n-B=bcef;`$v z&PS3zi_ftRr96GEF|Nsx(aT6h7k8gQ*y5Iwm#$OzJb4L@G`5h!gZM&}%iLC7N&`1s zn#~uZU3P8NrObkcOS5?>+GWpHUCLN#xHOxG@ujE-@87CRnNSUvp7wt(`YyL^)ujx( zhD)>ga*#j${EveIj&vu8<4rnwmZ3cfVw<7@;DOlOQX-jxqw95rP1f$%#Mw0 z;3mDLaP#3Ye)#e6KOyVIUqIJIxZ_@Y18)ityZr5KQs~3|>k?4jg1WqX2sGz+6Ex@dc-;c( zv7m0RCj^@JdkLEN`@CKO^;uA_*B1gE_xlMt?hknV0vfQOes3TE#V>IpwuR1j^K$T_ zNoX)X)nz=2ud@Pr)nmB87ls%L>Kwj7T^ql1KZtKqiep+;@GVLS%&KL4n^F=hY6jn- zltNAI!()^joKppSmr@#!s2%tor3^N372l_n#c%O1{D6{+zu~X=A*CGtfxqB!O6`1q zxr~dHI#d!*;761?)eW3yKc>{BMmgbsLMg8f;xv9rsawtQo82W!J*vvD%Ri&ktJZl4 z{+v>uI?s2rCn)u+3w(!qlF|UAE6$>ja$ZDx3eHRDOCiR8N4}Dq91WZV$Ndm(!XeNQ?089i4WJ)gZ(Hbp$LANl!e^bRXH7*0Eoh>}xIk_i3 zr5km7=j1Zm)ae|(h}8H7?z%_xyZyKrytuVE(!9nreXB{1mk3OI{iHS}8zy$M zVeR)*+Qde-tW;o{_8o0<8YZ^4VIB0-+QiPbtaM1j$1i~B5|p_IlSvCLMH*7-YT@jFUc{2Mpp zSxTE}8i>&m^R ztERW>RZV77L%8=A`Mfx@VZ5FnQrgOFpf3-3*iiOR(<*+;d4DLR01^48O z8(5H0wSlGlDI-sD$*&lBugDc6?-zO1$h!q!GxD_P>qb5(@_k0075V)}o)h^4MxGb$ ehm3q&?Aa4O3JMpX=5psC0AMp z%Kg@Izmykdc;J!DFqz>p)R_UMLtn}a&pg2se+4gu@}1vav=U3l!;D9Je&>AO(f-c) zerH$y%fEmBI)HWjq=*c%267g3-io3rL|{<-r%uTYv2us8Zw<0b8d~2ZuNUR4M|e5 zP?Ze%ed0G;;yPlXj-wh3H=@@Q%*+0u6LP04Obf8o?Du@P>0fYnJxOq%1zY@9=)ctN z_f+77g&91cq0kwg^KQ8NU2f}WBKKy`_jbI2y0M2W%wkSMu{rQu-@DS;^)%Q4*ymzx ztKW3H=fY5<$nSmF!aUxo!ECy{CtlolyBekz66u3VHWr@~@VhN6U{Qm<?S_}G73yz>GM4ug%TSBKToRLs<6jBwJ*oQ297>{WvODs{y6VdmimNJ90 z7S7=bma^>*+h_YN)}FH4H1MQ`<0BabH~9E|r`z%dMVv?0#7B513Gpp-T4yA(Wnmi^ zSV(to&+D<^tI5`cJ59D=EI0dm9+xD=$0nFjQxnY_XPUUoUaiaq0zYHo8Pf!s5cx^%)J?qTH=(;kvZN^!vdLX~+eY ztZsFB-i7_$>)zmsd%err)|HsAx`U3aLubx!cZM1s+Iri=-JpbrfrO7HE2d;=*=w(|y0~4LGHwO7k+`OyyB#NjZa#^VWhuw5$Y-(HX6V z#F58Rka+%;13NGV)AOS3XG8mCp%v<#Rz@`4~`Fj(A>=g8f9EpG~gT zc-45-m+nIQje@oKDPj5a_-O?I+`tZ3noM$jj+1`}e>J8VkP zeVnqcQufkQ9y@GGIYM#DX_c~{p7Qu%Q_5+KQ`#!!9$rk_`2B}XDF-`FIipezFicDN z;9*nBjEGats+4>s3sPpD;`Inez})iEFQDh{EWZKsXV9~Emj48Edu8bW?@&t`@4B$U z4=1cbC)~cO5z*2-*b#y{joxH6JCjTbtw^6orJD&iZbPR${I;L$1$P7V- zZ6-kLPJy6xr)U=hR184{yO;o-a!Lf9axA+fAS(pXN`M+pnV^PKvC9IggrKrrNq{z- zDnT1g&8`Zl7J{mFEdu54@Wf;jvoIK>cY@+Y=S!P|k9}5qO0#f_!!^S<>U;PseOWBw zpZFZD9G=AA@DeSZ?_+<(=V|59#cTKiEdvAm3SXpU;#K?@U!qmOPw`!RnN|@8Jg#4% zRl*-RAHGV+9wR`j`v+)0#(Ma+6JvsRu5o-2PRzs$gF3OT3CLbt45rZM6M@3{=Zt-?w$=*_u z#6kJFHL^598+)hDd6I&Hf%O9oNvt_i5!R#clk6mVqDf zx7816nfN7+b0w0Z7_=Q!-l8LCz|=Gf0Gjp|(~i~|aZEvv01+lP?h0Y~1Z;$y^oC$# z96Z9O1VW1WUz8CmJr)xAQ$N@s@yS26-<

AUzz?i~l1&`u4X&FbUho-!g%I*$CE| z`fdFI=dazxQ}xXQd{kt7fQ$8~1DhJYSich3>%7#j2KFhjKOWc(v7Za1 YY1#*Pe)63n`TExiC8lx8$gzC&KcM{+0RR91 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/UserBehavior.class b/target/classes/com/nlshop/entity/UserBehavior.class new file mode 100644 index 0000000000000000000000000000000000000000..419d9cafd55f93f638ec473798316b8bde1a197d GIT binary patch literal 3949 zcmb7HOK%%h6#mAZ@r<2u9&XciXo1iM$g?gGpiEjQebGQt3TaDQ3Up!*v0KLuwo@qY z_ksf*Q7$s+Y&+|0t-3fZvh>>M6Dd+F zB+L|rYrsZMxYEn@T5+Y&RNnPA2C+edy%1zQdSThukc%XpZ`R8}+D$eb+@Qf|6l!(C zHYnJV*DU4tmKXQ?h4PYDkvrI8<3`-1AycUPUeiBXULxL6_$C+m*;>J?><>cI8SZe% z#x2;Y!76yw1JA8^6%B(Uk&URDO^==u;9(oL;x=w&(dSXPlSHtxh-8u}OrORtKwzT=TWnFQr-8~5N| z9)y&6RjExOw!2mWf1eE((;BkG?~9acb4ZFUSOU9k+>ZzNoRZfl?W+}8VajO6#Df|( zwpF2aws)mmDf;yc_8@6tKZO$&(@43vTZ9hUcnF7BFK>C-ud=R_(GCP>j8?iMIor4g z4~rC!bTPx;MS9f9v@pk(ObjW(?zZqKdoeN85-UBAu?Z7HQK8Z~&*M)FNj-9Pj76Ln zYD5*oS zbgE|ZNGcF6du6cITAoqGBc1^XiT0YiP^eC4MgoI*)T0o=s!xX6VqoP}JnG8MH@(8S zId3^=vT@|`nYjZz_6%Qwy5Cr-a7riTnattv0GZ*)RCfl)O4(J&2#%^*pmdt4#L*Cp??u{j%fyc6nYP-D4mXD2Jff?Vc z4GIzTO7u~PL&F03hQ>ud7lrtg*|nw=I%}oulPQbwDf`!&Qb@LyGAC2|csB0f>(-i5 zsK1qRP^Mf&DK6#4wWbs=QY)n+QG`1a{;KkJ^e?gC<|BQi4uqPdT6}N|oG1nku%uP9l zz@&ag?h>+&;iMvH(;+#rg z7{8-RUlL>Z4K-RiKQyjjnU;Y$e1Yd^rTF^+>b#n~zJ~@a3m-CDlU5oZ!N&@%3|4Uv z=V|redwv}}Ps_$19K$cr%HmIK#sylvc#->^#h__jMXw3#8a9|n@W;}wVUse`|H};D z-E$O&&IbnKzg{V?=_^K+YX<)RfWUw}(O2IT(l5*oWAzd6Wi9<}0W}=Jz z)4TNDQdC>|r%RNS)jxg-=Hx1Noe};qR~G?C4e1=zOCD_VO@hZ!Z z#5TNz*J$bdE-vA9S_V#18gI}_Q2=-1O!j1UlF^iEd*OGRL9WVbf}o1Ne`J|+-QtbbA3toT?!{S&Pr9RAxlJ6o%jxWPJV;ExqYiRAjGwbncS?hxtz%zRyI{OlRKj99lYfpSN4?f eA652FVIQZxiWA*`Mx!4sCjuR4cw4?8@B9Oc9=;9$ literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/entity/UserSimilarity.class b/target/classes/com/nlshop/entity/UserSimilarity.class new file mode 100644 index 0000000000000000000000000000000000000000..1f6de209926319968b2d0c6b0af3ff05e99200ce GIT binary patch literal 3089 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/mapper/InventoryMapper.class b/target/classes/com/nlshop/mapper/InventoryMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c441a874958e058d7401f45cc4ec889caa15d678 GIT binary patch literal 941 zcmah{O;6iE5S?|Kq~RMv%QqAx5M0;`w;-hSfE3ATt489!u~*4bd)Hd8Q{}Jqzz^t; zs(5xV318tb^6Yr#&6_v#@BiOBBD$c18hMNk0~2!{r2~`jSR{$Gysd{)J7Y(k;$5SU zj8<;NQ1D3TKL63Xm4RbaRXUXx&ev0a3IwIfjV2(?vo^{*(hW@bQ&0V(^V_H+Z7>kpwL?Znr~ag=Z*;$THV$M?Mch}ZYciUPrz+}Q)z`vhRx)b6TYWi` z^;HgD(#q-ZR{&>?&B#+I+bJ>1(ONp}2uPqr^cu^lnY+%aV(Qs#7UBoE@6Z;q{mQU` zSl*~q^&)d)?phSQa{7K iq=-Md4Zv)?Y`RHX&yly^;DL5K1*2Ws!#C%@PjnCd=K1LW literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/mapper/MerchantMapper.class b/target/classes/com/nlshop/mapper/MerchantMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..f1148cac1f198a8a2a9baa76dd7dd0259345fb40 GIT binary patch literal 514 zcmaixKTiTd5XIk~a3KCev9Z$1K*L(tQE6d9azrE1emN%GlDpl@-ku3xjlvJ$hcXVR z99n3#`(Ac_GxPTCefbLD8mA2e0vEB(q)Cg!<}y=xPEL-<#fdV0w3ZFj1ln`;qGYPf zOx{oC6nlYCn}Qr)&b!eTgN)aHv0)5)L#`f?PwezTIhBzoR|qt-uOI{lE{0Qq zemAOGMb^v)y}#%Jf#$0AH{yv$GTcPqY8y26PXCW;mYeFZ%%{pTrZu*ui|J0MEIL1v z>8~agID0I4=Zv0pp(iQb7-PNi+8SQ-GO}(aRj%TMq@J){NL4+MpAip20f8O<6`;mx r*AcRAu&Q%X>Ueib4>n<)W~al+?{+5tWQ>^+Ci literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/mapper/MessageMapper.class b/target/classes/com/nlshop/mapper/MessageMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..0adfdae214ca6bb0bfe7b16a134718e14398e045 GIT binary patch literal 638 zcmah`O-sW-5S@)}Vyo6#zb^_Nq&?_fyhRi}2!#a2qW5jOBwLc*u)7iZ*F5+G{88eh zHMA8!4q@}=&Ad0fdH;BQ1Aq%S@W3H(9I1@T)FdjW8Ow97X~>OXF%PH6gBpSMn7uHX zG8xnR;h0C3fGeco8h?(u!GZ*rR@g};;rIGD9CDke(F4;gUG*CLGEN4-|sTg9}P&RL%v*YZ za9^(so}#q&)D$+7&nh8NyF=Lt|quG7&8# zS2KchE~)^&T};qqV5reDfm)rRfhO5LSq+8*Y}VF78{Q5&B+n5Y569#>L8prDmhfqL MpW&R|4OI{L2Ei7YbN~PV literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/mapper/OrderMapper.class b/target/classes/com/nlshop/mapper/OrderMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..3d991c0ca70babbbec7b8a19937f6aba9f1d52a4 GIT binary patch literal 1445 zcmbVL-)|B@5S~4L2`w$f9~EtFrBFem_tFQGYnteT2?8|6aFjI(29__pxESunSKI-fIX59Nf( zf$>X_Cs4bh*VOi?nA*ef6>}AVA{QZ(=p1zV83HC0SBsdy>GlvhU}_djE~%tGQ%r^g z3W264PzjlbT<;gX34vFgeww5oh^f=Pm6w3U5wg3)8@V3?0LIfy)2LdIu`+=O=bWYtFv-udqp-s~Zwm~6T;hK68%B(M&F<{c2 zQK580Dt_irjOG)n@alH#jFMv8cPS8GMKy+9(uI#NhQQl@;d(-`DU;4$2B4|tG09TG z@*KZA0()^WBgNfs3q4(INb5$rUauR|XNQ@e(1o6$&xLtn=zqNf@;t+YOOzbV_9PD{ zQ%Sr}&ISIk$D<&UF8jbeY;DctjJNQOerN<5>(gEv^67>l$3#w%0D&B?KR`K;BZnfM zOL!^}xCeUK%TP%}TPCy()iktYLc35y8VxL4u!o;I+I=(&9>7EV?pp|Xgti~z|0}nS z86Ib`jSbkwI`+v;!B61;vnEndu#xhogspX&LwJ^8syWb@BeY{Qjcex8%Ng8J8a>7; ooh($ literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/mapper/OrderTrackMapper.class b/target/classes/com/nlshop/mapper/OrderTrackMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a740bf17a2c48d27c3ed11790998b5ef0b12df20 GIT binary patch literal 476 zcmah`O-}+b5Pd~q1wTL&4<7Yk;9@V{)|kk_gk*_EjQ6rkmf~)^>2^){YaaXo{wU)V zVjv#$&~)Z?=FOYe&#(6n0M|H)&=9ytZ6Qrw&21?QRhH!BgPW0ib}D@xuYd@<0=8L4F7Gt`CIHQQ+Fn|b}8NK zoEcAl`*9Vt37kFEylFu%y3*5}?u@Zsd2J1^c9~e0NmZ(JPEt=9uB6%&$hEO?OF&?U qe*>=3RMhA@_XrEsWLM;yY9Ic`*dVGhzW8fPnMui&y literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/mapper/ProductCustomMapper.class b/target/classes/com/nlshop/mapper/ProductCustomMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d3795bad9eca393bc522a5760844b551063922e6 GIT binary patch literal 701 zcmah{%T59@6uli`5PX67fUQvj8@tdQ#zc)KBts;UxGyu!P%_g_+Kvgo=E4u~ql|ZE zB#4l(=P z-pBk+7%`6cy_Cu_E0jd1FFmD0$`a;JI2B`r4P}c2T0C{nB|u;czX*U^B2Wew&lNnC z32a055vouFXAbRPWEY16dl=e>gGF{d&u**|976Md*3n-m<8sVJT5#EW^72;-d?J;?$) zEFza~Guk@i=iH093cYXRGZ9!uO{r30u-NPQ6$+uOw6hC}{?P#7p|DduIpK!K!U~fz za+5LzqjoAH@O_>QCX8P9{6!*PtFV7`4L2i40@S%+7zz_ixw1La`z59d^FUb<3Ip;Y zTV`eC`7*VA$cZZ?&D3(6L2hd#LxrUgj81RD{PCJ+d_vlT(+s}F;)hJ-I1-mu9V?}w zL23mRuY7Gnk0(5s3Qvx)oqBw6!7ET8Yn<~agVI)M%yASk`cPFpvPQz&|8rz5;BZTu z8KdtvBU$zMW|mBlgV9F07|mTjtfnif;VQ)_uzdKyA?cqtzjQ7VY_wg u?y|Z^^cY#^QlPGo@~?#TI?WS$I>+FVd%%>^_p$j5kweev0CVod3!=Xq9Y81m literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/mapper/ProductSpecMapper.class b/target/classes/com/nlshop/mapper/ProductSpecMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..641a918d6b7fbaa84ed65aabdf0e7f01a2ac2921 GIT binary patch literal 689 zcmaiy-AcnS6vt2M*17q$Ii2oSLAD!%;9W&fK^Sy69C)9#q04BKlBB|3%?lsEhZ0X) z$EF*4ktR7Gzw^&I{rG%)2Y_qn*1#cf9;k%M*i2PQ6PBi2(~(wT7T9shgJEH*L4`nb z#$FkXnT+VuWX1zaz!lPPjfbMtahTKk7IAWS5+;VLQR1DT2&@wzm z;Qjo&@*pgb%Ywd=k=OSNLuN%xePOIepq`de^Mv|XM3UJ|a{>>&GPY2=G5O{n!M8|n zEM(>Qs}0D%-%P*}nCNC{$SjI-Lwsd^Xs@HNJ+0FHqX~_%%5=aVMT}{kwYgm84I$8d z&amSNe-TDZVtyy3vdju4vBMX>(h+4T3#Ock37QRM%K%yq*mDUG*uviez^xFdf{XVW z-l_z)As>Go8sIEUJLuWP<-i`g_TgX|-7KP8>wrUO|BgCZHRVhPj*D*xPH@jPoC16S D*W9wa literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/mapper/ProductToppingMapper.class b/target/classes/com/nlshop/mapper/ProductToppingMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..fb3954083a0ad455ae32caffcffad8b9d1574ceb GIT binary patch literal 707 zcmah{OHaZ;5T3121YaP&xSB}d;$FDbnCO9oq(mad`_gX8l6H5q-J0;%Jop3rQN}5i zfIz}wU*F7p^X<%h|9pM{Ko43Ka0s*ml~5U{Q>AIbwC0A6j0&^BzA3GRjD`!a0wn_V z8T()~W-_8LlNk>z0awVB8@$|g{52*nt+4YACa*g{jv=>G6^@u;3Afy&1S+=3M4*xK z7-^s9e-Z{Ef!mJ1O6w~bdEElYtca;EQtJ_@>OylKP#ud%GMgDrpuacxVZZE0Oi)`Y z%QN(Lu6acqGpbRd)EBGoC zID~u}s!#)G2_2#37?%SlXgY?vUrgA7_Tr?0-(+alyf zuBl_RpLm(1T2#dKyq{`4|AOsXHyBhT&8+4C_r^z)qBuH_Hl}*%-xiJ(27KYj;s}KN z?Tl27?_W(j+WO?_3|CGb5_;JXpJXh%0ghkuS}ARXm0A(+A6J_m7m@J#$YqzxF&D)J zo=uU(3quhk^j6g*@`a_K{-_h<;jIiPX_VLRB3%UrJCpPitbb>)e(Z6x%7DQfEk1xV zPa2>~xkK3kgGETUyasislx5Sx%4wD{en#*AJJ`% i0k&Z$jZFma^MQnRh+DOEHCglJQ>6;2a0(b{fXaXYu literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/mapper/UserAddressMapper.class b/target/classes/com/nlshop/mapper/UserAddressMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..847b66506edb0055e21b3d3d4c1463d62159a844 GIT binary patch literal 690 zcmaiyQA@)x5XUdowQlO1&Q15KAlr*U@U0?DMHqA_4t>wsxMj3yNm5~7%?Ce#A41;c-|zmp>*v?|2LN0`#{rALsUJsFhI$$&G-64@6@AuR^@Biht%rHUflUI9 z8GBLn*keg{7JTk>1Zn)9}99EPeP}e*} z=FL1SJ_vH;vY;2siQDt?Kx#xtJ)w<@2GSpObtEQ|nN)ECx7|XRTV0!Z^^ene5n7Bx-j^~q%!pWGi_g4RO(;v4Kjl=6F{~+D3TQE5*Cs$<1OE#E8;4y1 z8}|t` literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/mapper/UserBehaviorMapper.class b/target/classes/com/nlshop/mapper/UserBehaviorMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..3f5399d1ca5072a9016d17e7c01ed6a54d98848a GIT binary patch literal 1245 zcmah|OK;jh5S}#wLYjBmkhDo3q=}MCeaVd|5>ZtNiKtOYd+2SkSFn*;TkACvf31i9 zfc~he-`WNnI3R1}*`3$-&FuXB_xleK-OzcR97dnKaO|oe9)*!R=20ZH`y&?mUX1ue zhWa7Bs?!Fe{bxSmZot*h{Wf?Oo?%pz3cgUzuX?3CLK$hM3whetU1WF=W)%95T=TIo zLdT3Y2YDezyRit6^?qvWcYQ{!t6ovE7ph_VI=e`W4BVcKO&buB+`G}2L&Z&^1*0!( zBX8H?y+iJU8KOrW`iW;Os76%iM>D%c+);k+#^`CK{xXx&xo@;gxvl9SqwQIOZ?Kw*>>g`v+*L`JoUWO9nZ*#uns_uH?=hW?s6F<-5Lw+ zjkrpOv*Gh8B7d!q%mJn^32(fNH=jqTc=p`eclc1SA12xpUuA$MH7(Y~UHNQ5Gdfuu z&caMC*UThax^|5bqY8GFXcPNar5et4oT}IxvMbr3Epld8FJRe*IJ5)PZrQZAVA`jH zJZh&xHp-e0Aul1V3W~gfypCa;t9yldi0ntJSeoU61(suYpOj4n7HfJ#Z$Z(LYB+R? g-x(xh@h-*Fbc)KSg?a`C@8Rmu2l|M=ZB2{lKNiPE_y7O^ literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/mapper/UserMapper.class b/target/classes/com/nlshop/mapper/UserMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..ca9a2592d371dd5dd50e55dcbc1ecfa3eccbbd42 GIT binary patch literal 803 zcmah{O=}x55PjOl>)82n+>d;=hd_#5N_6SXrH~#9fei^Y&0V&ItsqN_q)o_Q>mfg& zKdN+AOT11>+QYD;$GkUhX6M)MpZ5Sh;aw96!{OM@xzT=Rb3PY&E*<~jr8|#l6Dtgz zYjGpE7G}yXM%Qv27*b`ZhLVF`w#1hvsBjnggZ>#Y&t;g|$)#{&E`xNQVWl7b6A?&avq~<7 z_qWzjo8x88Xl%*oLl2sBHD6GUz8AEFxx7+djkH{herk*jA}DKU3CEdrQ!a8bo=L7o z1bZ&(0v=fdhQ^K11sQ8qv}_-fNC literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/mapper/UserSimilarityMapper.class b/target/classes/com/nlshop/mapper/UserSimilarityMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..0ba6c27c2ba018d14e29c46d00a82c1f7834f80e GIT binary patch literal 796 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 A?*IS* literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/service/merchant/AnnouncementService.class b/target/classes/com/nlshop/service/merchant/AnnouncementService.class new file mode 100644 index 0000000000000000000000000000000000000000..e2756739df5153bdac7d9d21a80dfb18a0843b70 GIT binary patch literal 2191 zcma)7VOJYP6ulDyF=3GqDgxF@TZ#$9uB}w7L0Vd@jfR576F+Z~A=#Sj=IqYW!@tsV zJXQSQ5Aa8MytBI{3)vp{lG&Mk@4ox)yF2;!zrX(hu!)}v$Y3Ietbs{P2^3#h$ClZ* zoUXawdL`RRU~0>DY_%;gQLZ!#cn|p;3I?WO2;6A91JmjIJ$GnIN7?Gc+;JQ?aN2Uf zy}*nw)t>a)Jy-pV98uG}t{M0M3j%r8JXDqnd>x(=TxsU9h@~8s4Sa;_0%oEOUwX%OTbhHI^|^)) zqn83DE79hjH5_V|YmEfXAUr&m9mUnAaRZ;^uwvjQZV9YjC5dCO9a5vDx68>gDXP~h zbzNfBz#XiSsxSK-j>bi~7k>vc_k=-E#9$g>9Wwd?(Awxs3w=8@G_u6JVU;YJDO zPN3Y^wkJC^f$USaLz1%%+mSDVK}&i+TZAWxhTFFKP0O?OK0eH)V^yExLV%gSz3wAl+)1TwZZNMyHU{VRP#O{PY+JfFJ6GH3ov zzG7FKV`jV(^TMGUcy0O2)?QjnV#fE)U411AlvAziQ)KC?lc6-@@ER|cMc(TGHPAO4 z*Dtx7;`$ZW99Q1<{C&us$yIQjT>lf|cRpnBHGlPM@Rt9EzeW^*8n(C-_!irY(#ajJ z6I_?88*h-SX8*#>8_ci&fe)*v_&9@Ks=x7VgjhnB&vPtY!VKm~@mh$!5+TIs#KI#y z4l6EW2Tz#&lzI6KkHG^?U>9pl(gYsyweECU*W5V8?F>d0qaGH+DhpBAS(WLyipHK4 zA@+BC%-|XEzsEYC((peW$G`p#{O4g8G5&L63)JyLjJwNK^EP7M8`NqfzW!GRRw)0? z1h{cV-Ux*ep)e#LiSi@o6p_9Nem4btmEd>Y0iMFVfd?`8Ci~FVC}`%VxG%;8FNd&^ WX$mptNZUPPykKqy`)7_k0R9IXY7Sli literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/service/merchant/InventoryService.class b/target/classes/com/nlshop/service/merchant/InventoryService.class new file mode 100644 index 0000000000000000000000000000000000000000..77b8fa9ff6d21206e4fb81db00e6be9550839885 GIT binary patch literal 4168 zcma)9ZF3t}6@IQHM}FDViPNN2)24Bny0#-{Nhl$;Qm1yEP*K^gW5*$-ZMv2=(#F!R zvb%C(3KUvsd1>50TPP6TVTLa-VPKrN9pD?x@QwdKX8I#K4A0$Nt+tY^bTqRsckeyt zInO!gxmW-G-v@sO@Hl?oix}cbBouUEo4}4s+N!3OHM6MBEnm{}uE4evhH1DH0`cLI zr5<#nCy8DKeNY6_d8?wDWv66SRY$j1jl8Z_bURSNI~451fWY8gR|pI^dYRy-)@A}Q*@D1<;anrSoMjd> zBmO|mHOgwva9q#Ty$W_?k3etThFq(*SsTH@I1P8LfjrZT`;kiG0R?;UpupY^b4g24 zcV{$Lw+*d4t5tM?dxryPUM3b?+aOxW!#)KMV?Pbn!PNttGz)bT0+TIhBasKzMxxBO z#eYD-BRD9~M|kr!W|Scc++T-Q(cF?cWfZ6Nyiw8040#BTB{8gE1fvYWs8mVOm(W}7^dzx zr|KiU_yV3uBCFtwcvfI%qerr)s~2ULCRep`O`p3cuxB_Mt;}FXrW-Q?yYGDP&YeHL z|Iwdr-uc^m|Gj;U&v$P8p%>Gblj`!Ez;G0OeQlf4TuS1Mz`iK{rUuJd#a_%KE-z;l zEJ?2JVQNCn$riftC4pFWR!(_d!I$v@<&9J3C_I{^VsWj?bnK2|s`mz~XC7&JxuD=> zxl)#$ztXa$2retgg9#Z3C5@2ksx}nOaI>m~^VrZAQB0yFb7u$~jKsU;B1&e*`l0oV zETJK+C@7;M&_lCT&DIw!fi2r5+YNqJ{0uU8A8q_a+PJL1md)Jl)RtXa%e%5RT?IAS z3X*Tx3Uf7A_Chz5jdW+?4s&ar7T{wshC$RdqrK=HPcZq5+(N>RSOrW zlQq}6V%T~iBanF7D$r+tj!iIIt1RpGqDJ#fq$dkY8bz4z!C=BI8T5BJn$NrLbM&H6 zGQ(2jR#M*+Wee|!6uh?!acD+&OIG1IO~%4~fG&F$jH0QzHJi{{<-B?0IuQlfBIXlB zv?GdWYE1&^3rknNDHP@ibZ^6~_D{QME zALDHk&&o6%rd`TgB<+ihVQx=UF-MkQ))dIJ2G?%4%0x01Dg*Id4mZO+{*31RigPSa zWh{#4K&ut@N!em}`#UiqJ6U#~1kDzsGBbtsMw%>B9+}*a9B`)$iFS4k2 z!K&GL{j?!FVR!f;IJg~_OSNXP$_iuQk zRL-Wc9=`Jc%Ih~dL*-rY-Zgp);?Lfa*Lanm!9(Edyh@{-fN$a3ybHX60mQw9rjcs6%LxUT5bOVRRZbRL` z=j6n(O*|39xv`t+LmPN9-T08+#3VnYW$bY;_M;>XI7k{FMGx=&cnrIESUZ4GUJvo# zKpMx$eTFBeDICEJj(Ty7`mjQt<^rAw71!|t($bHo@IyYu@eVz7Lwt;5N$wPq$)1?U z83%rLP`H>5S4z_X34l+hY#}lcLQIV(TSGo+JsJaWNrE69K&`# zA16gmu)@Y!!cUTl2_E`Ra(A9Wj@L6h%ACh3T)=7QJT+a$Gaf+`KKhU#8-Ai05q^yK zy)v`$6a19E6z=(wv;-{<;b*wP8V*Sttdq7qP7~l_a9J~PKM#pJ5)ilkDTwoFyL6*Y z>UBw~`AJf%4N@Ixa%)moKNYDHtPC(vg|)O3vm|w%hxjw3_AH*|p=|-@Naph>@pNY5 z1s*G2#4C7-ZFYh2zZ@ZVJtTKMBzHX|cReKcwSe5xC&=wV>|;oB_j)DSk=5S>`YP3I c{FOGwS7^Mvh4B`tis3hO5yNl8HvS#(f6tH`G5`Po literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/service/merchant/MerchantService.class b/target/classes/com/nlshop/service/merchant/MerchantService.class new file mode 100644 index 0000000000000000000000000000000000000000..6486972686913c886f1d6ee789c42e59000bdb31 GIT binary patch literal 2615 zcma)7-%}e^6#i}kEQIAZMSipeib8H|}nzdGy8U zi({SXIO_P|gAaXiP{#pkXY{QP{vWjZKRAx(ZZ=^HH1;8TH+RoD-*?XW?zw;d``hmT z&cg^HfS`mb8P%v^Xx>z}RVAYuX=QPJlWPt`%>~`ior?^?@Nl9IwWyO2l2H$tVN^4- zijlE5%$#C#Yg^a2lI51Rp&E`d@4du}9~c@-pXSwEj#~`pVm|+@yIJ-s+C)QWM3aPO z87*jK8233O9aFLR$9ZlaVlDHuZadssF77kbr@6C2)C@Jt8QR0cvBM1Gj-?yvXg%6- zNXVA&e=Yu$r6IIFP8LG{6;V|+<_;}!9e|p?-bf-{GFDjv%VbF)gKhb#3(M>~{ z&fB`dZF{D)6T)enk#JTNL5Bt460EzU8tKDu-F z;jO)c+n*oo{c`Z**9YI-4WSFqitazh5cVfgay%iggoGi6Za?|QvkPGm!4O6;Dj_0c z4C4#~rj=IgoG5w9qHf$Ytu1AptA?#i({shqGd5{NGjoL{%Org`I;V{xKc}K5qdrRB z&Tv8qWkSaDLM5W;yiQksF#-$dT*^{kWb| z{B`xVM5eFGcnwj4wGUw#PMs7WA;k8&jElHLCrdX-nS|9FuB4RVSphO35}B598E=y3 zHn;Rt;Yf8nO1|opcweu@6^71o_aEN+>R{)yN8f+?_nmM4+Sw7L-j*?oIfhV4+p|eJ zZvGr%CLNZFnif1`GUlG!%1DT-+2`rXlkzC)scb*zC+pf&;#E=J1Rgi@md3BROxllJ zaN}Yu(-1vTtKw4Prc=mqC0@J_qv)s0G(gudqbFUbv@X-X8d~GDR?|v%GCi--KZRB% zc1QNWex{cIR_G}{0}V*fQv?uh*YF;#46C?KR>JuQR3S*~%*d~hMt9M04{ZTFK-+zE zt+ue+`{-%y-^0Kk_c6G-hw%JpWFNy3vQ+l*!Y(F-U*sMx1aK|#69o#o;AbJxdmEZ* zeDu-f8Ad0K`YueOo5oa+ORBF3?2#f0cpo1SxiHS)20kQ$AGz^ZAJ*uln$dSbUd6gc z{tF^sMSBsKyvuxH>;W1hW4m}`A5-6!()d!OF(c9#JLK5v`u0+N`-oLPT}cBjuaRQR zGOq|UB;5i=!0AnNq~B#2bQ#tm@DI8r3^utu>jGpCvJ_lXnDe+^qE&RX-sAdK0D_9Y zS3@p*N71YdUyn34DAXERQw`FzFzDDMGtoem)*!7tq9^Zo-B_e;{DP%q5eB|LXlv-hr2ihhY3wM}%{#}&*mn>j3E$-@UeZep3?;z8-F$>8EQdklTaau8dv?3QuEZ^=OJnnX@yd^}eEfD@m^J zxD%8k-;vr~6mrguFOQkMnM9N9*pjI(^?ulXCQKn(M&y!hs7^p_jfmGqvajb(`dX6R zDJ9p5PVR&bLrM_~KQdG5C^FnRlOnZrj16IAI~igJr6G1eny3HaMz04A zZ|fC33{LJ`BOF96`B<5TTyp%}TeE8NFci*heN4K^P!Ic(J2=&yu~&(1#<&6h4M=xz ziXKXUL@_TP?Vrndh(fkRX5`{c& qql)h+=J$l30{a`Q9=*y&m28UOAfS=6X4krHW1cG6rr%DCXa54JUA|cW literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/service/merchant/OrderManageService.class b/target/classes/com/nlshop/service/merchant/OrderManageService.class new file mode 100644 index 0000000000000000000000000000000000000000..396f0638037b858c28f5b2a323dae8a07ff22470 GIT binary patch literal 6477 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 MS%E0d89`qEH_tInZvX%Q literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/service/merchant/ProductManageService.class b/target/classes/com/nlshop/service/merchant/ProductManageService.class new file mode 100644 index 0000000000000000000000000000000000000000..b6cf95d1554f87916d0b5af3c837970ddceddf2c GIT binary patch literal 7405 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/service/merchant/StatisticsService.class b/target/classes/com/nlshop/service/merchant/StatisticsService.class new file mode 100644 index 0000000000000000000000000000000000000000..498ae30c459201729b68d1ce7ba6d1b9f91d0440 GIT binary patch literal 9171 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/service/merchant/UserManageService.class b/target/classes/com/nlshop/service/merchant/UserManageService.class new file mode 100644 index 0000000000000000000000000000000000000000..5f9555b5446af197008773543c24a6f27c0e89ad GIT binary patch literal 1782 zcmb_cTXPge6#ja%$*{vfLV(pMlAs8i8;ueaGBFxZWa9=X7DDmZyXnj}%yw_h^n{B4 z$TzK`AZV38z#nCKdUi-wa^Z!V>gmfl=R5cF&%b~E4PXIlK1vw!P!2GR5r(m6VoUH? z=!oBMJ(F$AFtVhyvdauZwdr*q$58R$2RM#^;nW^`U0WH+gyERdc3s4o%q8kRPGZ!< zSb$R)XP9c6E{~M$WG&tkk?hF0ClmgFj(77TLnXB$vF?S~YxVkc<8YaYIwV{V8Qh2yyb-ihPOyYBw zm@gPk*WN{N$(Y2K0WRS(MLm-Ck+FibQJz+POk>8wY=Ak;Go0MZQ^V+p!P{~fy1(gw zR}16vtUGe(gX5})uL69HYYZ0$Jl(K{Co=6Boyt6G4~q*!$q=00XJ_B;J@A2hQ8VEI zPyM79xj0m5$T0CR(^hrmx=K|mmMdCQ6s#iq7;ZF767jT`C>?DkqAOpRFh0BDp_#Q<^3XiQx+c6stgiE;1-KsQI zq=n5Aa<%h8!+fMAe$!-0Ti#KwZmRpH&lT5{47CG`G$qTWu@pew><_CD7iiX%Xlzrf zxoJoH0^LSvzfOCJcADYz|Auayc1HW~%xkbea`LzIcVy5+zCr(>&w!g)q#HwsB@E@l zzoAS}1Ty;y-W;tRoOm+x5~tr_f(rF7Og^1|jSGwA`HAu?T--rzc5Vk(ekYM3I5p!0 z0J1i~SybtpB72?6g+6Sd(pmW(mUA;WzNb@(cqi}!RtRSbqqv3Jg!CgxR(EMX?b7ZL b?PsD@N(2J}0PfN%p-yWxKmD>Bq6Y9Eb4BSu literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/service/user/CartService.class b/target/classes/com/nlshop/service/user/CartService.class new file mode 100644 index 0000000000000000000000000000000000000000..2c6b5410381a1ad1e144b71591bd8e69e9283ea6 GIT binary patch literal 6362 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 literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/service/user/MessageService.class b/target/classes/com/nlshop/service/user/MessageService.class new file mode 100644 index 0000000000000000000000000000000000000000..4a0fb566c69603e3530921b2f550b07ae432a5e2 GIT binary patch literal 1675 zcmah}YjfK~6g_KOacwKjt4S-;2T7sWNn24U(Aps(4Sl#cgu!5jPmCgO92HygNb7X+ zuYh6P2Q&NteiXx5NlqNvaYv)QcX#je+U$g#VQ z-?8`hpGj8>f}t%M5J@>n-<6SoAey+fX*^n7|ISXayA#?RKUR;g>lwuz5% zN8o%UyX=Dp$D=Z?j;EcJF~MP=ysq8wB2{CHd_Q1g^kmD6y#21+_WgjUd4W&d?lpq2 zV@G{mqJz-s$>%}%tGzEBKe7)TR|Vm*?VKps+XEFm_d?mG+1yUhmI5;k&zIj0diyf` z!J&D9`9|P6-If!2dY>NV)S*XzXL6lT0@|N;L+L1)cC)}QZ{#{w@;LVi`%x24fSM)I zy`ZOK_WzdH-@TJ*V4DWX0FZM>JwHFDlX~NI+D8J*6FtxFN_7~tzjJg6lnjYfsiP+_ zo@DL{O|Rp#)kEUD^#%~>q?{CeV}i3yLR)MGgV2?aJYBAZ)Jxj@xAj=+LcOgqBE}{I zb=;SBDo$%gJhZI4hVQH~tZ)D`eBA_Bjv(nL+)a^wN}46*Q^)l#cQ&aYHP&80{7xo= z&$#Mq@CExkUSk1#fqUEu+((sCTKNysDbng+$p8ETg{om0>q8VR||cPox& zGx3;4L*J-jBaXI;FUje|tJox$jkzs+g&eKk!8RT+@g1Jd<){RTgMz>oe}S(ll8w{a zq7iMTq+?xwh1(gN#+e{`>}juPmo9H%qWmuf2oU7 z=%OFck1D;A0`;zz(A;w`=iGj_f6QswU;CLd z3z_6*F&yzL5Ki*Kru1Hy?eDH%#H&)zL%uUn+$mzlcWV}QvBw_st84xX(7g13bc0Mj@vwOY!p;*iqI| literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/service/user/OrderService$2.class b/target/classes/com/nlshop/service/user/OrderService$2.class new file mode 100644 index 0000000000000000000000000000000000000000..52943d80c0d743b2f6036370ab04500ad54e644f GIT binary patch literal 794 zcma)4%WB&|6g}g}b}YM%lD?lQ)D$~`sF>~?yfG~V)CY0!ek|YE6Xa1kGYVwaMSrM^ zQs|-|(2pv;BL(VREup#RUe37>&Her7=Pv+nu-`%rTTKKV)X@-lmFBBhXLgxi#+J;L zN+~WF#2?L^%%qBR2LcVZRJQw?70D)&VTf(Cng}~+qa*Ori)5x|awg+*Y2Ag*^&mdG zzNAw+Cqp_VE^@52awCDQUVkdk?`>AgbAxd{=L|cE()6KN&B&a|S;mpQBu`~Fl}360 zCK&i>1UAdx9SjAc_vDuO{F5|tMUD)sTNAa=(iMiQoRppZXTam+LSD(Za4L%vW!;UR zNxg`ZTrY+reg(owUYL~LDc}C?`b8XhJrDU-r&(^5UQ|sr@mQd{$+dLw6wd_OsUhj8 zOf4|&Rek;IWBs?!T^<|yT#$9uQjAOOX%!mw*SVyfa@Q4&2kD$>O=g@)YsumTZ{9X9 zp@<^Cdmi!E#x0KDW;9}3V;deEeup^tf#x^%YS`hkQF6Z`Vtl`1VHbPsF~7_vaEEbS gp#CL7fV=F}aF5B}KEOk^0UqHAo-+zLoiD}DU+f^(fdBvi literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/service/user/OrderService.class b/target/classes/com/nlshop/service/user/OrderService.class new file mode 100644 index 0000000000000000000000000000000000000000..161a808bb1ec290e8ad3d5c3cf64e111e21d2ca4 GIT binary patch literal 10500 zcmb7K34B!5x&MDNNp3Q^5DbV8f})}j7E=`$5~{3f5CI89aVZYTB^gL&;>-lZt?uH2 z;(`kz;))w;K?g9R)&&)}_pE)d`d({aOTgAX`*>?>72f|l_s-0nOhOfZ&YYa{opZkB z|1Ia7*|GQKR{@Nbk3t9_XrahPF-ipe7Dbjss#_zm=IWUX7CDV6LCN@NESfq+5FAm} zP=->JSqRxEhbt{)h#AlTItSoV08%cdcs@95G^gPK4?4SaWTa z+tHDVwpLG%CR5yD01mV;(8fVHm`fP??6AO!Ca1Qwro1Xe|+Y>vtyuACVmqQ3+n40J)!3e*EnOQ!e>r;uSicMP$#|R5mHb!EU zV1VJKEs|=fo)m4K;xtCvBCUd=^QO+8Np9Q~x(yp$jj?eIss*Ldl#__0;*?_G2)|bA zyna$2i{mUDZ)2=#wlb&L3<(v`5=qW*E=eivi8fBc$>br%4sw`T)rY@Y3pIj4e*MQ% z(bO^n8Lrx$xP-U{Sw8qTyZ-Nsp%Aqe+M zDJUc3^{GgzBPlpAkLwIP6qvJYoQ>IP##pLBL1^$@XJL-upd3uB&%$S<$uOzOFS-?pl6N*XE5ox7@O8ZMtTt(#^AR9?oaHP?wH%mp6mT z0-$<38F??X@e|A^MkvsXNEK)rTGJ52txXi-kir6azNBU5dkJ#KC!LdICs5+6x`zfxnaJ7wV zRPrIdZSrBQ)HH$dG-_pH)1r=KD#So_osH{p10fk{B6N=NIOwh_FY0vfRt+wGOdavng*s&q3z)Fq2cL=IR`1RiFB!*uLcQIJ2 zCL*oT1(5}j>V=VHYEd#CJFa?K{mdD&od`W_*l7+OH{q0H74ETcuZ{a~zZdX&o<|Ye zBZ;Jw$MM{LIEig?edQM{6qD z-nz`fiwwbqe3&9CgiQ#Buo+t{Y_;*SV*C&vttng#<&5}T);NaUm?mmRr@mri8(uY; zDCJRUlJEsO4>HQzCcJLr=Xis0DCwj!B~^bvwX0=A`<9Kjm9`IQ{n2(4-m&p6-lLy$ zWKKL4X`R>>?}#zOhrOk`J8)G)Dc+~*W=)+jrEbRQ^Jh(*r`&vK<0EBW*KsRKljU^i zA8h<1KA~fCXjWud8^cT{1rGG{o5_GG-lzDbg@3Z~&#J>JpAMT+@#+M#fRjwQmFwgL zy^^kCx~M#wbYfFeg0-IR{h5u=Gdj(7e~N##@oQbVg4C1au~einHLE2aGiLb0#&2~> z1=;nFsTcju#_zF{(#N%E&N$Cu{y5`#fzg3WK%d!#-4?#I@dx}dKjaotGs#6`3|2J3 z;5@JNqO)1JwyI9!_@8Y2dnS--xYk5$;m`SQ*=yh%c3cQwW2J@v%!jFeBQ4uP*rTxC zg#WSeznb}qsWr{jd+-+wMGI4Q0Cb*(whYjDDo@_PKwA#VFzv-4vr*WVLCTyFrei@$ z9gFyp!L|&MLy0YeA60G!Lr3<8p&U_dxeS%VEjfZXk|PC&``p5hqudOJ%w8d+RD@Bf z@SJk!m(M-YwPF>k#IEHJbalS`=T~msz2T;=SFhi7_wzeD?+cOh;kJyBDn<|{eFMQc ziAW<$w3GZEY$8r!yejOeYT(&XM%gl2#xQ0y@no2Cawo$c!dM-hNUE82hB$ zS+<<5cLofy?xlcHs41nT-j+Esmx--$VSVOWV!YqJnTQr?ZH_0Rsg}0t$??|K$bvXC zX>^HmTC|m?To#qyY?cvwFd-!8$~;TXv*mobKv3f|!w+1KMU<-@Ma`^4rbuJSzCSH_ z*;tkQ6JD4Ip-@;8^-p_;) zgYl`M7ivpdGWR2fi!&n07VZ|3X3YxIWU(!+3T!RC>e?dBPPxP+Zb`c>7fXUz&0Q^U z8jlU_9n5Wci1iL|KIt<@y27rIq@=@=CAKUTp0`H%1aRFc*&b*9bc=&2PAU>@o$a`N zf`{e2IM00hrUEOP8f~k9HJh8ZXffI=(d1h+ljnlH~NOnT? z#Ew*aX*A(9)v~Cb9B<;;x?(yn;%0QTEpQTZB3z!?czV1s(%KM7MD=g4vnbUP<$g!| zHJtI&4mR?xExCGmqp1T;7!foSdSZd4daEJxt?D;~3XwFY;=GE_Bk}4PtzAfHrQCxp zUCb{+K5gclLqmGxdim7P2YM4VSYKs_sS|HJ7ZSLecdBC{*ZXeds+fk;3yz{Fvp*5n z1F_!kn%Y21E3c+h8|98tUc4vMCj2Ndi`pKRa$~yI8O$+iG?mWss&~4se~Ld9nt6G3 zJr^j`i)r198YnjfRpz7;YRldqQ9{ELLF`|=n-K@*1CA$c4|GR#^Y`&Ssf{I0AtT2W z5c#0x?UYrbPUu4qZCuQF;qB7T&F8Zs>Oag>6sV?0w@M}GR&*-8!1g&6JvGxEY32H* z?U7|hWrAsixX;ciURsGF!;GY2xo};U@4xP4u2`xJ3zV*tnP? zW$wF8hUDKBK29~22!7=2(Z`RxlE;r=H&Uwr$NQ#mkpj57!{#c;Q;@-9M$={?!EyUj ztS5CYhnsg9!R#MA>3hgi-jvH)#FEinw^yh_MKC(n$2$^@TK6%u9biCI?-q{7DBrx= z>(RZE^gSn@qWf2S-3Ws z1rS-zze@Oh6Tbs`_$%mRCD*-AU+fC{_-s0;IjiPh z!tdgdn;}0ltlq*;GS1Ji+{#Zf#Lr?`A-C~cf+HN_+t&A3+*F4+p6=& zu2dVg(l~W1CI?Vc8ZOe86G8Y6P6cA|dXX3VW@NaI{3xPaejT%=oti{C*X z?Q5(lUXP*SV$)7z;p#lLS`979Vl`#DXJR{sasLj}-il@1KNJpaM@6_S97^NLG_G|C zZ`_V+mFUJaZeEQ`OtTX!=23^Y2e;wQEx7x23~(pU4Tp?IR^v=Si-Gr1651 z6s_O;L?<>;IWMV}w;-KHXSifk8n1;*!o_L4$*-a`wueh9cck$_xFkp;rSWmNWON$8 zNaI(g@h@rohAjP?TBj?3b3D6QVav1ILT!0=D>ZhbDm}ZEh09c}A)&DBrDjJN&1&1# ztR1$uV_-NGwmr?7)>kgQQ7~yU3f5*PzE%bQhfl#~jk&5bLQWOTmMWOq%PN>HPr-eS zg8RA(t_WACf-5`)hfGVg7xENrcVZ7!_+K^LBwUilf2Z+(Y>|^w)A)uh3P{L($5wfo zRfidRIxRuALTM>69a5GSonM-kinLU^L^r18KqWHP<9a^p$-yIEltUrMFTIs&XJ>Wu1v)|nT_*gK3^0U<3focLJsCj5={&hj@*G3S&gVXf<^Kq zU-h0xtEBl*w+%7bj<|e`cKH>r_je){2%sZSi6wzBmIemX^@icnz*t-s7>COPQ*lLL zI<5)K$8~{AaDCuL+z@yIHwHFgdEj;26!-wQ1U|;?lzK(rQ`{N&HSP-R#@&HESQYpi z?g<8PZ;($m!Tz{EI0UPM!|_1ySgZ+7!-K&FtPRe?!@*`e7EIs?6Y##|Zw@}^LH!Q7 z6Cp|%mb>I`^r5^*%PP5tzo}3S+$;AXMCr%M{gkql+WJ5qz$ldQWIRRI$b+yb!NFz~ zo4mTKRFHFbmA;h4UBwPma)z!_76|h?NmmI421|{sm4{GHd6vmKc^Gyez<91Jmuk@U z0h+e<@Bvm z7vx{s>@Q~-N0&p$$V_H};&5@dgoz`w33HDoOqs3Q9?wJ|4QV-N{l3pMj~n-A;ZVW0 zn)6xyRA&Q@!1Mf_$P0A-jdbo!xR7sF?bw1V>F_tck=4I*RFzX&!OTdKKzs_uD05f9@>l9k{c&5-C zIDE*_z|PpMCM{z7BDR~;OWfSb4noNR~2DdO`g58b-naG)1 z8kmb@(N<|Ah}Q3Wa|}y^V&;8GstQ~j97lW5HcSIMFbMB6AbiM#@DV2Sfo?iJ!D9RZ zm+|fGD*O_6^6hOEJ~QgNfZ^;i9OMQkQVlmKP-j_}RpB~gd#w@I8D%p3V3o0bkb6Xp z?Tfh6h4PA`fcwpnZSra^{CHF^QL8T1Ygww-Nu?MWtr!_ZjP%>b^u=J}#uEl1Mi9oE z0hYuVN`Ud-ijq3_dlKbJQ=q-^9SMeI90=j$`Z^yKMk%N`tknd{1O5kW@#sfL3F zWP?~U1HYl{U(n}%%dq-8YWep}w_Qe)Bi(JYT01=pywg43DaUwMYewQS1ir;k%6Et# zkt&jl$Tuk`-(_4x;x_tTG4~(QDVGsWS7`him6j{RMWfU5({K@`xkgb(kjeEdA99tx z%l98>=RcC~uW%s#ghTkaI2>OazQ?-jX89hGwe|?tVRTn{i>?#o8i&c-OzlM(-&JcNy1P+ASwmxA z5(!kwNGhm;B4JU1z1wuPA`^_VrE|PV@3O6dT*mG7X%ZG>eZqD%OZyTo_KXCQBOWo7@mbo0>u*x93>Qd{M}>ns z2PG_R;Qr>I&{l;DagmJW3NFSa5-y5tYd+<|Y0V(q9fl#Hr6HoR*R^$Xs4YSXkZud? z=3L!K_vnt>CZk@$g{8sjHV3UFR^T!b?3EJg0y_l_BET!qs9+UVGm=A^yT@`>Zi%tq zmP9kw$Vdwe)=F4d@Vdt`hlILqQ78nFpk0nDWL&A>DqJn0K7zx5Yo%??$y%nPdGX&J zJV=OHMAn?My9frJ^2l?D$vh-KeS*lAH0nicy@I!(RYKAaM(0@ffQ05~G(5XS8a30^ z-LWuN=x{qW$k?dh8eA(O6>+$jlOZR(y{_u!90^MrqR@rj$mlFiY3)cx%euN{raNW_sl%;;LNed&))gK%*4}YChtD`@OTm(*dii-orH#{ zPocF4c0tlL_KEW9RmcW)fr}m zC$Sr43G}hHgU(Qeeb_JKfP%N<9c&n0x_csIXGLUlY>w-r7X6MHE!BV$jcq_m;06ih zPFBk}0^=JMsOaa$0^_}0@cWL0OQTp9caH)a^LGH6j6nrM7$y`EP)o_sT$t!VdldP8 zNz|nv-wVEbjV6JE><+G#%`&Rq{tX2qFeNMw_P@tp3tea^?LrYJy~qkL-d&vb#SRon z2=E*QE^=%@f$^@K<60x3?Uki%M;U4QurPgufS1HBDo}-^c#n+tD!2(ZhwU)mO2s+I ztXEx&hs)Biy1nJ@fKH3I;x-xYQ}BL#KtgQ+<&cHhIIKE5v?EM4w%`Lo;&ugh;7$o~ z(<3hqbw>_uo&+B%K6HwEkMBkjcj3bd?!iZx-Rwm>z0R^{EX#AZSZmM@YB@4|Ou@(T z38pTONMnpfLi3($gE=$fwWlq?4Sn2)`xM-d2P9MzS5}SIJ=oFja7PllqPbR7J|)!6 zQ%NEY4=VT+9wJ8S05f>WJX#wMByfyyX1v^R#QFTNg3scSd=YH5+@K2BkL&WsdOo5A z^>bV(1gXQe)iF^INj!=&_WIp9o&_UXpYG`WhSp)4JUay%)VIFJvWL=6R&Ry03BU0VNe!n9((y!TjRH|pb^jI0y z=u>T7JO{+MJFL@QQNe{xb)G?p`l}fFg5x(vu`4}$M9zxv_$WFROP{kWjEu@rksb>d zJUG474UCBf%+ZgY670xwXom7)y;na<2ogcX)8iVSw-By?Q4BqtBfTat|J*4!h{Mui zI9Ub(q|LK57oB~@h1Ir^iZ-0b*7@XXwrlRNHLyz+dBR>n=PG;kA(NAWO`mW2KS$`i z+biVDCe2lKPKWEFTblpejbO;eOq448N}M%$7sKiIDKb|EaTe!O5NI!FJX_QyGFz-I zi}w0rUBV>C&78ruQ$1%lmHuwHH3?T0ueSS-(HxCXf~FkU%Ltwc{6VQC>VqNsb88~TV&oTY9FYv*>-b9mqt zP|8q8`Ulkd*@;%qw~qR#7vY#1fzX>zX!#IF!(JyVc2@jRh~ z8gzN~TNZWU>7}SYfsk)tt7;Aynp59nS%-4j=u|nkEf)!j6FkcP+82G3=a!A0z=7s2 z)i8QF?X=b4PaNE$9+e(|3Ey9m9Nzw_;Ac2hgHsZeZqwB4E<<%3&5?1Ilh_)8eXnaqaMJwks zzpU_joZ8d;m4xk86Of+r%ss}dSOz!qIIoJ&fG^?8e3I}Ld=+J$@HFD&1X`NLAvg1H z5)1aOdIoi? zzc!Iyo8;OQ*A|pfA*c#e0-WGq4AV65EqvSeQF?_!m875c{F*{b3_F@nVgcQ4qsI@S zZW#JCm{pY@*CPZr1*uT5m)ouN(-;8 z{A|$1*X?%PfDN#5EpFy(`yJ?H26W-O*n}ToGfv?;FJQa*N$NP^eiqO1j;Q5BcbYqS z-V5DnN*Pew62Wfm|=r zS`*6ugOrT+YUNezM?%J88O`4Rb{YF*9QCfZ0{`ZhMv(xOF>VXoP#F9lbBizG5kL6c zSd9OGDu$wN*%Uq#W2%W9Db&dIp5G$L$d>oE3O~WiR3&VbOMD3R|FkA4x(k<%lXf}9 zM4=_7@hH>e^RtzAMG7#1pELJGz<$ANjL?Q%;+K5>75_w`{+c`gBmRuP;S4EBQfBaX I{1d7F0Y2eFkpKVy literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/service/user/RecommendService.class b/target/classes/com/nlshop/service/user/RecommendService.class new file mode 100644 index 0000000000000000000000000000000000000000..c12606e96a243d70ac9eee331c6a22ed68dd8d4d GIT binary patch literal 948 zcmbVKO>Yx15Pi;PvjqA91qy|>w1+fE_`(5^s-midh_pb}pxm8ZXXCPKM_zBL{40#eg6UAISxFOP_CoWL=`oLwF@y3JQh0Q?*|t$ za16C0rIkBoD7Oy#4XmJ1hu6dnG#OffNw|*Fks0$;+KCDz&*;F{)&X_b!V)g2GFuv*7j6YJPuc=`WS3>%Sji&p75 zqf>_cmVZ43-{`2*J)A`{r(*7_)O8rP&NJ;)BKs;;gIJzuZQK>Z3*Xp?r{lcsp%sa| zH1;DONTE|c6oE5#%Eh99pJdKlDl0>xt(=-rGOYSa%Xe8akoJQhdTP}-fr$IUs@$Ik zD{iEyO@?Z$5=EM`E~Vc}H!|Uw$Ui_5&^wKuinMT_eJ;{>$>wQL@jbFR0bRg-Y!R}2+fXiw z-w>85=C!||{&f2*Zhj)KglmTNf?;=dYtBIT@c<7CRu9{FL=}&zu2G^eC;;pfG`p18 MD^5=qKiCI;1Dr4Q>i_@% literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/service/user/UserService.class b/target/classes/com/nlshop/service/user/UserService.class new file mode 100644 index 0000000000000000000000000000000000000000..64cc702a2335845ff1b31aec64664abed1b20390 GIT binary patch literal 4689 zcma)A{Z|y{6@F%6Sy)Czj8??&4+6Njrqxuzkcdh`ibz4RCNa&hJK*TDvzeVm=~t4b zO-)i8(~u7nZMD_bek7!+b>-;e(ZU=Qv_5kf@-l`6uhQc!nR8`t6~Ej=1PHhfl3*b1r+7-_@qR8Y~}GE{?V z)I<Qt;my@J-j=A>=LE&bV?p0yo|0e#fS+PXF1t|_P;)olr!*2Z)N_cgcl z7P1+%Eh9bJQH%SqI)XJSzJaw0)(6}#!a_E(dWsx$O%%Mwnio5538ti{ZNr{$0Cq&M zPC-*3hJGQTXKcev$GdV_Bduq%NAfFCtjC53HmcZ!%?ef)p!cM0eN?E6jBBZ!er!a+ zn&zHha^8-PYHU?d|Jmg2g^M%umoLrFd^G?5JM&j>N6~=oQsEs6nu7`C4NK%S6v6!r z6a-($EQ%&nMA3?!5yVuqVHdSvTBGr7MraWOJ0&v0&^~aTI+D!X!b=S1mSolJ8gXT_^cmCaKxF z42(e)$8mz1mN{@RnY5_;{5aSVWG2vpMcdf6C-J=qPN{eTPZp1zayFD&K3nNtfxLAw zWS37zD7_pe96zV=bOhg5@r)$9p|t!xa0+TjhU;AnhgBrNI4b4YlRd1DXt@-tzq)7; zYqKBK@owo)^ufszD*In7{hr{I%yloxPMFN2l>a z6+gm{$)Gp0C8zo#q8v#^@f@Cy-~|;w#fvOyVJgbkY!=RbP3B5bH|B>1TjS^aYT@nc z3)f!!^pg)3Cg(n%y5*vgg7wPfqKcOVNm#0utj4Rp#r(zVUtGEATS!)yRQw9BF>aD4 zgUx!CXoDUF4Ffq2%Q1b($Qr{b{a`w6+M3LLBHhN4J8#1Sh;lVy$=QkE*Q6J^&0tQ=hv zzdIlOyGSVIg3~hE%NW3cK+}?P$r<~u%nYAiE7ED zKmGa_xm?0SIpp~WJYtjX)RYwko0jlLff0`!Ckon2wv}!1`GZX*k6eMKI$l`TQcTM$ zhM(Cpi!&>pJRM6QTRPJk54p&rTED=P}E~ zgKnem64-p`D@l$#JnN=Ck5<;op3B z;Puzs5$9duJ={72<0Eg5dyB@U4m<-&3m{?fY%&<%4YnA zAHoX17x2Hubr1Y&1YgOum;>HH-q&^y%VTZRcw`m_-_57-x}(j>-!wvk7aTy1{=O?Ms76)O4gRlmnFR?CyrWFp(nh^JcI|b`aJnmtA zn0Kjit%vo|5Clrdq06n+ZYTU2cbgx+7Ps&Ry7D-<<@o(0ZgZOyP~%++*eEsmj#rIi ztVXFg%bl%zsD!;N&4Yn5H2U!xy?Au#l|dpiD~bFbe--=*PtuV@4`wy6a}Gm`vugi; zv-&grh42^p|0~}2{QsRRQsHjN?y1-`w0qbsw`u5=*Rg|1N?0QVDg2tY3Kn`AW3t>f zhi6?H2B=TFSf5+jbAmpMgM2ORqB0Nhf%`CaQHA^Q7(ey+TG+}RA7IL%uG^=n+o!3U zg`6TzPp$j&DiFS;#FzOi1(w!S@DU^@a;F?(W>s9fA!rG4JcRbjhRT2CMLQ{?y&$4( zsGP$}s7=C)M*=!~p8xvSjLOqiX+Yy?(s}Ffdm>g=sKFPNnmHz zDHwLXH18CRvS;OuBUWBc7W0moo8+fJqU?XDWr69oVaJ^_N=4VQ=Vo2AAkR7Of^kmH z7=?1)vx=tc86&GRC6gIm^KHUYVwv`hOL1%w(2A~;D`&k%B+;zlHXSW!6)%HhJTlt(M8ru+VAS63<+<`l*;f|Z$yg+iJr%K>19lLP1LbO*9rcMYaZx~gL4jMlou)S9K zuw^fd6+O$b6F7tiH9Vx_Vf1WpLUDvn#N?t?@;KRF@uSv4#gppdn)XaP6MR@;Z>@RL zBiClip7c@eUHwwNJgVa{JT9;`>q^s;1D4Bzaa>EearA##zk%{qVpqLX0B01N`*ifH zEH)GBG1r>2Y%{L{w^=}O3<@BQCj>-y0%;8CcnVK5`zbMu2p*p-uU=mXr zrgc1v;{uy}l>I(2IXN`Ia&b*N=M;jE*1_P!n!i4S+9%dAvijUI72XVGA}(jG&@+~{nT{31(#rY+}tO^)YX1**l z#QCh6(BPhzRh#Gz0O~4|%;%Z3ekaGDn^}Q!v|N~x?lF^wRj+iiW`4?aE%jYljCk`F zJ=ryU^HYXa^}tN8e?|!m-ugjP2W`5mLJ-(j7mAx5TcmasW=61OM0)d1Zk(ODz?`{U zN(LT}2Zz>B!JMO^7%Pe$g1WMp0rC$Ai1f0S1qD4 zRqaHeX~HwJ3nOOHhgic!dQ#i_f_;gAT}S-*>$ZXuMBSBn(&elSWCTsM1isc1jR{Ij zIAu301AWcvHCeqSbSno0I_jcaB3#n(mWtBocM3(vmbRC{-8^$cyvzuWJb3x`_|?dF zna|l0&hctPG9t!tk-rSS*(ee1xD4?NCm}3xRKJ1Ec!{GPY{1KSg(uiGcSrbk@g`?c!DXfXt-9(r*HNFkb@d^2 zJqx@SUlE1|n!K960zLgZwhDYpH-7#T+m2sGs^d4@zKor}VmHT5KFhdov@84<(ktld ziKHT&KCps=-=WE$XIAjYG}ZJ9^hA>bJ+V~u3U;KT$s@~n@>^_8MT7b9GRAvi6(cJ+ zwu}>0o{9w)dbF+xO&kxWvypR*V>KY|Z9)2P22A97zDAJIZ9B2D5N zc+E*``1l&y{7L#cS~P@wT3n!jz$f^Wh81mpqKOFK-OODgy$p+)3tvhnWpZE{r$4sKnEylg9A9vxA61}Kh^p>Xh;f7)#VKu#;U97_gfIQ^E59^Vp?wYf2i4#& A!vFvP literal 0 HcmV?d00001 diff --git a/target/classes/com/nlshop/util/OrderNoUtil.class b/target/classes/com/nlshop/util/OrderNoUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..a61b5c19f227c0683b2e2e14a5333385f95970ec GIT binary patch literal 1410 zcma)6Yg5xe6g}G((uPn<<)J)O5Tt+*L{y*^?c$Gd53;|LC!N%oQZIQQ(i`}5bg9{{GXEhB)Sgph&;G&01FwG&OvYu2Hf-9P5K z%g~rIEW@2+2quPiWrPutAS-Bs!qDlNyN1ctjIC?=CC%kKv?626{>ads7|vW{l8hjV z76~y0t%#GUZkwu=FCN(iwd5LkHS6TKvthrZIYZ>Yc1+E6xx+Bv3t8D#Yk8MzR!IT0 zO+h<4sDg?W!*t>%u2sk$3EQq?Sce|g+Y0WWi$T)ulH~yztwi(C>b9kq9EV%3s=2ml z=<2*Tq{;M_8)y#qjSwG3D>PbCC{(*s|$t$JjtM`DsZI>LK zFB<|$%-5#lA_CDLr8@=mc8P|eS(oT=8iQcsmZ9%5tyCHrjSV9gU|(qxzzTiEZ$QE- zeU*v<(s)Cw2-Yx5JHq)B*@+~nGNe;9pX1irDLT*5-8vL2q%P67cYz1-fpa_@p*KDf z`i{U}u)B;$+ht7B);XSkA^%FwC_xk1WHgf^qh9U~`X^%&8LZR4b_`(yS;`*9=ARNK pJU^iA5U2_vv7=BK^Hchu*fwYD%MWrMuC8aectDN-gnRM|NQbCzy*93 zLjXYyAst~v1O^`%>qfR_Se5MD>H}GF1tM2W%XF^_1XJmyD59JcW-i7ML$3y1M<4nH zj(UDgS!y|^yOAx(X49z18M7jrgy^kE_mI!k2%@-?&)7Ye;>mn-ch~xu0W7^JhgZ!@O zcn|E%V=5o?2N0Ir{9IoAZ~s?UGKn^PF;zzU74~~l zps(l}rOyjS!^==Zfj?+Lx>dV8Z#YI>y3%37k#*^qYa0TmJ7x4iUWQFm*df1cl0fZp z3dD+b%PGm5rV@B)Z(o)9tfGdKY>WVJHXsPNhX^ zJZ@ux+!eV|k^t|q2zoI F + + + + + + + + + + + + + + INSERT INTO announcement (merchant_id, title, content, type, status) + VALUES (#{merchantId}, #{title}, #{content}, #{type}, #{status}) + + + + + + + + + + UPDATE announcement + + title = #{title}, + content = #{content}, + type = #{type}, + status = #{status}, + + WHERE id = #{id} + + + + DELETE FROM announcement WHERE id = #{id} + + diff --git a/target/classes/mapper/CartMapper.xml b/target/classes/mapper/CartMapper.xml new file mode 100644 index 0000000..5d0cd6b --- /dev/null +++ b/target/classes/mapper/CartMapper.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO cart (user_id, product_id, spec_id, quantity, custom_sweetness, custom_ice, toppings) + VALUES (#{userId}, #{productId}, #{specId}, #{quantity}, #{customSweetness}, #{customIce}, #{toppings}) + + + + + + + + + + UPDATE cart + + quantity = #{quantity}, + custom_sweetness = #{customSweetness}, + custom_ice = #{customIce}, + toppings = #{toppings}, + + WHERE id = #{id} + + + + UPDATE cart SET quantity = #{quantity} WHERE id = #{id} + + + + DELETE FROM cart WHERE id = #{id} + + + + DELETE FROM cart WHERE user_id = #{userId} + + + + DELETE FROM cart + WHERE id IN + + #{id} + + AND user_id = #{userId} + + diff --git a/target/classes/mapper/InventoryLogMapper.xml b/target/classes/mapper/InventoryLogMapper.xml new file mode 100644 index 0000000..7d8e843 --- /dev/null +++ b/target/classes/mapper/InventoryLogMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + INSERT INTO inventory_log (inventory_id, operation_type, quantity, operator) + VALUES (#{inventoryId}, #{operationType}, #{quantity}, #{operator}) + + + + diff --git a/target/classes/mapper/InventoryMapper.xml b/target/classes/mapper/InventoryMapper.xml new file mode 100644 index 0000000..3b5442e --- /dev/null +++ b/target/classes/mapper/InventoryMapper.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + INSERT INTO inventory (merchant_id, material_name, quantity, unit, min_threshold) + VALUES (#{merchantId}, #{materialName}, #{quantity}, #{unit}, #{minThreshold}) + + + + + + + + + + + + UPDATE inventory + + quantity = #{quantity}, + unit = #{unit}, + min_threshold = #{minThreshold}, + last_in_time = #{lastInTime}, + last_out_time = #{lastOutTime}, + + WHERE id = #{id} + + + + DELETE FROM inventory WHERE id = #{id} + + diff --git a/target/classes/mapper/MerchantMapper.xml b/target/classes/mapper/MerchantMapper.xml new file mode 100644 index 0000000..c01565a --- /dev/null +++ b/target/classes/mapper/MerchantMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + INSERT INTO merchant (username, password, store_name, address, phone, email, manager_name, avatar) + VALUES (#{username}, #{password}, #{storeName}, #{address}, #{phone}, #{email}, #{managerName}, #{avatar}) + + + + + + + + UPDATE merchant + + store_name = #{storeName}, + address = #{address}, + phone = #{phone}, + email = #{email}, + manager_name = #{managerName}, + avatar = #{avatar}, + + WHERE id = #{id} + + diff --git a/target/classes/mapper/MessageMapper.xml b/target/classes/mapper/MessageMapper.xml new file mode 100644 index 0000000..8c2a5f1 --- /dev/null +++ b/target/classes/mapper/MessageMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + INSERT INTO message (user_id, merchant_id, order_id, content, status) + VALUES (#{userId}, #{merchantId}, #{orderId}, #{content}, #{status}) + + + + + + + + + + UPDATE message + + reply = #{reply}, + status = #{status}, + reply_time = #{replyTime}, + + WHERE id = #{id} + + diff --git a/target/classes/mapper/OrderItemMapper.xml b/target/classes/mapper/OrderItemMapper.xml new file mode 100644 index 0000000..bc83853 --- /dev/null +++ b/target/classes/mapper/OrderItemMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + INSERT INTO order_item (order_id, product_id, product_name, spec_name, quantity, price, + custom_sweetness, custom_ice, toppings, subtotal) + VALUES (#{orderId}, #{productId}, #{productName}, #{specName}, #{quantity}, #{price}, + #{customSweetness}, #{customIce}, #{toppings}, #{subtotal}) + + + + + + diff --git a/target/classes/mapper/OrderMapper.xml b/target/classes/mapper/OrderMapper.xml new file mode 100644 index 0000000..a440055 --- /dev/null +++ b/target/classes/mapper/OrderMapper.xml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO `order` (order_no, user_id, merchant_id, total_amount, payment_method, + payment_status, order_status, address, contact_phone, pay_time, complete_time) + VALUES (#{orderNo}, #{userId}, #{merchantId}, #{totalAmount}, #{paymentMethod}, + #{paymentStatus}, #{orderStatus}, #{address}, #{contactPhone}, #{payTime}, #{completeTime}) + + + + + + + + + + + + UPDATE `order` + + total_amount = #{totalAmount}, + payment_method = #{paymentMethod}, + payment_status = #{paymentStatus}, + order_status = #{orderStatus}, + address = #{address}, + contact_phone = #{contactPhone}, + pay_time = #{payTime}, + complete_time = #{completeTime}, + + WHERE id = #{id} + + + + UPDATE `order` SET order_status = #{status} WHERE id = #{id} + + + + UPDATE `order` + SET payment_status = #{paymentStatus}, + payment_method = #{paymentMethod}, + pay_time = NOW() + WHERE id = #{id} + + + + diff --git a/target/classes/mapper/OrderTrackMapper.xml b/target/classes/mapper/OrderTrackMapper.xml new file mode 100644 index 0000000..6f371e3 --- /dev/null +++ b/target/classes/mapper/OrderTrackMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + INSERT INTO order_track (order_id, status, description) + VALUES (#{orderId}, #{status}, #{description}) + + + + diff --git a/target/classes/mapper/ProductCustomMapper.xml b/target/classes/mapper/ProductCustomMapper.xml new file mode 100644 index 0000000..e166c67 --- /dev/null +++ b/target/classes/mapper/ProductCustomMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + INSERT INTO product_custom (product_id, option_type, option_value, price_adjust) + VALUES (#{productId}, #{optionType}, #{optionValue}, #{priceAdjust}) + + + + + + + + UPDATE product_custom + SET option_type = #{optionType}, option_value = #{optionValue}, price_adjust = #{priceAdjust} + WHERE id = #{id} + + + + DELETE FROM product_custom WHERE id = #{id} + + + + DELETE FROM product_custom WHERE product_id = #{productId} + + diff --git a/target/classes/mapper/ProductMapper.xml b/target/classes/mapper/ProductMapper.xml new file mode 100644 index 0000000..cc78848 --- /dev/null +++ b/target/classes/mapper/ProductMapper.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + INSERT INTO product (merchant_id, name, category, description, base_price, image, status) + VALUES (#{merchantId}, #{name}, #{category}, #{description}, #{basePrice}, #{image}, #{status}) + + + + + + + + + + + + UPDATE product + + name = #{name}, + category = #{category}, + description = #{description}, + base_price = #{basePrice}, + image = #{image}, + status = #{status}, + + WHERE id = #{id} + + + + UPDATE product SET status = #{status} WHERE id = #{id} + + diff --git a/target/classes/mapper/ProductSpecMapper.xml b/target/classes/mapper/ProductSpecMapper.xml new file mode 100644 index 0000000..412e9ab --- /dev/null +++ b/target/classes/mapper/ProductSpecMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + INSERT INTO product_spec (product_id, spec_name, price_adjust) + VALUES (#{productId}, #{specName}, #{priceAdjust}) + + + + + + + + UPDATE product_spec + SET spec_name = #{specName}, price_adjust = #{priceAdjust} + WHERE id = #{id} + + + + DELETE FROM product_spec WHERE id = #{id} + + + + DELETE FROM product_spec WHERE product_id = #{productId} + + diff --git a/target/classes/mapper/ProductToppingMapper.xml b/target/classes/mapper/ProductToppingMapper.xml new file mode 100644 index 0000000..eed4f8a --- /dev/null +++ b/target/classes/mapper/ProductToppingMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + INSERT INTO product_topping (product_id, topping_name, price) + VALUES (#{productId}, #{toppingName}, #{price}) + + + + + + + + UPDATE product_topping + SET topping_name = #{toppingName}, price = #{price} + WHERE id = #{id} + + + + DELETE FROM product_topping WHERE id = #{id} + + + + DELETE FROM product_topping WHERE product_id = #{productId} + + diff --git a/target/classes/mapper/ReviewMapper.xml b/target/classes/mapper/ReviewMapper.xml new file mode 100644 index 0000000..e53b279 --- /dev/null +++ b/target/classes/mapper/ReviewMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + INSERT INTO review (user_id, order_id, product_id, rating, content) + VALUES (#{userId}, #{orderId}, #{productId}, #{rating}, #{content}) + + + + + + + + + + + + + + UPDATE review + + reply = #{reply}, + + WHERE id = #{id} + + diff --git a/target/classes/mapper/UserAddressMapper.xml b/target/classes/mapper/UserAddressMapper.xml new file mode 100644 index 0000000..7ce2cd7 --- /dev/null +++ b/target/classes/mapper/UserAddressMapper.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + INSERT INTO user_address (user_id, address, contact_name, contact_phone, is_default) + VALUES (#{userId}, #{address}, #{contactName}, #{contactPhone}, #{isDefault}) + + + + + + + + + + UPDATE user_address + + address = #{address}, + contact_name = #{contactName}, + contact_phone = #{contactPhone}, + is_default = #{isDefault}, + + WHERE id = #{id} + + + + DELETE FROM user_address WHERE id = #{id} + + diff --git a/target/classes/mapper/UserBehaviorMapper.xml b/target/classes/mapper/UserBehaviorMapper.xml new file mode 100644 index 0000000..87a8fb4 --- /dev/null +++ b/target/classes/mapper/UserBehaviorMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + INSERT INTO user_behavior (user_id, product_id, behavior_type, score) + VALUES (#{userId}, #{productId}, #{behaviorType}, #{score}) + + + + + + + + + + UPDATE user_behavior + SET score = #{score}, create_time = NOW() + WHERE id = #{id} + + + + + + + + diff --git a/target/classes/mapper/UserMapper.xml b/target/classes/mapper/UserMapper.xml new file mode 100644 index 0000000..516dd07 --- /dev/null +++ b/target/classes/mapper/UserMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + INSERT INTO user (username, password, name, gender, phone, email, avatar, address) + VALUES (#{username}, #{password}, #{name}, #{gender}, #{phone}, #{email}, #{avatar}, #{address}) + + + + + + + + UPDATE user + + name = #{name}, + gender = #{gender}, + phone = #{phone}, + email = #{email}, + avatar = #{avatar}, + address = #{address}, + + WHERE id = #{id} + + + + UPDATE user SET password = #{password} WHERE id = #{id} + + + + diff --git a/target/classes/mapper/UserSimilarityMapper.xml b/target/classes/mapper/UserSimilarityMapper.xml new file mode 100644 index 0000000..104f24f --- /dev/null +++ b/target/classes/mapper/UserSimilarityMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + INSERT INTO user_similarity (user1_id, user2_id, similarity_score) + VALUES (#{user1Id}, #{user2Id}, #{similarityScore}) + ON DUPLICATE KEY UPDATE + similarity_score = #{similarityScore}, update_time = NOW() + + + + + + diff --git a/target/classes/static/js/cookie-utils.js b/target/classes/static/js/cookie-utils.js new file mode 100644 index 0000000..8d12a57 --- /dev/null +++ b/target/classes/static/js/cookie-utils.js @@ -0,0 +1,70 @@ +// Cookie工具类 +const CookieUtils = { + /** + * 设置Cookie + * @param {string} name Cookie名称 + * @param {string} value Cookie值 + * @param {number} days 过期天数,默认7天 + */ + set(name, value, days = 7) { + const expires = new Date(); + expires.setTime(expires.getTime() + days * 24 * 60 * 60 * 1000); + document.cookie = `${name}=${encodeURIComponent(value)};expires=${expires.toUTCString()};path=/`; + }, + + /** + * 获取Cookie + * @param {string} name Cookie名称 + * @returns {string|null} Cookie值,不存在返回null + */ + get(name) { + const nameEQ = name + "="; + const ca = document.cookie.split(';'); + for (let i = 0; i < ca.length; i++) { + let c = ca[i]; + while (c.charAt(0) === ' ') c = c.substring(1, c.length); + if (c.indexOf(nameEQ) === 0) { + return decodeURIComponent(c.substring(nameEQ.length, c.length)); + } + } + return null; + }, + + /** + * 删除Cookie + * @param {string} name Cookie名称 + */ + remove(name) { + document.cookie = `${name}=;expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/;`; + }, + + /** + * 获取JSON格式的Cookie + * @param {string} name Cookie名称 + * @returns {any|null} 解析后的JSON对象,不存在或解析失败返回null + */ + getJSON(name) { + const value = this.get(name); + if (!value) return null; + try { + return JSON.parse(value); + } catch (e) { + console.error(`Failed to parse cookie ${name}:`, e); + return null; + } + }, + + /** + * 设置JSON格式的Cookie + * @param {string} name Cookie名称 + * @param {any} value 要存储的对象 + * @param {number} days 过期天数,默认7天 + */ + setJSON(name, value, days = 7) { + try { + this.set(name, JSON.stringify(value), days); + } catch (e) { + console.error(`Failed to stringify cookie ${name}:`, e); + } + } +}; diff --git a/target/classes/static/js/custom-modal.js b/target/classes/static/js/custom-modal.js new file mode 100644 index 0000000..e71a063 --- /dev/null +++ b/target/classes/static/js/custom-modal.js @@ -0,0 +1,356 @@ +/** + * 自定义模态框组件 + * 符合项目UI设计规范,具有平滑过渡动画和响应式显示 + */ + +class CustomModal { + constructor(options = {}) { + this.id = options.id || 'customModal_' + Date.now(); + this.title = options.title || ''; + this.content = options.content || ''; + this.size = options.size || 'medium'; // small, medium, large + this.showClose = options.showClose !== false; + this.onClose = options.onClose || null; + this.onConfirm = options.onConfirm || null; + this.confirmText = options.confirmText || '确定'; + this.cancelText = options.cancelText || '取消'; + this.showFooter = options.showFooter !== false; + this.backdrop = options.backdrop !== false; + this.modal = null; + } + + show() { + // 创建模态框HTML + const modalHtml = this._createModalHtml(); + + // 移除已存在的模态框 + const existing = document.getElementById(this.id); + if (existing) { + existing.remove(); + } + + // 添加到body + document.body.insertAdjacentHTML('beforeend', modalHtml); + this.modal = document.getElementById(this.id); + this.backdropEl = document.getElementById(this.id + '_backdrop'); + + // 添加显示动画 + requestAnimationFrame(() => { + this.modal.classList.add('show'); + if (this.backdropEl) { + this.backdropEl.classList.add('show'); + } + document.body.style.overflow = 'hidden'; + }); + + // 绑定事件 + this._bindEvents(); + } + + hide() { + if (!this.modal) return; + + this.modal.classList.remove('show'); + if (this.backdropEl) { + this.backdropEl.classList.remove('show'); + } + document.body.style.overflow = ''; + + // 动画结束后移除 + setTimeout(() => { + if (this.modal && this.modal.parentNode) { + this.modal.remove(); + } + if (this.backdropEl && this.backdropEl.parentNode) { + this.backdropEl.remove(); + } + if (this.onClose) { + this.onClose(); + } + }, 300); + } + + _createModalHtml() { + const sizeClass = { + small: 'modal-sm', + medium: '', + large: 'modal-lg' + }[this.size]; + + const backdropHtml = this.backdrop ? + `

` : ''; + + return backdropHtml + ` +
+
+
+ ${this.title || this.showClose ? ` +
+ ${this.title ? `
${this.title}
` : ''} + ${this.showClose ? `` : ''} +
+ ` : ''} +
+ ${this.content} +
+ ${this.showFooter ? ` + + ` : ''} +
+
+
+ `; + } + + _bindEvents() { + // 关闭按钮 + const closeBtn = this.modal.querySelector('[data-dismiss="modal"]'); + if (closeBtn) { + closeBtn.addEventListener('click', () => this.hide()); + } + + // 确认按钮 + const confirmBtn = this.modal.querySelector('.custom-modal-btn-confirm'); + if (confirmBtn && this.onConfirm) { + confirmBtn.addEventListener('click', () => { + if (this.onConfirm() !== false) { + this.hide(); + } + }); + } + + // 点击背景关闭 + if (this.backdropEl) { + this.backdropEl.addEventListener('click', () => this.hide()); + } + + // 点击内容区域不关闭 + const content = this.modal.querySelector('.custom-modal-content'); + if (content) { + content.addEventListener('click', (e) => e.stopPropagation()); + } + } + + updateContent(content) { + const body = this.modal?.querySelector('.custom-modal-body'); + if (body) { + body.innerHTML = content; + } + } +} + +// CSS样式(通过JavaScript注入,或单独引入CSS文件) +const customModalStyles = ` + +`; + +// 注入样式 +if (!document.getElementById('custom-modal-styles')) { + document.head.insertAdjacentHTML('beforeend', customModalStyles); +} + +// 导出到全局 +window.CustomModal = CustomModal; + +// 便捷方法 +window.showCustomModal = function(options) { + const modal = new CustomModal(options); + modal.show(); + return modal; +}; + +window.showCustomConfirm = function(message, title = '确认操作', onConfirm = null) { + return new CustomModal({ + title: title, + content: `

${message}

`, + onConfirm: onConfirm, + showFooter: true + }); +}; diff --git a/target/classes/static/js/merchant-common.js b/target/classes/static/js/merchant-common.js new file mode 100644 index 0000000..c302084 --- /dev/null +++ b/target/classes/static/js/merchant-common.js @@ -0,0 +1,338 @@ +/** + * 商家后台通用脚本 + * 提供侧边栏、加载状态、交互反馈等功能 + */ + +// 侧边栏HTML模板 +function getSidebarHTML(activePage) { + const menuItems = [ + { href: '/merchant/dashboard.html', icon: 'bi-speedometer2', text: '首页', page: 'dashboard' }, + { href: '/merchant/products.html', icon: 'bi-box-seam', text: '商品管理', page: 'products' }, + { href: '/merchant/orders.html', icon: 'bi-receipt-cutoff', text: '订单管理', page: 'orders' }, + { href: '/merchant/inventory.html', icon: 'bi-archive', text: '库存管理', page: 'inventory' }, + { href: '/merchant/statistics.html', icon: 'bi-bar-chart', text: '数据统计', page: 'statistics' }, + { href: '/merchant/announcements.html', icon: 'bi-megaphone', text: '公告管理', page: 'announcements' }, + { href: '/merchant/messages.html', icon: 'bi-chat-dots', text: '留言管理', page: 'messages' }, + { href: '/merchant/reviews.html', icon: 'bi-star', text: '评价管理', page: 'reviews' }, + { href: '/merchant/users.html', icon: 'bi-people', text: '用户管理', page: 'users' } + ]; + + const menuHTML = menuItems.map(item => { + const activeClass = item.page === activePage ? 'active' : ''; + return ` +
+ `; + }).join(''); + + return ` + + + + `; +} + +// 侧边栏CSS样式 +const sidebarCSS = ` + .sidebar { + position: fixed; + top: 0; + left: 0; + width: 260px; + height: 100vh; + background: linear-gradient(180deg, #2c3e50 0%, #34495e 100%); + color: #fff; + z-index: 1050; + display: flex; + flex-direction: column; + transition: transform 0.3s ease; + box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1); + } + .sidebar-header { + padding: 1.5rem; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + display: flex; + justify-content: space-between; + align-items: center; + } + .sidebar-brand { + font-size: 1.25rem; + font-weight: 600; + } + .sidebar-nav { + flex: 1; + overflow-y: auto; + padding: 1rem 0; + } + .sidebar-nav .nav-link { + color: rgba(255, 255, 255, 0.8); + padding: 0.75rem 1.5rem; + transition: all 0.3s; + border-left: 3px solid transparent; + display: flex; + align-items: center; + text-decoration: none; + } + .sidebar-nav .nav-link:hover { + background-color: rgba(255, 255, 255, 0.1); + color: #fff; + border-left-color: #0d6efd; + } + .sidebar-nav .nav-link.active { + background-color: rgba(13, 110, 253, 0.2); + color: #fff; + border-left-color: #0d6efd; + font-weight: 600; + } + .sidebar-nav .nav-link i { + width: 24px; + font-size: 1.1rem; + margin-right: 0.75rem; + } + .sidebar-nav .nav-text { + flex: 1; + } + .sidebar-footer { + padding: 1rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); + } + @media (max-width: 767.98px) { + .sidebar { + transform: translateX(-100%); + } + .sidebar.show { + transform: translateX(0); + } + .sidebar-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.5); + z-index: 1049; + display: none; + transition: opacity 0.3s; + } + .sidebar-overlay.show { + display: block; + } + .top-navbar { + position: fixed; + top: 0; + left: 0; + right: 0; + height: 56px; + background: linear-gradient(180deg, #2c3e50 0%, #34495e 100%); + z-index: 1048; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + } + body { + padding-top: 56px; + } + } + @media (min-width: 768px) { + .main-content { + margin-left: 260px; + min-height: 100vh; + } + } + .sidebar-nav::-webkit-scrollbar { + width: 6px; + } + .sidebar-nav::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.05); + } + .sidebar-nav::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.2); + border-radius: 3px; + } + .sidebar-nav::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.3); + } +`; + +// 初始化侧边栏 +function initSidebar(activePage) { + // 添加CSS样式 + if (!document.getElementById('merchant-sidebar-styles')) { + const style = document.createElement('style'); + style.id = 'merchant-sidebar-styles'; + style.textContent = sidebarCSS; + document.head.appendChild(style); + } + + // 替换导航栏 + const oldNav = document.querySelector('nav.navbar'); + if (oldNav) { + oldNav.outerHTML = getSidebarHTML(activePage); + + // 初始化交互 + const sidebar = document.getElementById('sidebar'); + const sidebarOverlay = document.getElementById('sidebarOverlay'); + const sidebarToggleBtn = document.getElementById('sidebarToggleBtn'); + const sidebarCloseBtn = document.getElementById('sidebarCloseBtn'); + + if (sidebarToggleBtn) { + sidebarToggleBtn.addEventListener('click', function() { + sidebar.classList.add('show'); + sidebarOverlay.classList.add('show'); + document.body.style.overflow = 'hidden'; + }); + } + + function closeSidebar() { + sidebar.classList.remove('show'); + sidebarOverlay.classList.remove('show'); + document.body.style.overflow = ''; + } + + if (sidebarCloseBtn) { + sidebarCloseBtn.addEventListener('click', closeSidebar); + } + + if (sidebarOverlay) { + sidebarOverlay.addEventListener('click', closeSidebar); + } + + const navLinks = document.querySelectorAll('.sidebar-nav .nav-link'); + navLinks.forEach(link => { + link.addEventListener('click', function() { + if (window.innerWidth < 768) { + closeSidebar(); + } + }); + }); + } + + // 包装主内容区域 + const container = document.querySelector('.container, .container-fluid'); + if (container && !container.closest('.main-content')) { + const mainContent = document.createElement('div'); + mainContent.className = 'main-content'; + container.parentNode.insertBefore(mainContent, container); + mainContent.appendChild(container); + } +} + +// 显示加载状态 +function showLoading(elementId, message = '加载中...') { + const element = document.getElementById(elementId); + if (element) { + element.innerHTML = ` +
+
+ ${message} +
+

${message}

+
+ `; + } +} + +// 显示成功提示 +function showSuccess(message, duration = 3000) { + const toast = document.createElement('div'); + toast.className = 'toast align-items-center text-white bg-success border-0'; + toast.setAttribute('role', 'alert'); + toast.innerHTML = ` +
+
${message}
+ +
+ `; + + const toastContainer = document.getElementById('toastContainer') || createToastContainer(); + toastContainer.appendChild(toast); + + const bsToast = new bootstrap.Toast(toast); + bsToast.show(); + + toast.addEventListener('hidden.bs.toast', () => toast.remove()); +} + +// 显示错误提示 +function showError(message, duration = 3000) { + const toast = document.createElement('div'); + toast.className = 'toast align-items-center text-white bg-danger border-0'; + toast.setAttribute('role', 'alert'); + toast.innerHTML = ` +
+
${message}
+ +
+ `; + + const toastContainer = document.getElementById('toastContainer') || createToastContainer(); + toastContainer.appendChild(toast); + + const bsToast = new bootstrap.Toast(toast); + bsToast.show(); + + toast.addEventListener('hidden.bs.toast', () => toast.remove()); +} + +// 创建Toast容器 +function createToastContainer() { + const container = document.createElement('div'); + container.id = 'toastContainer'; + container.className = 'toast-container position-fixed top-0 end-0 p-3'; + container.style.zIndex = '1060'; + document.body.appendChild(container); + return container; +} + +// 检测当前页面 +function detectCurrentPage() { + const path = window.location.pathname; + if (path.includes('products')) return 'products'; + if (path.includes('orders')) return 'orders'; + if (path.includes('inventory')) return 'inventory'; + if (path.includes('statistics')) return 'statistics'; + if (path.includes('announcements')) return 'announcements'; + if (path.includes('messages')) return 'messages'; + if (path.includes('reviews')) return 'reviews'; + if (path.includes('users')) return 'users'; + return 'dashboard'; +} + +// 自动初始化 +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', function() { + initSidebar(detectCurrentPage()); + }); +} else { + initSidebar(detectCurrentPage()); +} diff --git a/target/classes/static/js/merchant-sidebar.js b/target/classes/static/js/merchant-sidebar.js new file mode 100644 index 0000000..26871e6 --- /dev/null +++ b/target/classes/static/js/merchant-sidebar.js @@ -0,0 +1,297 @@ +/** + * 商家后台侧边栏通用脚本 + * 提供侧边栏的HTML结构和交互逻辑 + */ + +// 生成侧边栏HTML +function generateSidebarHTML(currentPage) { + const menuItems = [ + { href: '/merchant/dashboard.html', icon: 'bi-speedometer2', text: '首页', page: 'dashboard' }, + { href: '/merchant/products.html', icon: 'bi-box-seam', text: '商品管理', page: 'products' }, + { href: '/merchant/orders.html', icon: 'bi-receipt-cutoff', text: '订单管理', page: 'orders' }, + { href: '/merchant/inventory.html', icon: 'bi-archive', text: '库存管理', page: 'inventory' }, + { href: '/merchant/statistics.html', icon: 'bi-bar-chart', text: '数据统计', page: 'statistics' }, + { href: '/merchant/announcements.html', icon: 'bi-megaphone', text: '公告管理', page: 'announcements' }, + { href: '/merchant/messages.html', icon: 'bi-chat-dots', text: '留言管理', page: 'messages' }, + { href: '/merchant/reviews.html', icon: 'bi-star', text: '评价管理', page: 'reviews' }, + { href: '/merchant/users.html', icon: 'bi-people', text: '用户管理', page: 'users' } + ]; + + const menuHTML = menuItems.map(item => { + const activeClass = item.page === currentPage ? 'active' : ''; + return ` + + `; + }).join(''); + + return ` + + + + + + + + + `; +} + +// 添加侧边栏CSS样式 +function addSidebarStyles() { + if (document.getElementById('sidebar-styles')) return; + + const style = document.createElement('style'); + style.id = 'sidebar-styles'; + style.textContent = ` + /* 侧边栏样式 */ + .sidebar { + position: fixed; + top: 0; + left: 0; + width: 260px; + height: 100vh; + background: linear-gradient(180deg, #2c3e50 0%, #34495e 100%); + color: #fff; + z-index: 1050; + display: flex; + flex-direction: column; + transition: transform 0.3s ease; + box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1); + } + + .sidebar-header { + padding: 1.5rem; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + display: flex; + justify-content: space-between; + align-items: center; + } + + .sidebar-brand { + font-size: 1.25rem; + font-weight: 600; + } + + .sidebar-nav { + flex: 1; + overflow-y: auto; + padding: 1rem 0; + } + + .sidebar-nav .nav-link { + color: rgba(255, 255, 255, 0.8); + padding: 0.75rem 1.5rem; + transition: all 0.3s; + border-left: 3px solid transparent; + display: flex; + align-items: center; + text-decoration: none; + } + + .sidebar-nav .nav-link:hover { + background-color: rgba(255, 255, 255, 0.1); + color: #fff; + border-left-color: #0d6efd; + } + + .sidebar-nav .nav-link.active { + background-color: rgba(13, 110, 253, 0.2); + color: #fff; + border-left-color: #0d6efd; + font-weight: 600; + } + + .sidebar-nav .nav-link i { + width: 24px; + font-size: 1.1rem; + margin-right: 0.75rem; + } + + .sidebar-nav .nav-text { + flex: 1; + } + + .sidebar-footer { + padding: 1rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); + } + + /* 移动端样式 */ + @media (max-width: 767.98px) { + .sidebar { + transform: translateX(-100%); + } + + .sidebar.show { + transform: translateX(0); + } + + .sidebar-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.5); + z-index: 1049; + display: none; + transition: opacity 0.3s; + } + + .sidebar-overlay.show { + display: block; + } + + .top-navbar { + position: fixed; + top: 0; + left: 0; + right: 0; + height: 56px; + background: linear-gradient(180deg, #2c3e50 0%, #34495e 100%); + z-index: 1048; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + } + + body { + padding-top: 56px; + } + } + + /* 桌面端主内容区域 */ + @media (min-width: 768px) { + .main-content { + margin-left: 260px; + min-height: 100vh; + } + } + + /* 滚动条样式 */ + .sidebar-nav::-webkit-scrollbar { + width: 6px; + } + + .sidebar-nav::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.05); + } + + .sidebar-nav::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.2); + border-radius: 3px; + } + + .sidebar-nav::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.3); + } + `; + document.head.appendChild(style); +} + +// 初始化侧边栏交互 +function initSidebar() { + const sidebar = document.getElementById('sidebar'); + const sidebarOverlay = document.getElementById('sidebarOverlay'); + const sidebarToggleBtn = document.getElementById('sidebarToggleBtn'); + const sidebarCloseBtn = document.getElementById('sidebarCloseBtn'); + + if (!sidebar) return; + + // 移动端切换侧边栏 + if (sidebarToggleBtn) { + sidebarToggleBtn.addEventListener('click', function() { + sidebar.classList.add('show'); + if (sidebarOverlay) sidebarOverlay.classList.add('show'); + document.body.style.overflow = 'hidden'; + }); + } + + // 关闭侧边栏 + function closeSidebar() { + sidebar.classList.remove('show'); + if (sidebarOverlay) sidebarOverlay.classList.remove('show'); + document.body.style.overflow = ''; + } + + if (sidebarCloseBtn) { + sidebarCloseBtn.addEventListener('click', closeSidebar); + } + + if (sidebarOverlay) { + sidebarOverlay.addEventListener('click', closeSidebar); + } + + // 点击导航项时,移动端自动关闭侧边栏 + const navLinks = document.querySelectorAll('.sidebar-nav .nav-link'); + navLinks.forEach(link => { + link.addEventListener('click', function() { + if (window.innerWidth < 768) { + closeSidebar(); + } + }); + }); +} + +// 初始化侧边栏(自动检测当前页面) +function initMerchantSidebar() { + addSidebarStyles(); + + // 检测当前页面 + const path = window.location.pathname; + let currentPage = 'dashboard'; + + if (path.includes('products')) currentPage = 'products'; + else if (path.includes('orders')) currentPage = 'orders'; + else if (path.includes('inventory')) currentPage = 'inventory'; + else if (path.includes('statistics')) currentPage = 'statistics'; + else if (path.includes('announcements')) currentPage = 'announcements'; + else if (path.includes('messages')) currentPage = 'messages'; + else if (path.includes('reviews')) currentPage = 'reviews'; + else if (path.includes('users')) currentPage = 'users'; + + // 查找并替换旧的导航栏 + const oldNav = document.querySelector('nav.navbar'); + if (oldNav) { + oldNav.outerHTML = generateSidebarHTML(currentPage); + initSidebar(); + } +} + +// 页面加载完成后初始化 +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initMerchantSidebar); +} else { + initMerchantSidebar(); +} diff --git a/target/classes/static/js/sidebar-replacer.js b/target/classes/static/js/sidebar-replacer.js new file mode 100644 index 0000000..d3186e1 --- /dev/null +++ b/target/classes/static/js/sidebar-replacer.js @@ -0,0 +1,300 @@ +/** + * 侧边栏自动替换脚本 + * 自动检测并替换旧的导航栏为侧边栏 + */ +(function() { + 'use strict'; + + // 侧边栏CSS + const sidebarCSS = ` + .sidebar { + position: fixed; + top: 0; + left: 0; + width: 260px; + height: 100vh; + background: linear-gradient(180deg, #2c3e50 0%, #34495e 100%); + color: #fff; + z-index: 1000; + display: flex; + flex-direction: column; + transition: transform 0.3s ease; + box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1); + } + .sidebar-header { + padding: 1.5rem; + border-bottom: 1px solid rgba(255, 255, 255, 0.1); + display: flex; + justify-content: space-between; + align-items: center; + } + .sidebar-brand { + font-size: 1.25rem; + font-weight: 600; + } + .sidebar-nav { + flex: 1; + overflow-y: auto; + padding: 1rem 0; + } + .sidebar-nav .nav-link { + color: rgba(255, 255, 255, 0.8); + padding: 0.75rem 1.5rem; + transition: all 0.3s; + border-left: 3px solid transparent; + display: flex; + align-items: center; + text-decoration: none; + } + .sidebar-nav .nav-link:hover { + background-color: rgba(255, 255, 255, 0.1); + color: #fff; + border-left-color: #0d6efd; + } + .sidebar-nav .nav-link.active { + background-color: rgba(13, 110, 253, 0.2); + color: #fff; + border-left-color: #0d6efd; + font-weight: 600; + } + .sidebar-nav .nav-link i { + width: 24px; + font-size: 1.1rem; + margin-right: 0.75rem; + } + .sidebar-nav .nav-text { + flex: 1; + } + .sidebar-footer { + padding: 1rem; + border-top: 1px solid rgba(255, 255, 255, 0.1); + } + @media (max-width: 767.98px) { + .sidebar { + transform: translateX(-100%); + } + .sidebar.show { + transform: translateX(0); + } + .sidebar-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.5); + z-index: 1049; + display: none; + transition: opacity 0.3s; + } + .sidebar-overlay.show { + display: block; + } + .top-navbar { + position: fixed; + top: 0; + left: 0; + right: 0; + height: 56px; + background: linear-gradient(180deg, #2c3e50 0%, #34495e 100%); + z-index: 1048; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + } + body { + padding-top: 56px; + } + } + @media (min-width: 768px) { + .main-content { + margin-left: 260px; + min-height: 100vh; + position: relative; + z-index: 1; + width: calc(100% - 260px); + } + } + .sidebar-nav::-webkit-scrollbar { + width: 6px; + } + .sidebar-nav::-webkit-scrollbar-track { + background: rgba(255, 255, 255, 0.05); + } + .sidebar-nav::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.2); + border-radius: 3px; + } + .sidebar-nav::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.3); + } + `; + + // 菜单配置 + const menuConfig = [ + { href: '/merchant/dashboard.html', icon: 'bi-speedometer2', text: '首页', page: 'dashboard' }, + { href: '/merchant/products.html', icon: 'bi-box-seam', text: '商品管理', page: 'products' }, + { href: '/merchant/orders.html', icon: 'bi-receipt-cutoff', text: '订单管理', page: 'orders' }, + { href: '/merchant/inventory.html', icon: 'bi-archive', text: '库存管理', page: 'inventory' }, + { href: '/merchant/statistics.html', icon: 'bi-bar-chart-line', text: '数据统计', page: 'statistics' }, + { href: '/merchant/announcements.html', icon: 'bi-megaphone', text: '公告管理', page: 'announcements' }, + { href: '/merchant/messages.html', icon: 'bi-chat-dots', text: '留言管理', page: 'messages' }, + { href: '/merchant/reviews.html', icon: 'bi-star', text: '评价管理', page: 'reviews' }, + { href: '/merchant/users.html', icon: 'bi-people', text: '用户管理', page: 'users' } + ]; + + // 检测当前页面 + function detectCurrentPage() { + const path = window.location.pathname; + for (const item of menuConfig) { + if (path.includes(item.page)) { + return item.page; + } + } + return 'dashboard'; + } + + // 生成侧边栏HTML + function generateSidebar(activePage) { + const menuHTML = menuConfig.map(item => { + const activeClass = item.page === activePage ? 'active' : ''; + return ` + + `; + }).join(''); + + return ` + + + + `; + } + + // 初始化侧边栏 + function initSidebar() { + // 添加CSS + if (!document.getElementById('merchant-sidebar-styles')) { + const style = document.createElement('style'); + style.id = 'merchant-sidebar-styles'; + style.textContent = sidebarCSS; + document.head.appendChild(style); + } + + // 替换导航栏 + const oldNav = document.querySelector('nav.navbar'); + if (oldNav && !document.getElementById('sidebar')) { + const activePage = detectCurrentPage(); + oldNav.outerHTML = generateSidebar(activePage); + + // 包装主内容 - 确保不重复包装 + let mainContent = document.querySelector('.main-content'); + if (!mainContent) { + // 查找body的直接子元素中的container + const bodyChildren = Array.from(document.body.children); + let container = null; + + // 优先查找container-fluid,然后是container + for (const child of bodyChildren) { + if (child.classList.contains('container-fluid') || child.classList.contains('container')) { + if (!child.closest('.main-content') && !child.closest('.sidebar') && !child.closest('.sidebar-overlay') && !child.closest('.top-navbar')) { + container = child; + break; + } + } + } + + if (container) { + mainContent = document.createElement('div'); + mainContent.className = 'main-content'; + container.parentNode.insertBefore(mainContent, container); + mainContent.appendChild(container); + } + } + + // 初始化交互 + setupSidebarInteractions(); + } + } + + // 设置侧边栏交互 + function setupSidebarInteractions() { + const sidebar = document.getElementById('sidebar'); + const sidebarOverlay = document.getElementById('sidebarOverlay'); + const sidebarToggleBtn = document.getElementById('sidebarToggleBtn'); + const sidebarCloseBtn = document.getElementById('sidebarCloseBtn'); + + if (!sidebar) return; + + function openSidebar() { + sidebar.classList.add('show'); + if (sidebarOverlay) sidebarOverlay.classList.add('show'); + document.body.style.overflow = 'hidden'; + } + + function closeSidebar() { + sidebar.classList.remove('show'); + if (sidebarOverlay) sidebarOverlay.classList.remove('show'); + document.body.style.overflow = ''; + } + + if (sidebarToggleBtn) { + sidebarToggleBtn.addEventListener('click', openSidebar); + } + + if (sidebarCloseBtn) { + sidebarCloseBtn.addEventListener('click', closeSidebar); + } + + if (sidebarOverlay) { + sidebarOverlay.addEventListener('click', closeSidebar); + } + + // 点击导航项时,移动端自动关闭 + const navLinks = document.querySelectorAll('.sidebar-nav .nav-link'); + navLinks.forEach(link => { + link.addEventListener('click', function() { + if (window.innerWidth < 768) { + closeSidebar(); + } + }); + }); + } + + // 页面加载完成后初始化 + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initSidebar); + } else { + initSidebar(); + } +})(); diff --git a/target/classes/static/js/ui-enhancements.js b/target/classes/static/js/ui-enhancements.js new file mode 100644 index 0000000..7313a68 --- /dev/null +++ b/target/classes/static/js/ui-enhancements.js @@ -0,0 +1,289 @@ +/** + * UI交互增强脚本 + * 提供加载状态、视觉反馈、操作提示等功能 + */ + +// 创建Toast容器 +function ensureToastContainer() { + let container = document.getElementById('toastContainer'); + if (!container) { + container = document.createElement('div'); + container.id = 'toastContainer'; + container.className = 'toast-container position-fixed top-0 end-0 p-3'; + container.style.zIndex = '1060'; + document.body.appendChild(container); + } + return container; +} + +// 显示成功提示 +function showSuccess(message, duration = 3000) { + const container = ensureToastContainer(); + const toast = document.createElement('div'); + toast.className = 'toast align-items-center text-white bg-success border-0'; + toast.setAttribute('role', 'alert'); + toast.setAttribute('aria-live', 'assertive'); + toast.setAttribute('aria-atomic', 'true'); + toast.innerHTML = ` +
+
+ ${message} +
+ +
+ `; + container.appendChild(toast); + const bsToast = new bootstrap.Toast(toast, { delay: duration }); + bsToast.show(); + toast.addEventListener('hidden.bs.toast', () => toast.remove()); +} + +// 显示错误提示 +function showError(message, duration = 4000) { + const container = ensureToastContainer(); + const toast = document.createElement('div'); + toast.className = 'toast align-items-center text-white bg-danger border-0'; + toast.setAttribute('role', 'alert'); + toast.setAttribute('aria-live', 'assertive'); + toast.setAttribute('aria-atomic', 'true'); + toast.innerHTML = ` +
+
+ ${message} +
+ +
+ `; + container.appendChild(toast); + const bsToast = new bootstrap.Toast(toast, { delay: duration }); + bsToast.show(); + toast.addEventListener('hidden.bs.toast', () => toast.remove()); +} + +// 显示警告提示 +function showWarning(message, duration = 3000) { + const container = ensureToastContainer(); + const toast = document.createElement('div'); + toast.className = 'toast align-items-center text-white bg-warning border-0'; + toast.setAttribute('role', 'alert'); + toast.setAttribute('aria-live', 'assertive'); + toast.setAttribute('aria-atomic', 'true'); + toast.innerHTML = ` +
+
+ ${message} +
+ +
+ `; + container.appendChild(toast); + const bsToast = new bootstrap.Toast(toast, { delay: duration }); + bsToast.show(); + toast.addEventListener('hidden.bs.toast', () => toast.remove()); +} + +// 显示信息提示 +function showInfo(message, duration = 3000) { + const container = ensureToastContainer(); + const toast = document.createElement('div'); + toast.className = 'toast align-items-center text-white bg-info border-0'; + toast.setAttribute('role', 'alert'); + toast.setAttribute('aria-live', 'assertive'); + toast.setAttribute('aria-atomic', 'true'); + toast.innerHTML = ` +
+
+ ${message} +
+ +
+ `; + container.appendChild(toast); + const bsToast = new bootstrap.Toast(toast, { delay: duration }); + bsToast.show(); + toast.addEventListener('hidden.bs.toast', () => toast.remove()); +} + +// 显示加载状态 +function showLoading(elementId, message = '加载中...') { + const element = document.getElementById(elementId); + if (element) { + element.innerHTML = ` +
+
+ ${message} +
+

${message}

+
+ `; + } +} + +// 按钮加载状态 +function setButtonLoading(button, loading = true, originalText = null) { + if (loading) { + if (!button.dataset.originalText) { + button.dataset.originalText = button.innerHTML; + } + button.disabled = true; + button.innerHTML = ` + + 处理中... + `; + } else { + button.disabled = false; + button.innerHTML = button.dataset.originalText || originalText || '提交'; + delete button.dataset.originalText; + } +} + +// 增强的fetch函数(带加载状态和错误处理) +async function enhancedFetch(url, options = {}) { + const { showLoading: showLoadingId, button: loadingButton, ...fetchOptions } = options; + + // 显示加载状态 + if (showLoadingId) { + showLoading(showLoadingId); + } + + // 按钮加载状态 + if (loadingButton) { + setButtonLoading(loadingButton, true); + } + + try { + const response = await fetch(url, fetchOptions); + const data = await response.json(); + + // 恢复按钮状态 + if (loadingButton) { + setButtonLoading(loadingButton, false); + } + + return { response, data }; + } catch (error) { + // 恢复按钮状态 + if (loadingButton) { + setButtonLoading(loadingButton, false); + } + + showError('网络请求失败,请检查网络连接'); + throw error; + } +} + +// 确认对话框(使用自定义模态框) +function confirmAction(message, title = '确认操作', confirmText = '确定', cancelText = '取消') { + return new Promise((resolve) => { + // 确保自定义模态框已加载 + if (typeof CustomModal === 'undefined') { + console.error('CustomModal未加载,请先引入custom-modal.js'); + // 降级到原生confirm + resolve(confirm(message)); + return; + } + + const modal = new CustomModal({ + title: title, + content: `

${message}

`, + confirmText: confirmText, + cancelText: cancelText, + onConfirm: () => { + resolve(true); + return true; + }, + onClose: () => { + resolve(false); + } + }); + modal.show(); + }); +} + +// 表单验证增强 +function validateForm(formId) { + const form = document.getElementById(formId); + if (!form) return false; + + const requiredFields = form.querySelectorAll('[required]'); + let isValid = true; + + requiredFields.forEach(field => { + if (!field.value.trim()) { + field.classList.add('is-invalid'); + isValid = false; + } else { + field.classList.remove('is-invalid'); + field.classList.add('is-valid'); + } + }); + + return isValid; +} + +// 数字格式化 +function formatNumber(num, decimals = 2) { + return parseFloat(num || 0).toFixed(decimals); +} + +// 日期格式化 +function formatDate(date, format = 'YYYY-MM-DD HH:mm:ss') { + if (!date) return '-'; + const d = new Date(date); + const year = d.getFullYear(); + const month = String(d.getMonth() + 1).padStart(2, '0'); + const day = String(d.getDate()).padStart(2, '0'); + const hours = String(d.getHours()).padStart(2, '0'); + const minutes = String(d.getMinutes()).padStart(2, '0'); + const seconds = String(d.getSeconds()).padStart(2, '0'); + + return format + .replace('YYYY', year) + .replace('MM', month) + .replace('DD', day) + .replace('HH', hours) + .replace('mm', minutes) + .replace('ss', seconds); +} + +// 防抖函数 +function debounce(func, wait) { + let timeout; + return function executedFunction(...args) { + const later = () => { + clearTimeout(timeout); + func(...args); + }; + clearTimeout(timeout); + timeout = setTimeout(later, wait); + }; +} + +// 节流函数 +function throttle(func, limit) { + let inThrottle; + return function(...args) { + if (!inThrottle) { + func.apply(this, args); + inThrottle = true; + setTimeout(() => inThrottle = false, limit); + } + }; +} + +// 导出到全局 +window.UIEnhancements = { + showSuccess, + showError, + showWarning, + showInfo, + showLoading, + setButtonLoading, + enhancedFetch, + confirmAction, + validateForm, + formatNumber, + formatDate, + debounce, + throttle +}; diff --git a/target/classes/static/upload/product/3a9cb9e4-97a9-4be5-ba2f-6939bebe5ba5.jpg b/target/classes/static/upload/product/3a9cb9e4-97a9-4be5-ba2f-6939bebe5ba5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..21985b817397bc10886533e7c6d603fd3a209a79 GIT binary patch literal 117102 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
OGz=Hl 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

n%oGzn2=v->XZ!= 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

;(kk7Dd<%xPh?67`x4zA z7E~eGla^_1=eV24s@aGyJVRXMpPzzg$?*k85N^Q8t4cB$>uv3$>da23Mc*+mguyWZ z?Y-l+>si({8B3i<#u@Q(lOQlE@D=s>?(b*n^B*Uk`QItEF&(YcuiPEClxKWnV1qTw zgjamWM_Yw$29mwHiFY@FK4krQ7%QDaQcD3Rt%B0r2ZH2AM-y*zB*GcFyD z@fUl)CQ7qFp~^mv8g5@`&xUSgN&=AnYP?RU!`j<92Uk|pfUFD3vPYHeEaw^AFE;?K zNs6P(TjkD{>1!6>2NF`2Xlo+vRi!u80_ay&O~S9YmL18wKqFd>=9d&NR-}ub)c;_Q z#3atgXZ4e|x^%|$)(aSM9=ctrNZYDq{7>id;=82kSCr|NKtiO7sV@Mh!Mh<-p2ta6 z&+E5vxpRg+`Lmy^p*NfhHro|m$$sUCDcvL(!!VMta|fnB3wr$Qb~RDq2le#^<@xgL z99QrR^ra-o9FF>=4QsIF3NlS0!7KBn0Z^az#OA4b7XA+t!wv?S5sw@bx+O(O<_dkV z`SbMjF?-%CPj8dFZ|H{GX7H=s_ArQI$E-v0vSNMOsmB45-0wJ~cFjhnGIbg-R;In8 zqg>CIB5Y0^r%$<}={LQyfAe+Wfd)B*?mv0Ag`Mnn^B{61OX|y{w`Zi-k6;-`B)(W#Dv~v$M$p;JL4H+5IjewSw1G z76|w`L@(R04Q}{5*53k-mihjyr{1*49U?#ub~VJ=hYxAYlu$%e>agjGys>vFjPpHj z%sDSu;wbE~ebv3qc9D6gY(Lf`Dq-8wetr{Qx=8GBwXCyY-c6|u+xPXC@=Hus)4gYi zYUsipB9omdYNYV1UjF%{z8#RXr_nR4oQ5xCqPxUxhm06^e55A5fH;iaXvrI*Ih2JA zXRGq>t!MyI4@>gBItRV8&9I);%as6{Fop$kzD-p`6{Iyg#?GEyBEtXHmLx0S_%N-1oLqdRmYm!BW9dp#t`K8hq_!BA;3JRirrl}|`u4^Nar%9vKS zY3&f2uzXJ3V1Ox*aytIFSSu>Gaq6OzI&^|E+;*wectYGbOGIFXqSKsY+Y zdSew$NWoLbT@JQPym3t2<06_;a<4Vsc!?a16sc=*@Hu+dGySQMnwffIW6hGLZ6WI-{@aH){>rp{)_2mi#Hx{@@vTu`b z+=%(VzZNJU^k7chHnh|rkaK+L)Llld!uVN=oDmhE{yR6JiT|Yy(hVQfd46KV`)I7% z_3qpN2Y&F#xnnN=HlOr!GLV}sO;BM;fQg%dsQ~H ztSE!t;t`H+%7$^zJSYg;%kiYOzIC-16+8RyTa(ObO4z>W?<(7JQFN=cD)Q$nN2%w90Q0LPj*fD_I%ch(-Q zWn%fx9G%8D&=)w|@;i@{U;R}o7(gL+mEXfaakSh?;wRKtS5pVaDFxqFV*M053XKTF z#9M*IAH=U%bb<@yy>w+_e!&UZ|2~uZ2?-L7nd*u;uA;}IkX)bu5?mksJ6f(`Q-M)Q zvJThebux~4-o(t{{P|I>D(30k_#=t5;96Q%0<$^An`)Y2J(DAKUIeEU>OuTUC)18F`g?IBJNAYman5{{5J)Iz)<0v0W>MMpv7KZ+H zJkll0y2&pNggTU)VMs+8<$9d_r8lj&nPqC~B3S45cB0|hJHTp@ngaxlfi&+Fy57Qe zeLapWfM&M~b#??SMGnU!3t~+*qox%`e2LRj9URD+rSnQ|L9^Lmc_dYipUdM&{?@Ix z1L5yCoBGQ51l9SpQp&%4Wc?aD8Wg#rQ!^hDw4c}D9)6Q_?lM%$#v`LfY+)YC?|8aV z{dli6ye{u_Q@UrZL)?nzQ+LH2g5+yI6t;p@34r#g8V44??nRC+(i!cuCBy<~7%4UB}7MH#_w`-ytbP;G#bz*&LgPzGN-OJea=A zGRRYpdW0!0}T0$m$kB-Ywp1)_S5&kx?evmvS$X&Ycj z;$~fLY(&|(B^C*2n0{x-^&l);^koi)e;UY1ZMu9bO@=OVIkC;Ms0j`UX>B84KRlY~ zT)lRiFBqap^euGJNb|aKe2Oq$Eh9Dk*@`tLPa&n|yT)tJ6HGEbmJzVp!7`5=4Ds%1G&Ri#D+?`lLp&GXep798;Z$DTzTn7Op-c|I z_2Z5@B!DwSu=Pi*=;#f#ybPR>z%?=s=uA3w!Xw?3eqUWGe;m;}yvLZ0DNIJuwKy-{ zxL93c!8-2xJS8yE>1wD3SJ)({B!}+I3xiJWOlig&e{T1`9+ae%{fmm8bysCK`)KmV ziuJw5Y{efJF}$;t$A5rYPUkc2b$kV6|AgtzmCv%;(9cm%{fgC0;!qCYBE6DUP&&{>L!XNLP7dczO-PII$9Y}@DWvjv6oa-Q-k9$O! zojT!RBWZ7NGjaJ16bcEod%*hmbbaSbLO2Edu~7!EW9VUz5yGds z-fTagwA8`Foyp8>7U4GW*}X~kBN5dZRJ!t<-UKm|RXOsFn2=-J!xI{<#(6hid-;^Ke&NsOH`l=JF#(qj#WJ;B zExl~Xv%JwUt;W`*wWh*N}C8L#Du=W*fP!4U0un;NS-Y(EouTHH61^=j+Fs+2<*? zybH~l9tQ{17x7uOzV9Y|E$dXHc0I_qbI7u4HsY`(H~s<8tnYThx>p z+O~Gg6_kuZS65{XWgI&D_R)!NDib%ugSX+3*a|yJ23ri}OrJw1B93Lz6LK7Z?X1~B zaOYlwzxR1tZ{+#I=4z`l(U=x;_O*|9iAM87^b`zgxvq3Cn>k53u{s@3QStQ`QVy4g z=E>$nzIdthf*DMp72@YQHCnT9s8Xp*XXb*gF(f+rT-cGO$v%*g07+2x+3BRRjx6?4 zf{iM!>0rlLQk@58ALxuL9>(d$Vhm<81diSvbw7Uy#6*mInKOMEZ5!%sipxwjht|T3md@dxbf=<_O_Q#>}{(m!%w3 zJy*toZ&u?}>XP^dyd4hOEOwG)R}V6-x19~%w{%0523nbNl3K9x-8P^hs6&MxfT2|Y z1Qed^i}`Ev@qO_iIogB$jBqVwI>FWTU&`46IBY9;Kg}0mDbeaSYq8{D9$9Uy)aD`@ z@ee?AX2enV{%5jKqyX)0xg{v#pg`&Ql7cptHkKw~6vC>k>aXZy)CUY%3Xi3aR-Khx zv?_H068pxPQ)ZuN7WFv(VB3oBpZAlq>y!DhOKe1Q!nXVj5H-wdSn@MQw4jIEt@lyl zCUf}i+_|oZ1?Wi)@_qmgJa%@_Nzr-OGBvTwo~pq4`m3=0*j@j4y_c(R?TA3(ZtHS? zhlRyK-nLEmzw$OuswTin7TxRc|8Sny6OWMAu4H&~n^?I>hdCT~iaJjLY5+|!(b|#=7rdvN zylcH5hADMs4WIHx`FfKwnVJNb7rg}bYZdvSz!Q~uy+h`-%Kw7z%-{Qu)TJkb-kLK^=6!RVP?}89sfh-k^ij}?nxh7nlcIC`m6aJe^SPlN@W##OM#fYMijr?D?Mp*cNVTSDgEH# zIst`^(HjTXLOktRDvqcbjDtGiRnV#(bz#YT_QVq6&D9;wF#U|Dz^}Hmy`{{#fZ|d@ zF>(M)Dm?ak^E6f|7cF`qDnc3kp7gS0%bYpwc%rm_`>JG2Ux-2g5}weF9&4 zavs;r$SfB9?JZ&0c2pvZ$qGvA@P#?{v8Y_=d+K<$%h%b1_owKhQvS2#T4(8`n=cR(;WIA>?FP?Hi$rN( ztd0O(_3ws^IJGP)QTK#+$4| zOf4P4+MfY<<<|99n6Z-({yKOy^MpZ}7tLgdWJm5){0XBx5Z9Iq5olD0M3wF?%aWt* z_vN531k1pTbd;P+2pNwj(DLk*l^iZT|AAgnXDP9kb}A30Df?%1)_>t z4$h@m^pV|!B77HB#@dF zWCRb_WLOi7#hHGSu>=TF&}>9?yybJ*RT3y)GX|S z2oVIbf2)o(52tYKKm4>r?oG3P-<;gtYt_6!8MsH`+Itz|=Byat-raJUMu#uSE+uk)m$=5cQ z@2kgYe>^+RyUiU!d>2<_DDp7J-cYrEG#}uR!@iM!=NuFoL)jgesMBrH8I2tr3-r;g zgY=uysjY@Zd{WjW+c_}c3x7nf@`^KE()n$l{%q&~`V1*P_3;?<*$WSNw@)g}eE-X6 zDaClZy$>(WI8#)3E~(~M@&4+%nTay4V0fgpA;}z1qtS7Ppl_(f;x6+h%B^YlqoU{1 z#~!l9B=dPkSOYrx-|vo&IU*>JM~iu}-(qOxYX9Nkn@Z&LUUd_J`c^AJYtNwAL`N?MBtT*n>Y9B+=x0~8ecZN*aJE9V@l{4A8ee=SK z_J!JG)CweKYAMJVM#Ma6|NO7|#Fo|qOx>ZIYHO0}7Gc#Gya6v|$Ui`YC#goOm#tK* z7du_wTI&mvuQ8$6XY0$$JU15!@_P_zcBP?oWCs@Y$mP3nQ~|KTQ!JNcRg)yJF|u9_ zNd__sVY>5NzBfv;+0C~0Ek{*4^~_1mcRs7)T*dS+msB)+%<)U1@m_ z5^(>RLW=mW%jsC^rt+kg72~wdK{>X?UO>6lYQ>-asVZs$3tBrY%Q-It2q(SwF;=>L z%x2lRzBEpABWdq{dG(g1X=3G$(FCeKAX+x!hz{>BZPLVjmr?Lbm-^@_snPk><{7d$ ztvcdoZP{?`(M2%Iv+)pt%5YFDZ)#azCkgsXr=itU``kYO3(E7sMs~l7+uvOSrS}6_?`Qm8Z%H*J zOAE;+%$=YZeM0S_{NYIvw_&>;K#JHBCE909;bfd;Q)lbN;lmjRbvzv=olJy+I1rk) zm}L9Y&!5af&B@F|pPW}H!^s1ZE(gLYN)W!P*7YMz4J~3*?<1}$Fs^7GQSxE4FB0^C z8eWNzEQ<5exD($iIb!^3$Ysl*FHY(pr&m>WC%vC!9K@4XV(D+ipV~E*d}E#4lSA|` z_SZc9Bee5e!gX!3r=DCje;H=d4ju*0p#xbgF$#HBmvXNSdcB=V@s7u0o(V0j*6mp+B9C0_|>M%oz-8D`J#tC^CBE|7Kuu_WLxY2^g=M&8ys|?>ML)` zy7TD4Gy+5W-EiS}_m2*ryK&X(6GTb3@?-P9mFK_perX)_Ehe)vE)T@&^(^wPPi0|$ zo_W4C-&^jRUBu?;#={jbuE3k2&k?OF`teJr3-I_sg0{tUs^dNAA7Hq7*P5Jt*W%5m zHn2y`9_lhOrdkOu8rBK);=%2HH{Elx((+@t z=|nr>IZ}cJAI#f*ytxsoTP&QBMO+*NajPWa3eSqg%z$0T+p!vHZw4j30H6|5{Y;#HO6r*f| z+afqz!Ga+}8?(@biyF)|_OuFrbH@^GMN41&5l2DdZRuw^5t}upADZDDm%x7D3wzazG39x2ePM}d$7M4tn9 zd>4Oe?`dS+vSn_R#__!H+yP20Hz%_JA8M#4Wo>SBMUhthxX~R3trmtL$(pANjG~JU z>q^;KHbwmvK9K%3#%PV{ZHq8l*&Z2Us|BK0%9oF}2@o4*@62-Rp{mOOA2% zsr|t`m%T!i>3Tb&IaM}rnE_?2gE^=kglWc{Do^t5kg&^ZVPCEBbWc^gC8m-^?MOA% zq=j-92szdj5@69KD&JIO&LhP4hPa~N>;)(8D6^u2&w7tzDCd#xl5GHejTzMbdjbZ7 zDrou%EZQpg0AJ?0CN0hV{)bWJJ7AwBGGds6PHi_M3%qx|$#*iN z-<>Mi?sqM@>ZMV9l%2})dQ2~&v`!HfV2bS$|9k&Tcp10uvsZjA#3()00_*}q-1etlE;DnK)ZKL!Y4JF6qS(k$|F{FoWOVw40*g80!)%7k{l7k8%q)j1cp zL{6D2x&c&df6{Gr)Fi~8<`t^0ZqJn259`qC3Ua7F`b~@__wFNTt7^cW_P7k6hz$y6 zkpSW-bKBp9sjoCI36#X>2{A+zDQ{U0tTBA=*<$&@(nL${qcs&+N11DR4k|J3Pqg*l z#k$cFhwO%5R{EUXILuueeDiHP@fqay25ErlP3xKpag|5stNer!o`rrw)0TBm+T<<0 z6kOp;Q+Ba#01kjeG_@j!goToqIiG=vzhhAW1`LG`0I}UMdf&Iy88s{us_MC5{RA8( zt%#B$#!`UKrB4{;aA10{L$ki9lUZ6n@bibjPw`~uBjC76+lJqy7Kd%Qm)iouneiX^qkuB zK8HqLuRaKY2v5&DKni^pLb^qScVdZwt*OmWfX^w%V*6db%=SB;($?~6^@}Lizagy@jD{z zC2HwFa%cVImUAwMF0<@Ez@m|3DDHZ#^9K>Zk82|SLZs<(xM{!Y`N`5Ft11hcTjKMR zE!j`ElPwr%k=Y2vkN60qe}LD?mG1uEXr5xfA(#Vqw!}l~o~G8%2}cp4o1JZ2RRod+ z(PYuuNj+^@R#6e}g!lOOicyi|I;y7WN8qLjxoo44L%M?!`sdFi3^Q4;uX(=4Uhhlk zTvTeb^gbFRf`H$J*@!Z8y`2u5B6swdjs4T8KAA!Gk#-gdmhF{}{&t7>)mq}Z+ZS4C?D0p zS~(uW^PWCI=wrCy%LkM&-%zx>!GmnT9n(|KsW?^I^#XLnoROocP)LJ~Oo`P0xAd;& zUB085E}DEVQ-Np8k^IOi7$N|NepY_#$7Cuf-2-V**@qCH$d&)FlPaMni;z0#U*S1>R9Ky!j0`VGyaN>lXv%Xvw-|Kc;t(dhY| z%mk`~>rVneAl?K_Ckrt14JzzhWT5nbXU41tbxC?|fT*-_&G!rl#(xQnbI48UpI%=2 z^}thF{`RE+idN9GXsj;6-j4GAbQ^3Ms~*7c4^W|PNS7EG;fV3ItAh&QqosI06`oSe z?mZ0L)1P%HrhLYSj$ZGtZ-CbwrqU*6V3+m=N}q<+Lssx&0-2}iOV$DQW`9vph3Au- zK#Pk5EAWwsQ9h;o?XtJF^B{CXAR=`!#qMna^Udk&XQOScgw-Lsjx;F&tnIk*4$%!C zxu>#{R@lhfV!MBU4#)-1daPET&>b*sy0)LYapuM#y|m)whiCjrV$BduO_@3oz@pPg z{YoU_@4%{qtLnZM1|r(Fs?u3k*YGFnCG8L4d{c1rF^k%Hep!;7oc5YmX#>r0A3^=x zxN-%Xg=;98HPNrHG#PM6=m)rE_;wQ&+X_`j{qOy?Y{|)I^aj6WZcaUYVJ;fl_!=!~ zVrKCkw9ZD|i>jz+z=OotmIyW1Zs}=TsLUEF0@5k?9MEuVzEFUETvWHPF`%-iKee*c zNs72@rz_>@{9~4=(8}+oxy1m(2l$8Kd~!be&a%I(H}tW5tF5ELAoa?XkVPd z7G{5q)T-k=GxLU!`zS{!j1|2gV(K0d6TvNw8}*oY(Fw+Hj5#k;?do{9j>uouaO+SV z(WwDnerW;kuBrS=;2i?3L6#fz05=t2k8%cpSB~!UsjMO!rxqkpDi2bovAt7^Heqs{d&?-$p}5 zsaz&UgbSLX_5JWZ#Aa!BH}{~XvdBAXPso!T2AYkPW2l*zz*lV4h~;a3(U~_{zrbye zGu;aX>2rW(d%k(o#;JN&rMc-1aX(qiou00rs7O+|;+(YAK(i}xH;v?xfcFMCPApEI zX|oi)mTe3HO)$2XKwb*1FXbuP(k=JURy*?dz}qO_y;uRHcPdI;$oS$T!>-M^P#@kO zBO>RdnM)gG@?C9`6H@;G&$xj#f!~d`WyjX+-lI5kLt5gJr1Sg3!jA0&iX! z8^h-M+pBJX6S^2vKN@*dux&(+{_v)M-CXVI^@T?Aiv5JN<9QXIriV0s^5DpDe2Jwo z;8f94xm-G^J-&@%LVow!5l?TqTTi7``}@nybPAEO@$0k5@qObdSkGTHOLDwr)a$*A z$~1oYhV0hJ5@vOc-SM;jwND{mex$dYYg5EmX@P!Mk->4JKJpwy)qGkC8}7y3*1qLQ zb@g-&bb=awnI2y6hwwN`Pw^n=m-zNO8_s z)E`|~{_qTRTE)1hoIU(&KuIW|D>Jf=2!7SRCh$)AZXVfK11a8D-qE(noH|m; z@b)&(xw`RDJz1YB8@f7+75tKX2sJ=qcQH-l%*Xu_6g96L{R{-Nt{8ka3dUzbb&fMS zkVrUmb1ABmu`aXHHEeP)o;{{&i<{Q&Gu`(IxvJuT%XDLNo=^s28HoI9rqvr&7z_w6 zezMI0k_rQNUnbu{N-q8a3k>TJ6&r1R4Lrq@p{o!5<`Div8N&?soQ9QQ`FpP2C(m9a zl_t0<-d)JsZkyp&ZE&3>u(h`aond9Z^3em%1Fn0DwJ$J|^n4LX?}`~l!mlwdx}mYx zi8-BO01wD68j?w2{WFB?MqUkTK?TNs&i|z!Gvj|mGY@*__o+sscJ5KZp$Yfn1Yvm| z6Di(B9nSV1|H<{im6=UxkctK}`!x^nW^?Nmp^OANPaaN%>x)oLEOfDz`S|cL8WM%2 z3PDV~&|k+}<2kFUoa15u*R+d|5ujJoenu~+e`_v1qVDJqwm*?Q^tO@3N^I>v!!N<# zonEO6KPk(P5dLmWFdX?D)n}5yzU}8-YTYErUc?i6Wg)O>Uyd6nArhyX(sxfWA1N$p zU7&sZAk}vwNn;{LLi;S1b~O=u!#hTom4~wq;^V!h+aTg`Qi^#kCG$B(8p*F>!|W{VB8+l--g znceIdCxeRYdZ)u`DN?5WJXOSp&r~ZZo@8tzW_ta+kUP&uS8a2hT8Tt(GX={rrZT#h z%RsKJ0j6?fE~;7ZA|EbMl(6K(nb*H zPgASLO!DPN616@ocU1CeTD8O8dcX~pm?)uW32kttbLME*1eNdd0@C{ zn7=^=4Ak6B+#n~wz9TChd+WqGWhC;Xz^`7o12u@QzDVzS8CSfE%C}Ca-#Nwp3MqL# zwrPEtg&Co|3}&<1Y;W&Hp$QJ~i`%)Iul2ibH-Nbgmr&}|b4L}qU-IJ85IW7^)59Su z)5Sl$A&~+2`##%oB0+*0%PzXKqevWW++@_n1c}#+e}JA{Ci*0Y3Jamn`=L&&PBIRH zt_$;10~kjd*A%=H+R(z+1^-GxAL7gXM|yrrStkT8CZ_@HK10*oz6B z*{VHE7n0C==Jx;&R94q{l7qFTif44IxZ;3I)vix1FZc($#U~^dkQ<g7!kHbmTF=@*@Gj`g4&1goZ<7WLwTe`@F&5$eZZL2R+THRHH-GXAB%%Y zU20e8Z`MbF%4JcaxqzLlP)QQB-C#^x3B=rAPMk7A~2Dxed%n1+xR-!!88U(?O zp2t7@xLNi3@Du|nFCSdrw7Ns*qXaM(e*DT zx(OdycoEle8t`o;d%8s#*P6?=lLmS-(Xi`5*h}H-jIbwe zgksI}7e8z4KMj%OlO>)$tw5z zJAz+_$Y=p1QJ0M#B{xOj5877kqe3oZOBCCNRQQ5h&KFg}z^771clPC8n$TA=;5)Cp z&G4x9kAbvWK8j-lt-$2dHEMYEv5TNTwy))PH_;lax&vwm1-+TCPw*6fV z7msZU#zH%WvpG51h_U!-;N^5ue6EvyFp;bTy^QebpJyk!d}$&BWp&hN5m=`bU2k$4 zs}pQp=R#%24B2;9sZELUfc%=nO)%*7fL{$fTv74k)_5D1k^7!bt7p7q_H3-b(CcMa zJet#?iaXNtswE}J5F*LmrAX8U3UfV{~z# z%W9w4$Mlj?WWfItHIhp19i5K&%NR?fI59iIV*|W0zhZ>To_x016kZs!9cU?06fB_r z#^*97WFnxUf}xDR2J`cHR+RX3a+ARS6LIi=A_!G23F^P1kBipF1+TFbw;N!k=lw1y zhhsb+05+R&^-Z%Ke6@o1C|J(M^uE;1agW4`sx~Pg10tDNmH3SVCk$sVa0kv_TY+%l zx(inCU53UBv6ls-Ol@8Z-dW0h;2IAt#dytUi-G)0aS`tDa+DG;e> z`wRB*T({wfIYSmbo%6Y>%{w-zZguj^N2sh|jT$@n*`Q`LYd-QPejmS|rh7>(ZGQXF!mdNnp zj!%6@njBvnX-1;q<+iCRE56^@$`yCODBsx z?L*Ud*Lc>c3XI~8A^`KKfBsrp`Uya|x2yg8;(_sToRy6zTZr6eDos+#%QByxk?jIj zL7)oAFUVgOd&S6~KfneMu$G}gk6%j&5=-68ehUJEvP;K2a|#jWAd^O;_SDlnsK8eH zCd`}`FBk_$%3rx+A-(uz1ScFUEkNB&;o3*)Q61_?z07bvMvRj37)W~i=`J)kPtAxc zp%PosRnm2+{>fH-8d+JJ+wf`n!n=l26Fmei(X$%+se_5B~w}- zy`vArJ8Gg+9IOlc@KxQR+4Q?}{QN?IMrtsGRStALuj|JRSA;PdaBN})T#c51+q0g! zlI(RJ3FZqfmQHuaSG6Bu-WDp^Cc%NEssk$E3vqH0rFh{zbLJA$(3ja_EGyjWA*5{e z@f}Y)W4miQ{8FX}*SNtp5tcq(-sm@lsfEjZO^6!@*Y#xKw5^g<)wsTrDRT1lft)SF z_XwQ|uV9{*<`=z_S(NTVzkNz?pO9ZjK{VfY&q`_!K4X3xU~$-=kq}5amH#YL;f07X z_#!jVWZIcT3|-I=kjJJfsFZYN&}m8c{MDikF*?)a&d`$cIiRTHDz-aEp*YIOysa_* zV_97a9-LgTap_jGKv@4VvI+k>^C3+qAJ`rvuR(mj;d&3vy)#qWw=Lqk8A|1>1Wcgw zrrBOKrdku0OCn75&9456OrR!e$-QY2M$t(;!ee+FyEorp zwsNTT4vQX<9(dgRqAxkG!i5g*CL zubuSsN0y*D5bfHkP+{uZCP~Qe4I-L@$$*AgnOCZnBNEJ-c`}|JKA@ZmT^$Jr9?Sx< z?u~HJZE4gAJq1W9fUz!@y4xO>f@s(L#e0DCepu$QF+D8!; zmvcCmajNn}9eaBiN#7et4%{(V4+XJ`2Ja*&<02ftMDA!{U8d3*iyaa-O1lnK$urTJ z=L#>%HTf^jc;Vi7&$@T9-wvpPk}PM$0GIhB6kR{?vXnuySEAv5G&x?HGXsAPe(Hpw z=u8E80uuN*wqedkh9<}=Yl%;K_LS|oUDD#-y}y#?GCt^s+a1_R-4fJr+}QMKO;5(z zmU;xMl!8_*$()8NWJPmQW#38t*Ya%)E*S!7feIedV|k` zbHer&WA0@J-tlF%;siR{usC6R^sK(bzh{Qo4~m8>KzwUWOQ$CA}%7uBcWk)3~5>qHG>7e zpI@{_14Gw7&3wR@%+Y6LAWpZltjfbPl0$g*wc>=>MCL4rJ7AFf#AXOV*1zn+0N%20|HC)dBlKQYcL!$D}S|o==xceAAt-> zG*yz#<`(V2eP3?(nFuU4q|r>C?RdFVvhqjZ zUKS#*Jtw|Iv#n6iFF!IIzW5#8qaw6MbE>o;7upHCMF$x)8d$d~R$F8(cFLQ>>!u2eFfMOc`R^b@40Id-Z7)ev)J2EFavrO1wI z7!e224TvX`v8G;K-Fv|;fQdv%W?HND4ZGB9j5rs_xytq;>PpJvmvq1e8KZs8s8j*o zqDkJ*DW>#AWx5Lz!?gxqs&h=cS;byHxGI#|Xpwe2HhIRi%HeM0Ra5rn)wO2zUXZm3 zV5xO)!s31MaKs6(xtV;K<G|wLl5bi_x-QE_gcsPFyAMRV}8&5+}CxUfMUKUfrqQd3A9HUTGBRR)vu`# zkHz_+Ui85qnnmT%!>iJ!n$Bg}s#%{k(qFr(R}w*k+>GrlixhLDu_zv?)YL_tF0xf+ zh_8Ne2D4c7w_RcDe2vGtk6o4FLZ=v`mLu1*-+W3-Hmx-Ie05EjKqBGp+qZtg+}PTx zG*D+5%KYv7Nm^0qo_|-qs@~<=ZiVqxf)Xyknj|ZFQ|A|>XKyKoLP;A9P*Q(kg*@yW zQ!Dw1a*;owa5vdC_H2Ck+0)wKan#(Bvp*PkhOncJjuMU$S~S9<>W`egG}|&TPVmv$*W^`z441QlX~8 zVvn%ze(UfYzAyhjVD0}AiG-3=xheT$to7PR4PUx;eSLfPq9T(Qu{|;+W56}!Px_l+ z&mVuroM!3Gk%*XawD%A%DLNP>UuXhdY#_~eebRLk9wogGWS>M@~jO^pz10(>kF*g=<<)kMa$#^V#?4ynTRBF({Tnue`r%xoqTdPE&nDn{p z4MWrQ_<2^bF5RZz=K=B~!Pg}W@E!tf^P&lj9!5>20VumAz6+9Z=f*zh~!hLvB)3Sr2wbw*bDVmd(*jrxe z@Zh%m>$Na@SZrX2jaCKvv}0*PMq|J z=gt{_O>yo$Pwk^0fow3SuU{n!6Q;Z@y>H24^o^aH#k*U;a5FB(&v_G6szqv}g5SU%H;Tkc1{tMtJ^~U{*>Sax3OGVo#bh zWURs6O}{>&Q;DbvI`t|q=Q~4w^`3vh1!et+meyCDwEVAo?=$OvyFH=v?r0TptC~)F z7_a#uoJhLl7Z5ma|A7~#Hl>}|8M1FKx3J4+vcNT%Y9T9jY=(QQ*&95)TKN7coS~D` zHX?V_n3v0~9p zUWkeZd`b}R`J3#HSGeKgXW7#J_x9sx=>8qsPxhCXkmio~|GV$~|8*VNUt_U#Exo8f z)keDrXQ`?4%uR}tLzDfVU`-@H2^1~ey9#ES<`q_bZ^b=0k*{cVL;91N8sUAPCuQn< zc^Uk?Dv8natH~0P2XNq&C+LbiF)#2uGh@4mv$6u}h*&sJ3=bw`YW9yuGO!{0*1qj2GcGhbap5L?lh;m<)$eHyXIwidJl)Hk2x= zS=ShxKN+H<3&6U1BX#wvbl(SLH<9-ujw36Fg@JPzIq7L<=sX1Fk}eHl^~+oC01_^! zFtRq(X!s?tSCHPH^oCs&s3QBJ( zWF1?QJ%2qVma0i%sj2Wd@eR8wg}z9Bn_cc8%^(&5yBjzb;Fyf}+a7pSob0A^;AMyS zXxBl#TpaFE7ZPt&pEy{X%zyV@Cs-HB(nOA{r8#nPVBc+0*Dd5d55es++OxlUe&f5q z)~IOBxl=d1KImw$Sh`uh^e|3Dew#lRuVuUZ;=S;J@8qer>t z4nEfQ^Tf>kBBM1JM_i5&rUw3!`z3%|7-Jx&c$8HFr~8OpBp$SAm^RpB6w#w0;)A4r z53J9^ADUtjR+{@U*5&CJ9{WB=Hn819G*L=7pum(^26-j_nU*X*0=3GTYRSkce`Ozm349Q=T`Qd9m)({7w3lMuwC+S~<3vmA|hrzSUUMns8{Tb(Ak1&A5;`ox2|l8aq#Q5s)WNpem9|y65b_Gd!U^Hj7f0 zl(*wHKeoOb;)D}x(`bQfe^C~#?shLaxG4oYr(Uoftgk7T>Ua3e$!~O+AIwtq4=HoV zsNtXYiXBhaaBjAVUkwHs-%9(Moynn0dwvxvjEWRt4%Lo0fj?V0Z=gp~jBSh;N1baU z*EjG*AKpMW6w#6(D%r%oc+5e<-kv$ezdxGpYXA!G#;Q3mp1Dek((A?7m2e5#oBj3Z zL^hP|rw?%|-f>zJncYOi;xSZDW&%zDH`~>LIWA9@s*71QV|dDr^4kVJ<|h3pVykB> z`kez#l@+BUiqM_lMn^qt$vj@Qv25FsxI~1YUxuv3zXdmhJQX^&Xnc~H4mh?-a8+lu zasj0Wnxd#Wf_OXiesAkXF}&3d3B-8EY1 z@HScG(LGz#xxAUq@-<$4XkHH(nR25pB@8~jbd`H_c)yO6J6vD!l`r(E4h(`}lm3$XkGK7$MvbdlW~kA1Ds`G#{)sO(-#U z57G_V>vb7Vv9*=HiPITCfku153~0?J%e9T#Y>)X4;_h+sf!8dFU75jNyGGk>PGW|t zB0v13+&LOKvcGxt4*9LP&HpSIaHseP$?0U=@{18rWl5Q+B+p2+yxV{KwkrI#OHV}K zQ4hZ?Ckj&!LrofgCW)`AGYB#TJZ#R zOZ9Vp+RHQ36EO0TJ8n2ypa;VJyz`*;DO||uaqC|(retxZaD186wm@eTUu5el+xYr5 zeTh$T&aa({U@7)1WKjts0w&=^sw2UD7V**h8VX!V37Z~C;NPz;5IXK3WUBwzKeTLy zCR@D+XP7eESJjK4;J3YJusSwS5<+nLf!Md;9VvHd!=CqkHf&?EEe+yFU3CliBHJ%- zN-o#%zyHU9Thi}p5I{RR70CSy9VWL=`>}c!>rpP$nXyh<-V}p9A1_&}Di4fEr4An^c4K*6uOsTErc%aNGGg@5Q(NCLmLe7?LMyAoU)^)l1BGN7*){b%aQjE-& z9G;VdGpjuQ7|J4pyd+sNpSrmkr;vNlARCLQ&}2gT>e9&xuKZ~axIuP+ z61gV%4`5;&ds9+7xN8PRd9-=h7cRY+vfwv)-^gv56l`sFe4sA7%-GZH0_xl~YBw}F z8^oby%&8 zT^PG?=f`lZcgg~S?CJ*R*d-Dqv>UWBe%>gjoVic}g}hvUK={@c9Vgh?dDFl$lCby4 zmEut{7!ec9f*w2Wc@Su7%~;K?Owdc{7Z53aM}mX9%G9^n#J6w-be%dTeXyB{Z`jDWGCBD|ug$AwcNKvi?X!<>CFLDrrZS;lC zvTP=z7@C#!hn8@|qy!7HKhx%Cx*T%xOic~Ve0gpho>$A?-u6atJdJY)Le*u)G7$(_ zi(8am@jK$#;Q7)K+4On(3p{Lu1bvwCZMP_QJY!S+?NO>l$FHXJzVZx}bqDh7juvAy zro1@0o(VbUT7=_c z2dA26Y%d(naC*p})W+P2Ltd6emYK~O_hpUB^A4m;gt|Yvq85%+j^(v9lpc1u|L$y? zjcgb&QDq$#j!9NbilcJj_hY?~%D8cF3BaVqz+_&f?z+sPv-V^cEL$P>$t@8VWw9an zNTY=t!YQb}@R~UgZQCKh<^O;nF8SN|NsMd5f8{X*^cG#cf*@Neh5ab)at3}%_-J>P zEn5drua>dSDzoihs*!Y%oq~?)uzW?wte2pydI3NyG z_QDv@ytpS1hNb@=S*ID27|vuSt4}pwUH+W>*7s`{pRHGPp$}NJs`C%9qkFbWUFO%= z$ne$5Zh>?8AHXJrWXCA7r3h{|FYi-qG*sU8Qe)XxPJl*s2aF4AGv zDU^7TlA3(Z^_u0<;@R0U*(Pe8ut@0nN~^B@KBiwpalxmy#@`fp!Ix+MeScp6!{w9$&|P;IP4*=y{$1*1Tmg^atKrYxK`tm< zlbXq3T3LHC`MU89JDV6+{zYR58roGvEVi>-$0T*zZ++Ued-oN(=0FMO*)oC(o%}g`^-3RzbMG&m8E<# z!m#x5F-d9LjX(|zm8L5MmFByzGez+M(<7xCNL(zOtG{ZaSO)B% zAT6L#PmHpz26iNzszYAyk=$fOvkO~V6cdDfnnBZ`Df&tm(zC9(vlR$4U0`Z#6-Z7=r@N#SsD& z1)6gl+Xd{e;Wb`=-I2{$r2=zXoQ(!$Oim~7e~m`F`qO$QutaW%zn~~bR@-PCb7_63 zs5*YyUT8|^K_~xWQ$Tj{A7J_)fMBZa*P^p-X}#X%iDT*C_z6_b#H1>lp6IDEeJthp z7ado5_Xn{lv-z$Jg)G9%dS2%BaMFRhu+l`Lf*Y0YI@eIEd0|AQ1BZIyy3O~|jP|Lj z3WLQr^$#~;H&gd4ynp3wE1z)Ef2=+nOd-cQWQ*vLEv_YtThv%mE1o8L?1B_K;4DuE zSAHLmVqq&Alb0Ztn8L?G5*#t$Zv(Sr0;q-=y2hM{^SzZnOx9RsX^o zVofpxF~)=sP))GXlkQi0M(+Xq%CYZX1MyXQ9^LLniSb@pimm~P?0D@4QPPqZhc_9>+b5$#^Y#f6Yl7WxPAW3_m~P0- zs=2rcLI|X8zQv9&#{M1S=j#4m&kCzXU>e~B`)043o;N)IA-%p$)Z5D8s{VHo_bv3I zc<$v=*2iK+p7H|B<;)yut23Kj%oP#mL3Y#}rXaeE*Xgz@$^Y>q`8T6^3vIdtC9#!l zrfoJv8Ki>0v3zTyaDC*=B^p$Dx_c#ZQw!ZNw1t)=&B)E_Sjf`Nx8Sj0CHi0Gy}?uy z0iKV)LdTLRA^H58M)X=gQW|BP?h78Kys~h8y9<(d(~oYWj>kXx>4yf&x~zuK8th&D zY5LP)Ab^Z-6G-hHrlCQUw!B2s@&bKjocQWucS(Oh*l7rvE-qP^?t|d#P7t|?J5Z6b z6?|3|BE?;uCXYF5kR6GYuszQjnj<%o zKe_||wnsIkH&W(YVlY_F| zUhFm%V!u8IJc9iLkgW2%=Pt4?JZn`oei)$5&pu%c`O};t#06dM z=#)!rU%)fTk|SwRe#eKq0-3HpbSg*yv$^mr33KWH!Ae#QoX9uTH+c0rZedA1HD01p z&=t2ujorhW!N?h3{%H7TFdo{@?txh1Yf;6%meV!U_5eN8_5-$pq_Ds0!UtnpIsSS) zu^Sy)uM#~YujahE$FEro*4u!d0NnRg{+OMS69eUEf5Ejjgj11>K~6V2T{QMn$N`-0 zQ_J|_@e6>w+q2$mxkr?z*$GvKLLoqhsS+_r6ikXl1oRigq#DOVmPS4gmg4r9#P5T1u zJ?L}7`(68&kk~*gb2DX*-_N}Xq`?S0^u8tbl?d%5oZm4h%~^~kO-}48WGsgAbuHbc zg!&`jp>_RH%X%T@RJkZ9m~z>^&XNNZcUGQ%?|_8oLnA|fnf z{h-zEwGXg%XYBQXE}5n4Y(ucJr0& z2a4Bgb=c^O)lSE<%d0qc8oNuZs`a1Z?b`{9kgO9RvbLcnjg-{>7~ivF!Gx@yv;vxF zcJVt|sr&T8HhHfmWVWGuGvS0MyX_e8yj&h@J7ZMYO2^1M7}%sh3iRmhvb1&h3yvbbMKwQ^X-@N zo?|i%kD)qxK77lwZ+#%leMBcQEM7bP3bIABd9T@7rNIU$ji@NIQ@&UR!j5y?w9M|v*Q z(Bc?^9q{JPm~wbAc!YcF15)-0|CAxhBk_&2o0(v&$V7mGW1%eL4_;*Avlgiz(lR{a z_wyp^_ZNCE(6H6}1D~sW z8fDs&e3}T2z5+JcMNx1yDluBhc8wI@6#tx9D?l5j?Y%Q!``Q;?Xf)RbA z{k5db7VqpmGGd>$`lu1EUbvS|>ft4M)Qpx!4MRf7>dzif$Q1})nXOfWmPY&#oBqjC{pxYl zlo>%CDtm_OlcY_$M&y86cWs)+8v=KaWqJ?r>Tse_YxJC03V2*K+3hmGH?T}5r#T>` zyOjZmZRZNQl-L9Nnu!XWQ1~*?MPzOllq0@hfN1O`;-_v~pV;ly1G!tjKe`(Yz2^k8 z!l1D(8KQ0@yG^zwXu&lTn=94Yl+K4&tjUpBZ-bF&WnRU;)z8Nf6J(Qt6y+yApLlt5 zrVcZfmFp6jsl3<*u>tKELB04cOk%B`G)hF~`3YMBb22gQX}_`Xt&Y-khk-IXb?*#a zxGep21EadMswKPFfsZBXq_FugkqW)P661O3=?ho;T=S#&sm({T7uj{7V=M8CK|dbO zV`7j>)OzPXfYn6lIt>473{xr=C;NfyzM1A);%uej1W(3xrvx-Z?MSt%&;}aP;7+4B z?XzlhDv}~*s#H|h68(2YuQe)AxDZ`wQak2pM^sBL%6-R=@Ufa9xSS`Q^`TO7xl?Uf z0A^WK&;6CONMpi;=^4pTGLb8#Vskrs;R5J0TaN~?`mO4{gho+cvpmPBvZ}fWI?u@u zwY-v_m4i03XNqT2;&IODug4Y?w5E?A0_ADlXUn`W+pAba2bi=Z@5!4>jBW)DCa$TZ zq|AgpTmI0k(pj4 zao{_}6=}b_n#R#;$-tZ<(-Og%a6Uyhj4_K;*BinhJ=q}h2OYWoEtm%VYC)dW$LQC) z@G=$P#|jo${A2oW(0}B^1nbm&*v*;)J+R z2EILcRw8$1F!6Hzug8~A#tl@l;DI;-9!wP|8NGTO`Ovq;-F-if@4}|pDI$hR1%3>$ zEd#HM!Q;N>1xE=&t>~nOnePjoz6XMTnKCq5*Cg}dn!q22oWHo4js!W}T&<@^0K3f| zr3DBrhUBGqJk=eL2s`_UX&d&(UO$bEjU5xtJticQ-09|F_nx4QiMm5A&gbliQYlF^onn9~Z;1VTKD9i91dA97m%873mhx?ZT@c1R4=eO; zM@nUL#G)&S;m-U%KKG42gtps%_dMnaux*M4n?GNIoxNL0f+Y$P0yP=qcs^Ywt3dmN zJp5us%7QJ!60#uEmjoxOZ0pONgMv>Dc56k*063Nv?=(O-2p!aP3`U!?Q@%GxiJarM z{!q`M1IG%-lO`5x-1T7Z8GaYIc&mUmQ{_eCBjlfRdnru_Vr4J=oKvjPVZYjH@)1K+ z2lM!T4AezUYgJy~?T{bxIhuAgxZ~g!_TE9(e&ackg-gT^ z^+6K;+gdBwdq#l&VMtx(7P4TThxu^o%QV7H1Z`~t8=b5j&cjV%RY4-QCzRx9<$Q#Y zui}aR`xFJz^aD()Oz zX4)CPMF=w|^^xaf@Xj*D-(mQly~1A#8a%voUe?c zc{$54{i(@_H;_PBTEVf;o(_Mxfb*`8`cBnX{^H=Krc(NFfGWd}C_%AE9Pa8HzBb=+ zWyJjYw9LlPun}sNI1;RD)too2gss+q&nDtf!<-k?W2)yx1W zkM??xc2Oe+rpZ_NsRe6SxeZI{eM*Y{T(r}PlSH9N+e0E3D!6~FCZ#_xY-nd9WxGGQmQ#EzH4s~t-}mp!KJ^EA-BD#lt<7@mZd*H`6m7O zOK-O6aFB$LmeCJ;R?DH6Q&N^92myh25&hNi4Tn7fijJpl$EHVd4onp!`d7(!e*@NQ zudhlDMLYjOS({c!k|O$UGIsbM}S%gOQIje^2>97Q2K@u)d0R~joF0Zyza(a zl;q{+<^P9!^H@_c9g~x#fVL4}?2w~Mcteu02|oPuz5A0oNpC1FAccC1t5)?huDA}{ zgEIOUq|^p1cfxv7-e4!T;#vB34yopXi6X>>_3TShPhM7{g+#^(23k{RoEAauDyC6g3E|ByOOPwaE4W()n)wUE`qR>~`1f z$8x7WSu2|2X}kC}jNdTy-u>w{inZDNi6 z=5E8<49`oc@7H9ezC$6^;Fk&>VP=Q7{AP=6pM~QnROY~r6^#~mWu=jf5ifo$tj|n; zo|!Rq@F_R4pE_Mw=x^70{k8I$8ZIzC$Pxu=^D!erWuEP!t|iib@3Y1La_8f2@zwV zGT0~h=4i0+v$O%b{4KdZ9FAnfNW$70i4V=$m%*5;1zwHjN5&d{MAoq1e2>~NfWXy5 z3@kaMb9#=nD@(?&Z z>lfTE+LPanwOe4DsosT2eE@%}6JfTunVJ_A=43*uMmOu~BZ%i)TSUh%)W+(2bk4=Z z?z(khhPFYcjglc%khWmP#rwn_J?I#=q3DagHgN_JABbMRQJF)YPMP!bx_qCF7y&2E z(zZ9Prdxe~;Je9bOzL(N?v$~A#U6p_gQ1YXc)!-pJg`(qehlD+X_nw@Dp>mh8|wn2 zIzIv3u^Nru3IfaLH(w0XH5;FR@;N~rM!$DjxWS=x@^RPgTUj(OnSHsf9&rZcs>>28K43gEwBRu1o_ z2EG%&+_>8CF!hNFRJUJ~mNJ>og0}8|;1Z-czq%9_O-esns1IOJ9Xy{_{Z1#glk>9- zxaP?}xB`#S2BUsFNPvDKW=q#(G$d5YePz^hohCb`zyP?U znA+6&YK4<1MSSKq)lAy9Oa`iCRuwh23DE867S*Ocmx15GhegH`r%K^4>sPCsIXetK zhJXG6K53n95%$6aoo{LApCYk|fTe*q>|MHtbjpoW)p1Uus*(8(4PRL8n)@E!E>{!2 zgXkfo%VeK4r8MO7S2jK^F3wF>fAhq77xw5xtx}*fe@C=Z@U?}CJQeP*g&9rQ!t`8* zO}c%)LAw)#$gPB*)yg5PqfqmPpz)7WX;8MeAA)Qah`ay5I1wlaSI&p%E!#AGV)wnm z=~=2zzfr@jL4J){`m1_DIWueOV|obNUZl@I4f^ z$IS7XWUKX)8EX(BQUnDSO}7uZjrqC} z^?{@_(R7C9fO`68pe8zVj#DOb^{V@F`TPeoqzK!Z;~$_pA~_()-!ZqIX9%nnJl1QQ z*uwudx6dul*Y0Ka+#SLvYqTdI6!bZ9K&E=tV?o)+jrB@EX#D-=lA<_Q*G94f%Mf^f z;&!ZXF}APfO5)cO;-@fEY0az-g}iT>fE-p#fnOSpTj*P$9;bKmWZpiFybR6qZc(V% zUsUR~%-yXI;+GWf3W&s4Vn+VgZuz@~EnB)x$IO-bZF&;vqMjcZch`r5Y8kyz86w|x zlLf2M+)8=Vd4zfjtPa5F?v{|%(x|AXS&3bn!beKO|z-Vqb9RRos&f@o+JnNU{6K|C-&7T=nMBE|-7Q-wP z&}{TKHZ4iJqajA7RoBewHAM^8gqru+cYYt;SX~Wd{Xf?~YjvlEji73WI z+2;23$Y+K_=U>U?MlASGFH1sr4N*r)Yjj=_#+W;y9PLzc1v+~SKC?lm!LDwNwN?iI z=kzG>8OU~2DzV6yOxN0$n^_@3{^UO(J)?5j4Xjce2<&uu-QXVogw z(>~&4m+#Kv&qy9QCyiRB_ELYW!p)1F5d}qV)$pFl4=+JsxZ}Sr_c0Qc>e)NxHORf$ zwrfD&+?x`2U60eUpeWo`LyE$xvO~+l+@p8|zOVOsw;9LyIYcVD;oFO#yc%9_CT}b@ z6rx^eP-0$b%*k^fn{3{wt6U+XA}q{YB6yII{#O5UHAArV6RzK<%v=RAz#`lN0z8)N zCJFtq>(X5~XJ+cApFymFRb5O@hOqC9W$J&;OQ6C)DHJSU7Q<189ng7ihUugnDd3lV zC9=)nHxhzDyG3ejIScNjQ4dK%753g>hjFWrw4c@_ZR=skvr;7~kd^alxKN~;!sYO; zQ7%s2uI9n|%=r9db^W*4Mth|lbxn*4qmrpl2ve7#z`R~@WIe>^?-l20|EX!hzmo6b zxDEbJ=^YC|*nfmr;l=jPVZ_PrVjd^<>S97!*eueJ9;uL9(C!0M;}30Ab-%q&MKT8T zn}Qv`$KM|eNOZVNn6MJU+>aMx`r^PBi^0PW(zSJDik439c{MT24W`Y4**|a@8uW&v zLu^`~Evq2bI0sBQmeFYCH<$qHuppOU9=kz3PdS)$^Es=gNqp~n-WF%RD9ZwEP$$9~95khv_bE~Bahw&pc zIp?;su1xc{-M5n1-p)dnB!dZ6<=%@w&g41H&FVjRJwrajgqo9@-Z(pr0J9Lov+K|R zb|g^N*gKoJg~9$1|AaL0-54j98}V-de}WF*;!wats`A=a(i$mR*~R6Ur7m05HGfH$ zwI>!=O@e;A)P0Gja>R@H{n&tB)nvrN-*UgSX9~zIF={3k(_3qTrDS zEF%@8D}xDMN`J!0uQ>kzt#+LAEexh;YCD_G)%(fvYJGb%yiF@6Hb5ok-BOk>Lh8q* z)oA}ez%O*1W=x~sXl`h*v4c5&AXW=%7+T`>@r1eRxd;B6*vE;lfgQn)00r57#dC4B-ktVm_hEi*D0$UIWK4#O0It{zEE51Cgz#4}9@IoUa# z&Ivlq;JPxU(HthIfoQ#`8aM>1N*7R+FAXSHBD#aBQHU-pOt+f2>c`gCJ~w*irIo55 z3%%LwTtUWS?I97)$z`eesm*B15m} zj~E?)KBx+k@yo4~pQUlyh%Y))4Rkrd#k?_8D!L-zoVBNzS%Kxr$z=IF>w`f_u{4*H z0(bv5&o|-A<&MG(;HL+mqQLXpXV0v)NTtrD>(}QgPdJD&Ze3RMa~qHySvdO;s{?jI z3~K!6Y2V%Z6!etl!dy*nPt)-HtEKt*zv7PDQd79GQoL4cr7ublF>)k3d1~dgh`I~P z+SgrWA_v!r1G_4SICri5>D~hVc1TqQ``0 zh7kY*@(X)MppOYt zlL1a~Zub!32M%=e^}__=!(mg%ovODYSJ_nszwcZS>F-+dww%XJq-yBCHD$1D6C_|` zn3GjjO*%HrtacShHG^(cw?CxllrkWnFYl8Jh*$`iqWq(42k*0ksFSJXR7fy{=QI#F zA$I893nr|#cl?Wd$ft{~T zKP0NiLE*NC*IvXJ%F)#6(S4`8YK#fD+HR$d4j*kIcY^jGN$)RTn92~Vt7MGr$|mS? z1U2JbQLgYj?(Zj&OUBfAc2HvJW~4tn11}{>3j5wm3VJA_LOy%V7amrXG9RshbtKjV zsO)Ko3{a1d*qOAmHE8*Dcu`Kgl&Ejy0AMUqo_ar7opGrdK7-lTs2Uj~i1r$+3)~Hd zlHY;*G*&jO{`A}K88suF{FA~Rwv#wc6WnVBO`xWbj1{io6rNiBc=;I87&Zet;PMfa&5r_EpG_99~&O0+)&2K>#cO>BCSkkUoBPOL(!~^ymr53re{{kn{ zlAgE<{}qd8auUq2*-vI+S|NCohC(+ttw*)ys9gq=j?`v-57^35QX73Uq>p688k6$N z5l%zUaTdy`c7+5pD{AgZH%>?In^(SqGt4t!=~ct#?U_u%6Jfz-k8o?nDbI(3b{$N# zd4yk5S`U9+z0Z*PF#m2k!vwPBWVOZr!Xv)TX*3V8%_+avqlyFb5uNdr8jC3@c zqbA2Qu{adp*ucRmKvV~a#Qo>R<}i`+8mG@3kWxA~AT{H75XM>YKCvF^?FSoDRUHc48crM@2sPSc zB7!E06#URMwi_Q-6b`u1nLDp0YZWGvVDK#`2TEz-D$7`pc#oD`#~{mn8BaI%{T)l) z+~s(Fkr7#`2{Z-}L6gO0G6|N@MXTJLT{qh3{WkY*FC6d$%crLy`}t!61&yRCqD3M( zzB?EE9#th%(OKw_wda*T#U?o~<8wv&J83+cqwB=z zr=Nrmwv}c{cKGMR?HRf=U!TahDu+RziQmET-#^t)DIYytU^#x@qdVDEo33SIs$`v^ z$91#_&Z};K4Ot3j4iiP7lgf>0mp?gIF$nV@SmlP9RO5y}V6wHJ#Dx^xGF_-VZE0iu zyEFWwKVQV_0Wl|EjSPdc;A~e*r zUdXNdqVT4NKjWzCn9x2$$gtuQjgIvo56$rUJgV${-JIvSQ6;QQfPd6snB?Q@ZiA=& zuCj+_`zY=92l|tOaNdK9Mc|=;u~}94L44#}W=qO;;>>WR-QEiXN#loU_ximteo&Tw zdPECv=L&DsZmwO8&9;7BeX?KPw-2v9BI&)Xsuh3I+;NUX7*~SN#CGd<1TYH->e#cP zbi;|~lWKu!*4QT_Ez&`)JvBm@1X|=WarVJn&|zxxcxAUxcZQ+QD=ZwTR2n2M;1cme z7{fO8jqW(ZGi-kQvT-Ht*~=Z^|1P=(a|RXa2G$u1J;OXrRNO z%4LMUXa&WeY3*Hb2-IRALC!TiBsn2=L>p9h{!)FZ;(0@3l8_^f)I8!`1CgWs&pMWv zn?|d-TkWb+AOiQ(*dGl7p2}WqXWY!MBDy3osVGkqjuO$4r|BAxWiDk-q1*P`2r05* zqm5u0G|6@sEtkY)MiR|=SBUguz^VMSWaDAG*p=87YkiIm@H*=V`7@20(GTFFCamJ{`Nyl78YY?wG*DX zp8Hghix)vsF_RA92{phQqgbBVAP7IbnOCp1KekE0ONTdFXf2w`+d^2cNLUj1)2!y2 zcul5wy&AV+mwJ{dn?0ocaWDXIy7bk7j_$B|bdLn~V70KpqkjO$RN(j0RIen_U;1(a zc;eXlLq7xbmZO`LLw=eR)qJgbQprjZtcMZbAAxQrr55`)rIA9;ZN-h~|{Ya7!VtuAj zr`+Ak3cs`(5mf6{&S&clL(FL+aktc~WB<6636r)7gQxqZ?BXw9E4y6n%^@ zHT;uX`LGt&f${!W_j8>mLJ+rnI@{ZnkH)Z>^JDOV(80LOGwU+ss#yz$=aiajJ}4eF zGqAD1(8YtKb6-e!^rHTJh=db1Ep(E*KRxIAVF2QK!pYZeK^+>xkwfR01f-dhZ9g_? z$oJd zIzMI4?hz&kshdAh%7opt!#{zQa;?kW^wuHb$}(5#oVptTan5go)26vokZep#@_yd( zbfbU&>3(X+%`jzA-PK2#1vD{&tLRnQj@JchaXfw0hMX$r^@9KSDeLrEanY!tX&SWd z@~j|Iip{4eIsc>S7nTtE=&)f`6K{>KhH(E$5@{U(~1Y$3c6ySSwEJrgy+`QI+H- zZmxG&{T~!w7^7HF%q?$pui?9hS%g8tdiza6N(@nrPq5nuoWx_DL5 zM3TJwH(g77@2@(pFqsRiN*HeCQrwR}bk-Cs47*nibi#yayN|w~ds^pVPg}CnrX|6# zEV`+G$Kr5PXsZ10-p*+^W~9U<^15HW{{4ke4qE+^q77c`z;7?1I`qqxCZ`tK+pYjc z=K11cLbi~(^Hb&p>8zq&113p#Y5YCNP7F(e9gIE6I(`DqLKKBt$Xx&JfflXCnJDfV zX*1;AR5ox;9(&wAmGk~6*Lld{d|UG+mDRQq*OALBviVNd)ABYQt-m3UOc}FK%Uw4K zQ>p?=WC@}RWQ-uJ;azii!`(~&KpEA@T#P4vmdH|ZSNls4q|7h3rAvh+JaNu8#_*10 z(i-gX1ZSD@;)SM7D>~Aubn9$TW%8a24T9G6zI!nv1F+K~6R@`Z6A>X}O>5Fvx@lMf z25K5a+csjwxSMPVvSq?yonRx-_vwq`5r=<(q;qDaik=FEw=6_(5?RKoBS-?;KHz0f zn9wtROBWt;>95fBvq5jE=}4pO%EHx|OMCS>S*3T!ZyVm_Wrc?dfTcO2nu{1%WE)!K ziAG=Ph{}Q6?p1wT@-PIM(oQhOO>bc3kolVN8}R)yaYWh+53^n*S!_HpZKLEc6?$!v zJNM71&6$m>p7N*LLdiqv;W~t%?sXKqhO-#MKIYHkj%1=qpP>d(+Ut4v0=2{c-I*#J zkKu6=Onn2gH9JI0HIArYBhv=k(&-jqF z%>kye_K+v>xq4GctbB4|Eb&wXu{Z#%KX95se=?I|WD>iFWDHbOEq|QV1j9hVY)CZU zd@5l4I>-N}1GBt|2^Lbv^5xmq0SFHy5m!+53INT2Vn0w$SNpOZ%Chd~+9|PFI-m6# z(Gv+ip?17jXAKt0J@~;vm;nZY_HL>#8;gev_fo2^wCjDm55Pl!!#-gnPQxmmTP^Lh z=cS1fbNIM)sR|40X9Xq$x%(n;lF9<)Yq2M0!byDmeb@n>NdN5w8E6*5#gxQu>!~Ap zow`(&u&W_En%8LkeLa6P-K)r+oo%zdJzo~=d%+&grROkSNaSirgVU`~#RZRfU(DMWQ+mjvH%UzIkG*PoIfW$6#aWTU}>iFU@`kJ-m7) z#f|?DP*C*`Fv8eW=PK`C+f@xj#r!&NP$6xH_v0E3^ZNWcv+*@w&3@zS>4<8{Y)LD( zeLz#bDhPOd)>6F0ArM@~=?2CDq>S|i^t)pMI_XJJMyN=18X)DwO1D=_zPowp3 z9&|Ugf9_3J9Jz6*c{wIZu$Hr4i3=6xjzXtP?)cHF_m!KFVD`VXMt8ed)3-$&Qaq2)GW0FsNd^e)n;h?qcQ=?&~}WO~$KU`OkH;ItYQImfBLA>ArJ zB}eVwDhcy2i8H%p3davT&j~LehO#t6tEqQBk(it~2zvF$F!0q>%eds*?RU(o@loDf zd^s~$mxF=VC^m2kCfE95r*L!@ZUSz?3dMN@xay-m-=Aw{x%@Su;x7|f0Ovc~O0&^e z2n>CcggKFcO8t|(BP2K!F0^D^m=QZSx>L0!v%49A!5;@V28iCP;TWu^%mhrnFoUD8 zIy%kJp|xj6Pwnw|WVGYQZ1I{s5(*x$BBm;gsuE%vUk&GC;Dom>xV{QVaLkvNxuE9s zqiBzT`o1G~|C8}NTL<7XpSMl(32%;y6c_(ER@ksbB3fV)Gn?rx8!Z*)z#6t~tWHHD*{NTw7;P zeq}~{dF9j=%z%;aj2N{$MmqgUpk!lJ_$7N+?5D8t+&js@pc4YM~MJ35}i$8mA{Db+~RnA6Z8J|AFDd2FMiuA-gb&Wo|wcR{0Yf9Q#_sUn`1 zpi^Gqwn8%1yARO*HU=RvXuh&x&5%ABuW@kXj8{9oROgW}F*q8jGu z_D$dSOEybval-u+vP~#$0U+k|3^nMeR&Y<8|+8Pa_ ztVRG#{GR@49LsYZH|+O!7w8T7w2r#Kso1WZSR8F=Qm@=8xu?>voURIRQdj+MQ&R_( z5cnfDY?biIlck*Um(jQXI*9)d;?@%i4LmkXL0rWqxn7;}4vcDz0INcD;&}kWvuoEI zhm(qG^;;?S&O$$C_9ZmOS^`rpe?@v3J_nLY&TNy3XFucX-GExSHBMIt*hU4){x7D^ z`mO0VeEU;W5D7uLrD4(`9U|S`EjhY7M8Xjh5RmRJ>FyXIUD7bR8989!v(NX5$HPq<18KC`!bUM9LLpiiYZ>9fb=FL_~WR%uKZn=PxIt2iMP#5yTZV@ z1ETjk@HiEtC-_p&H<=c?lU=o416ruti~?D>@^`volJWJCa;?eIYALR=AN&KKha)eF znz0rdf+qRVoDxeS?`qGJZZ^Ph&H0vs2H}IY9-c$zkWMCNgbtVf(C6K8UplpC#vwHh z_k6C6;t@`|-7- zBmKqi&#{U;RNa_&9Q_7=T2WyTXP){~mj0<99Z-Py5b^i=T7G)_x#T0ert__5=m^1f z>D;5GFgniP^^7k~Dmm1zH&MXoP~G>p_qsDEN-R<&Ky)KrfH7*o(?#TNcJKXij@X7- z5Mc)4;*^F_$z7uL(slLXx)E7$KhunLnsl^!qletjfJ#RKk!`?GB&nq25}qMQr&Lz0+V1M zi4=Jumi{m-*Fo94M_{)5eCw#;zKG$*va-t1)9LBUG)@s80UN5^_w*z(R z`dn8O-RbdFPM4z+H0voYy9W&UTV-PH0}ASEA_W;F)Ie+c;mp!98LB*o8W}Ccbffj+ z5h#+P_57EI55@r{L+rs+DCgPXLSLFpa@cXQ+MsScFsAA8%D0Scy`Pd!1#DH9c%tjt z*&ThWTDm$3DFTi2b&(t{&1=}Tmx%BEl(H2!*$u~1VOTSuT{%a1+8&NW2G)4K6DeX- zDWA$LGMR+RKe$)bl&F?)_KDG`!VkNnD>X7Xu!rmRYgqOy_+o0z|IWkl z)8pc%HGT)kOBRKrN1-w~%6)W<4b^67JLYIxZ5L0~Y6qJ&aJ5&{Ce|H;_;wwl5W2dHt2TI#|Jx@K^fXfax>Rkut>v&370 zvvw72t<(0012QV?`^cMpR};tv?sqzwP~J+HHvO8WDE(}$zlZz=v8@y4 z-h}%4IJh+VLT%m2`Z5P=R&3 z-A%mx}|_RhwybWBFHStTGy-^~V<6q5@^Dm6dTVR%}J(4k>SF`XVTrww8}f zu(AmQ6iOq~RwqiMvpS*YNV`4QTBoHIr~aws=r@PZtZaWIETPAO?!2o%YSWd|FUVRp zR)jNvr}7t_b@H@%=WDq`;nG{`4gaZ)^y)gFqQ5q8`1hCB>FBPX=P$Gy`ohTdHo77{ z3^4tQYkBF$DLZ){j5#*tj1M)aZ~d9gPMWlg_FH73a#&E!HS0#yP(cgTj42?%?wd{> z>~B%{`HP{aYd_qWcB#T6v3KU?9@QLKsWD&4DK5j7+OKrQo^!{(k=I{Mj8NgMJN2(h z6!Cf@u1S!=EAUdUqn3D!59+Tz`!d_Wa=Is&;LX0acw)R;4T}~w#gHmqRH&+!M!_I~zLW-_8S@3}=D zEn9W)@DscUccGKu1W*F^$f=|J)=~=witPs9*jgx;X^1o#B@TEs^1d*8@~inB z#}eOR?)7g17cx&11j{$==abHIuLM&G6-N$3+!QHvURA=;`-BueW|q=lJnL5rI94sD zz#Z%i?3`~fk3g`rot3sUst_W;QMTU~Bbg6S^l7}O$`sv7(PASDC{a}&oAhAHmO3z13SdDn zIBql<8=7#LfUuflwVdMCbGJkd=_>tZOJ#t`7^k<)&?Mp@%m5LTa0l3%cc~G=SW^;m z>13Kl@I>+tP8UD{2PTK4foT?qBvQMKo8nStyrf>k*4i;-Fk}Pc@JBd!6 z8L-lDt$VyuCPuo-eeJ07DagouXHcAMB)i{H|KY38y-YBPao7(68o)n5GcfI9%#R5Y zAn55ClolS|HrDcdgpQOZE|StOn006piC$vQP28bV7w+d9eaUqNo#}9xX&FiTorQaz zZ-2>l0!ylmZKc90@S<8PMnd!sj)5W_Md5|C!Q~MQOVKMRT+UIeqmu3ETErq8GP zEX8|y6#GV>USCa!6NQ8;9pc+ztkSdB6$)tiD%FIDkJEZ0tN?Wu^PYozcxJ?t0%YN` z8W0^scJ-BW#FJsY81mc`$h4E*|<%Gl|yS{ z*jEAt%00t2mot2mk7dQVV}b&nv^$K^nNg$M(h8UQXCncU=f>4>?R2gMMuK3?hf%vo zWZe%NbV?{a-oA2xX2k*V8ufe?3X=co>*?H$A~{a>qlMsv3+U=)98ss+V{yPo3U345 zsEub|QuynF8{$yLX)gVdkGdc8g~c?&LUCZ<@}mX#3ubG?Vn#U1bQeIR-Vw{n26%;C7tSKo(ZQsi!v?W@{4A`%?b{S zrO!YA49t&|#qA^5s=^^4ZyGgW-SZt+m}< z>s9(%iaP2__QDcl`}@N2++dcp-9xDlwbU@n`403=rrs8$Zz=gGY|^$d;TdmO#UIXq z1|%+1gZqez(rJvPGQkrCl3~6*_+vH(k)M&1j^Qx+i_pw6p_*-f-T5G*^SP97?R<85 z2W>G#BSAJIZSPQ=FZvAaM`6{*>8rmV94z%JPqy#|!JGgzLI*6J-{B4Z8A+^y2a_nL zbUinIm^AMsSFIdfOx;@mDg8~A(1oVxb^--O7MJ1u$$AoK2WXyMJ&jtY6?9)t#Clb` zpWn;leGJTk36gvjQ_rv|?s7J`8;S!RoPmE7tYdpRb2Wxbn~!r##bDk=H<)X>*G6{x zG4%-ci@%-IAGvFsrj6}(5}|NE=7AQ^cSiGFpt6dOa_!(uvOh{4r|W&timrg!eSFu? z$|HL%P36%j$K)jo$~lP=BJ%!sGlgDAFrS0t4kIe^fB@_l6x0MGM~wFz+aaP=Yu`sT zH_MHW=MVw1?e7sXgxbNaT&6ro`lw;Ju;TLD#FxV_wru~dJP}^aXlpKQ>jYgx2oWcn z3G@wc>{?{O8~+e=sX4M>@sut-kSD)XUk7R$L7n z!-d4Zx&=q`&)4=xQi1P>x5C8@5bN@@r}d6H%jz>bTt>@s^szmsIKJ0Z`OVceBIK}D zahUj5SbKOrv3)4}Nzd+U|8pF#gxBaIkbYe%c5t)|w?7+iHo zj&Z7t??w2eK)utftLDA%24A*WNU`quUfmEjY-UF#Hzmjtj;0GIhSoO?txG*(Ya>$6 zZw{*W7I%|(Vl=i*hvn{c`bz!SwJ}w} zYZR78;7gzx>x>_;nyxXKF-iH#rljx~->r_r$jwzFb&F)>kY|Rm1;ZM=%aE`noxs1N zk0VKd+^clC_LcF4WDymrT^*%F`Vg5D)~3aWmi z5}l2LCwXpZa6T^0_RWhi9xX)^HYGW13X;>R$)ls5FeP0E(d)U9JR_q~S{Y98A3617 zVO@vpHwEaot!Y~#;oq*1M+(#c+xgK}n0}%7N$1qPZWGyGd&L#g&|MKR*8JOl0G`ow zhL(c+g?xL1?1*~OfHraxc1ESRS1^oyZ>sf8Bg*To^;O67>>Mnq)GEYinUxzq@ z`Xo`osy^kmbk*7St&L{2y~{u1vp{QXOvGONw=`zT_`_k#bbPQ*vMI&|PoI;#p_sQ; zi4W0P!DKhHS`mC;2F$2jEu0X{3wIXj=BnbtltBfyE9%QFu%xus?Ag`~Z_63u0Y3gK zzpOsE0O9r^yT*=e$&$kHrRsNs>}8Qpjb)2*^PJ6FXCG0bEb4Gqc&Rm}P$D>C7p7QV z%9J@eOh;@jIxGq*M_6v&z&ZLI8N0D^GL$*SH8HZeXyPQh1#Y1V_lH_{EG2Y1z`4Ej zbg>3Ra3RV*7a%%$?2-euj_J_~ZHd_G*(())bV{1Re2G1x>se9ZbF!{3`(Nzo|9cqf z)uo@~hoh`C2Dl2$bi9ChBk*MxMF9EvM67kfsoc8iYzFmJxtW-I*w>?}7EvE2k}*Fv zf;3gPM7vdLAZWcV80>KqUvC&~tU<{7_SHp!!}Xmi8ugh6viwIYLVL?!9?K2kc7;4n zjYWg}{E`tC<45&aXX@~hAR>20W~6<7ulv3;wA>aK^T@z+ELx>7|J|TkGdenH#RiYb z*n@nZpNJ=j4T|*V%d4!R3dvlLQ{4eybm7=@9f&c`G`xxGk6&7$uZV0$=lj;N{P!?y zSH7lt^U(lk>B^qs_oHOxi@!G}dX=l%(m_g7mB!#WY$uYz{CfsuNOxL2KvrHvJlH?D z_-pdy8D7asUFkubklz9>I&^f@Kcq2>sy5) zqX=H{AiCSD;LpWmr-rg{;u?{BmXo{LcuBrK3ygxF_q2(~^21=P!?#Ck)Qz+3S0Mk_ zj2Z!%Iq(d$Nf%kZ5uYyTeN}WdfBfd-ODFsnC~Llw_IJ|WEi^z-mqHS_ZATFf{L9k^ zjr2@GjkE&XXNV@A2(u0~K2=pz6k}CzN?y@+hRulhdQ-(&!>u|xVh-K%XgPJ`|huYvO&;f3=F4my&J@qK336zvP{4Gt4@inzPIgrKDBAJu990CvltTA!l5 z>j5`sR3}g-?5tniM@QpM{V_ z@>j)a-Ee7mi9unQCqdpo(-Zj&C1rS2eLT}IwI5zqRQ0QyUGE9w0 z6!aFAFKL~hDoWm?I2u05EoE#g5ep6?@M8rBc11N{sE!{oPso~{S5&dQG-W-uI$>Hl z_IPw7pT`^O)GE%Iz`m+fTF7Q$?Jn&>|0=8tDqbN^$FO!HjlgX|r=I@()3IhzraY~V zx=g4D;x+vi&)jYCY9OFCcy3`f4cwlly(AqyjVx?<}SH}UF-M$+wHA&z(US#6$fl~6t_3~EwNc>CCT$Y#4`)kGo|}1 zqF_irbqPw87^}2`pjP|sOPMx*=~gO;5tmPLwWIeBkZ8(|qIedFTa9`vbMzBS zOT_L*aCToPM9^C{qT&9z*TF-?wJvqv9x|)8NqbQIe-6YSYR@U2B`&8S7Et@}*zCa| zp=OYOB72I35|LsIyTIB%Kr~Kgh@b9UC*S<5u#HMx4W7z2NrxSJ^B)v39F%u-V1#~Z zYP8@e7b?hgo{w6p7?-?pj2dU(JBtqfGAq6ax@)vLLMIs(dI+Tq8D^T)U0x$R-zolv z@RF)#3OvZh^OW@wz zZYC~;v3)rp4{V^MwhH_Y3YHK;^y|2!a3uuA3i_PzK|y~A;LSH?FVwc`1m-0A@WdEO zSX~u6*C%)|6_lhj-KJ?!V8a2Ydy*fod#VV|{|6YA3Y`t=%tBNrr+WrU!MW9O`vT3u zz+IYV%NVPWiCG)Ii(9@V<*CI;g#Ik@qhl9dz3JMWehZq5s5?>|qB_`Fd}jI~fdAVB zoLolB^AkIo6{@O$KuN00$TCG!lj&em*bKm%f=V2h1Tg*osgnQWUHXbcQ(bfI)SUsM zeOyWz85~CbHrLhIqDQMi!uixV2MO5eI{RPc?`m~p{5>Z&O$d$V#ONk-&#AtjE9h+@ zVoBno?AQuE13aB@#Y4p7fcrJ3f=B{!xa-z9*NvUf6D4qeZO#Ru1Prhdhp`0NT2O{s zo*g`bhEOaP^Qw)f#ag9N%#&tqYF~62r0_!^a1M#`vc7+@C*DdC#8``g9yTO`r>ER$ zIh9MWUl1^79NY(?H1;7Lc)Ru?f&8_;#{EmuOS%dA=dR6evM}Mabm$YlGCth->e{)+ zi0h?mzv=?D)bc(kdXTk=$9^2T=tZ^$*~(y)1wCv@0$}L-k4_?%gn+3_3nLx*bQ&&$GOS zjg7O%+fDH@E`47`B`NTFw*7R1fJee@ApcRDuNTa_;e(X)Y9oDB7^0v*sFpigF>$PU zhNGa)+M<`(c%NrV_LDfpLX#}_xB8L_-^-p+AA4WIqJ01277%%9YQczCQ@mC6i z-?C@+L4JMRX{%53wnTFzUwBWNu8!_?l5=Hi>C*8G%We3^9BrwHI~VqrpF4!BP}z{6 zob>Nbj87rww<>G7a~DX}_#~v%HG1gPEFY9z`I@eHj$C7DwSH$WnH%xJg;s}}YfJD$aojJ! z?N;9tC4%f0n#CHaTz^NSx@N2*xlCXdlkMh@vp4w#(r|o2^Sk!z^fUu_ZH*7iJZnZ< z(v7zNGVrCq>dIZ&W$lhM*Z?rV;N%+pKTcq20<8bkfBzSz_IwKEy!bW7hB66jkQvD2 z*dzxypR*$BdSgqL>RnCkm@mrZK1D)Et(cmWV&HcRL;bhag~7IG4`CxmC> zzCoq8-^^l5RL!6XLK`^H?DXeWaxeJ0wClVqK!K|j=;VLb^=J=$gm^8inLfxWMvD(X-l_H)K{5UTEVv%s^=lD( zroRGiPgUI;f_obhH_^YZlPD?$FIYYiN@<>dym@he(^h6^sBqLS6Pj5wGpQ}3r}MZh z-tScn>cH`OP;c!@`O}`do;7=6C&o1Fie^^+92Yq&ij6&Lt^q%R z>SvGXBF;C_88+-OcuE)c-ENQxA^qsAz`)UKqm)4*q=No9`+12DG_FP*(MUGiPj179& zRcS(Njk=dzHd+y|7~u<}+jNd1lc~U=i*TuhXRkJmAZ@CqUC;CklC#;9N>~0GVJSKS zKO;nEQQ;b_6-i@tqKs7)L0_S)%4Eau%JTsuBW@Tsd_z8iG9TgZAM!pxs+8SPdXIKH z>L?^GPP$0+%_GYToDfT{IJ^!7i5RRko7C_w`P_&@?{9e^%2i%|U1|R?*(zx3-;iKK z1ImVrog{Art~3U<>wX&5@)UmWYdy7xC8&936z^qIsKc&iM0@)Sf>xZu}X}Tk?!V*geMY(r7oOP~Ml*M&ozs-S@L&U=@W&1*^OX)QJk4 ziILkU*=ia+s54$McE7dph9=V{OqmGtM|64(}BS5PCBF%oH7!^@u9v_1q1|r zl*I3Uo)P{c!7t0*4yDfhWIJRYUvZ(ow*)*syRKyLx3yGENnaDH zj-aL*Lr&RI31so5j?>P%lw=CY51}2RBNjT!Bh*GDHMlWE$dEVa({0sQ0VeRsaPzpe zQH=-Xf?%&Dc)%Qm89?<9;OYhDui3_!C7+-gvB`;Qg>#N2acHuo45ZgDU`o|h_&djQ zNXCg z&(^RTv7eVz2~)YCqXZo}FYfiBR7Y6Jhnv4BRlHi{CeGQPhsAgbyI(DviUtTE{7ZaL z=tkGYWuUC(Yg}(P*-^4DUvPCqBNx^>XB!$LMyAOPweb3|Koqw5;cA=!9XuJYc}a6Azc_w=}pOveyjl#k-i_q+2tU0TvCnT~Qvl zbM1m9cIQL!!=4Usx>hIc4+YO<{SacO0ej==Ybl0%mKREzVPl1vr{CyLsXmUH{=~N*urd@AV;ua;~k0KVXlLgHl-a24lKU z0aQ69*IOd*zz4;b@(o_9cS*;-?GKw_>!nr~pa zixv6JwmEn!j%QF+p!%~=o&BV&2R$wUm=rS$gDyW7qQ9+%=6jmy%IUyTi!v!O$Eqq&LC+uhRPiBaoYWH3;0mT zFGm2&4Mo$=i3x+=*rE5NPLcONz^f0~d;R`)3grw1syt3mY8LgF+hI!J0nQvO7~nCv z(Arp}_$rP!RL1B1ccy;;N$O00Yx~XfjO)zZ_eaXb;%i0o5znVJrZoZo!9WY_4Vcl! zg9Hrtpdp{jYCkTXs*lg#NeGhCb(zk0`V9ms!rv)B%_0KJ4KG{FxU1F*a#tbKod#8Y z>6y*mr+SA^WQTYMU3k3F-|K#lSO{EuvWjb(YM`z%#GYzfit4Om)yev3@@t*Xu1I={ zFjG@Kqr$aJNB1}1Ez=l0<7LpE^TZ$9mpV+5gqK;1N9FbZ7(rLldZK=69k@VL)#)@o zD2IiUez}99kc{(HYV&;B1>WX1eqP5?yj&}W?ZjLkYUDVFwrC)QK4)LOnZ6EE4hxrd_>&&=RX?g08Td$e|gkk9& z&o^F(IhIqeNvNW)_>rxmND-y=4XD|G?7FLMd%eKupzx#YA^Hqo@5!<@vrK^_gNHdW zt6Qt+mfZXaUpZg4O1dAsgXdBv5CaKxW0TpX0XX(iydtg6^mtS_Q)n}cCS7{1i%4m{ zqC+W^mCn!lg@Nb4K`$Lng4lF z_;dw(gF`=BvrP*n@HweP^LOhe&jfx_9nBxo94RKIEc44lKfvW;u#owzW9UDC{yo|5YRRf}*kXQ=vi-}!?ujFCC1W#`R-pTq zv6e^X(2M00bL)Llf2JvkAj!S9O=@QCANgy>{7dFlY4DT-Iv>H!r159V<_JNxYh5)- zHUYiqe`0Jp-$`q$P8W%M{Z;^}+Mo$H zjoF-3leDY#pBE_=)Pt7$KjS1E+h<3e`&|HjxwJgfX$a zo4C;z#OhtyT3rc;2aDVBb;IN6W}@L_*4dtAhhFnUZ&RzP3ia}0sN4Uzyz+PRo8_Os zFgB8X+3rYR+x%IY^h5s!K&+^<1R;42Uhhrjzh94Hn^*RI^66nB0*}W2+BZy0To#}z zMhU7OO72D)*v=H)ix8IQPq>j!q=urS{J9=FhKnI29FXQ>Qr7k@u>yF8t{V$;RY8J| zY}#^S8zyQP`@bc0HUw(_1F1n(q8JLEjGKxQgZ~w!_39bZHUt! z%wL4AW-Hi~VY4BAUOD{cM=`qX(N&Jk0F~f8xhZ_Sx->9P@mtyfvXuVN5*<_gStvqF z41db7UySwl48a#wX58g%il%++FJnMu;o?cjmSixK&!g z1{>u}B>aB$$)%LV(PAu;8_sWwzQ2lN&;9yh__DqIiwj`MALSql6Y)izXyP%~SJ5vT zoA4m~a$lm@HwO*rXfA>pMo`KC@oz9V-(X6$k8ibdMyLL-ypKv$JmZ2@P2Cy@)Ygc8 zPK3c6yS9y_hy@VaLn4e4LY$cJ*-C4)g{gK)HFDop6m+0L{cwt_?Odeu52x+ipo}*j zA4GcMzLmbv%^W^oA3RnO(QG!``>2U|+{t(-#_>BD`h+KJ#}Jvsvs@}*%`OqcLVN3S6C&6x3HrzZs zj_3$UC)X!FL#S>L>GTJ)4!CxVw`BI{Hu>a(K@3_1U2Bf$7^r9bz(*d{;|fa%op*I%!(Y z9xNQ(iz<8Y_?{=J3IDN&IF5)SaX8Z1CeZJ+F}zVpEBhx^Bt$Ca!Md|T*@V(k1sCnZ zd|j1>v>=wKbbxYOpucm^I(6})W}i^S5jmrDB3{U%ATtV%9AxrS^2(x|x*j6g>Q&Rh ze~adFSS1W8WL~D-A>q8KG#u6Lh$=vGK2)xd?Xf#r*QSHM;BK0))n&!?65XdaxvpfR4ZMpY?&z6Ll(Ik$LMwhTB%jTerC_YN8JTU3h&Z%)(BvXSKoKImP2m=R3?W zd*IcP>;cl7ps0%Xc2$lwu4L5#o>beV0+i#d`TnVMV097drH-}@s^%{ZvmWw=MuWXD zl5uadbHojaiKzTFie6*5h7HHcB7r-`6~uhD-Lyf=oXR4xq!V!y?XH9!pSoy4cn!qr zXn*a~f2u;G!+PucLes1{?sOiQZlnJ`6)it^nu z)CouF%x1HVER)U-#gcY)v#~@>zbqSm&N9E)==sirnoD?OtM)KjRuGB48+uHi_5aEyNc}LYt|q8osl$I^>YGodf!Ef!c8%KR29yhqFQw# zaZ{exczN~slH6JVh6m9nF;@q$yeeOu5avzklZbj+z!JbLA?p7J<)G%LE=ij6g74B9 zS{8I)6Z zNZi#^pm$#ife>l>-rS9(r$PDMs;pC;i&H-mi0RIdy{!9 zlSo$B=@W&&Zi*?A2tJ)c&VW4KsGZXaTaW9$~r(>#C7}mNk0MnvlP8qdB~@;8$&}mZ`o$QI)|a1zJJWdiG19d77ge=cup z3;kco7XFC_PxzD6D2H#&bo|%vJ5-j`o06k=XCbae%XL#G$BuvR(Kq>%9+S>bhiXp} z;AuO9T(@xqsL=BFpay#|25mzlcx{!4*<2z%FOE>68|}Q5y1|3N%5pq$*YUf&Gz0gi z|02GUQGb%3>WXr&xKA~3UBP!u{RUb~Oi^d`N7>iOm)r>iA-)?ZSl$bNvirRbpKPcz zcD?s}=ljMOj2(4n7p-TPI9l08F(^q!El{w$Jd=RI&ah?s^>pWV1WOgAYL9iVzV`0S z4l{9PFV9GVYUc*mU)}M{qZ))ItY*`hba~8`BgM*1Bs${?)9<4R6kRN}V&ixmT(cVs zDMn?djzuoAE5$=r<=jLeg&s9S3H=HEJzFlM`YMv>9sDqYEF!RalDWY+#n5iP_H@!c zg`tLJph?HfPF>;;1D;zWZMKHN83UfBn4d|LAx(apBC6+W>zZkbV`SP5%}xf4)NSsE zT(_Y10Y(=4MsoSnfTL17-89i71A9(h?vim_8i<-dxVW)1YWB)eTrWhrbgAG_2%mHG ziZ0&78%786?$+V>0C~B~JG7jL8@n-i=;EKOr$XL@`(Ocmq{vrROe2!iNV@$WAZ1X^8UQts) zFRi{lTI_4>ESo1rz$kgtp2`ln!2P{;?A+yCd(D(37Vhv!O7XF`(jw2n-V^s7)*STYJ^_-%3}UnQ&3rQs$?m7lRYre)d1Y`+NWQ6C|6KcCO# z5;E3vhWojtu==H4wHSDDvkIO%o>+3Yinub9GW^BdtNYk|W(>W`PwSa&x689z#P(^z z#|ronu!!^vY8bNb!auc+&6{={=o;&vHczKkK}o~Ye1zusA#3il1M0e2H~2u0@>{c>zIft3mUnDX zJKub7pV)B#2V;KVA38aPzn04_k2EUER!OJ_Tj{=3#E}ZhuR;dcK6=@?r{#S{jg)g< ztV%j|^#gfK<{gm2xvPguKhxPNEx84UhOf{>EuuCjHhVIg~UZvS8zmEwu{0jKPk46cUy$+ng1$0?Bd$q zBX>QN4ip5tCM2|QM@QEYrK_ORrfbO^ItmNs3*@{gK#k}N;Sm#?+duv;8%Cd~XtP_a zhkq9)x)qJg5nH@F(nQQ{jVYt-4i)v76hf7)F9tEXH$1kk#TszrZ9!xj@i(!Ihlo81 z#MV|I(IJ1j=F?P@&dZHfwPk40X+HQCH?oV8x0+<^hEjuY+7r9*CvON8l~su4NAYFj zhSFA3Nu!YYaQvaalWDr0DSx;Wlmc{q?tz}{zMtPxO%uH2twdHgn11}Mk^+EC&;Z)nt3k~d)AFpDakzPEVO5s793T+Ymj~*zw zoZcwsABQKyy{TrD?iN;&Q94YODgK@64E82C!tbWA&9HfTyKS|;xdj8-^hYb^iEnn_ zPbDSqz|L{=!Nx}hBkTsl+-H@9Zf*)yAoaz3y5beowj>!#lGn)2T?T@4g1+(sbQ#h5Axi$dRDQB zaU!G{u&E>HKM4u-5y>7IsOOVvwiWE`xiRqQK zFDNko!if^mqpsdmGVbcX2k(5U>zA^^HuWtnKX30IMcud#}%&6JEsub z0EAS|mh*k7*s1GN!=wNG!@|H;mS`a8H2XP9U2TIvmug(uhFTISMK{!HQOR0PDBP4H zW#di1cnIEsSdVn|{uZ{L(UnsrmB>g^<+Utl3hDhydiD95decC8m<`8=xv6Afu4?6c zGccrtY}b0o&M53}T5O8r#{;92x?E`@qNh!n7qKyxgxl0)NFvYZk8r+U)b{m|M+ST` ztC(P7%2|Jpv+img#E zpo_UVGl9^v@LCJba%T;83O2T6jqeIa>l={5%!X+x2+fCR7Fv*kh(8*Q{apH7Kofd5kX(NY*pprC}JPQbU z3?a=%n7#_XjW)}r?4O(9uVUO`$EurS3I{qa4;83Y>36wd$w2{{EEN@>1CzeaPQJ$0 zwEsS=9T`iW+5Vx6cIXhzO?6=qb-<@Ocu+b8F}^HLH9ia!u=S_=VK^&)xdi!r9>29t z@JO?6SJwWqluN!fq&vG%f1J5Ezuk%SwT94JSM}3E0*nslvXx~s^p$*sK_ktA*$)dB z3ulwOmR6-1vf z10C7cgHACHbQPDWBKt z+jL906*E@&pfJwQPojE9%F9Va2iSZ}5!$+OwtqQCer#;}fo+y(Y*0->6WTLqP*N%M z4F6r4l9u)93f5yD1(oFGOXil48g&t?NHvNtYP3okj%BJ9cCOG}`BDQ`*Gtk_96$H8 zYEM|@^D*tJhH{dmID&@W3m>Y^t;<3WVII9x0$ny=I9)FhcB7-$V)~1x{Zt_ePc;zZ z*_LkDNfNR=Jvv!uiHMnemntU%E2!R`_9y*465~KRqaa)v?`aCYtj>Sln=O8NYx9$vsL47FTz(g@sx;(;zYK`{)rL~%i8*V zb+20q>*S8`b=;G$+_o)@4Wp0h=Z+tuiHqnAMcBak*G+05iVJ6id>+E;883<7ETb2l z{yke*ApaCdI&6@X%`M9ElRL?UR8>vZV5EK0(#>G5k@_?%sqC?oe{O{3)Cw~ptX+Rp zxoA}~6V8wBI#l*23H2E4%jEmpS~(2kb6o@VT18WrDV#6q;%L*sM}z6s;yY{N54(km zKJiWTa>cW3sx^V5K0{Zs)J%~P)lL>|weopRGtAJ1v|Z2aP%_66=c$I*4uxkFVSi%a zlin1!!`1o)%LapKvb=Eo#2KmGO2bX2Xx=(H=`T&^gXw>gtH{NAR7kSTfYHs3Y4e*K zt=~7(cpA3i6>76T;Yyi)Ik^LULxjROFb>{APLAaG$fv*cIT7%9&?O@25_ql$U8TOR z?a0)pH$c*baN8gO)2C)`Lg2}HPZCd26~%Hx3|_=9z;6l8d^FN~)D=}DL^uW#Cp=2l zdl1VP0K9xQehxT(HU{c}Q=5dloV-{S^tpTFGRk}9g$dS&NW79SOeVE}=`G?uND=-l znNGaTi;L1JCoD)^!3C$ZJI_=OK?N*_%UR&cE$c;CH~lER!e#rUV1)@T&eL$&pzf39 zR5~o1&gm!DxckSQrE+Ds*ujse3Ro~et|g5Ms*i@+n#u3y<|?Ly&K3rf-C zN;@Of63UW82ZJm}?}js@#zGTAC;euM8nc$E?Y_!2;imlg)Pg*!)CbbVH~A;OGn%7a z-C19$dLqZCvad)SV=WuyX;u%%>JJfp$qApesP{0&xixO)Jb*j1jMfNfQSByfgLnO~ z72E@wT2jF-N(~++^ye8_6b%gtcKs7PZzP(YPP<_-K z9Qu~EL>mq8EQH0k(6XguS@OB(p7W8y>wMBu%kX7#-LSP-34C4C))hbP2M|P1MFyj6 z)K=x=Th_EEp}E>TveHrO_+S_6ts2@k>35ueg?`zKCEoq3TH9qYKFg<$AY0lJOn% zA{C*l;roSdWInZ}NoiSt?}A~kkagJR+|!t%A@j*8`w;erLQ71q8})TjKR2MBJTP2O zus;53z5&*O+xI)wvqNM44^}{}+(#;jO(&Dy5H<(M=Is9bdMWt4hYnkqZ zbM^TwA5=*70;LU4Oc{~S;c=DbThXex1LCR0>&cfiKNCu{*X%MM9 z-D_ylUqty9;oQ#pKw#imKGz6)K!XO?L&Gz*C)Q_35L#dIz2k1)?<0I(*DlQN4V#sP znRVh$JSNC{WmUN^P4kX3&f}a-z(x6ESxW@9bISGE8;}WU2Y>5sx~mnti^yzmS8LNJ z(Vi;5pUcW73x}T4rM<&{&p0~qdl*X7724cfe^hV-CmM{o_hg&>K|^VR=qdtqe;4#o zo%EnVQF^(7ol<3>qbrScOh$dsp+Cy{JPPYVg&DEea80yMUkl1>yJ5k|Q2khvbs(yEQk17f{^LmY=1d}OusQgEx-Ixh>86_o)*-)ULU*|Hl@z@w`T(PWf`j*34h@4w+91OOyR zoGYLtd-3g2P9~u$Jl%G6l4*=rjw3DQzC2qNlBN~1ZskiX65v((*Q7@bii!$$$`snbdbZd0yw+%IW=`m)^G8*EwrC(fa zTgn6Dy!rK5Qn#SX#)|$69*vNEsFzEj!h`&O0J?Pq=pViR0O*c>_GvF{_POp9jg6mf zx>whS0bRAwoRz_nF!+D z>J-f=-V};KmoQ+`UZw$8k|_L#L+*Uk(D=$Yp7vu*b3o*W`Ie`GUx=N&0V}K0^IM@r z`zk9^dds!W#&A{9QfteoeQ_G5CM4aCUHs#Uu$^T}9v~mGA`+rla9q0GpCCEC`VmQrE73S4Dr6CpeHyPS6;$PD!rf$uS2dcxN|y6z z&~uOj*%2Rh+h)}tcFmtLq+_pR^}$MLIax->&_((+o72*h*yOaQ^=?vqzxj*2ZiwX< zOo7is8=bN?wi;rW7QGi6>{(4wa=_x@`3Rq1emr*=0D^#$#1_k03iI*(Mra&eYnu6& zU1BFO+WHGX=FOd5lY@)+>Cy3EZkc(S5aHm!}%_td3uOrHd2l$6@y$?KB= z1M>ixTeOa>1RI2w%z?b66}aQ2yNGGGx8@(Fm|u{kSf&bNs50^*-Q<+|w*aDcA*q?G=Q6eQ${91wxc$wsPPU1vu&IVUzn;G$o@J-_ zLLrel7vHZYf_Y$Ho2r})u#X92aNX8iD*rky!9A)mu5RO{+Pfq0xS>4$M=CXtKELfY zLuimaRxB}36dZm4>>`JBo|Wm_l%uT+J_TwWp@oJH9>AnuNL}bTc=*`m8YsIU9T^)b z!y9A803}hv;Z*Dl2MX_P=C~(Zrg>GR;fFba17e-E-Cp*HE49dH$owMl*(&kxw^x7c z8eq`OKw*U8z*8{1r`Hw>t}>1<$C+yplfD zZOP5PiA$e1!YV06ItTA~GcYhMOIc1{=;^y%g58(q1}s%=^^^Qw2@M^W)UW_2(nP+Q z^u^AmRxFkTn=l{tvrgMlt4qtGE1UR1_Ju1quxuG3z9{4#m^V*nmpjv^) zH~pMxsi|X;GwR9Vov=-b$~p7vpL@#mg=Ht}<53uhfn)saw|Et)0+b|E^6{ueoXZm{ zCt&}mMY5_4DN2RgQRW^Lq-)VoWZ>?lP&-~S!>5tY;^s63trH2XdTMI(2xXo;YeOw$ zC`j$aFJ&EY4mK-qO6+50(b3j8Y{}j&rWE zM+3HCHbsu^!3&6 zzWvP0meWp={#lloC2~9^QkLbCP7|8IMf!j=Ilj9;B$1Ht0p+I~<*Us{)>?Z5tf>_8 zF{9rU2v@1S(~d{}0qkeWdIb*J4!s9Y2G{tI)SU`KNCf@sSZ(>FGD4P_q#6wV#(P1kUlgg z>-)eG@O8mdC6HzV%n{DW3=eece#O2U&{^20k7svyY0zNh-6YREXp2rBDOoJGOMpzlO99ExQ{A6d~m}3!<{%s8kP` zXJSwm3Ym4OOVJPUqy-IpX9^>r{^ zH);C0QGGEVXm4H_p}+nq{G;8kI(*o4&7MSm0WnvT-ccp$lXl*2zW=G`rimsTF z-8?m&-YT^QbJW=;D+fnPh5!d1KI~rG12=)=_q_sVr(YpH79WZTEHl|N5;2v^sOg~!rM_;6u|iI@D=&Ml-gtF>~v zhSl^5!ZTbOO3SIK-HjHPo%L(kBC#em=jGq-y(8P9KG66;T$*k}w&g3F<#?s|omD~R z>5n_wZ-5CEzKmPsi2T`H>$l8FZ*Ms2o?E)kvI&=My^%p~lHT%m`Jp?sMDmP_C2oFK2+s9mZ>$^22t2Cr>}cfxF}XSoM< zIXHXa>=zuCBI=krU5FJb&VtQ-&bP_G7s3-sMlGjeu&_|l0XJa_W)Og3bPk7GW1aLx)qVYj5`qR@qP@Sdr}u6oKQ39G%1K*oLnH$V3M&bw?*`r z=mUf~*o^w_v*Fr3Y3Mu2(4!&3E4qnB>Lp(MBu@r^)Of{6`lv{f^R>hyrKiKJ{Nh)(-T6uVli7?<#utl{ zOky=hjbW^Z_Yd~{((fA>be{k6D@3e06g=!H;U7OGjnF+T=2zmMd8-JZn#1KTqQgWX z^v3jz&+wV-U3j9hh8Y*9U+00)SRA&AuoYPm5^Cje6TGf9G5 zR{d(!M|}sv&YeHEo3g%hxj;W_*rn;7u*4apK9(%h)4}ANHfyRO5r@a+@VnvAN+SxzN#8Tk>t*M1Q{WVn;oluaD7E&v^tonqgOj$c8o_GtR zXaaGTTOWvgc(W-Lv*JVKJp-r&WV_SSlvNEqLPVdgQ5@qBLMY)6(*NgD^AP$v`dR6+s903GL5ZSS>NpqoL7K z8)LPlrE2b1VNyWQPp0Sa!ot6EBBsCPej_>Li|FPf_5?LCr)I3Hi6GK1ZJ#3bis|%J zOM%6Bfd12#c4)4Xot>A>8D`?pNS37o%0sNnv~XZ!AQE2aZG=FpR~6wMY8+s#foF<@ zl}X5TlkK7_;KA=d9?lc>V+`Ru-8W`$F5>Nx9Jgv`AnIILSw))-kNi*HU(Ma;& z&%(`$o;bOWJ5KPU+5Z7N5Y^vBk>=U0Ll^yXHTBDI0f<`t%+Z}10T!C$p&}RItA~fq zujb(T>csMl-NOF>ddXY|7=TNIsSr^Q!n|7Qgn_hLC9oKfygb$oa8!Z7)eK?piX3 za%JXI-a@ADoAhRQ6Ac$mnd;Wpj%VFo1$ihz?Fj~vOs5-Iizr0abeJ7~AHC9X90M1% z<7V8Jr*5iJ*8thDh#?GUrmwSN0#=c3c9Kr6MckG8%bb0k{zsykMcJ?RBLXReLjzGym8C;* zS<|pCnk*qdJ%ME)!0JY*hS@>!^CrR3-j7zt9c1GR24;K`yuK0s?$aE4Ae9sMe2MXn zi5EcBR%a#InN@ZSCoTjx_k%=yzdO}d80>5_6oCHdnj%P`%C$~ke1#~th-LDsxrUi$VaeDAJab1 z0j9T#Go2LbiNH9vTTLgT+M8HmpXQz_^#jYq0rv|aoSZQ|grVWyz(fD{ox1)X_rz1Y zgD!LDH)Hl+xfu^hW}15z)$IHOSfbU5n8 zSY{|+lj2OFyuT|`m*I|_DVnFi37Z_MwWBj9m09gO)H~i=kBKADj%b4mdO4idqV#Pc zV=2?VDJJu?C#@%h^iT|KaU0d!2t>#u5zPQ?8h{Vi!!*P%DYgSimC*#rk_Sqnyj|k= z^RN3(wuBParQOd8QpIqp*|@Jh1u8m&0rgB8iyu_4<7mwL3nu1K5(_G&FOmH(-y+yru zvPVoTt)PJTX=LoqvHUV{A8IVkaBp^1fbF?P{}3(umFGlk8saW|>%4APAlu56@`^;H z$mDEZ7e&+Fbix~`>=-5FLxChbDT%MNGcYB@P0svzw^_&;`zTyUlZ#es5JK7Ii41Dg z{NXJ&T+C_M)iCa$u~!)gpT2upfTy1;;{`G*Yi{+8s3p@Dkq9;)<=#xxrkiN^QFVkQq5Iza5Q=%_0P;(x8ySLkYHfpe07qo*c zyBIwS55miycV6@F?je8hd+hc>?6Lxex~SF)r5INEn25-6F2>| zfzrW%<6%^ZmBqn+Cb(+FHLD~(1E1LrdmFBZI$awEtRBfQt)t2W@X`pHU##;*%9n9R z@exG6wG1~R*BP8!M|(c<$C&6V&z7T;CIMJ0*g1-O@T1s*nN!pfTbjY~5YB)}_)gD6 zcK?yD!ty4Xk@ungAyL5+Q9xBPrrt`HGLdlg_VKWn#u}!z&kh}TTa zhoT8thn4vbEEW-l)@+j(k-$ZKoO+&an@QlN$A`#E`~;VzG_C3p_V|vh`Oy2cZIw+0 zRBfFa(^MWVRGPTG+{Uxa8b0wvxSorC2oNnnhB}_7!Rg^eCm>(O8C=}UDnlPRE)y$z zws2l?le`6=1;_BS-5ELwm$VSk?@as9L)ZM=S?d}{J2!=+l`jW+3=7xN`KixvA&c|3 z+!^s&Re#2TsT#2@R=aH`MN*;DUQW<>Nx@_QF|~Qq5DOkMz!A5+3sx=$4><_an6obk zzV)NIu*V`v&SnuyxnGp_Kz)-*FU~!L(6y`4jCL>Udx?pH`o>_E~$P?iZxN}U5UHu{W&v{ z5VUx$*Xg!xnW^9FB22cZcqXnA2t9k!o1c_BRe52kgXKC8t_ubwtPcM?ZxjP318JX^GYSa(^G+ABqHG19PJ;xUGYr$2i! zyj9=yYZOV>`U7;jp$^N%hhcUrkwHukhjWBqTOH7T%#xb=`ol!lc&hCjRLJk_{SRQ# zA+Y)Jp&@(1S@-BbsqgQPB>A@=keoX-L`udOPvjrm?pj=M9)J%1M!fsQP7|p)1wDr` zdc_SAvtcnLp}_zJ8V%xGaiE@c%btstFQU67%0#(Y#;s-5WI3z|X`Ev`63R38j#l^fcb$3Wy3|n_cU;C7Ya-tn85OE!olcw(7lSAs*B?t zh{0B)@gW$k5WRVE+uDf_$=m-AfNzZ9jVC5{a+@wS*+IG~V5U_5gAmV;?!_B5wG12* z&tJk-jO?=4C7oiyI_HRCpp#Kt2TzswPs!ro?Erfv1Ia{tZ#y5UT|V83Xi2dpIGs5r zLX@|O-wFzlU6UFU`Gxfz_ z;`Mvz8iODBQBS2m_`0;LUhPqgk;Kbuyz;;)0O@B$wi)Bj+dg`)YD*i8hmAT%lnB~* z6oI1IgC5F~Y|C&}ut9xoBXn`w)`69o4E-#iE!NuC^_-KKs-e)E@=)~qRY5lT(GRuP49H8;l=70-qe31|!P!rShoH6Zs_y--IvEqyRBh28V7PPc7Rf?wi;=FdPDv zl%ZzIC{r9$K4H@ON>9|BG!9M=8b@=EEO@KR(}PUqfc9KpP1(YqGnl3P$u8SB;XY)F z!$(tO19@KuB~kZRSILJj=R?v=RxrUfH_s=kl4}xdbHasslx{S563Pl~B(4t|e%sS6 zxzfAc2M`Vuw3a||mIq0;j^w6Y_a!!W(l*XkztO$NJFc;O#?y*6F^Rx00aPB_Y&Mf2 zs*A4Bq~5%_0eZd~czMkn98FZXLHFdWsnBrq!i-$BbD$FNLURlDMiO-)2mHcB@>ymX zIs;Yk3c1USJ9WmYf6BJfNIJ2Tm>YNv=w=60OPHNXdtpqlZ1LmGC2(7M?b5NL!X

y-VC~#i4;dEd%vkWIOlGZ9Z@& zsBm&Gc&RQGcnU8+Z2zru z()Nydp(vBqL(F7oUz7wEH&k&s^I8h1;_LROcZ;m3+s0U1fzbj)az z=NRBaAaLU0rD7s7t86p0Yxu;-)8xHG(;stM+lv!0-Terrd6jpeMg~u@9n=j5#A7rK5Ucl*)a0a#u%4sRwq`-pOuuM z-~0n`3>w#Rx*6Iw&Y8DC$kG?nf}-TOy#$^$)x@BWp`yQ)bFixCKTKQSW!UkI1cPmTsQr#QjAam`> zavk7T2BvbT^Zsh|Ik3QV)|A_z7&Z||&S%}*m-&X5Gaqxu7uLtbMR&+Ejc#3aAFbiGfSEqBrhcH< z|FqWSZQ$+CclTfGncNw%w>aj%5;f<`EfD<~hfDF&p32nG5ngV)C&g9V-vPPT2wVEd zZumAAyA1Z3bo%!9ZEOtPq7b| zgwKA6P9UCVi<)Sz9-zNbQMgp}c7X(*7Fc&a+ZquFH98USux#7cG)puk7}aRO@!L7N47`f(ZA}` zgv2tvxB4(OcZ^m)#Y8Ue59r>-7n(PJtHwQE*nsWx?b!>iHhWBxQJ%Y_36IZy6f9Gxa8!)|36Y<^V(eVEU(7=yC?FuJ~TNjJa2r`MDMr zTW3=J@;J7|?*eA1w6veU06pKTp$*bdxSlOwpHv%RTxvdang1tzv%w8{RX8-=--g1pj!H zDI2p|O@vPI4D6_>R6ptwd<^TfNGpGL7QA{0&w9`s5hFAt_o)5{9Yt{F26rnW{pXp9 z*`+C4BAv^~8>xg|+O=$B*3BRu;&BYLI`K{JPIOa&`0o+>$Y&a!D<`?gH%9if&S)p& zJD}?ngRU>JXUEPQdV5Y4>bXT`Jc1i=J9_6d(M| z%6BBCY>XfMn!Y4kw9r1W@PRKWYHMQ(S|PiukFJCRn;u5}MB%Y(Y|iVE@lzh}BK$`a z%a56>j$U-zHMwUU^Og&CqxnK%`Jhy7w&2GK*rM1q!wk2Klps+|PvmJ>jsnnao{6GD-w%)YEd@ zyJzUI>3@N-&e=5Zjj(v?T=0T#kzps`)@L7B{<$dLLj-}f++)7n7{)CzObz@#Eng*i{AOd?Y7=WccCvpYu&H`iYJ z@Ib0nJP{XgQdf*Mmei}Q3W$6OmwPh3L(djf8<)Y|$9LY4oSV3@>(O84b# zNR_o!Mp8i5e`C7-i;|!za}Uq&`U^@BvdRd({db1_`=b5JKgsTT@_*W=|KIQ7?-D`* zul~-@|2dDtDpwQFSwOjf09YfqRvtm6R$e;MvPfm6#w{&J^)8z9yI8I%|7YC1!!e`L zoe}35@}~x|p@1*bGP7^O{{gfri0B&z4n=>v(D`1Olx;?Bt~*wwU;ftU5?-8a(ZmAl z)Jf3{3cUy33?4OZo(OA+w-E5dKbw?8m^m z__@j-W!}o$NcXt|v7^ZZwZ76+&*}njaAo6LbUPyv^c7$>qMqSLuON~9*Yv#JkHiQ* zYJoRF=SshWABy{5H5CZ)XbHbZ_#LwUJz%%+CCUFn&$x26tN;U`Ew2CS?TC8LFhQJx zL@2;s4fLNOSo!zsM?>)glWf)X6hA!NVE+8xy!T&z?-__UuKbr7$%ML{L U7ZmqDd;I_U{P*q@{%7ic0lui=`v3p{ literal 0 HcmV?d00001 diff --git a/target/classes/templates/merchant/announcements.html b/target/classes/templates/merchant/announcements.html new file mode 100644 index 0000000..ca4525a --- /dev/null +++ b/target/classes/templates/merchant/announcements.html @@ -0,0 +1,291 @@ + + + + + + 公告管理 - 商家后台 + + + + + + +
+
+

公告管理

+ +
+
+
+
+
+
+
+ + + + + + + + + + diff --git a/target/classes/templates/merchant/common/sidebar.html b/target/classes/templates/merchant/common/sidebar.html new file mode 100644 index 0000000..bd9bc82 --- /dev/null +++ b/target/classes/templates/merchant/common/sidebar.html @@ -0,0 +1,283 @@ + + + + + + + + + + + + diff --git a/target/classes/templates/merchant/dashboard.html b/target/classes/templates/merchant/dashboard.html new file mode 100644 index 0000000..443cb8d --- /dev/null +++ b/target/classes/templates/merchant/dashboard.html @@ -0,0 +1,413 @@ + + + + + + 商家后台 - 奶茶店管理系统 + + + + + + + + + + + + + + +
+
+

数据概览

+
+
+
+
+
+
+
今日订单
+

-

+
+ +
+
+
+
+
+
+
+
+
+
今日营收
+

-

+
+ +
+
+
+
+
+
+
+
+
+
待处理订单
+

-

+
+ +
+
+
+
+
+
+ + + + + + + diff --git a/target/classes/templates/merchant/inventory.html b/target/classes/templates/merchant/inventory.html new file mode 100644 index 0000000..e9f8cd6 --- /dev/null +++ b/target/classes/templates/merchant/inventory.html @@ -0,0 +1,466 @@ + + + + + + 库存管理 - 商家后台 + + + + + + + +
+
+

库存管理

+ +
+ +
+ +
+ +
+
+ + + + + + + + + + + + + diff --git a/target/classes/templates/merchant/login.html b/target/classes/templates/merchant/login.html new file mode 100644 index 0000000..f692850 --- /dev/null +++ b/target/classes/templates/merchant/login.html @@ -0,0 +1,81 @@ + + + + + + 商家登录 - 奶茶店管理系统 + + + + + +
+
+
+ +
+
+
+ + + + diff --git a/target/classes/templates/merchant/messages.html b/target/classes/templates/merchant/messages.html new file mode 100644 index 0000000..03fc047 --- /dev/null +++ b/target/classes/templates/merchant/messages.html @@ -0,0 +1,209 @@ + + + + + + 留言管理 - 商家后台 + + + + + + +
+

留言管理

+
+
+
+
+
+
+ + + + + + + + + + diff --git a/target/classes/templates/merchant/orders.html b/target/classes/templates/merchant/orders.html new file mode 100644 index 0000000..216168f --- /dev/null +++ b/target/classes/templates/merchant/orders.html @@ -0,0 +1,503 @@ + + + + + + 订单管理 - 商家后台 + + + + + + + +
+
+

订单管理

+
+ + + + +
+
+ +
+
+ + + + + + + + + + \ No newline at end of file diff --git a/target/classes/templates/merchant/product-edit.html b/target/classes/templates/merchant/product-edit.html new file mode 100644 index 0000000..8203bcb --- /dev/null +++ b/target/classes/templates/merchant/product-edit.html @@ -0,0 +1,651 @@ + + + + + + 商品编辑 - 商家后台 + + + + + +
+

新增商品

+ +
+ + +
+
基本信息
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+
+ +
+
+ 规格管理 + +
+
+
+
+
+ +
+
+ 配料管理 + +
+
+
+
+
+ +
+
+ 定制选项管理(甜度、冰度) +
+ + +
+
+
+
+
甜度选项
+
+
+
+
冰度选项
+
+
+
+
+ +
+ + 取消 +
+
+
+ + + + + + + diff --git a/target/classes/templates/merchant/products.html b/target/classes/templates/merchant/products.html new file mode 100644 index 0000000..254e191 --- /dev/null +++ b/target/classes/templates/merchant/products.html @@ -0,0 +1,470 @@ + + + + + + 商品管理 - 商家后台 + + + + + + + + + + + + + + +
+
+
+

商品管理

+ +
+
+
+
+
+
+
+ + + + + + + diff --git a/target/classes/templates/merchant/register.html b/target/classes/templates/merchant/register.html new file mode 100644 index 0000000..c439806 --- /dev/null +++ b/target/classes/templates/merchant/register.html @@ -0,0 +1,120 @@ + + + + + + 商家注册 - 奶茶店管理系统 + + + + + +
+
+
+
+
+

+ 商家后台 +

+

商家注册

+
+
+
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ + +
+ +
+ +
+
+
+
+
+ + + + diff --git a/target/classes/templates/merchant/reviews.html b/target/classes/templates/merchant/reviews.html new file mode 100644 index 0000000..e146a67 --- /dev/null +++ b/target/classes/templates/merchant/reviews.html @@ -0,0 +1,212 @@ + + + + + + 评价管理 - 商家后台 + + + + + + +
+

评价管理

+
+
+
+
+
+
+ + + + + + + + + + diff --git a/target/classes/templates/merchant/statistics.html b/target/classes/templates/merchant/statistics.html new file mode 100644 index 0000000..819087b --- /dev/null +++ b/target/classes/templates/merchant/statistics.html @@ -0,0 +1,491 @@ + + + + + + 数据统计 - 商家后台 + + + + + + + +
+

数据统计

+ +
+
+ + + +
+
+ +
+
+
+
+
销售统计
+
+
+

请选择时间段

+
+
+
+
+
+
+
营收统计
+
+
+

请选择时间段

+
+
+
+
+ +
+
+
+
+
活跃用户
+
+
+

加载中...

+
+
+
+
+
+
+
粘性用户
+
+
+

加载中...

+
+
+
+
+ +
+
+
热销商品
+
+
+
+
+
+
+ + + + + + + diff --git a/target/classes/templates/merchant/users.html b/target/classes/templates/merchant/users.html new file mode 100644 index 0000000..c3fd638 --- /dev/null +++ b/target/classes/templates/merchant/users.html @@ -0,0 +1,163 @@ + + + + + + 用户管理 - 商家后台 + + + + + + +
+

用户管理

+
+
+
+ +
+
+
+ + + + + + diff --git a/target/classes/templates/user/cart.html b/target/classes/templates/user/cart.html new file mode 100644 index 0000000..904399b --- /dev/null +++ b/target/classes/templates/user/cart.html @@ -0,0 +1,389 @@ + + + + + + 购物袋 + + + + + +
购物袋
+
+
+ +
加载中...
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/templates/user/checkout.html b/target/classes/templates/user/checkout.html new file mode 100644 index 0000000..490e3fa --- /dev/null +++ b/target/classes/templates/user/checkout.html @@ -0,0 +1,616 @@ + + + + + + 确认订单 + + + + + + + + +
+ + +
+
配送地址
+
+
+
+
+ 加载地址... +
+
+ +
+ +
+ + +
+
订单商品
+
+
+ + + + +
+
订单备注
+ +
+ + +
+
+ 合计 + ¥0.00 +
+ +
+ + + + +
+ + +
+ +
+ + +
+ + + + + + + + + \ No newline at end of file diff --git a/target/classes/templates/user/index.html b/target/classes/templates/user/index.html new file mode 100644 index 0000000..f798e08 --- /dev/null +++ b/target/classes/templates/user/index.html @@ -0,0 +1,652 @@ + + + + + + 首页 - 荣光奶茶店 + + + + + +
+ +
+
+ +
+
+

荣光奶茶店

+
+ + 科技园南区C栋 + + + 4.9 + +
+
+
+ +
+
+ + + + + +
+ +

店长推荐

+
+
+ + +
+ +

全部饮品

+
+
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/templates/user/login.html b/target/classes/templates/user/login.html new file mode 100644 index 0000000..2782cd6 --- /dev/null +++ b/target/classes/templates/user/login.html @@ -0,0 +1,236 @@ + + + + + + 登录 + + + + + +
+
欢迎回来
+
登录您的账号以享受美味
+
+ +
+
+ + +
+ +
+ + +
+ + +
+ + + + + + + \ No newline at end of file diff --git a/target/classes/templates/user/order-detail.html b/target/classes/templates/user/order-detail.html new file mode 100644 index 0000000..92c447c --- /dev/null +++ b/target/classes/templates/user/order-detail.html @@ -0,0 +1,356 @@ + + + + + + 订单详情 + + + + + + + + +
加载中...
+ + + +
+ +
+ + + + + + + \ No newline at end of file diff --git a/target/classes/templates/user/orders.html b/target/classes/templates/user/orders.html new file mode 100644 index 0000000..407da0b --- /dev/null +++ b/target/classes/templates/user/orders.html @@ -0,0 +1,441 @@ + + + + + + 我的订单 + + + + + +
+
全部
+
待支付
+
制作中
+
待取餐
+
已完成
+
+ +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/templates/user/payment-success.html b/target/classes/templates/user/payment-success.html new file mode 100644 index 0000000..b4bbb63 --- /dev/null +++ b/target/classes/templates/user/payment-success.html @@ -0,0 +1,214 @@ + + + + + + 支付成功 + + + + + +
+
+ +
+
支付成功
+
感谢您的购买,订单已提交成功
+ +
+
+ 订单编号 + -- +
+
+ 支付金额 + -- +
+
+ +
+ + +
+
+ + + + diff --git a/target/classes/templates/user/payment.html b/target/classes/templates/user/payment.html new file mode 100644 index 0000000..2f7a69c --- /dev/null +++ b/target/classes/templates/user/payment.html @@ -0,0 +1,348 @@ + + + + + + 支付订单 + + + + + + + + +
+ + +
+
+
需支付
+
¥0.00
+
+
+ + +
+
订单商品
+
+
+ + +
+
选择支付方式
+ + +
+ + +
+
+ 合计 + ¥0.00 +
+ +
+ + + + + + + diff --git a/target/classes/templates/user/product-detail.html b/target/classes/templates/user/product-detail.html new file mode 100644 index 0000000..51bf1e0 --- /dev/null +++ b/target/classes/templates/user/product-detail.html @@ -0,0 +1,356 @@ + + + + + + 商品详情 + + + + + + + + + + +
+

Loading...

+

+ +
+ + + +
+ +
+
数量
+
+ + + +
+
+
+
+ +
+
+ 总计金额 + ¥0.00 +
+ +
+ + + + + + \ No newline at end of file diff --git a/target/classes/templates/user/profile.html b/target/classes/templates/user/profile.html new file mode 100644 index 0000000..94ef48d --- /dev/null +++ b/target/classes/templates/user/profile.html @@ -0,0 +1,401 @@ + + + + + + 个人中心 + + + + + + +
+
+
--
+
--
+ +
+ + + + +
+ +
+ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/target/classes/templates/user/register.html b/target/classes/templates/user/register.html new file mode 100644 index 0000000..03eb5bb --- /dev/null +++ b/target/classes/templates/user/register.html @@ -0,0 +1,184 @@ + + + + + + 注册 + + + + + +
+
创建账号
+
填写以下信息完成注册
+
+ +
+ +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + + + + + \ No newline at end of file diff --git a/z_wb_nc_shop.sql b/z_wb_nc_shop.sql new file mode 100644 index 0000000..d651365 --- /dev/null +++ b/z_wb_nc_shop.sql @@ -0,0 +1,506 @@ +/* + Navicat Premium Dump SQL + + Source Server : 本地 + Source Server Type : MySQL + Source Server Version : 80406 (8.4.6) + Source Host : localhost:3306 + Source Schema : z_wb_nc_shop + + Target Server Type : MySQL + Target Server Version : 80406 (8.4.6) + File Encoding : 65001 + + Date: 10/01/2026 17:01:47 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for announcement +-- ---------------------------- +DROP TABLE IF EXISTS `announcement`; +CREATE TABLE `announcement` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `merchant_id` bigint NOT NULL COMMENT '商家ID', + `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标题', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '内容', + `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'NOTICE' COMMENT '类型:ACTIVITY-活动,NOTICE-通知', + `status` tinyint NULL DEFAULT 1 COMMENT '状态:0-下架,1-发布', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) USING BTREE, + INDEX `merchant_id`(`merchant_id` ASC) USING BTREE, + CONSTRAINT `announcement_ibfk_1` FOREIGN KEY (`merchant_id`) REFERENCES `merchant` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '公告表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of announcement +-- ---------------------------- +INSERT INTO `announcement` VALUES (1, 1, '新品上市,快来品尝', '新品上市,快来品尝\n新品上市,快来品尝', 'ACTIVITY', 1, '2026-01-09 16:59:12'); +INSERT INTO `announcement` VALUES (2, 1, '店庆将于2月30日开始', '当天全部免单!!!', 'ACTIVITY', 1, '2026-01-10 16:12:20'); + +-- ---------------------------- +-- Table structure for cart +-- ---------------------------- +DROP TABLE IF EXISTS `cart`; +CREATE TABLE `cart` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `user_id` bigint NOT NULL COMMENT '用户ID', + `product_id` bigint NOT NULL COMMENT '商品ID', + `spec_id` bigint NULL DEFAULT NULL COMMENT '规格ID', + `quantity` int NULL DEFAULT 1 COMMENT '数量', + `custom_sweetness` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '甜度定制', + `custom_ice` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '冰度定制', + `toppings` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '配料JSON', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) USING BTREE, + INDEX `product_id`(`product_id` ASC) USING BTREE, + INDEX `idx_cart_user`(`user_id` ASC) USING BTREE, + CONSTRAINT `cart_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT, + CONSTRAINT `cart_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '购物车表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of cart +-- ---------------------------- + +-- ---------------------------- +-- Table structure for inventory +-- ---------------------------- +DROP TABLE IF EXISTS `inventory`; +CREATE TABLE `inventory` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `merchant_id` bigint NOT NULL COMMENT '商家ID', + `material_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '原料名称', + `quantity` decimal(10, 2) NOT NULL COMMENT '数量', + `unit` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '单位', + `min_threshold` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '最低库存阈值', + `last_in_time` datetime NULL DEFAULT NULL COMMENT '最后入库时间', + `last_out_time` datetime NULL DEFAULT NULL COMMENT '最后出库时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `merchant_id`(`merchant_id` ASC) USING BTREE, + CONSTRAINT `inventory_ibfk_1` FOREIGN KEY (`merchant_id`) REFERENCES `merchant` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '库存表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of inventory +-- ---------------------------- +INSERT INTO `inventory` VALUES (1, 1, '橙子', 9998.00, 'kg', 0.00, NULL, '2026-01-09 15:16:54'); + +-- ---------------------------- +-- Table structure for inventory_log +-- ---------------------------- +DROP TABLE IF EXISTS `inventory_log`; +CREATE TABLE `inventory_log` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `inventory_id` bigint NOT NULL COMMENT '库存ID', + `operation_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '操作类型:IN-入库,OUT-出库', + `quantity` decimal(10, 2) NOT NULL COMMENT '操作数量', + `operator` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '操作人', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) USING BTREE, + INDEX `inventory_id`(`inventory_id` ASC) USING BTREE, + CONSTRAINT `inventory_log_ibfk_1` FOREIGN KEY (`inventory_id`) REFERENCES `inventory` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '库存操作日志表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of inventory_log +-- ---------------------------- +INSERT INTO `inventory_log` VALUES (1, 1, 'OUT', 1.00, '', '2026-01-09 15:16:54'); + +-- ---------------------------- +-- Table structure for merchant +-- ---------------------------- +DROP TABLE IF EXISTS `merchant`; +CREATE TABLE `merchant` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码(加密)', + `store_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '门店名称', + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '门店地址', + `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系电话', + `email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '邮箱', + `manager_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '负责人姓名', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '头像路径', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP, + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `username`(`username` ASC) USING BTREE, + INDEX `idx_merchant_username`(`username` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '商家表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of merchant +-- ---------------------------- +INSERT INTO `merchant` VALUES (1, 'l', '4297f44b13955235245b2497399d7a93', 'lq', NULL, '15100000000', 'aaa@qq.com', NULL, NULL, '2026-01-09 12:52:08', '2026-01-09 12:52:08'); + +-- ---------------------------- +-- Table structure for message +-- ---------------------------- +DROP TABLE IF EXISTS `message`; +CREATE TABLE `message` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `user_id` bigint NOT NULL COMMENT '用户ID', + `merchant_id` bigint NOT NULL COMMENT '商家ID', + `order_id` bigint NULL DEFAULT NULL COMMENT '订单ID', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '留言内容', + `reply` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '回复内容', + `status` tinyint NULL DEFAULT 0 COMMENT '状态:0-未回复,1-已回复', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP, + `reply_time` datetime NULL DEFAULT NULL COMMENT '回复时间', + PRIMARY KEY (`id`) USING BTREE, + INDEX `user_id`(`user_id` ASC) USING BTREE, + INDEX `merchant_id`(`merchant_id` ASC) USING BTREE, + CONSTRAINT `message_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `message_ibfk_2` FOREIGN KEY (`merchant_id`) REFERENCES `merchant` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '留言反馈表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of message +-- ---------------------------- + +-- ---------------------------- +-- Table structure for order +-- ---------------------------- +DROP TABLE IF EXISTS `order`; +CREATE TABLE `order` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `order_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单号', + `user_id` bigint NOT NULL COMMENT '用户ID', + `merchant_id` bigint NOT NULL COMMENT '商家ID', + `total_amount` decimal(10, 2) NOT NULL COMMENT '订单总金额', + `payment_method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '支付方式:wechat/alipay', + `payment_status` tinyint NULL DEFAULT 0 COMMENT '支付状态:0-未支付,1-已支付', + `order_status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT 'PENDING_PAY' COMMENT '订单状态:PENDING_PAY-待支付,MAKING-制作中,READY-待取餐,COMPLETED-已完成,CANCELLED-已取消', + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '收货地址', + `contact_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '联系电话', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `pay_time` datetime NULL DEFAULT NULL COMMENT '支付时间', + `complete_time` datetime NULL DEFAULT NULL COMMENT '完成时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `order_no`(`order_no` ASC) USING BTREE, + INDEX `idx_order_user`(`user_id` ASC) USING BTREE, + INDEX `idx_order_merchant`(`merchant_id` ASC) USING BTREE, + INDEX `idx_order_status`(`order_status` ASC) USING BTREE, + INDEX `idx_order_no`(`order_no` ASC) USING BTREE, + CONSTRAINT `order_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `order_ibfk_2` FOREIGN KEY (`merchant_id`) REFERENCES `merchant` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '订单表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of order +-- ---------------------------- +INSERT INTO `order` VALUES (1, 'ORD202601091502550001', 1, 1, 4.00, 'wechat', 1, 'COMPLETED', '测试地址', '15110000000', '2026-01-09 15:02:55', '2026-01-09 15:03:00', '2026-01-09 15:03:21'); +INSERT INTO `order` VALUES (2, 'ORD202601091536100001', 1, 1, 4.00, 'wechat', 1, 'COMPLETED', 'c街道101号', '15100000000', '2026-01-09 15:36:10', '2026-01-09 15:36:16', '2026-01-09 15:36:43'); +INSERT INTO `order` VALUES (3, 'ORD202601101522530001', 1, 1, 22.40, 'wechat', 1, 'MAKING', '1111111', '13100000000', '2026-01-10 15:22:53', '2026-01-10 15:22:57', NULL); +INSERT INTO `order` VALUES (4, 'ORD202601101557240001', 1, 1, 6.00, 'alipay', 1, 'MAKING', 'c街道101号', '15100000000', '2026-01-10 15:57:24', '2026-01-10 16:04:09', NULL); +INSERT INTO `order` VALUES (5, 'ORD202601101600170001', 1, 1, 6.00, NULL, 0, 'PENDING_PAY', 'c街道101号', '15100000000', '2026-01-10 16:00:17', NULL, NULL); +INSERT INTO `order` VALUES (6, 'ORD202601101605020001', 2, 1, 30.36, 'wechat', 1, 'READY', '1\n1', '13111111111', '2026-01-10 16:05:02', '2026-01-10 16:05:04', NULL); +INSERT INTO `order` VALUES (7, 'ORD202601101617430001', 1, 1, 27.18, 'wechat', 1, 'MAKING', 'c街道101号', '15100000000', '2026-01-10 16:17:43', '2026-01-10 16:17:46', NULL); + +-- ---------------------------- +-- Table structure for order_item +-- ---------------------------- +DROP TABLE IF EXISTS `order_item`; +CREATE TABLE `order_item` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `order_id` bigint NOT NULL COMMENT '订单ID', + `product_id` bigint NOT NULL COMMENT '商品ID', + `product_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品名称', + `spec_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '规格名称', + `quantity` int NOT NULL COMMENT '数量', + `price` decimal(10, 2) NOT NULL COMMENT '单价', + `custom_sweetness` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '甜度', + `custom_ice` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '冰度', + `toppings` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '配料JSON', + `subtotal` decimal(10, 2) NOT NULL COMMENT '小计', + PRIMARY KEY (`id`) USING BTREE, + INDEX `order_id`(`order_id` ASC) USING BTREE, + INDEX `product_id`(`product_id` ASC) USING BTREE, + CONSTRAINT `order_item_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT, + CONSTRAINT `order_item_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '订单明细表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of order_item +-- ---------------------------- +INSERT INTO `order_item` VALUES (1, 1, 1, '棒打鲜橙', '大杯', 1, 4.00, '', '', '[]', 4.00); +INSERT INTO `order_item` VALUES (2, 2, 1, '棒打鲜橙', '大杯', 1, 4.00, '', '', '[]', 4.00); +INSERT INTO `order_item` VALUES (3, 3, 1, '棒打鲜橙', '大杯', 2, 7.20, '七分糖', '少冰', '[\"4\"]', 14.40); +INSERT INTO `order_item` VALUES (4, 3, 1, '棒打鲜橙', NULL, 2, 4.00, '无糖', '去冰', '[]', 8.00); +INSERT INTO `order_item` VALUES (5, 4, 1, '棒打鲜橙', '大杯', 1, 6.00, '无糖', '去冰', '[]', 6.00); +INSERT INTO `order_item` VALUES (6, 5, 1, '棒打鲜橙', '大杯', 1, 6.00, '无糖', '去冰', '[]', 6.00); +INSERT INTO `order_item` VALUES (7, 6, 2, '满杯百香果', '大杯', 2, 15.18, '少糖', '少冰', '[\"5\",\"6\",\"7\"]', 30.36); +INSERT INTO `order_item` VALUES (8, 7, 2, '满杯百香果', '大杯', 1, 15.18, '少糖', '少冰', '[\"5\",\"6\",\"7\"]', 15.18); +INSERT INTO `order_item` VALUES (9, 7, 1, '棒打鲜橙', '大杯', 2, 6.00, '无糖', '去冰', '[]', 12.00); + +-- ---------------------------- +-- Table structure for order_track +-- ---------------------------- +DROP TABLE IF EXISTS `order_track`; +CREATE TABLE `order_track` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `order_id` bigint NOT NULL COMMENT '订单ID', + `status` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '状态', + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) USING BTREE, + INDEX `order_id`(`order_id` ASC) USING BTREE, + CONSTRAINT `order_track_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 19 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '订单跟踪表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of order_track +-- ---------------------------- +INSERT INTO `order_track` VALUES (1, 1, 'PENDING_PAY', '订单已创建,等待支付', '2026-01-09 15:02:55'); +INSERT INTO `order_track` VALUES (2, 1, 'MAKING', '支付成功,商家开始制作', '2026-01-09 15:03:00'); +INSERT INTO `order_track` VALUES (3, 1, 'READY', '制作完成,等待取餐', '2026-01-09 15:03:15'); +INSERT INTO `order_track` VALUES (4, 1, 'COMPLETED', '订单已完成', '2026-01-09 15:03:21'); +INSERT INTO `order_track` VALUES (5, 2, 'PENDING_PAY', '订单已创建,等待支付', '2026-01-09 15:36:10'); +INSERT INTO `order_track` VALUES (6, 2, 'MAKING', '支付成功,商家开始制作', '2026-01-09 15:36:16'); +INSERT INTO `order_track` VALUES (7, 2, 'READY', '制作完成,等待取餐', '2026-01-09 15:36:36'); +INSERT INTO `order_track` VALUES (8, 2, 'COMPLETED', '订单已完成', '2026-01-09 15:36:43'); +INSERT INTO `order_track` VALUES (9, 3, 'PENDING_PAY', '订单已创建,等待支付', '2026-01-10 15:22:53'); +INSERT INTO `order_track` VALUES (10, 3, 'MAKING', '支付成功,商家开始制作', '2026-01-10 15:22:57'); +INSERT INTO `order_track` VALUES (11, 4, 'PENDING_PAY', '订单已创建,等待支付', '2026-01-10 15:57:24'); +INSERT INTO `order_track` VALUES (12, 5, 'PENDING_PAY', '订单已创建,等待支付', '2026-01-10 16:00:17'); +INSERT INTO `order_track` VALUES (13, 4, 'MAKING', '支付成功,商家开始制作', '2026-01-10 16:04:09'); +INSERT INTO `order_track` VALUES (14, 6, 'PENDING_PAY', '订单已创建,等待支付', '2026-01-10 16:05:02'); +INSERT INTO `order_track` VALUES (15, 6, 'MAKING', '支付成功,商家开始制作', '2026-01-10 16:05:04'); +INSERT INTO `order_track` VALUES (16, 7, 'PENDING_PAY', '订单已创建,等待支付', '2026-01-10 16:17:43'); +INSERT INTO `order_track` VALUES (17, 7, 'MAKING', '支付成功,商家开始制作', '2026-01-10 16:17:46'); +INSERT INTO `order_track` VALUES (18, 6, 'READY', '制作完成,等待取餐', '2026-01-10 16:39:45'); + +-- ---------------------------- +-- Table structure for product +-- ---------------------------- +DROP TABLE IF EXISTS `product`; +CREATE TABLE `product` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `merchant_id` bigint NOT NULL COMMENT '商家ID', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '商品名称', + `category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '分类', + `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '商品描述', + `base_price` decimal(10, 2) NOT NULL COMMENT '基础价格', + `image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '商品图片', + `status` tinyint NULL DEFAULT 1 COMMENT '状态:0-下架,1-上架', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_product_merchant`(`merchant_id` ASC) USING BTREE, + INDEX `idx_product_status`(`status` ASC) USING BTREE, + CONSTRAINT `product_ibfk_1` FOREIGN KEY (`merchant_id`) REFERENCES `merchant` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '商品表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of product +-- ---------------------------- +INSERT INTO `product` VALUES (1, 1, '棒打鲜橙', '奶茶', '1', 4.00, '/upload/product/ad501998-b3c1-4568-ae4f-31e2d9ce0e3d.jpg', 1, '2026-01-09 15:01:13'); +INSERT INTO `product` VALUES (2, 1, '满杯百香果', '果茶', '这个是用了一百个百香果', 7.00, '/upload/product/f6f49393-42c0-4c27-92fe-5d54aa04888f.jpg', 1, '2026-01-10 14:13:38'); + +-- ---------------------------- +-- Table structure for product_custom +-- ---------------------------- +DROP TABLE IF EXISTS `product_custom`; +CREATE TABLE `product_custom` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `product_id` bigint NOT NULL COMMENT '商品ID', + `option_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '选项类型:sweetness-甜度,ice-冰度', + `option_value` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '选项值', + `price_adjust` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '价格调整', + PRIMARY KEY (`id`) USING BTREE, + INDEX `product_id`(`product_id` ASC) USING BTREE, + CONSTRAINT `product_custom_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 33 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '商品定制选项表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of product_custom +-- ---------------------------- +INSERT INTO `product_custom` VALUES (17, 1, 'sweetness', '无糖', 0.00); +INSERT INTO `product_custom` VALUES (18, 1, 'sweetness', '三分糖', 0.00); +INSERT INTO `product_custom` VALUES (19, 1, 'sweetness', '七分糖', 0.00); +INSERT INTO `product_custom` VALUES (20, 1, 'sweetness', '多糖', 0.00); +INSERT INTO `product_custom` VALUES (21, 1, 'ice', '去冰', 0.00); +INSERT INTO `product_custom` VALUES (22, 1, 'ice', '少冰', 0.00); +INSERT INTO `product_custom` VALUES (23, 1, 'ice', '多冰', 0.00); +INSERT INTO `product_custom` VALUES (24, 1, 'ice', '热', 0.00); +INSERT INTO `product_custom` VALUES (25, 2, 'sweetness', '无糖', 0.00); +INSERT INTO `product_custom` VALUES (26, 2, 'sweetness', '少糖', 0.00); +INSERT INTO `product_custom` VALUES (27, 2, 'sweetness', '正常', 0.00); +INSERT INTO `product_custom` VALUES (28, 2, 'sweetness', '多糖', 0.00); +INSERT INTO `product_custom` VALUES (29, 2, 'ice', '去冰', 0.00); +INSERT INTO `product_custom` VALUES (30, 2, 'ice', '少冰', 0.00); +INSERT INTO `product_custom` VALUES (31, 2, 'ice', '正常', 0.00); +INSERT INTO `product_custom` VALUES (32, 2, 'ice', '多冰', 0.00); + +-- ---------------------------- +-- Table structure for product_spec +-- ---------------------------- +DROP TABLE IF EXISTS `product_spec`; +CREATE TABLE `product_spec` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `product_id` bigint NOT NULL COMMENT '商品ID', + `spec_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '规格名称(大杯/中杯/小杯)', + `price_adjust` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '价格调整(相对于基础价格)', + PRIMARY KEY (`id`) USING BTREE, + INDEX `product_id`(`product_id` ASC) USING BTREE, + CONSTRAINT `product_spec_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '商品规格表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of product_spec +-- ---------------------------- +INSERT INTO `product_spec` VALUES (7, 1, '大杯', 2.00); +INSERT INTO `product_spec` VALUES (8, 1, '中杯', 0.00); +INSERT INTO `product_spec` VALUES (9, 2, '大杯', 3.00); +INSERT INTO `product_spec` VALUES (10, 2, '中杯', 2.00); +INSERT INTO `product_spec` VALUES (11, 2, '小杯', 0.00); + +-- ---------------------------- +-- Table structure for product_topping +-- ---------------------------- +DROP TABLE IF EXISTS `product_topping`; +CREATE TABLE `product_topping` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `product_id` bigint NOT NULL COMMENT '商品ID', + `topping_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '配料名称', + `price` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '配料价格', + PRIMARY KEY (`id`) USING BTREE, + INDEX `product_id`(`product_id` ASC) USING BTREE, + CONSTRAINT `product_topping_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '配料表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of product_topping +-- ---------------------------- +INSERT INTO `product_topping` VALUES (4, 1, '椰果', 1.20); +INSERT INTO `product_topping` VALUES (5, 2, '更多的百香果', 1.20); +INSERT INTO `product_topping` VALUES (6, 2, '椰果', 2.00); +INSERT INTO `product_topping` VALUES (7, 2, '布丁', 1.98); + +-- ---------------------------- +-- Table structure for review +-- ---------------------------- +DROP TABLE IF EXISTS `review`; +CREATE TABLE `review` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `user_id` bigint NOT NULL COMMENT '用户ID', + `order_id` bigint NOT NULL COMMENT '订单ID', + `product_id` bigint NOT NULL COMMENT '商品ID', + `rating` tinyint NOT NULL COMMENT '评分:1-5', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '评价内容', + `reply` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '商家回复', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) USING BTREE, + INDEX `user_id`(`user_id` ASC) USING BTREE, + INDEX `order_id`(`order_id` ASC) USING BTREE, + INDEX `product_id`(`product_id` ASC) USING BTREE, + CONSTRAINT `review_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `review_ibfk_2` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `review_ibfk_3` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '评价表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of review +-- ---------------------------- +INSERT INTO `review` VALUES (1, 1, 2, 1, 5, '1', '感谢支持', '2026-01-09 16:59:29'); +INSERT INTO `review` VALUES (2, 1, 1, 1, 3, '2', NULL, '2026-01-10 14:06:42'); + +-- ---------------------------- +-- Table structure for user +-- ---------------------------- +DROP TABLE IF EXISTS `user`; +CREATE TABLE `user` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名', + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码(加密)', + `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '姓名', + `gender` tinyint NULL DEFAULT NULL COMMENT '性别:0-女,1-男', + `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '手机号', + `email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '邮箱', + `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '头像路径', + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '默认地址', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `username`(`username` ASC) USING BTREE, + INDEX `idx_user_username`(`username` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of user +-- ---------------------------- +INSERT INTO `user` VALUES (1, 'l', '4297f44b13955235245b2497399d7a93', 'lq', NULL, '15100000000', 'aaa@qq.com', NULL, NULL, '2026-01-09 12:52:08', '2026-01-09 12:52:08'); +INSERT INTO `user` VALUES (2, 'l1', '4297f44b13955235245b2497399d7a93', '测试1', NULL, '15100000000', '', NULL, NULL, '2026-01-10 14:14:29', '2026-01-10 14:14:29'); + +-- ---------------------------- +-- Table structure for user_address +-- ---------------------------- +DROP TABLE IF EXISTS `user_address`; +CREATE TABLE `user_address` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `user_id` bigint NOT NULL COMMENT '用户ID', + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '详细地址', + `contact_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系人姓名', + `contact_phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '联系人电话', + `is_default` tinyint NULL DEFAULT 0 COMMENT '是否默认:0-否,1-是', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) USING BTREE, + INDEX `user_id`(`user_id` ASC) USING BTREE, + CONSTRAINT `user_address_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户地址表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of user_address +-- ---------------------------- +INSERT INTO `user_address` VALUES (1, 1, 'c街道101号', '李二狗', '15100000000', 1, '2026-01-09 15:03:58'); +INSERT INTO `user_address` VALUES (2, 1, '1111111', '李二狗2', '13100000000', 0, '2026-01-10 14:06:16'); +INSERT INTO `user_address` VALUES (3, 2, '1\n1', '测试', '13111111111', 0, '2026-01-10 16:04:58'); +INSERT INTO `user_address` VALUES (4, 2, '1', '测试', '15100000000', 0, '2026-01-10 16:08:06'); + +-- ---------------------------- +-- Table structure for user_behavior +-- ---------------------------- +DROP TABLE IF EXISTS `user_behavior`; +CREATE TABLE `user_behavior` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `user_id` bigint NOT NULL COMMENT '用户ID', + `product_id` bigint NOT NULL COMMENT '商品ID', + `behavior_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '行为类型:VIEW-浏览,PURCHASE-购买,RATING-评分', + `score` decimal(5, 2) NULL DEFAULT 0.00 COMMENT '评分(0-5)', + `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_user_behavior_user`(`user_id` ASC) USING BTREE, + INDEX `idx_user_behavior_product`(`product_id` ASC) USING BTREE, + CONSTRAINT `user_behavior_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT, + CONSTRAINT `user_behavior_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户行为表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of user_behavior +-- ---------------------------- +INSERT INTO `user_behavior` VALUES (1, 1, 1, 'PURCHASE', 3.00, '2026-01-09 15:03:00'); +INSERT INTO `user_behavior` VALUES (2, 2, 2, 'PURCHASE', 3.00, '2026-01-10 16:05:04'); +INSERT INTO `user_behavior` VALUES (3, 1, 2, 'PURCHASE', 3.00, '2026-01-10 16:17:46'); + +-- ---------------------------- +-- Table structure for user_similarity +-- ---------------------------- +DROP TABLE IF EXISTS `user_similarity`; +CREATE TABLE `user_similarity` ( + `user1_id` bigint NOT NULL COMMENT '用户1ID', + `user2_id` bigint NOT NULL COMMENT '用户2ID', + `similarity_score` decimal(10, 6) NOT NULL COMMENT '相似度分数', + `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`user1_id`, `user2_id`) USING BTREE, + INDEX `user2_id`(`user2_id` ASC) USING BTREE, + CONSTRAINT `user_similarity_ibfk_1` FOREIGN KEY (`user1_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT, + CONSTRAINT `user_similarity_ibfk_2` FOREIGN KEY (`user2_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户相似度缓存表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of user_similarity +-- ---------------------------- +INSERT INTO `user_similarity` VALUES (1, 2, 1.000000, '2026-01-10 16:17:46'); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/系统测试报告.md b/系统测试报告.md new file mode 100644 index 0000000..9305352 --- /dev/null +++ b/系统测试报告.md @@ -0,0 +1,584 @@ +# 奶茶店管理系统测试报告 + +## 一、测试概述 + +### 1.1 测试目的 +对奶茶店管理系统进行全面功能测试,识别未完成的功能模块和存在缺陷的功能,确保系统质量和安全性。 + +### 1.2 测试范围 +- 用户端功能模块(9个模块) +- 商家端功能模块(9个模块) +- 权限验证和数据安全 +- 功能完整性和正确性 + +### 1.3 测试时间 +2024年测试 + +### 1.4 测试环境 +- 开发环境:Spring Boot 2.7.18 +- 数据库:MySQL 8.0+ +- 前端:Bootstrap 5 + Thymeleaf + +--- + +## 二、已修复的问题 + +### 2.1 购物车权限验证问题(已修复) + +**问题类型**:功能缺陷 - 安全漏洞 + +**问题描述**: +- `CartController.updateQuantity()` 方法缺少用户权限验证,任何用户都可以修改其他用户的购物车商品数量 +- `CartController.deleteCartItem()` 方法缺少用户权限验证,任何用户都可以删除其他用户的购物车商品 + +**复现步骤**: +1. 用户A登录系统,添加商品到购物车 +2. 用户B登录系统 +3. 用户B通过API直接调用 `/cart/{用户A的购物车ID}` 进行修改或删除操作 +4. 操作成功,用户A的购物车被修改/删除 + +**预期行为**: +- 用户只能修改/删除自己的购物车商品 +- 尝试操作其他用户的购物车应返回权限错误 + +**实际行为**: +- 用户可以修改/删除任何用户的购物车商品 + +**严重程度**:高 + +**相关文件**: +- `src/main/java/com/nlshop/controller/user/CartController.java` +- `src/main/java/com/nlshop/service/user/CartService.java` + +**修复方案**: +- 在 `CartService.updateQuantity()` 和 `deleteCartItem()` 方法中添加用户ID参数 +- 在Service层验证购物车项是否属于当前用户 +- 在Controller层传递userId参数 + +--- + +### 2.2 订单支付权限验证问题(已修复) + +**问题类型**:功能缺陷 - 安全漏洞 + +**问题描述**: +- `OrderService.payOrder()` 方法缺少用户权限验证,任何用户都可以支付其他用户的订单 + +**复现步骤**: +1. 用户A创建订单 +2. 用户B登录系统 +3. 用户B通过API调用 `/order/{用户A的订单ID}/pay` 进行支付 +4. 支付成功,用户A的订单被支付 + +**预期行为**: +- 用户只能支付自己的订单 +- 尝试支付其他用户的订单应返回权限错误 + +**实际行为**: +- 用户可以支付任何用户的订单 + +**严重程度**:高 + +**相关文件**: +- `src/main/java/com/nlshop/controller/user/OrderController.java` +- `src/main/java/com/nlshop/service/user/OrderService.java` + +**修复方案**: +- 在 `OrderService.payOrder()` 方法中添加userId参数 +- 在Service层验证订单是否属于当前用户 + +--- + +### 2.3 地址管理权限验证问题(已修复) + +**问题类型**:功能缺陷 - 安全漏洞 + +**问题描述**: +- `UserService.updateAddress()` 和 `deleteAddress()` 方法缺少用户权限验证,任何用户都可以修改/删除其他用户的收货地址 + +**复现步骤**: +1. 用户A添加收货地址 +2. 用户B登录系统 +3. 用户B通过API调用 `/address/{用户A的地址ID}` 进行修改或删除 +4. 操作成功,用户A的地址被修改/删除 + +**预期行为**: +- 用户只能修改/删除自己的收货地址 +- 尝试操作其他用户的地址应返回权限错误 + +**实际行为**: +- 用户可以修改/删除任何用户的收货地址 + +**严重程度**:高 + +**相关文件**: +- `src/main/java/com/nlshop/controller/user/UserController.java` +- `src/main/java/com/nlshop/service/user/UserService.java` + +**修复方案**: +- 在Service层方法中添加userId参数 +- 验证地址是否属于当前用户 +- 在Controller层传递userId参数 + +--- + +## 三、已实现的新功能 + +### 3.1 购物车批量删除功能(已实现) + +**功能描述**: +实现了购物车批量删除功能,包括: +- 全选/反选功能 +- 单个商品复选框选择 +- 批量删除按钮(仅在选择商品时显示) +- 批量删除确认提示 +- 删除后实时更新购物车数量和总金额 + +**实现文件**: +- 后端: + - `src/main/java/com/nlshop/controller/user/CartController.java` - 添加批量删除接口 + - `src/main/java/com/nlshop/service/user/CartService.java` - 添加批量删除服务方法(含权限验证) + - `src/main/java/com/nlshop/mapper/CartMapper.java` - 添加批量删除Mapper方法 + - `src/main/resources/mapper/CartMapper.xml` - 添加批量删除SQL +- 前端: + - `src/main/resources/templates/user/cart.html` - 添加全选复选框、商品复选框、批量删除按钮和相关JavaScript逻辑 + +**功能特点**: +- 权限验证:确保只能删除当前用户的商品 +- 确认提示:批量删除前显示确认对话框,显示删除数量 +- 实时更新:删除成功后自动刷新购物车列表 +- 错误处理:妥善处理删除失败的情况 + +--- + +## 四、发现的其他问题 + +### 4.1 头像上传功能未完整实现 + +**问题类型**:未完成功能 + +**问题描述**: +- `UserController.uploadAvatar()` 方法只返回"上传成功"的固定消息,没有实际的文件上传处理逻辑 +- 缺少文件保存、路径返回等实现 + +**复现步骤**: +1. 用户登录系统 +2. 进入个人中心 +3. 尝试上传头像 +4. 虽然显示"上传成功",但实际文件未保存 + +**预期行为**: +- 上传头像文件 +- 保存文件到服务器 +- 更新用户头像路径 +- 返回文件访问路径 + +**实际行为**: +- 只返回固定成功消息,文件未实际保存 + +**严重程度**:中 + +**相关文件**: +- `src/main/java/com/nlshop/controller/user/UserController.java` (第82-91行) + +**建议修复**: +- 实现完整的文件上传逻辑 +- 使用 `FileUploadUtil` 保存文件 +- 更新用户表中的头像路径字段 + +--- + +### 4.2 订单跟踪接口缺少权限验证 + +**问题类型**:功能缺陷 - 安全漏洞 + +**问题描述**: +- `OrderController.getOrderTrack()` 方法缺少用户权限验证,任何用户都可以查看任何订单的跟踪信息 + +**复现步骤**: +1. 用户A创建订单 +2. 用户B登录系统 +3. 用户B通过API调用 `/order/orders/{用户A的订单ID}/track` 查看订单跟踪 +4. 成功获取用户A的订单跟踪信息 + +**预期行为**: +- 用户只能查看自己订单的跟踪信息 +- 尝试查看其他用户的订单跟踪应返回权限错误 + +**实际行为**: +- 用户可以查看任何订单的跟踪信息 + +**严重程度**:中 + +**相关文件**: +- `src/main/java/com/nlshop/controller/user/OrderController.java` (第73-77行) + +**建议修复**: +- 在 `OrderService.getOrderTrack()` 方法中添加userId参数 +- 验证订单是否属于当前用户 + +--- + +### 4.3 商品搜索功能缺失 + +**问题类型**:未完成功能 + +**问题描述**: +- 根据README和功能规划,系统应支持商品搜索功能 +- 但实际代码中未找到商品搜索的实现 +- `ProductController` 只有分类筛选,没有搜索功能 + +**复现步骤**: +1. 用户登录系统 +2. 在商品列表页面尝试搜索商品 +3. 无法找到搜索功能 + +**预期行为**: +- 提供商品搜索功能 +- 支持按商品名称、描述等关键词搜索 + +**实际行为**: +- 无搜索功能 + +**严重程度**:低 + +**相关文件**: +- `src/main/java/com/nlshop/controller/user/ProductController.java` +- `src/main/java/com/nlshop/service/user/ProductService.java` + +**建议修复**: +- 在 `ProductService` 中添加搜索方法 +- 在 `ProductController` 中添加搜索接口 +- 在前端添加搜索输入框和搜索按钮 + +--- + +### 4.4 订单取消功能缺失 + +**问题类型**:未完成功能 + +**问题描述**: +- 系统支持订单状态包括 `CANCELLED`(已取消) +- 但用户端没有提供取消订单的接口和功能 +- 用户无法主动取消自己的订单 + +**复现步骤**: +1. 用户创建订单 +2. 订单状态为 `PENDING_PAY`(待支付) +3. 用户想要取消订单 +4. 无法找到取消订单的功能 + +**预期行为**: +- 用户可以在订单支付前取消订单 +- 提供取消订单的接口和前端功能 + +**实际行为**: +- 无取消订单功能 + +**严重程度**:中 + +**相关文件**: +- `src/main/java/com/nlshop/controller/user/OrderController.java` +- `src/main/java/com/nlshop/service/user/OrderService.java` + +**建议修复**: +- 在 `OrderService` 中添加 `cancelOrder()` 方法 +- 在 `OrderController` 中添加取消订单接口 +- 在前端订单列表和订单详情页添加取消按钮 + +--- + +### 4.5 商家端订单拒单功能缺少状态验证 + +**问题类型**:功能缺陷 + +**问题描述**: +- `OrderManageService.rejectOrder()` 方法可能缺少订单状态的验证 +- 需要确认是否只能拒绝特定状态的订单(如 `PENDING_PAY` 或 `MAKING`) + +**复现步骤**: +1. 商家登录系统 +2. 查看订单列表 +3. 尝试拒绝不同状态的订单 +4. 检查是否所有状态的订单都可以被拒绝 + +**预期行为**: +- 只能拒绝特定状态的订单(如待支付、制作中) +- 已完成的订单不应允许拒绝 + +**实际行为**: +- 需要进一步测试确认 + +**严重程度**:低 + +**相关文件**: +- `src/main/java/com/nlshop/service/merchant/OrderManageService.java` + +**建议修复**: +- 检查并完善订单状态验证逻辑 +- 确保只能拒绝允许状态的订单 + +--- + +### 4.6 库存预警功能可能未完整实现 + +**问题类型**:未完成功能(需确认) + +**问题描述**: +- README中提到库存预警功能 +- 需要确认库存预警的触发机制、预警阈值设置、预警通知等是否完整实现 + +**复现步骤**: +1. 商家登录系统 +2. 进入库存管理页面 +3. 检查是否有库存预警功能 +4. 测试库存预警是否正常工作 + +**预期行为**: +- 当库存低于设定阈值时,系统应显示预警 +- 提供预警阈值设置功能 +- 预警信息清晰可见 + +**实际行为**: +- 需要进一步测试确认 + +**严重程度**:中 + +**相关文件**: +- `src/main/java/com/nlshop/controller/merchant/InventoryController.java` +- `src/main/java/com/nlshop/service/merchant/InventoryService.java` +- `src/main/resources/templates/merchant/inventory.html` + +**建议修复**: +- 检查库存预警功能的完整性 +- 如未实现,需要添加预警逻辑和前端展示 + +--- + +### 4.7 评价回复功能可能缺少权限验证 + +**问题类型**:功能缺陷 - 安全漏洞(需确认) + +**问题描述**: +- 商家端评价回复功能需要确认是否验证了评价是否属于当前商家的商品 +- 防止商家回复其他商家的商品评价 + +**复现步骤**: +1. 商家A登录系统 +2. 查看评价列表 +3. 尝试回复商家B的商品评价 +4. 检查是否成功 + +**预期行为**: +- 商家只能回复自己商品的评价 +- 尝试回复其他商家的评价应返回权限错误 + +**实际行为**: +- 需要进一步测试确认 + +**严重程度**:中 + +**相关文件**: +- `src/main/java/com/nlshop/controller/merchant/ReviewController.java` +- `src/main/java/com/nlshop/service/merchant/ReviewService.java` + +**建议修复**: +- 检查评价回复功能的权限验证 +- 确保商家只能回复自己商品的评价 + +--- + +## 五、功能完整性检查 + +### 5.1 用户端功能模块检查 + +| 功能模块 | 状态 | 说明 | +|---------|------|------| +| 用户注册 | ✅ 完成 | 功能正常 | +| 用户登录 | ✅ 完成 | 功能正常 | +| 用户登出 | ✅ 完成 | 功能正常 | +| 个人信息查看/编辑 | ✅ 完成 | 功能正常 | +| 头像上传 | ⚠️ 未完整 | 只返回固定消息,未实际保存文件 | +| 收货地址管理 | ✅ 完成 | 已修复权限验证问题 | +| 商品列表 | ✅ 完成 | 功能正常 | +| 商品详情 | ✅ 完成 | 功能正常 | +| 商品分类筛选 | ✅ 完成 | 功能正常 | +| 商品搜索 | ❌ 缺失 | 未实现搜索功能 | +| 购物车添加 | ✅ 完成 | 功能正常 | +| 购物车数量修改 | ✅ 完成 | 已修复权限验证问题 | +| 购物车单个删除 | ✅ 完成 | 已修复权限验证问题 | +| 购物车批量删除 | ✅ 完成 | 新实现功能 | +| 订单创建 | ✅ 完成 | 功能正常 | +| 订单支付 | ✅ 完成 | 已修复权限验证问题 | +| 订单列表 | ✅ 完成 | 功能正常 | +| 订单详情 | ✅ 完成 | 功能正常 | +| 订单跟踪 | ⚠️ 有缺陷 | 缺少权限验证 | +| 订单取消 | ❌ 缺失 | 未实现取消功能 | +| 个性化推荐 | ✅ 完成 | 功能正常 | +| 商品评价 | ✅ 完成 | 功能正常 | +| 评价列表 | ✅ 完成 | 功能正常 | +| 留言反馈 | ✅ 完成 | 功能正常 | +| 消息查看 | ✅ 完成 | 功能正常 | +| 公告列表 | ✅ 完成 | 功能正常 | +| 公告详情 | ✅ 完成 | 功能正常 | + +### 5.2 商家端功能模块检查 + +| 功能模块 | 状态 | 说明 | +|---------|------|------| +| 商家注册 | ✅ 完成 | 功能正常 | +| 商家登录 | ✅ 完成 | 功能正常 | +| 商家登出 | ✅ 完成 | 功能正常 | +| 商家信息管理 | ✅ 完成 | 功能正常 | +| 商品列表 | ✅ 完成 | 功能正常 | +| 商品新增 | ✅ 完成 | 功能正常 | +| 商品编辑 | ✅ 完成 | 功能正常 | +| 商品下架 | ✅ 完成 | 功能正常 | +| 商品规格管理 | ✅ 完成 | 功能正常 | +| 商品配料管理 | ✅ 完成 | 功能正常 | +| 商品定制选项管理 | ✅ 完成 | 功能正常 | +| 订单列表 | ✅ 完成 | 功能正常 | +| 订单接单 | ✅ 完成 | 功能正常 | +| 订单拒单 | ⚠️ 需确认 | 需检查状态验证 | +| 订单状态更新 | ✅ 完成 | 功能正常 | +| 库存列表 | ✅ 完成 | 功能正常 | +| 库存入库 | ✅ 完成 | 功能正常 | +| 库存出库 | ✅ 完成 | 功能正常 | +| 库存预警 | ⚠️ 需确认 | 需检查完整性 | +| 评价查看 | ✅ 完成 | 功能正常 | +| 评价回复 | ⚠️ 需确认 | 需检查权限验证 | +| 消息列表 | ✅ 完成 | 功能正常 | +| 消息回复 | ✅ 完成 | 功能正常 | +| 公告列表 | ✅ 完成 | 功能正常 | +| 公告发布 | ✅ 完成 | 功能正常 | +| 公告编辑 | ✅ 完成 | 功能正常 | +| 公告删除 | ✅ 完成 | 功能正常 | +| 用户列表 | ✅ 完成 | 功能正常 | +| 用户信息查看 | ✅ 完成 | 功能正常 | +| 销量统计 | ✅ 完成 | 功能正常 | +| 营收统计 | ✅ 完成 | 功能正常 | +| 热门商品统计 | ✅ 完成 | 功能正常 | + +--- + +## 六、安全性问题总结 + +### 6.1 已修复的安全问题 + +1. **购物车权限验证漏洞**(高) - 已修复 +2. **订单支付权限验证漏洞**(高) - 已修复 +3. **地址管理权限验证漏洞**(高) - 已修复 + +### 6.2 待修复的安全问题 + +1. **订单跟踪权限验证漏洞**(中) - 待修复 +2. **评价回复权限验证**(中) - 需确认 + +--- + +## 七、改进建议 + +### 7.1 功能完善建议 + +1. **实现头像上传功能** + - 完善文件上传逻辑 + - 添加文件类型和大小验证 + - 实现文件保存和路径更新 + +2. **实现商品搜索功能** + - 添加搜索接口 + - 实现关键词搜索逻辑 + - 前端添加搜索UI + +3. **实现订单取消功能** + - 添加取消订单接口 + - 实现订单状态验证 + - 前端添加取消按钮 + +4. **完善库存预警功能** + - 检查预警逻辑完整性 + - 添加预警阈值设置 + - 优化预警展示 + +### 7.2 安全性改进建议 + +1. **统一权限验证机制** + - 考虑使用AOP或拦截器统一处理权限验证 + - 减少重复代码,提高安全性 + +2. **完善订单跟踪权限验证** + - 添加用户权限检查 + +3. **完善评价回复权限验证** + - 确保商家只能回复自己商品的评价 + +### 7.3 代码质量改进建议 + +1. **异常处理** + - 统一异常处理机制 + - 使用自定义异常类 + - 完善错误消息 + +2. **代码规范** + - 统一代码风格 + - 添加必要的注释 + - 优化方法命名 + +3. **测试覆盖** + - 添加单元测试 + - 添加集成测试 + - 提高测试覆盖率 + +--- + +## 八、测试结论 + +### 8.1 总体评价 + +系统整体功能较为完整,核心业务流程已实现。但在权限验证方面存在一些安全漏洞,部分功能未完整实现。经过本次测试和修复,已解决了3个高危安全漏洞,并实现了购物车批量删除功能。 + +### 8.2 主要成果 + +1. ✅ 修复了3个高危权限验证漏洞 +2. ✅ 实现了购物车批量删除功能 +3. ✅ 完善了权限验证机制 +4. ✅ 识别了未完成功能和待改进点 + +### 8.3 后续工作 + +1. 修复订单跟踪权限验证问题 +2. 实现头像上传功能 +3. 实现商品搜索功能 +4. 实现订单取消功能 +5. 完善库存预警功能 +6. 检查并修复评价回复权限验证 + +--- + +## 九、附录 + +### 9.1 测试文件清单 + +- 用户端控制器:8个 +- 商家端控制器:9个 +- 服务类:16个 +- 前端页面:18个 + +### 9.2 修改文件清单 + +**本次修复和新增的文件:** +1. `src/main/java/com/nlshop/controller/user/CartController.java` - 修复权限验证,添加批量删除 +2. `src/main/java/com/nlshop/service/user/CartService.java` - 修复权限验证,添加批量删除 +3. `src/main/java/com/nlshop/mapper/CartMapper.java` - 添加批量删除方法 +4. `src/main/resources/mapper/CartMapper.xml` - 添加批量删除SQL +5. `src/main/resources/templates/user/cart.html` - 添加批量删除UI +6. `src/main/java/com/nlshop/controller/user/OrderController.java` - 修复支付权限验证 +7. `src/main/java/com/nlshop/service/user/OrderService.java` - 修复支付权限验证 +8. `src/main/java/com/nlshop/controller/user/UserController.java` - 修复地址管理权限验证 +9. `src/main/java/com/nlshop/service/user/UserService.java` - 修复地址管理权限验证 + +--- + +**报告生成时间**:2024年 +**测试人员**:AI Assistant +**审核状态**:待审核

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 JzQ}%#{SSSyIq(1g literal 0 HcmV?d00001 diff --git a/target/classes/static/upload/product/ad501998-b3c1-4568-ae4f-31e2d9ce0e3d.jpg b/target/classes/static/upload/product/ad501998-b3c1-4568-ae4f-31e2d9ce0e3d.jpg new file mode 100644 index 0000000000000000000000000000000000000000..359f6372c24fc0541f7d4311397d089192abc47b GIT binary patch literal 235292 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%0DmL-^0%MEj+bSTi-`{22@lp^lf4 z#%GfvB*R>;vBec0yMSwEA}`ldful8JY%XqOu|%y(x8H!gY{@R>Az?4B!Sb+d&&zA> z_gKHo+8~-nq$PFPqm>YZeenII|JnKGWTW%Ju{l!O*=nd=Pq`Q3wRR6P8Fd_Y`wp=Qf8J}Z%ZAE5*MT)KM;{?>SUu&~=o8RwEQ z@sn#|@v(u0KNhBGLQ%0cs#BB9A+>*9=A^c9{2-iN#ePX=@>CG@v?w(j|0I)JL zue7m2Uh(ZG?XW}U%KmNnM(R3O1km-hGSj;I7xY;d<*B;da{)dzLjwL(Pd-(4{xE?x z5O4%&?Z9N$dPbX{piQ9epBdl(eWHDyM)UoS)Z>Cb-Qe9Y5 zGot96i~RkWb>{nsKi_(lK%Y2(#5Mm0c&T)k>krLOs>WYcP*p|$#hq=c#78Sn=C?6q z&D81kF;KBv<;=y;Jw!Ye`=}jxQ)$hik;b|GFO0uxDdGeWp9&cH)Aw++bX@glX#|V$ zlXVEw$BKnK?9H|CE5RpmizkTaHi;XqxQ zyz%x4hJ=1YR1$|?fr~wD?s-F5_qgvoZ!ZYQF;U-2Y*Lt!>a0CibmWc zcWk`2lGOO5TN7t{qF10MKqGbr+B5!nCIRl>=C|UPuZ*#^=bMCN9Adxk@Qv~rwm)DW z=n9pVP+st6_YxunI)cAUu`kM5*e9v+;w&`NF>=YP&hGjqz{pa5$atFj5YT26A?hn| z;8MoGGKz&6-8xSD2||o6=Bi;;u~HpteH7Wy6c>e`&z$u?%51s&JFx?eqPXlH_Eacl zT4QhB4}n0LGo7O>cf7UqvDAT1{QHIlNt(~=H3aJ@kD>F?$YI=8!r+d?#$-4BTah>0bRc>_)ws*1Z?4*ENa! zdz75Br)!2q-rngSi?RF`*sChOG5rsvYvM&kBEjB`i)+vHPbaU-*ix^(c-HiBR?P5cv2l=eQQ)sh<$gVE^FYVF?+wMR@XUpWQIys zhuuMq@c1NruND^@)lO?j#loLk`jvA0WO;X2KQJp>fIus z32*6AvBKq)Soe0x^A*I;$d8bVBOMuu%52qDgn)0K=AC5IY=5+BG1^KAC~Kw*DC^~0 zN=KI5Hg(;j;m&Y}3-YQi8YSvekT-eG;CLIH;#PY|ugltZZ!nXFfjR1-nXSB9!f<$%=nWERtH-UvRq**9X_`upL4`gjCRtK2~r=(2)Pd!oDEqL~JMVXB#TY7o>tDG=CfA>@}JU_w;6&U^Leu6J>IBcsoCvU6c`v zWi(GzdHQE{X-l*KG=Nv<5_oFy`Y))!w8;s`kprbpJ&UImqmPw9YrwdT#_X+n@#8?$ zj=kr^1Uamx0m(0{0URQVfq#p2k1DsY+&H>XuCVrJ;t5 zo9J~=v^K&7v^^R|F7n;=Uftld$oUnlq-XjajJL9NeO3l?sqRzQ)v z8g^pmp84%;+UlCRci$XB>e2}es=iirc+=(8Gs20N5L0(L z#)6YJPFZOAiQm}v+)i(F0ri+R@K?N|bcrR1`lD`D)JFw!e&0xQM$A#X?`jALE}6i< z7I{{Nn2P~-Lzfxyrjv?sw7qpXNdcDUyU=cfCFo7KQ&BDctn0dtfNCO3GRiL>VLyRi zANHaiAJnnY7Wa}q?gKS}U9`U6B!2^;@MCMcchlCf+vFT<1Ck6&Q?pIqdnMnLUdGb= z76rFkit=2d>`B)IY?>`9`8&Y%wsi9R55`REeVjC!&m{7^1=mu(;16vxE`3EW_U9P? zeLVNC=Hr_$*KGjqjYW=yQ~!(js!%%@jj@DCrwaz`4!+eazurdJnDYVjbr;0qFQ^fw z@^W57VJOd$LbzWjZiTiXy`{t(q38+$d zZil}JCXA1T?af_LJvCi19!K&Qglo(`KX~hF*x(~Ar0U>65nQ8ni>$89AkGwXY!Oeo z`9@IRjE=uYd4jd(q3sPc79Ql@?X9`UNBN}%)PL|Ssd?DrC?Xs!X@}J?eJnD{W#m%&^BE?+V1BYd z1(__&Up*mG5U$Bj3eAa~_t!){n;VU{@(BqB6W&SBmW<$;rwwJBafXiavadyz$k5N6n=Nh@y@I7v;H<8rR4y0DZ zXBRd|WL`HSf69BAMfk!hFGz1#R~F{WGk66ur#Xp4RQqJf7HzYuVBds1>Os#`R98g` zMSDlz1QHt{yQeAKXf;Z?A~Iwne|8apdUm@I?yhwV?i2CKU`~3CARbwkm#=O{B!o*Q ze~8mN))j?^%WN0zP(LRiS9*lmTlOD~-M==tqC%Oet$gXEl_|Yk=cc&4$lghhWMsBJg)YN}jarA?-lT&y=@SFZciDFf0sDe8 z%w(^{Il#>*@~`j^P#k)NlgKO*1)>*P$18C?)Hy!pku3zKo8~8n0)h1#ZelJA(~Pk5 zyW+Wp(JyZ`e3{Tw8N56ECVrEWgJ&>n#-!=n#r35Q-A5<6M{e63#=q`7>l)nIqy7bH zFi^vcYV)_$D2>_r2;nlrt+gJL*58cg%ua}>B7)v1)l;KGmA^K^%p5m)JfV=a14Zim z?DhF+(y4pr%08o11QMg)gr$Su69^pbarIYcP0B1W3SkoF?}MejG78X6v^&$)ZE0{w z5MoCs@u~HK`%7sEdmaiZ(o>tGL{{y7;cv!`Qj~q7rr}3k^PmjqIMCsm`J<$QUPsdK ztSYfRg@;^-BBXEZ&}*41h`crYyI;HalTjdw=l#kW{4q`e%WqDE3OJ^P-N`&tmdl*C zhze;_>!m8;8EH;_*!(yVru3zXZxZz`=$O_{{<$xs(gD5mRJUYJ7Oej3k>UZ8gP%&rt#;B5Nzu zlrXW%F+kpv51;Os&u}KZJg~b{t-WgBc;HBZ6TuAU*0bNvcsnX@33_AqcxG|5+YO}G zW4|KV05p@mz1Vici<}vvOX%UO0j@6kG&j2M{r1CvQP$dLC6w)>yIC0PD?NcnoKv#p zqFi8K-EJN2h^=fTk+OF0gIwP64l=m}>f^ooSWj5_$3%EO@mw7I3QW4h8hWC6XPh|B zyb~yBp5NKGP#ban5{0q?E`JLZne-Mb7AyW#40on!Nj#*)A?w*7Byv3nls;w$+8NIz zHKvWuww8vslSI;X`Wpqc;@gc$Z7(U)ePP8l!StIhRO>$`DR#L~2zYWx*zo71M7X`DOH3AK83yn4%mHLyb>YvnLbBHq6SWaF6J_ z|MK@LzE_TISn|$VU4KCe7k&c0dfm~ZmkeMu0k61l3#^)OeWn|bD~ zywMV!l2{s>>d#*QpeC7n z2hlsHdVhtl?6YIzN;hK*m^oXf_rFmJH^_P{78>S320wZ+1yl(QM-Y%P=g6$oW>y3d z{S`FNAx3*UiW&<6N{lWh4+9`VVTCf!>ku=nz-H?Cj3Kca!5(BPm;No~U4g9Mmv|kw zSmMur&Q$X_BRcF-wsig=vj}_PGcXpP>E_Ir*HKDy(-NOilGyuEG7d`^8BJAi5@{-ioFb+ndtA)C)C(xKd+5!c*j3t?sg7f{B)EKqhncLG?G*r&d9&d z<3)#*b2T9mGCOb*PM}T&({bpo88(VBJ3A#V<;-vzb{C0etr=oSJM>3OHY8qMxwRde?Wgkvx7PAs$}&1v{V*2c$D<|0%8<~5l$*psB{tdJ`=pYvweI>;n! zcvD}?FbZWbJ+lQ=G7kwo;T|>}SiRL!u9>o-9vU^=gcS-DX(KH<-MamjdDS|6wCG*s z+ZOZ3-K%>xRV|wf3m*ZmGoyCa{f>bQS~*sZ@3Vk|{)5N`IG(O7UxtVd?d>h?8kw3tzh4K8zb^>bp+ z;F;wah2CZQTZK%FKI+QpK_5L30Bd2n>LQ)yI#;LG`b=3As0InDcjZ#!1C$zI|FejW z%k~|mB9zCmb9f=i2JO>haiuLBh+^V$lljf(%?}=b&^I|q{CM88VS--DrVILn&7jS4np=yd%lIexB{FtLxs%TLV_(WT()pft&F;tIo0xooC=znI5{vo0 zh37QG&tWp}(sQ$NQhT3ATdKNmjsge2gY3I+h%QGDv~K1<*S2Bj%$N#&>qQ5#tZR@W z1YM18i7&Mrmwl*j!yf?IEjn)JhK#6@-E7ZcUE=0yaNEapZ5d?Wd#m^7mBCMAT?9&hmFr)m&8&bpObIstcfJa?|VF20JtSsjGhEd;@d^b~WdYHc$Y1oy$yPs)#>ePCfa>`sM zK2d-aZaJa@C{!#n-6{@`&=ou6=T4Ro#Dez>8LD!`zAHqG9s*}@x^O;D>&?#aA zDi6umP84w;c9r1Vy16-Lx6%7p0ut1}S5Y8A7^QrejyvkL#PM-B36k${Y}&CC^4czL zWHgSzToRbh;_BOSHHvCD_#%9frJbtwrM_Ck-Jj4P$}?=|QMqux(IpIn76BI2>YFbT z1hjm9t`t}`qnd0{Pn{jnenFbqeDQ4{i=$?EO+?+TXmg(Cxah?gv9qpc-=A1oQnRVd z=@pD&VuIH+3$ewHD3ddVe|9PU)YV0m;?d|Ei9ciS-KD~oAwf}W0yAs{tED4*(sD}} zHf6E(o9BYhE^!-jwAU0b`-`M)#hV?)=~6Z9g?ivbK&a&^r#GUh2&WutJKgyK4 zUeU6o$LXv@Dl$j!*+;kFzaX{G?)*0+k~0l#^3RTX6gQ){GkAtMhhh0FCPfmT%?S0< zDA6yAM~bsJB%|sD>&s{r>jLFH)2I1K27XC};4r>aQykkVbAs7Se&X2TA(bWR9YFAo zP!n3M!f{Cdl}zTKL)%a?T&Bl8-PuE0n$4!#-hL8jm0o|RTHmqM2Z!i&7D(%fiSyL( zKS_{oAi07z-JnIy2!BD;CjcsjqPAUP>#^xc6NdIwFe1f1arXEKp91@NA)W+J?mho_ z-b?%FWiwhY{bMc`v38({f}?$ zU!Gf^8F!vI;Kw_t$eCHM0^02-)vPZqRwZe>?AxF0@LgjOK$Vov@0(Y2pYm-Ber}v@ zht?i0GWRT|4Llr@nw{l4Bm2P$;_7rKYTTa0RRh2>Hx^A#Fj`5`1~ec2cbx027qMHrPTkbZex z#Pca%NZ2v8H*Ng|QB5p@IsBnKKOL+4ZS;+tyD_^*TrumiA&C6ydKB1;7gp%J0j9=g zhlBTAdtOs4HwPWx88snA+v#%ZS~#6LE_}Wf8tbvcoxkLux$5crs=XFqK6N!u)dzRv zTuvC%Qs!-6#*2l^rOteLW&9IQ_5)+vi=S|NM}%ud-K4b)HFF~yk(;4}^@joZ?MP3b zZ%z^9QlmoX5kB;&ku*P~4IgskzS|Nip>B|2mD%adC)>WCDoq=#m-irZnpP;>fdKf+ z5t0)lYsINV^38etI^*q4ZDj1V=&8qMufh`e@M-eUQNE>Y$n7gr1-lD40HvPt998Iz z2Ob7&kb`EP(>g)S*x*LtlInLMOHSf|X=~++aSnQX zb2X_@V;A&N!61b)kP86S|9KyQt1j)!e;v#5isJA70r>8Jp?u?1cHoNJ{{YkoOkk%1 zvylNvm*o_Ioj$f<%{FV_7EskEdCJ#He$E2kHDJq#EF=c_BAfVsu(-DTqVw<8y=>=v zVMa%(VMjkKg-2;tz&QeB=LHUcc(X4ljh0^%w1wDz6-&khP(nrliijc zy*UMriw$^fvlTaRVs1fp8-ATB%VaBU0{?REaRV(W@3r0@eY^m^6K4+nWBw>&g4#qQ zL#(`J+6kR(1r((^qi)aHWGYcdp;s2xiMi+WK-YDNy8-_Js!hg=;b-*mVR>|87d z&>dsjOOVo!1m(rud~pN|nvggBQ=TjpaBr2EJ*SO>C2HFIPwE=v3%g?OFLa;r!;6B$ z!>bQ=3hAk@==blrx7vaf^QN)6$%N99%eTH3LSyYEZ#)<;%U>%H9JomcYhqxc+EI&H zJ(U+e%WgFyc2(Zrl%&qoKyL$&yE^W>jpUm=63o&flk|;`kt*(_dp*}1!Fam@7w$H& z7J|bIi_-;$QWFQB%?@Pp?`L~j1LtitmwG=Ps%l2$H@c+P{(|0GB$2acaKA0&EUl6r zC^>!Uv=DQr8g2!-HCwkz^LQWYLwv*0Su`?vl)3Tyx}yxktZTkD_q1_a4^R8$H1lX0 znm*PC#FvqZ7d8K_=B*?`}mMCs-kx6S8F+t$MM}cAGuKR@AOl}SCpC&U* zYmU?jMpAR6_)6^l&2B=fHdY-MtU+7fY6km{k4TPqE*6JyKkxIwAt)6r|*)x ze|BhAGm=@rY|JPr@u4^48VT0xx#Ti}q57nhV{Pwq3aG)6+9P=F0Sj}l$P5C9xp<%s zN-gKz&s5+|%fv;u@Vc7tLyqD4WB@=0OmAq>>iwhlgzZ4dm)_1<`3m`Vy$>th`gL`J zEwg(1gCwv4ef9JLz{rbXGTP)*S)Pqwx*t}aEd3s<^LE;}l1GKckZMbmoNm1)F7_m_ z%0QeVu>P+y-?4vLez_0(B!wy1O->lN)qExD>NLsSDXO_YbfP_KWPe@vE||oAi-bJl zJ4LzGA6xymAJw7c2^%~P+Hhd2cHpcuF>;Hm5|glE?VCa&^4Zu93f{J1A*6WUSt*VT zFKt*LAp(oNHedvSd*zRY2T%x)$bI+KC@1QL@$O92P0-C})C*X`NrVGXh)`cwrwSjA zvb0wzPtOyWnCUag|L!{2e%E68=gGW>gdeIl!ynvwk}t8d&Ch?Yl8>eN{ULhb*Bcwu z;-=()UX9JHGBIj{Cr;%GIzDRRpXZ#5UK5DW*f(3!kCr@0V-E9>&Fg#84Q`#NWlyuV zeA4`a&k`P^JIjSj&4nR@ec+L@AzAWaRhql_V8faawKTm$#Q69%-DQ zTBs^=teMypzx!6>MkgvWh{ckuBTn0|%FDdLh5LyWOI?M{rcxbUf-dc&lXO|V)iC+e^B16$`JO28cG@yf})A|x6RsGg2~k=jv`>+IwveUY(nHklsr%$;DLyjgyDkLjBwKRvlDp7BR0 zbK|ODHxr}rjA}8Q{&!@yT#vEQ#oIZ3FN%q(2<`lVNYZ#CS9^l*g29CSa9gYvAMh&H z9bM!90fu*(PeN6y@qyoi;8Y6$9XKiSg76eGRG29jkPzJrL}=|dcs_|xrn{r40jEKV zDYeXh6zz6e*4^cQs4?LT?fEl?)^q(|&|zl{jN*=f>(FmBPwyU7-gf78{v?l8WnPBy zacsI0CBs{DZ%z0AfJXAG9Y1_ecdh5HU(SzK%z?!(rHw;teS; zFv!bGC=hWAf7ouJTlG!Ahve$E&texfPU&-YYi+ZO3XQ{?NP(pzy%5owKL^iPV=xya z<=Q~rX2Xs=?`jB?c|=Os=ecHj5l?l#+n|2CBC8Ah=e+s;U1ueWjZOt;^s3$3y`xC{ zprDV{S5*(@;MDw3CkM({UA|R%#@ob41|#=!trz7^0+6mY^d+eqg`D}ix$d;U;rI1q zVuZr%!&c@c)a15N6H=$BH}lf;i@V@34zCS+@jTp%fuAK87bNsO>$Yq;0BXEA1zpb zm%JVBqNluOIv*pqcqJZcf{?Mpo8ZB!=R|lZH|V(_BB@7Ar^}*CVaJtjPh^3}->+pJ z2h)?&T~Hn`sb*@!cQFWTW)JIz?Eng*U?_${;+f{T?PeO#qUCd{p@cQb4H4d_6l_=! z#oLIm)+jP0`aUYk`)SFFpTOay0tn&c0USS1GGGBW%U5KbM zE<71ujL7RVoPaQm5c|QkSJo3~)^@u4pzU1Un{@>2@E?}!{g2mGk)LzU3DcYlDD|}j za3i|8dh)Iv(4jg@(WV{U<#$I=-r~CiR5blx9LWnlJ79f?d@NaCVn7^2XVrX=-}rBK z;XmSbM^cPh3U{mV!(P@|5%e@cUWVzonRhkA^G4D}SCDMROZMFb$O1GXQ|>5A^~k9d z?o^L%FMX8m^^7;~Znuu>sUBQ*`OriJsjrPTmLvHfsd(cEC`zEqQE&BkI4OD5g;YZ2 zY>ctaIk8);3%m_~EFfTvJ|&c-LKb_UZ+^W{OU)qdJ;NzPh%E=!%PN=!#q*m;Q;-`W zIep{hU9jKfYxKMvL{Vz{yiFgkGhJH)da>Rm#mFmut)F1OIwv+m+=$gp%&eWuG8>xb zL8m(XE>eCqGWN_By@^Vf_t$l?nB{jJq;J4osXtwK0zM)eK7|EDwG4ZtmzBNnQBbUE z@-H`0=hw!7v>KBhi9J(<*3$FwvEJH@2oG)eJfl7F3S~aOf~jxo7th#&7k$3gPm$i2*GR&k zCoA6JcS#=0VtdabHLMv?-*Y1L@0E8^3|8&G%pOgFf`mtx%j?6o9#QbQn$iMMFMzYm z;)jE~I2{Gc`$cpQ`?JrSsb_9Kvd_rVV7zf|uU72r)48nqNu#`8Z*d7bo}Z}6Vf7HV zY-Q{}A5*=OnlTi7TPGN8YwugLH-uZ};LCR!AwpSAD=e&0l zGuN#l@sIUO)7PAFi<_iax(f1as`N7Qit4sA&y6I7{nSv~?Xsn(*=`KI2VPmV5E+=g zEsGYI)83tIG@H_>sH0c#h)xDJet8M22o=YW@jEU9wPF>QTuu0K&j|OEm4FWv!}b9{X3{|991d8cH->@b z|H&-@x{%OVB;g!_8hgf?P@7TMHY&bLn{xOqD@Tn?g`eofLh zp4^1@(Y?{vYQYE+({?Q~9{cnnM<8Cj9TD;h0zDid<$C11+zz3ee_f@y&k0@b!np2$ z35eS9GcbX+)8aI(9U7C%FuQ`Man?_DUM9tusfEyB6p%Tk({A%e`WKs>wTiMc z)rnbMnYssw?JQHfJpw;`qOfqON>Ev4AJ378f`DRq_Q#(`n z&cZhIphl7p*tt;mz|SY;*|)W!tBL?2B&ZZeJAVH`zJu7T)YXIGb|zdCUCrI?nx9i0 zAce@)JAKvOK^L_RM2T>;hD}ZE#~WFUC6MuMO7}(t_D#Zal~|as)GyCj4rF3?dB5>1 z6H$@wOf>h~3!Jx9ubdXSWZ`8{ea)Q5zu+o?y<1;>O6jL^%pA-txs7)3#T0g0z#G-H zwELu~k}uDjq*xZ&d^rl1iHMFr0}}8t^=kcHn0LkJw(}%{A(KSqrX$~#QfY)$%rY0v zW-1{KnVkx-Z*ttQf!9CZIYvgDbMV9KWLBbX_hzN-XMQcA-gkW%sOSYhsSd9UnZ;~k z=ZU4gXHWkil2TfpSd`ksb2t;i@5_$H)=!6A&bS9fME3@dwH&?!ry}WbuB=LIK=?M- zTa!=O{({0#K3-3*QQWSUA5wIWkUCa<2EPGsicPm2L_ZHPs(%9XaxeMO$NPT_;OqX| zpYX1y{|nSu?+9Q3P%Hfh)M_5}lJ-4TjK}kQovhXA%e*ln9(C*1#3_2&{kz$3qtn7%zW(E3UI3{MgsJ#=a&r(g3v2<#p{}-QB@O&?$KTZO)f0y& z`+mdWQQV8Ra=k>3M0*nU&{AC2(~*+?BDDAz^knaMe|167t&u+~WUwx0Y51{6$RYbv zJzj^nT>;hA0lb{1pHj1lD(zG+*l&&T?6ankU=Mb%g-HU+;wzFjekWzQXQiMP&Y2dk zwf#L}iU95w`H9`(b+p3G8mV@=fe^+%a>$8S0Q}Sc$J1LzMfJbm--95alqd)&A%b)x z(k0R{bPOTV-5m}gAV@a|3@JT`bc4juUD7agcMjuy{QSQE`{B%4vskQk=FIip*WRyf zAX=N5*I5J^C`vO6`Y;&#VWr+KZdh#lD7bH=knejD+-7Aul)cnI*5A?%vr>;(H84x! zcOcNrjZV6>M|{nGW<7uz{N~&&7vC%Z(|ud`-gc9KV^~;O-njBkboFdnpZ{TlG4c}* zU9A^gU>5I0<%vwWD<0dsNbzcu0R1K);ZMgf^>ETPnj~g8XBv_zu3l`_T9LEf`nvJX zF}wz^aM+?D{yov168HjWg%E?^ibt-(JV;8JuvVVWc>pucXTGEo>q}?6+NQwxjUPAf z_1%^rRR9Ao5QJ7$#C5M+#Fv2+nfu@h9|WN}S9+Xy9|IVXEGkyseNw@rRc> zyjXmY*?{v|@@mMu57}GoFS+mT{*olO!|5Y|lODerzUkeco#>?1EBlgbSNR6z3G1t0 z?+2%I?N^`C1<6uwotE93s!ekG3ECI8Bql)ELWR8x(iA_;zN|mm7N=1d=Ka2FmfQHl z=c;R&RI=2|0#DAqGaODFeJuBi@)FqGpH>hoA#(P3%Gd3t3jj>TjJa?CeO6XY&gu}q z#^iZw4X%CEL8K?kFNp-KxPT6GgYzDr%X_A_+WN`ENbNX^4fCfE{bWHo-GIu-QRDuaN#e%h2&%i6Psr zM0o6QCOw=)4iL|`jl5E&_hV}BoAW{#Wz58MxLeuJJ=)9^spI8MT8OuA$8-=J#@(AJ z_hI~URN*JJ_T8GTdZfmh1>cq|j>M@e;1FvS#8wcFq^v|N2@Yoz48ycdqdM;>>dRwP z$N6fe3sd!H7iFzCLZde|e=GOVaEe44Z&tfmF6RF(Eb|7+-szzV>Ed9pO)%IncU8Pe z*w~ly#kqFmStD7L(07$mjOtwgo3v~HGSDF6eTO7t_P@ClNIGRog8(7^Uz92$Xl{ce zX^v`EmdS;?H~Z1{|1~DW1|`Qw7}K4@8G*9&e|aSFjioJMHNZEoLtFvvGdKqJ27u3X zl)zMf6#yD>2xr#sD9Q<`Pj}%%TMS^GjyGig8o~hC)6mo%@VWN(1bhAkef*Co+V+hG zwhaM*MnhdsX)cLA7Wlb;O6`9Z+kk%RGc)VS_`C`_^A4?b$`P-28OHeO5K@vm`a7?3 zT6bXcb$pW-D3;Y{NwkREUq$-UP6-J?iLPb95^T86SmN4|4V4$*Z%Yz6`KMtuiOiF% z(Nqwx2qKS*EH#bkbtsz`G}3oxTW%hH%)QRF%cA%)W&A=BDEIoki*UU1jp;Jef|36D z3o^aV()spaM&o1keB-5qNcYGL0gzk1gj4=b;d}FDbdINyTLfG%?3P+Xp?RM<-~TiZ z^UN&LRB$(6hs$Kpwz%Hw}QYG?9#_kq)HZ+?DZ&a}Mf=6qWaH3d4wO(%oMC8Yt-+m&iV;q7%iS zYlCnc(WZN6O({90ym|J65D30GpGb-|={R^jTMlV@u_g4SbSt(N(!yx>>g@QohWoD5X`0{pI7KZoRycT<)wc7NG%M;8 zX=n;|?-Lh9a$Mtc)5Vx_x2G~R6slmQiM%KixS7Gp0Tu9c6az*^8Z_tgYVn;RADY{(|C;UT8DG>wfHLk$vg3_lC3kF zt)lzu|2n`t>|Ctg65^CUsCz{bG;LI2b5&awXSAqya#fxtDW1w#jJ{yN*nP;%TFM3C z?P!+GAIY`(u&_Ab79am%Jo4wI7#ew6N=@+d8)VXuu)^JjZe7YwAx&T}EBI!n(Cho} zcWBzGJCT@;SQj|9+>h4+Ucww|c-f@za`B<3RYy{`&%0TOi8fkB#G>iwm*!E*vK>fd`yKf)stt$drim8GBl#)4<`JsUEdOy=W!!Q ztDg~Lvx6clX_?Be(OH|VLfZ7KbyEH z77_hnxGnZ7_@G}4{v;3R-`U0478hETFDyP>6OAl(=`PJ{wD!xWH^|BY%CQkgW-!0W zksxm;;Q$pIY@`TrLdRuM+(w>|gG=_+zL2))l27oc+lV0i7A?$4vYT!n8fQKPe2I>Eu`IN}+ahW!Rv%r>lFNkUs?sGmY-KbKl0YyrF~2!(bO* zorx^m5!9=62A}&-&U-AKL7y1n*44nth+Ers1C-ck+um=E<^9LI9Vl4_aWkotmuUIJ z3c!u|&v7|NgZeh-;d7r1d{7(QB?$|=t+;olxqVV@h=-P56s8jEBSQzUR-uhhZ5l&& z4B-!g|C9Y-C{Az($$)$vlnp)Mb zffrcx?_6Y$CzFb4|0Q+t{;lx<;~R6p9P^|qCa^{ZF;4>Xrv3$sEHoyh&T zff3}+Si|A0=QG{%WBYloKV*k}EP85K-ZXBM5Uh5dO^CS`KT*QJ`(Gc}*= zO$!Wl6&=K;*ha{s)${FKh+D7v!BptrEDfVc{m!e1IXAWNx2H-jZ@tprcW!w($CpmNfJ$Of(8!G`bW&km-#j2Hxp%Msof*-pG4NLn0q6CSWTWs2@PhN zD#ab)AF2)>Cq`jlam{*-&{4HtZRXW|*O}yF{oXCTAJMfbu$$)DZj<2YTJ6TPIU>OE^pzkSU|7?G5R z^BrP~R%&(4S)obJ(YAm3AdtO{*~+r*cULLIvW`}zcZtzN^s7r|SPJz0C&3vsHp6;s z8`Ur9q4q)JBiw9fue3Q4gOU`OB4|FwP!YBAJ+Zeze0uK&oJxsV>t*jRaVP{qTNMnA zG2y)JqjN2p$ph0V=9A5_pmlt=k-fRZ?EPhXrMy0&xF}^U;N;!dSa+htKRtK3)8@SK z8@UnBPtRl;`5co1v55zsu@^z+|Im(a)+yQwJYZ(63Oan$XKC85>Wvqz>~tG7 zbst)aCA1wX$Udq36&Y1IVMUMGB-r=Sv4A5EN$`G2SxPlpH%rgH|2O%;tbC7_^Nf`! z0y$pLFYnvZLa_IVj+trP^K;X8h<0Ha-uD)o-zV~PJC_{AUrsapcE@>3D+WFN>XA8c z6}%P&+iyib8r*#edZT|8od(jQ%7|WNz*3^UjvxbY$lmkES+xAmr#*>C(?8A$$+B@X zzX|N&w{#wsAQz-~UFELKF}H-Cv@YkH&Lp=AiPa#9eTZ2sh!x-Q>ro%h4^WA^OKaOq z@kUQofljib1^u&O^I51TRXgr1k~P)|$~IH7gC;t`4)HZF^Rm%BBF@oqkGd?WFpR*X z+Lmq0*&Fht zt~_TfEL2JDR*z^cR56bz{2K2zT+xZAaaUOgtmDr6z%peXI?QLLXZE|{ z7XfOw-kd0hV>MP3dm(hW-hjk3fD)#{{FLn936LcG0v* zRG+Yw{3eIMQs#m9 z&dJDnRgy7Srem0>GViw!o|kK9@~vH!_W^~4MGuIrD^|3jtfAmQ(7vFKWgz)#a)F8| zHxu#|kcL6b*=w1~HlU*0s6^>6Gs!2v;&H7tP0#q!a&4xur&n4o>S=6JUKXhJ91=m= z+~OeZrwF_9gk(*%goM6(S3NPxG{*Wy>FURRzYp&~b1H<(MF4H5M?=Ae(|SI~xZ)5Z?o_wp3g|U@k;+T!rF*&wXKtb-sB%r`s(Q zz(2qPU~w%Y=m6Un%a4H`0B7L{h~#*3?W_N0^kr1Q5p6T4VJH703y^76&9} z#s9M|xXnOMw)pQ|0Yd_f)rkXBn=51FT5Cs(KqU;_Pdb&XcobOe zUbenuLs>6fM%xnS&3>pheg)R$zPheL)Ywk}7TF3?SW#j_*r&+My|G`u?jx&4VJEV` z2YhWrK4ou8m}1`wAeJS#-jHvxjUZcuT!EXCBuB8A@+S1NmC@`bLmk^&L>>s|HT%!>zJ` zk0ToXjPkRnIM0*jy$+<%q5xUa)u`6ha`S&@!1xqd=y%2EZUpA*1ROF*Qg1FW`M()PopvFn|}M4d@YFlU{xYcCXiTSRTCfMMkgmIf1xG6(N4YLZI9N^kmnVaS8o`shj)<#zh`bZT%cO;}38T)*|HJMAPde2JM$% zmBpIHg4tD&8c%`q%850r0zva}v>wH_-;tYy zz5tocNIvkJgf_@dM1-5^u$3%x3DAvy%cd8(`0;C96@0@twBwV1dfk7E$rV2=_n|U! zonfLb#xw}}I9y&j|2BGt-)!YV@}U3?&T?74(5^W*)z#(d^5Dp z)w^XD734z$2wJ4B2IB{>C(P=D_(FA0LNy}KqWx_`_5$$~BGsjhHEhnBM2!7yl9uv{ zjEaMU*Lbb6YzQg% zI^p1yn|QVA4>7y7xODfPg}?b8YlzzqD?%GxNOae}uQF%Qc@?@+N|-&9vx9ya)4hz( z;WoRdzGHs&%9B!-3G)=62f&Y5&CokC_WSU-ZM%%*`P}ltj&UN&IdbcNHYR;)O14Pj zaeA}hB5{Qy;^R+XbOMbdN#+fDE-BCK*q91`UO_{w zdWWimgD{YVq)G18&u=6UMndVKi)D_ur3)K1oXPL-BCifUDtX~=wZEVRI9WM>tvY*V za4s+GD-wq~>3k$WMvQvflpJV&0_0Ii(wUI!whFpnu0OzJ7RIr?FYYFU%MUyzS0rYDb-)l94XM~dh`74@bdP*i%n!FpFb9F+{dKlGrtHN z4=wK#xmv62^wL>2{5LQ|2NcfQBJ!@XNa$)Ca4sr7pjmpvDO;s{Ux`{}UleNpe*Dka z_AiM9tRf?fg}(of3iuCq{n-9Lh4xtlh*wu=Ii$SiK;ie=skdK~AQsG$e0JT1cNtF9 z%IZaw9-joqd5CNpU|K?|OxU%~l-qEXY2c1l%6S@-AtcY9@Gh1P*1(7irQD9z>f)`Z zv}I@SGD%igQs^Qd3T`xc@Eu*wxfjI1F0HibM9SaRqZtJTJ_j{-cGo_$rKYd1p1?m@ z5c~5ZS&0P_`~7_}#Z7;#i{Lq2MCql$%*}%aB-v{<@3$Ub5TuPVdaLwgAir;uJ`X;J zjaNnId2h-VEi$DrY>O>s z>FxH1$FkDs6K>K~bLW<&0EJD+8R9!|DvCfqn|1$A;Q${e-%suX0;5bFJrtT49XEQ4 zgwDa|a2qJ~#}Sjb@8L$b)6WUq$)l!tgX-Hsgj_-yK3k+c+sfYFpF}g8Wuz@sCu+t^kVsxb19(v;F?M$LManf+k( z&TPcxw5Oah-qIWQU7|=<06vkDPTuZk%Fy|Jo!VWcTlqPFGSR2IA zs6>EZ&Eog&OS-x}-`}W`T+Hw2&9!FK`UIvvo<<_V-CqW*){R*r2dVERIs*i0wwB;LGfB~N2D?>B$hgP|$j~ur$>ZA-_WIu= z7>*h*Nk-7Z5XE@bV&T$wp&(x6LJbT8hJQvF;Cl>sTIbwBBuk0A*4ell6p<(C!^d}> zZ!$ae59Ti$5|gMD8Z=O)O6P0!;E?pA%cbvdVd4h9@9{H`6V(D5Os@0@* z34e_JV_m6aW2djWkKC{skpUKRTi88DY2)Xl-+RladMNG*w5WslId+-NJ`g_BRM{Sr zEGYj9Jmh=;oB{L{s};ynMgk0RQuiMKwqE@7LCgPp)U!9e!c-UesC_~_&Ix?LbL>(b^l+#Qdh-{x9aSEmlj_;s9zPrBbmv>G8J15_l$ zzamjA>XSV$sw32O7ykramU@5EMsB^wxV4N3L^}{s2nbeunBib2lg)In`05zBukD1# zwG*R}ex~ldOHLh3wf7;)BGE8v zNiW}h6ZY%RLyIhAh201FP%jeMoks^EX=joT3_U~nX5I04^KB)mm4EP^Nw5kLM-_@Z ziw4erdXqnXlnoTJmhx^+H-2*=B&pM0kC|DDJJhVbHe2YG9QMIKGm1IETQQ$1RV?R@ z#5s}PjOZ*PeGKlde`ia@vj}HQs-?H$8TL8#B~phbX&!ri5s^abfyV7?=N!6Hsvi8z zMu_vD(3p>`2v+2X(5(1#b|e?>2P`Z%KFm5*JF7oeL$U6QV#{}b;7ai{&IPZG;7P42 zlSt^9x1?e>q(Yy0sG<9}Fwc$*$uAhoC9vg&U2ipkfSZbc=~$$uR-Ac&^N~8|kSd{! zYuth69D3`{MA%*WbT)RuHPXG1nQ0FBw#VO9DfvSXS+b61l%$1)z+>Tf>x-1Ko#*L8 zUy|#_cx6^j%Or7TB3v4c4p++kmF%A(l7-;q-ZrPw__j>?^127l;MhJ_BWI*D4DV(V zuU*>{qO1=tn5b=W`xXWt;~+N>JL4@XxTbY=a>f#IJvmyk5;&3u^?Fko`bFi%<<80Q8;#vjhm}a?Rzdy$n%l3rt8|X2`Vr6vIKvjM5Rz0 z{}0l$dcY)!z8HDDF!csc6fcpTl=aZ+es}f!r}(P#E0z;)M;!)tTrbY4_>Sj-C2aNvq^xey2t-EB5hU~YS6 z(EuaH>;;9kJj5cFCF5%cVgPV_MY*+IUpz@j)UfHGPx$o`ec&wi#Q5{8>r{;DBPy~A zQQNu$1KBTtlj6%&*P`=gfOjt=U)0BFv9=twYrO^F3=bR>9Pbh_<(z|e46!h7XNZgT zRM>;>Nd+QrRaCZxOpe(22U!Qin7ggygRek7mS)p!0 z%m7l(7Lsv*)N*n=kI-5#bLy}Zimynr`wPcNONTx>19_t(40XQ`SzTt}`%}D&JMhBH zF%)Cq*@9)lg;-CO+sE+D2?bkwn|}SKugLqZxR{GBC(@B)*kudvayeFG%M?S?Bp=Sx z#Q}1BQh;5h`fVHZ7xdKCz`gVhp;c4e^~;I;o3iOJ^Ob?igjJM%o2%}k9sOC)aTj!% zGh&Zg+Wet6zOWAQ3K`MrflJ>vP<;X{HL710-DgM$E0*#%r>ILZOnU#5F$cac3U*;_ zL`C~lRxcOZ-MMD*ju(qYD*M!V4fcj$j7ZpQWfg{*5iF(p_fjV{RV{o`EZ9d+eB{Cp z5i^1UkIvm8@S63C@>{lg9$_LT&ns~yD7T&lvmj>SY1xfxrD=UKLZc70t?{eUMrfhn z_1m%P(wF3k_xJflVre^S)>kxtZd(eL`%6h0ED#uAeCScUZF9ttN{Zs?oRvxNz}#3< z2TnkV z6}GbE54F?BgLkxh51r%>eKmRa%|#x*Izd1>BHlO`jdMNCGrAqoP;sK6cl;wKdv^ZX*d6;eLWnoa+hqr(}gy$+kYp zE9D$S#Ml*$zOpXyr zqjo_>R5%^4@9Iu&#=!cumo_Dc$bz&6u5ahoEQxr;NORSPx<*NBSPg_U)D3Uk4a77H zM{Fg!GrtgGD2bODU3gzR!8};su8zPII7mSI`@BHD`EnEPYSaDZV8tFG0i3KsIMC`QhRc1EFAu0gOs3VQb)}(yec>dw?kuF)>K1#J>)-gk=lQI zBT)94G)b4m9%nH_7E(shqtSt6K~PI_uU!yP2<$zffj%C&js8RHWIy==T9O4#SQO)l zWu$yF3$s$M_;$1Cn(l}~YhM1`!*cyUpv0fu07JG|;9nKA#swoj^Q7ViWqxzw4Si)u*kam#wutw`J3d!Vp;`Cv-u z`*frRhO$%o&R@{CvDG-heq09#0kaNMi#m_Wp?wy|GlhRR#Lu6XvD*E^KV;6k7vvX| z_q~|v^AiOq{Om_SPZVIqC@piS>GuN$gV;A)|9j^V^!fjYVk!3@V27}ckCfK*bb)uO8Mv!XZO4z#}FNCO^jX_9XHrZINF7*PC? zSuKEkt{nt4NLlPx^LBQtK%)Ggf!Um~z6Ay>*;-!kg_i*T^`FBps4;nTS;p43{|&qY z`m9Oh?skR_X$#}f7xq#}BQ}yJn_c1D3PqJz_bu#}7Col}V?@zEmAx?{xgYJnZSdq`x-g5Uc|Xf5e8HSfpuAzWp_FS)prZ{DwD$@SRIZPsxVz6!%+ zX$N%c+g+OHHgoZvt5F&%q;>gT_qJa0_8PvS-d+8F`(F5G60H4px6^Ga{@n#2E7 zE7cAGTn^B72#AKwRLgXn=i~OO9Ffy?uVSu@Ga5wBR7W_!vmnKp*MVNCu}D)})9H$A z1Fzn_c<%WE5o|UI8%VVXTO7V{{8I|D_SQYxH#V2?E%mD!o9iOowRlM2&XW0=ME6}`5cW&U& z|LM7mia2O8?DG1vOYXpE?z_f=xq5p}OeA4N^rdMXba6)19!UC={Yx=nUaQVGeXed3 zec8gA9e^N7z1U1TTS_>~ez@g0FvOTD%Iqo)VgQ!oc@)`avMD{s2|lA^$UuIDkae0VKUvD2<_Uj=Je{S&Pskl(*2{@F^ zPu9A2_1$3bdXns5Va0|Tx|cEaVLE=#9>4=^?SGY?dnW z(pJ>KPIG))6_}LH^}hIOv9Am-WJ-jY@sA_YUP{?DL{Avn=u2~Ur0woVlzOgP^NnUn zcNhcX7Vh&v9AD?V;7C$YxA#u*3@$(vd*@p9M`oO@vajZer@$7UiEzb|i`b|3SJBdH z_57?1-H)%4aBg7UTgwXh65@ql7(pw9TBGx$s48 zc8pyL=_XBblOCY@*ZD0-7cA0}SVGrNWu>Nz2dar0WtC!uwUaszwBOWI`IqERpY>uQ zu)3XNI|vErv|bYkYc-6)QP((WFY)E6y<(wKGwDl{=jG23(_(H<$vJZkOF0(g$^5v` zZ$>UUC}$Ws1aF+9vB6+Rbd4nG{_;o0kF4YT(2 zgh%SzpL&zww8-0F@>jr0AOLP+f=7v@i!?2qE~(z>U&zfF zPS`Tn55iup!<^M-pJgia;PP>X%)Hcepf|pvD=r(@z|V`xxqvfMjaeWf&~IjqP`tqT z&1JlQ+ep!osyVW^l;o4gMj#HOzzW92)dduT5+yPkb1#7SKQTLBSVg1wAgktlIbg!E z^BxyE5h;77YCF+6>CWgmds+$9dN9j2kaf}AJh=ehu8W`3LK*@7R{H<=0NOhLUHN#s z_W!Oldfxl|=Q^H8fAnk9h}lnn9XlQ&Q{F3bw3a2lmNE=o7sLVgwBTP=h+J1@E|CE8 z(M8)ug_P(X6L3cRNZS%yST2;lXgyUF^uKHk5Vm1@0;ISxsg(ccRs@_O6G{(K-iGCL zt4q~QE90>n8k7A>O2wuG z(Zq;7AR?G=m=tc(@i^OpwX*%ZNBr@@Tiwqi1@8-iF3un!hb`D}!}h9tIup^*CYOOF zJs}G1{s$v)=O{W!?L9-a@{FAGX>P)ZX*^*Y{;aJ>! zx|_e?fntETkc1?g;#*G2V3tnohC69nMMUU(u!-}`@{S=Z3(!h}m}0*)pkEzlhvnO*d-}v_3Hv_+RA@uUo!spf`hv6MKKZ3{GRW@puP;%rwQBKEIS*pczp0{WH zl@c!I9M_MXui7ZJLz7q*`MTG=xO+QHKcN%=|5pBVZ04Ndhp_@_678-KlIT^EDko51 zzBXZCLei($|1}hFLYSzmFk`M^9`<6?yZVIGTDmD2{+l3l8eD3n<4&xg2$Ci4l1DMJ z@X8W6s*ND^q2!k0$1!>k%)cNSG6ix=pugz&w-iz28>#kWK^!Fq!H?Uy&2v@2ZY_dF zYIgfUqPi*H4sOulA5ON-+V5fpy=t`?l*ADQ+1o#@gdG2{f8$B9v~b9Wp?{JV%jmdU z>~!}j%wyb{p``Q5H{)LOP4!1@>t7X;FYzK&lGN?l zLEFGUIxW8H=H)uq{~5Z%ZkW`P;W1W{pCE?KOF!6!wx}O6gLZEoAKiNcTgU8{|MLN} zF!~6oj}s==jLP+Ih*1NLP|vT>zn}dDZEH=5F9Du{li@J$m|I-%|0^Yc<|wXOf?d1I z+WwV9k?57$EtT)P4ZJKG&kwp5|yMVZ=|e=hRu!*z*gYc4rmd4IH8Vg47&Wjfz(X7@Ni3=+b4?B0Cl`< z*qPjlzKAI{&|SQaxJ4?2%9R0(ye8zcuJ0m?|d*ECOi`8Zn@`%Crna!oCoKS|& z<713i*T}5)Tgq5L_=8PvK0HKy`iFRVY?ZNdR3lM;C2f72OPL;qND+PH{X?6bQ)6uV ze)(Y`*J~}A#|#N2n^Qwfsvf@+wuSDdGaIBgIt0!yZm0CUXl&$;drM!n3()FQIr+R8 z4`rCsH9md>axXRhrfnr8zTgnjP?~)CZqFluO>qI#^#{)0`e?~{_biXYrRxE+g-?Q}5)r0&rd$Ix z02dQ$ssbN0sLVa4nukqS`bl{xNEIR&dYbIv$f&r$6!EKGzH<5?fj$#ZkNkm=f4N~_ zk@t{8mwb^!5ChF=|01Dz!U-Ksh^tOf&eI)4S{fv=ZYG(ZntNhE>hjSP+gji6_I!>7 zpC|HsyAWlRPc)3Qi;DL^2dcQP9V@aGu6ojTFY}a z>u2AOS{SSO`A!#Smbg136BMWS_64$YI!5fS++QUk)~_`zAJ87HT_Z$`r*<=PK_qVZ z7WpEs2IAqZv_HPnCqwM3N8GUS6M9TPTy=Da_x~zYf15YNp!tcpi7s~>CGA+em!ABc zh`>bEaS_H#m*G!DT5(m{`L^5yDKqs>V>jR)L)e&*Sar=K}? z7c%f9uyxQ4(-;2=RV@h%?Qg~={(`0?Zq@&SkTv5H79sibM>30(pr*6&uz49#D_|y9 zfQX;$g40?rK-l$dk1+m%9?gWy?QaV~tEc9~71sP1oRI+BA#h|cgK(kldWO$2nz}8= z`A_0!IzRErX02kqWow`K_T%iY2rgkwhdy%z^q6wS)Y0KsuLD2f?GcGh6z~1kE8~Pi zpXoqB3d-9_;0QUTwZE3XS!d#6Pd`kv_V&?V5N_8|&vCQ!a*al&(np;0BALbUUl){F zdZFU9+G30g-k)DEWjk7u)8D#6inE8HtA;z zFFT5gmK!#BAn4=jNHb9|<-H9<7&kBZW$*;0Cwxn1MvUfK*iXk5p5xVGzba;G=1xw- za{mY}#u>3h(>g`aav5;>&M}ZOwstGhv=ra?Y6sTSyz?nP`8IRl*&iz@%O~D>cY^ry z4eUK)uvJ6LuWx5-h-k`OaA(;wKH$4iI3n6kOCd&qg|<%YM`0D^hxV@13>(5L(TI!E zxq`1%Crhxmm(>jw%yt)zwV8%-m%$Kiif0c^a4+$G?`_IT)$BEF_!Tpz zlxRAWEaXD?Xn8liWl*J)LD>3nz~{Dm8@G5iwQW_dkvYe-uREEQy~tCRwj_6)Ls)@& zkZ&08ws%j1T%jUrwzY9KVw+~B;^p{DBGmp?;mi+p# znELtE@gP^pfDOJi-KP}69v3e-SarfY+C1`pDMB{@FFYyC>|bA@$lO+kDO|5`ZMJsTxb$1uc1v-ha~|K>F6haa;jHMN zp>LjYVQVyEpef)7TI8QOx{(O=tr5V{PXEKvTE;-vKTJXQ!Y)V)|Es;TMEn28uyqF} zrR9`eXa9r`>f#Cn1o}_Bm%Ej`TmOx}`!v%n&#p@WVfOwA4+`Y$0FD;T$u!sX#_7vH zk6W0nfq}U82~d&r{}Z!-VfX>y{EG!ZM;he+E-)?@ajZr7%73ayByLNsBO}r>)fD+b zo+Uc!UA0H-hfg0;uq>k6R^|7xKctt%?kLljj4N)EAB+s369qa09<5yMjAjtB6ci+U zFk0KFTM&C8vo9KUbD-WqnNlZnd!W$U`J{8EAAABRP%O18iXm9|r!E3;*(2fPYT8%~ zOo5lWF-lr4Py2_~jAq#^dtXzN8;Ny~G_A$P_K$`tn3?B%guPS| zKvbA2zoy;{jU!7dW+s2l$Bx(lCT~L~%IF5fmL4@_UH^gsh~#0K1Nq96JubXY#*CRcE+-^1aMery zqORxAQuqE;rjV)d-uOJ{t|E=dpMX`rt07+Q=h(n={+@dYQ6kDGPTr*^zupSe&H2}C z>8HVej>`o<=I&`1#^}8mcGagS&z;vX3zx<$U{?ih2q1q4uY z)Z-laEAZZyrak_vpQQzY!qSaVphq)i=XMe;oUS-R{_%^t>8}W;v;YBvAk_57u)k+y%#Xq&K`uNbi8vj$xkl<&UK3EPZV>KiI= z|6tpdBpEf})Z{`W(Br??;&Ub*m4NJQH2mrR!(LK1W95@3Y?oCChDqruy!cpu=UiCc z-7227Cz3*qPy%QZ(qS%x_E{ZYiJxxp(*)0GtllUiLeKwX$#}$%GjJ^GCQ`zDHry+2 z*o^?iv_h~gVOr}m?rp`O^I|3vP)S9t;PKdPOQe0Me?sY-?Z2QRz=r@>6=JSJT%d$) z>v&M0G>f9`oaG-VcMzyvD1o6x*Z+cmB`wSKfQsTL{Gc5M9`fF>{`OAabrrz|D)r`~W7hU}*RZbXIakPl;kA5b}AMAI}@lUfL_A!C2*e59=&=!_6V zQgI*Yyfj#^Y8cFKN^{9RIEbzp+u5LGbD?F7Dx^jhxLocvw3^c}3h+(L5>ysF_FiE+ z(8hDkt1|UCh75TWJAD6Q&$$>$4OT%x6&gs2cofM@BrnS9lT!W1yWH2RX&-`>o*~5V zZFJtrB!1wS8J@@}rhFpnGnt^8exfsCe&h4WdC2TTK;Z8fRhAWz`{}C@pM(!qU4KDL z_gpp$P|wJUaMFluB=X_5-Bdv42yPi-`1t2Sw?pcgN z(!^djxz|SbOtsfHJ3oE*`Ov3sg$Me0bM6nM?=bJB_I^Q4zMZ$e?k((NY9#EcxOiQxDWeEFVgw)hY2OvuZXCwFbvtg0y{{!lO{geqQT!)ftB1= zhLtB^?0`P@&#>gduvpUOZ=+!wS@VXZ7~7v23$qBiNcpH=L^6~#lUk7{S*iE7NyqRy zs`IakEWn{mqE4+y1P9YDLR60KW=02n;V&x4EX_NZXtz%qw?@E1ps1KGXiC^2udex& z!1gbwNf}YDnVVkqM%X5X==d^ z#uH-=dp7&BspM(WNZu5ILqu_@xJ$#&YjeCdWAoU1{?CkD25`7$1{RcbPkvXy;1qD)RmWUeVTeIiQLp8$!`7l*_!%`0ZR__8z+Za&yw^;8ZXzC`lmWpO`JZ6> z=P8el2iQ41ytjRyMe;>iqeMfr#j)-Jq7Q;ET^0KZOcJ*MR1b!2fSK#evE~>9P?Js zT#oTLY=<%h1;u&2CKZ^eb#hPwwlMaiIbi|)e6Av+M@ZK!AU#>?Cs>t6%|v^e_UQ38 zm)Fse5sW8O?30@bPno|e{$`fBvbM7j10GRo$SZzI_e-><47btVf=Yf?o!IBPs+ndQ zzq8o^dKdh-_NKi5o3tr@!NonVJiSCs736_szkzf_{=K|O$j9)cySV?HXJ z11K}?^hCidE)}m&2HwZGmDA&g<6s7fm6S*Ev&K$P4%C#8i#|ySLkn_-J(uX|dQ^R1 z*}WuPc&iM#2ohMNxa?Jj3Z7q}ioe{!G}4b+!`OS|x@0bB?#joK)>t)|iC)#c_4|YSjo&8zn^APCLQfdGL3M>DlHmOl9 z{6c1WvZefbLMeiihc)os7`j~740g8k)6ODmSEj)#qNdXU(~6c1lZFc=>}>e*nhu=x zBt;c9+ezAsbvxxYMx)rM=%($yk!Mctd_NJAI42V&}h*Jw$peE@PeF#yIvAOkQw1I;_7tB?M8m z)+8oGN7h%5St_5n30dSg6RbadtHQe}gM;OiNkz7LZQu?VTL(hu4&0EExAu@Eu5Af zGQ2$tONm5Iw`LyGj&$DRpgVwt{Pu%Z#m0ID-h}x8VV!9xQQLZkm)GsiC=DuciC}0EIQ5>woGhcL?p<8kN&iR=F!B1e?>>Ja*c> z0N@5uDU1L``@*UQhkQ3W?XpQS^D!jP?asw6LMP1@?*<&&HUKE>3 zy-1_S2&V!S<-`o7P<=3EoB{mxDFczQv*%PSI?iczJSDtUPe^rKVc^q;mOIl0NrxK` zAyTpA{$uL(w#6R|!=DOXo}<9q1oB1wY-MIi*!b2Vy-4Sk&-t2;MT3m73(E^~E9s%^vp<>xp0|(QsK2&mf&z-z$vk6^(7lDeKDA>fWy#sn3Un zpTRaF8bFK|z8Pn7I!_*cH3pGj%xZm2#5UpvR`&7RRCtW#B$WbjOzTO& z12L`vdh2;!@OEN60fZP&PRA9|XsvnuDoN7Z&TTE$G@G21m1E;|F8N-MjnM`n1&$-R zNQ7*Zp`0;M8$_K)=v0tAPq5=?K^0pz$+_^O@Sl)H+J&*Kr=KQ{KTU{UkJ#BljAXqj ztgcuw!(>+DT5$h@UR_Y&yzN^%Gkq1wwNB%cf2>HWchDPs$Q>YeV@9+1X#vWS8}Go; zZm*_g&mlc2d8`&Vx9yYX1I^0AF86UxpLc%9N{K(N@pTBq|7!gIbh0hI3UZjcy|jzK_>?(S}o21!LarMrgiZty(c-@D$k&N}}x3l_6x&2wM( zwfFvPE}!}Wn4!rTbzfR%Fi)#DGiinWMiTye?;zGu8Dl9!w4pibl78a<933d>{0c6A z_{ujb&9w&z3a9THQv_drC~NigxO0&RDmB^IYV;j8OJU}Ps9YFRJi8{Bc|?DF(75`; zB}961TtzIEQufimX2(Voi*qGEyHfm_VS+TU-y}}+la^IeqE1*()7zks+h8yE>uRP- zDo;a1UCkA0TZeCjYBWN0HKi2Qv&sLNE}LK<-=^`%MvxAHUr|a&SG_6}jLT2yJzG#` z+O93blM|4s&?8v#vh$;%!db%I>Lk_?nC{1goK5cG;{sS30{{t~pY@WzM$}bpQg?`D%3aS_snUPmI z!*OxG*quC}D?A$ZDk%p6P1J7`*w0E_uMW{Y`R>EJ0JQy_ORiJc(`uzu8|1tY+;o-#pH&Qb zJT{{)nz&OoGtk4bv;>}*`ho%XUtsqF_q|2|O#}msK0inZHzj`7Ijx*vy+aj8$*=EzCW86= ziuC%j&_!K=!tZOy!^d`AjV|Wcj4wQ|N=VjXPeyb?p>D5gcZ5p|v{9`rKG_$}u^u;* z9)ztl*MyP3vzDBRbcyr37O~5Yy*AIFL&PnEj_v49dYTCLMte6z1V_{ZeciKDy)4wq zsYSgqU?Wz7vBBH*8(X!4HjZocK?A~}1g@qdU+-qQN)1-*Y6SJ_Z0_BbhJ2y@yubw= zmjT=`=xntal|juOe>^AWYH8@yqp__uUA;CmS*|AJa7JG1$(W)wT0iS{hx;FhWj;%b ziE^&)>}#B}ouyrU+>)3ziV7PNu{Un9Y!Ok7zAIIJ*hRT4>)&Xl;k^L&7KJ<{8H(#Z zeGT#Uj%M=4T4*)erSm54FDX#FM>mUB5XTK*U7Zl#d18>Jmxoqn|H z-0JirAET08`SOB&Lh{c?ymi@vuZ=`2$9>VOO-_qyXB+SJW5w+^rYa3xtp8-w0IBOs zRV5`SDX(kx+me~_&GL{$9yixJi(I8)p)`mW*FN))9b|n-5_IEi{|Sm1hT}fDRIN4< zciWi5f3MF7?i`v0{sVnJ$Z9;hdcp(@w#Sq0@BV>g-5=DK?qBWFkgtUCS_1ZUUuz`z znnbBDhs>?YKajzDBu+-Z1p9(LX{6^Pr)Pq`M+QT{*zwjdTg{+vT^|~_2!WhQ50E7K zsfvv8eEXjz7Iv#M-;Z0prD0*3vUuS#p49+Lb`-IF9qNAEH8xQt(;m_PeUxkOS4scT z*X%-V{v-Kbj;K!E5ImYW+|vnSl1(#84zb8Jur=`<+nT};66OKH#=)@GK!I%mo1n4<%>s<_2xT*JU3!AT5d-i(Wd zLNLV|@@iK7903Lch7c!m40;)TfanSiNj}@4*9?#G|7d(UCR^;}&Y&>A z_6kK~W?rfLK(Dq8Ugv7(33LV?%-)N5ec*f%C=Am_;bp0~&UYrwh{ zijM0gE8bcL2eK2;w)Ufe(wE?VImjYWZ=1HRPGqc!x)P>X;P5$KkRq~^4dwE(l!acs znYQLH1hHyOJ%IFT(eBk)Gci~yiu z$*whIYJ{4bHHeL3+ju-51uej$j5rYPtT~Z6M_v5~F(l8fzm^PztDKP>3aEN(OQF_x z-@KVoN9NKbFq<#Bzw{v%>Kq*kTH?4{vSccaSFx)9*{Q%ABO{F&kf8r5CCJx0rrEqfauZYPrVPS(}c&exX^%3BZk z6z}RkkVK_Vp`Y+HbA<6G0atdRugMxL8ng?3&K-yEHdKoTHm8pVZoGMnKLUVVzyRn6 zoG`IQa=Pw3;8pTj1^lc9=e9&1MN!Y}3?dKEDLHi}qE z6B5u;Dd|$CPr^yXzjzbTjzQhkkz*FWbaqJREQ9SJ!?SZ8v;w;`)32b3Ai&{Nnx#$> zn#us737>K-P0?2m^`h^J?rD9_UFnqsmBqag8LM>JpO;A4z!N3@z9Oj|wOw~5@Vj(H zT~dl=Oi8zG7RjK=LR$Z9r8a=4XZK+d@5D)J6AFR9a$e}id(ak68Ir~Y42~Qizij`C zXo4|7W1MMGYY+dyunls9hCVUpCA^GyNrD#N1M@2E)<1~vuc(SOA#U9HItxBXQ_#^t zqJIniOw2UbH2|D-BZ3cdpFjgg8Z|* z6jZR!lZ{`!i}cH<1$SLLpZe@>Rpibw*>Dn5+>c|j$>$|Y7A{#*+$oq1ov*AU`**$0 zRNt!tniZ1`RdIA7Lt`Kr?nqMvRU-D3#+DiA;USlO_Ib5*z4zg7tu8y zqA^X1VRuMqC<#ux_y-F0Qi#gMu5W5Q?LX^#*B6USytgl?l>?RC6#jy&`-#Mg<1Wc}lF*Ognv4^mn0Q1z3ohTt#$4^ITozfn=A%`$;b_ih z6=mo^ckq2GBj#@^d$}NZg1XnJxu5Jd6QeiA(@b!uT;_7V<)LNF1^h7zETF+kQOl%EwrIAM*gj#0*0XE3Vv=lDwrLEfLq^W@y#B4 zK=%x#QELWGpx3$^y+Ud~W_Dap4H1I8#g;P5#Do2kE|EjgPjL-b(RUxx(4IVpR_71m zZiQU7JmS@Bv3Lj2QvI7Bs-vH>elDv!-1g+bZa!~9?|FwBmJu_`~P)6Uz0wUv_IQ;2VP4*f1g7Nccnc73+SZ;Nk>8*RY)af%@(R&8o&ELWwp%xie6cYA(>f^bgEptY=t~R~oP7G7`|yR1SjU{( zunVQe)G7i}*?c|*3MwbT2t={6-M7htIP&jB4b4f6T3{cgnq(14DG@FM-gpcRREWN} z>&qHdJ&MCU7WMk{?^tMxE`1K!-|Tgm?a@kwaRfCLGt$+uUeo)DHy)WT2DXBWf81+{ zH-lA)?`kDIPPFn!#snQ}X1^5~;5iLMmI zIQg2jc3CQVk88>yT^rTpFsoU+NZK*_E+S7}QoQMNwCvd`o{b^RgrhKEHR=J2R;Fyt zZ|hmrs6}9{Il)d0*W3g-T!X*v zH5*h41?vc&A6tx;HY( zGRJMR(ryAcALz zXrU#e-i>PC_f$#$3o+K{_s+JpvjOP3So2#&^~+7Gc%51IxyU)rm^S`C@Ks4d2(fc; zWvQ4$)u^PC6Pk;mNtMU9E4jh|Li&oa8gQr#C*d5@fbex?C*HoDiyfD^d(JwB2%1UQ zUK{560W&tULfc=Ko|WqIkK1x^XE8Zt&`KFvE=}M+(6-Koa6`3e#tHC=O0PJ<{ z$8P%wA4=JQUX8Z8?CC?|1J6RV4|-B41!0sfGyjob|08`-M+#-AvM@Yi{sU1~1+p`o zNgKsunHuMiL(jYDeP&fHNqGRoo;AHe)=^%%ydwXzSM>;I zMzt9us>`qA$@ie-l;m`2Dn^CX%}q z@PQ#G0M#Gy-PgpHuo`$QRKK) zSC!>OfD=oL8?5K&ovH&PHZLwK?9is@8-Qb}LZ#1%GWo{HHM!1ZBCDz9LudXzbFm$4 z;5{ahfA6ukHxM^`U`U!%l`2+K z9|MYlIPtL~yL)ps>)yk=9ME1A6%ggypjZvM+>kwWNk#QP#cBtv%Rp02rHgIK%lCB? zU^d%&sn>BDl5W)<9>@o)S4W4e_QH0UHusx&MTPZGS;zdRUH%>-TuX@Dom^0QC(co_ z(xfYrkiJ7Y6Xhfw6zY<#Nwv4K zLB=(gMeQXKk2#bp?ID2w?%-!qT~5>Q*;<>*1(VNUIj1$5?FcjE>XjWx#%1+;)o;HA zvlFa92%>$dL}vDuNVr*zpQJwDu)52w*5or#%8QYU^YQ}?1$>snNN_oDvl$IsO7BWB z`?mv+ppquMU9RR43b1b*(iE5esoiG~~7d?!KP=fc@WARl*Yhk{C;$c0hLp z0Oo>dMLrOiQkw_uDHc#N+NlBz23c1k&;lb&=Km1O{tH17A&;=SNNWS#J)nIB5Swhi zdkIThxZ{h|stgNSG!p6+vq$EWTaXg5@;;X>eNp@$0ooHv=g#Y4IR4E;r(t4v={|GO z@g#S!Wo!I)ON&`sU-pKn-$m^B7m6>SSEFh&`ZfgnT5+lLO-;$ZfAtOYX#gljyH9gp zDX`wmf+;VSF;$4UG5IcGnQI8~tMY$h(x#yxjML640D#@wmBILIgPawR-6Q>*))qIG zAU3)(-yMDmx2yY&20!gQ^fpuyV)0)@Y-#hT9lMt=i<8#h_$kV=!d5D+gETtg-H*FB zk&;LbvQ`U~?8(JQu;!iJ`A83*iB&-s85ui6Le0m0P3u~rShp6xpnsUmmR_#tR~BZ} z{XCXNu)3XPV9jRh2%$H%z8H1q7!welRoYn0rwTTs=8~i9OT6DayL{OqHVz{7AVuWd z+~gk1apPSw-R;FbQzee?(*BrmMs7Cr4KbR%tg_oy=Ch~&2f~9gJ~G!&u=tH&VMJE{ z;ChIk`PNKsmb0h&<)<5M@vuHm^ zD4~_`@7iWX3)VNG3#ieW3#^?5Mi1RhA3kiC>G#zHm1f}JtmLm0>GII?%uVJOTJ`v- z1i5>tDiWyNP(R`}7*!G~nV@@V(IO@!0@zUwBeOw>e8#GFAkF(MM1EMH%&ED2dk@Io z14ebe!Mv17>aDM^Qlgx%kuU&zkfz}B__?B{i?lQ`keO47$6xe1|PI2?g?h8pj7NTyzI{A|()Z=p)X36|B@ zu71r?@`V>?@HJ1Q&SHF48I+Z|tWHwHpuAOh4W~2G$_7H(=8ODbErS~q|DB9;F5ZnR zhNHi-oSsS2@3Tu*VnDe3wv~*9qd7O5&(>^4#6ENn-;ir9LW-rfz?uerZ0G=9TL_|eAMzq?~YfFA=# zQt$g215M<#m%UKc9$7r*h{U|29%UM#3On_vE7ly+e4M2&mjo zz8A^K>>WF-llae){(!JWHOW8|OT9UhzYx;ifk9PvDYJ(KqBWVI6g_a5)b$W{x3i~T z&*4)F6_X(>d%2vxGFRA18M=fRC$7-sZ*?>51s)}ToOc0ASOU%eUnwm3d zB0UJ+7rkAqf^|*;_i4KzwF~6_>t9tu8;Ohaw_L%W6f$1domIy0gu`Ga8ApVD`CsWaIGl`TSHq@V$lacakN z<~J&5>P@li_T_;A;p1-GIS^udRn4%WKS`#_PG*@@A1JQroke;~4ycgMqEd!|U@YH{ z>!g98RK#TUp8AglvZ)f;$QyFrI~Ie~UPUF9KHV$az>B0)%T#KQYF1kMt3I|T2@eVB)C^mkZk}H5yK$r?!*D+x>;lS|q+1uI3 z&DLPX?{T}re0EGnkw_%{qmpQ!U81h`W=hr)^S!e)_)A3$qP22dbNzJDbeFzXHiX>H zVid3gWemS6{Mr2mg{}bpfx-I0h|^DL=xH-goc5VzI~w)*SlBkeKv1BqyAytPF{UnXJM5y&#Zczro^cu zdo<7sLjD2L`Xo@Ol=(~Gm|$z$r}ZV$fu!$lAN5K>UoKB6-P0g+M%6_wOceZTL-;*( zqvMPNv)<8g?%1vg_-fmQo>o6buP|(dUf@xD)xU!9dp&>avviXhM`T@*_W4aSUU!wu zH(qZyT7GiCW#B=H4OYv*x+%S}zbmc0@qA(;Yo>y4bfPMi?c*)&Js`6$LQ`NFIOMC7 z=ap=)ZjGMtuP@sAY?hriu~5bk1`~yLtbPd-)L)(3E41*?ozVeAdf< zsq+RU02hr~#b9pgh;_;K-t{W7^5~Bk>k(@)elYX+{iaJ`V2oW*9GG6BL)_h2Fs+mx zHQIN%PFsL~&orNbuwnL5v1ZpDe+X{HGaTFI^viTx6cf93`Rr>GJ%S?b;=o!ObBI7- zCx_Vh&qIqmrqY#!zK#_t1Z?XAZU6ye=}{$t>oR8a$O$RcrN98cn?`0+ z38#u>q=Wc-O_rX&A2gze+mM=oUqA?(l`iZHw#|~c#?39ply8;*HsCdw;nO;D>n|^{ ztGej_;9wVuIg9Z&pR=BU9L>GlFDuB)zp%+e6~K7*Mazi-tM2AH?mV53^=YFWub zqUec6e4xQW8u|A;;+Y}F4Pb`-0}%sO)4Fe`fWe?-^Z!^)NgkbnidO%tVpTHPxsN49 zfB!eR{%0}8l6{}!T7=4?cy`Er=b-u~rMG3CTJ0H5om(b3ye|vnC@M~~Q}lkr@F^v| zI}yJwE8R`%H={>euw68gyVE58czJ~ftD-hD(9tN-+;r_jS*J5L^ULRKj7%K~JrcR+ zo_`f{@;rtgeqw$?EbcO=)JBL=^;$Xbaj_4?Mr+aoMFZk1#$2R)aso@UxYMD>zJ3`R zzrdgzLRzzah8#qt(_nslOIc)OP^^Yq)r^@xl8CQ@L4CMa?n8M7LIl-(v1ePFh{;hA z`SPZhS(h*g%>S#45~iM#n&Y6kK<9FfG=6rcA=End4s|7`UkQ0CE2V_hA-unFcV5}O z)!U6&TtIjKVp#GWf7BayiW}(8N_mQum~q|;D7{vSC3Y$;wGh1<#^AIWwGvR5A5(>> zXI&Y&_an-av{aSN$cRI;ZQTWDpGk~mmx;aDB$;ZpXnxyFEf0bV=D)}_l^V)|7~

nI5y^piM1UK2k*jwt9WN+O#<|vsT3N8*mqjp5)$5oU* z;M$9SC4R@Rq9(<5Kh^VODe0z|bX*rsdE2~w=JHeL!;Jhk1<o5GaA*&oK>*){m*`b`LrP$VCvSB})5TJnfj> zsA`8#dFGU>3i3D{0ls%=R2H}s_yhSRX5UK zE|~)m#GMyplj)n?W9j)PQe1UuH90NkPwi`A^NEe|AK2wsB+?(fQXiCcBXUPvCr z%+Lb4l$72zP@+M=AUwb`6);XK@)sdgWTslU_u0&dR_Q^=RJ_C4o{R-s?d2Ufri|F! zbO|K87dxHBTA8r-XJDP_^V;chxqW@ro}UT)OtP?Bd7U0vBUHv}&(s*AWWBmxUl>qp zNhWPTpYr&RTWwQ1;=}v3`_yYQi9sjiAXds%3BlN%W!4sA6 zyfoL}xE0ZiDV~G?Ns#JM%YSfs%)dthe0XJ;!yKVZJ+I}kEurBBELl|bS_o=ur%T8Y}W zbmNnWN&^K2@&=Z~G>_yr-eiU<%NhKLRfNJzr+`7}VF`@)<7D|pW3wx*MoglEu63Mn zqAq^ao9;{;&Vc|EWCX&6kh~k3{CbmN1+*;mB8@|+Sal>N0E{$>Ct2Cpq^_>~lackF#JMzpT_D)lVKG zbWtd7wD7JuTj?nd8Nk8NO+5jB-lx?lwe=Fke;AO4c0mS?#hyo0S0&_)LyaSU(E4@< zzX(+3x+E)KO4w0vmsfYyn4H664wH6nO+Lwwq@SQY% z#CXAkPQbkoY9%C$TE+gsugS9+{`a_R8JLVyWLsscLTazox3zg;{J^K8uqaQ^W1p|Y zB;aC|LX!c%iTc3=@};CH`k$8-eu!!X8*=u6I`{KwAI`P5_Vu#dyEMEcJK|$rR!X^R zzw~orK-j~fO6OMSqwKg!0t1)zzd$?7v96cyeBf^*{VrNQdA_RN1|02o(S9|`Kfl#} z-=K-Acj^hrBMsi~2 zDA~y}MK|5M5fxXJttiRTM8r>H0!Bu(rM0|{J z$=DQQq}tS~S^s>2N%8S<)HF~w-?3iA$3LHZx3{1)o@4X}RdoCt);QPReVIqk%lZksMR!Po4Ktvve1;VsKb>rnP zYro6$KgWfX9vkWx5>iLmvs6(uq$D622zKe&CzpqeYT}T>w9lmh@FD!u{gj+9`?5+$ zPk>4@d$jk#d71sBR9~14#YOja|BtW)5Pf)4`&SU*xeLLbh#?}9>4vMiXG8XrB6rM2 zRi9eQ;YW?hLhFOPLU(UdXWDYZvJ$hdqTR{m#jMIss)Vte`$D!tkP7=~sGVMuN1TRp zu3hxgIXXwnhmLyz31|i+PyTwV`B1ZL(fe+rh5NmrmO!NnW<<#dinuq}$>&wnc&_fB z(aA5Ae(O*VKk&i0?<-w|=PZ(L9UlMsRH$n}Orq8=Xd*?(YK-7IO1DF6zO7;cdk@2_ zrg4#BaJ=YgzbOj(Qr=D$G-mjy_`b?oBZErQ{Y}}^?!HB@;sYD-Os+oz{~J-G#2S_t#S!^}67acF<$QeG`M~xXF=j?BO%fd}(Y;Lh<;oboS#EiB-4qWf!Dhzp zsvb&~R{uR3Xi2o#N;w6TJ?TU|0#w$(&xdkW9;QSaD7!KSd*9`nHq(^(HvVdTzVKzGI&4l;_b#udnq{DH!l>__NV@JxFV*v&8EBT7h9pmccUw@j8H zrr+gciZ_b%KkV6EOlI)g96yzDPI);N2&Jeh_#DI`tuDw=Zy z-r;7y+Ik-tSk^~pK$U_ZeEL|bY{|pmb^*+mZ7F)oITG~J&TP(byfMu6A!3+MlxR^C zN+*_3MDKSZ@T;=DVZxI$@Ldm(S)O>pWIh{pW7bLkx*i?;tsEY0At3lsIUhqCxORo; z7CH#7>5Bn+5?bVVBY2s6;QzrHd$j(iUm}PxFQ)uJmo;mBxQRivLU>~0HG%xvm7e)l zv>d7WecjX$fPBUBZ^ix(BvqUIuVY@FufVKTMN#}OuJL8OQ1AgS?%s8zsGU=W{iP)F zw#ieU5#NZz`+iPAWQ*^M8SJw~$0o(FDQ~s5Va-`y^05d1)0 zH*74ScPP7^{UBZP9zwR}8=+H-?YG6%mBZb4pDsCr%$ z`9AYh?eQ>Un!0H^)hY*yMsq!e$kAW|J~*XZZ<;&RF;$OmQ{dp)ZXEaK>!PmP zvf(7CUqj%p6W=^zv~6?1t7)R+(Acs}cxK_F;3i+PrR<<{UxrTh$cE`xV}lwr^j9!r zSVo_W0ts`>u0$ulD7cB8#?iBobbd{k4p5Wrie46Ssj`rU13v;E5Z3+iKQ0YtAi2x@ z-*9J|kYPwX(u~y5$4K?YWYuQTE3f3Hx8-%O^qUs6S5EaJG0)@bSKmA|_RnEK)3wob z4g*k6wg=<%pZys$jJbhc4(J;%Zu3B)Ha||BKdr_@0aDyHtw-A|e(sR2D&$&6!4-I! zY|jPtZr}UpTwn1rCJKzv)GNkXr2YrzvJ+;xKkKq3iiK%aZ5E|D`AJ=NnmEiaZNi)C z8#x3jt(9OB|6@^~-|5l!BQYT@(<-|aaTj~1zPJ;>33Mb;pTEqSJ17vfek}p;N9YX^W+NBTp z-BMD9bxtf^?(#fp{aXRSNEe|6h05TRU_?`P@eSM-m>RppBwe6)Fm-to`jL=d?b~Hu z0B-6h3KDh$;c+HWmHclT>|N{#BPk-z@f& zk1c-}q_Da5xy#QlbE^2P*2P*z3E@ZPqIo&@dSrFRC+(%dR zi?9`q@f2uVO+3r`ljLx;RO@`+CwNpYAZLL47Wuyd1C!vthYfkhD7$^z$DD_>;~l&D zZA@sjgf&$$nCHUmVgCJ1O}EiNoIS_><6wLL$43{lc3P@9pC}U53*yx|j1w0dCX=zG z{&f$@Ix!N+?QltpfrqV#+2h&ZK4|B>(uEX}cUEapc6aS$&C{vckT0Z-BX8dS6ZUL@ z1QZ)i&p)cm;|GM}f8uxL9(~~pFk0gl=oRNm_kuqD*mda^aw@+RDRd$dCyDplhr-ZN zN`_j+i+N!Q_hb;%H{XUBm9up;B+o$7i5w zmZ_@gz3m_wQJ*@Gm5{4-%rd;7QPj4ot$64LBE>Qmf2pNhULtprKS%*^A#Py<5@e(qONcFXeK}eLbdiD{k`etY4-1?z|vVQkTmwGgX6|HS` zjE6CMchV6B3ar6M^nHqD>Zd(Q1NvEw*PH0~0(%1ZjNA~#x5Vguj8Ttcq3KYph~`HK z|Nq2MYKt|Nheul}Pfp)o$7@Y;d&cstgQqMEoGPB>=RfUjlf;Cq4z=II3T|mEP5A7W z>?qRh1#uiNoPUG9-N)#r5L2eUf%cn+s(;GL8hcaU;Aj+i#B?)WX>OY0!q-?ArGI5W z$_Eo^s~1iKcvB($x16OYr^^g`mJCQbQ)BRwP?(7A;Ar|FdP{;%+JzDAerdKT=||GRGbrzZY$5Z+5o{4a;#5fIbUW+RRX3>p=4X_^jwCg zYbNVC1N8|kx40#cKZC{S{Eaar>^;Uy;evamBm*+ovV*W+B^Zegw9h2RMWA3zFUWVB z8T3+BWna)_T|eb0Dsr_^C?z#=p#AjoV?441ZlD8AGanP$kmpvs5mQFnK3RWpY8W@` zva2s{`UqwR28#(?A>`Hthjk~Oc1LaIS(5(VpH^gSP4}CW7I}W4Es@eBWqfO|y-ucdI2ZG7AEukK5yweZj>eTDr(M?z) zCK?k=3n}MCq!svn|JJSE@oVo?B+e=wyM3i0aBNy{4Ep25w!2JZ^qu0lsiM`bIR0VT zmg}Szj5WFd`rs?jikrSB{Dh6vxgh7=xRTs`@+ke?HxKzAk{)Pk{&UwocH#!cxPO9f zF3@?1FFdZ??xTZ)?^ZGYu|lEm63Ymm0N*mrEUa?`?EcvN>(A||oKY%7`o3_mLZGir zx)yZ=VSyHu@#J!(XlrHtI&$o=PAU3T@Z-paNbb4t^y@9@udT&0(;j85(lmiQyUc())#h{8{fQPZREZQu7|qNx z-jo@x^_8>k#fB}5vU1+yWkyCr`Jq)q!^ec)=AY^4B{Pi-lNr+h0g8_a@?sqa54kU+ z;8J>OalJ=xHPj5gbOwJw6b3v-DbBRK^*nsXJ=5e%uWsHov~aSoBj&HfmMp4m5h?~WA{!JPGH7TWpSA3RnB1g9VJ_?tz{(M>B}@K+}6Ir4@s`}6pxaV zY)q4~4K&N3gI4!KZipU9 zF5Oru%u*XaR~tZE+=shQ=3ORC8$HYZ@mzF5+$_tz??aD60n3&w~&ngc&M zTK<}kfuhBU@7uG^_m|JN{z)M81!Nyk+w@7;`DSl^pwQCUm{j+$p%U#zq9cBauZMyT zwIueejvEu--2{s|w-+LE-aTTqJShcn5Cf@3UG@dG!xOYIw9b#6x%`{1^~aqaK&(z) z4c#|AMWwBO`pzYe7jq=SWX=uCJdq+B1MZuQKjIBbRC|6+75(NEINtpDzZvGUgM08* z&^;`NtnZ18$$yON8E4xj(1WI#&49cJkv3#D&;XQ>Rwc-WEQdxJsnjds~eBg)( z5(?k}6D$Wi@3@i_F4iAg+>iDK-LS)$#&iz=uDh$3?I)XJn*4*6uxubm^Q~rW`B#bJ zLIpX9HTZHe^y<8#!}Aj&BxrcPhSC#CweZcVF~+vY2h^|E76&z{-5enudsE*y76{b*5?6&U4i-$hOsBFOO7~q+bJ+X#H2o&|G`me zP?zggFz;J3?+0ZCSYv;!#gjZ+EgVVi(We)PN0Y_0dke8l?H1iZMJSr2YCVe5qk2yy zZYZ5|#gx?fN@G1}Ep&D3Aj~d1u7<^h8q*Y>(G33|V{aW5W#6?8gGxvUC@76eGXj#* zA=1*qz)%uWLx(g7NDbXcOZNy2UDDm%-Q6QG*LUJ|-_QHJe|_&Cvu3SX!&=PDdG6od z$3EgP(n7C8+5sn4Rkdrjf|oCy6!J%)u0Lzz2d7tN1p>O3w?{aX@=8$uZcG;(%Ib0O z%0wmJzvY&Iq@D8+vXx#BN{zkS*1Y&^k12Rw!ur~qZMn58SilpSa10m#&LLd-C>!)? zy+}$!jhr0$zVMTbr>nu_2HVpK0S{yve8hHb{P+>+`H`M*EQ zgP?l3m8g0x!p@KQJ3*e!XjyUProh|Nk@n$ZsU{TZNz;$QED}wV2l|de$j$+JRRUuQTxpDWyHA@47CtJteuGd+8PS!- zp2*3#k6OGJ0{@qC56szU^k_g6O!{N!<)kzW;WXvJoWB#w$;LW^HASh>vaU)lhA{nI z{k42XPXQ_r7mvkJL;Dkp1S&Z`CqMDCPVapR--X@a@pHDk~r!kjnn=riMHaGe)* z+$;ncAv3~hg6_<70SPU}_C2%Fwa z+!~iu_p)CA$?wIvWbLk?GsLm9o$e>r-vCHa5~5Ge0z zKDJ#sCUmn**k|Iz0siobyv|Q@{;2KG+B*<&-RzGDuuyXc4R&SvQ)K#q2n|9e_mL(KDW)u-72Z%8a!(JEW+;kY0PmMQMG?iJoA73E0 z<5V|0zn+Qhw$$R^iQ@b*sb>#dBD5Al=go33#Yz_*2N7FzVdwGBL*?u@;<}5T0NJfZ z^NVvcVkQk~e6)Hcv}hooNfbX4Bo&pZedfw?Qni3fFxX^#!Whm2xKYh>*LD7+D^wz4 zp7lE>@u@;MrAv^mfM-p|%x`2}%=$_8*+~Qe+mhD$bR3V5K*qUkl1OI28X52DZNwky z$`d^ndH3M`L)Fz$aDdq~r%ae{-V`^>;B~mB+1!HZQY<+3_Bk>G#WkicKdI|oSwifw zAheFUnwo6X6& zpSE~kBV#6-8$1Ic3fZNdG1lE($h;G`q2I$)q92JCp{jU6J-xq0fi>KU9%(v-hg*Wu z+sU()oob1`cUlsK|n{RVCGBK2_ARg`h`CgYTFoR)!$wf1^a4Bwo??NrIc zv0h$L?G?z%>QX-S^Q)i|C(DdXQF{pz)SWOI;RX%JdDjAFpWf(@hgE#VM}%f0P!vtW z=$2vG!Uv-_0-;ygm%|oQn`bu+EwyK+`l*5Cz#hx3U9=*?U$w6<>F`?i#P4kk<@IW#2ipXo zMQ$*cw6>RPSicg{Jjwe_<=wVJzZmcj+UzB?M_orQYiH>g&f+r5OwJ#b<-})f;7d>g zZ{|u`_V7Foe1Fnz#jo^hSM!hcPvv(smw|4ZQ3q0?HcS zVgd3S!Ikt7(G`wk*6MA;H8clstXt?7zW#DV7%B%~2WnSAM5bc94 zgZus$L-<5D@@kbWYMGUNu-TjUQ2Zw3gD6+Jw>ZGNj+-8}nxPWjIH*duxO!2MO_CkDsNAx zbao@oboeOGU%UUDN`EaOoX4ETB(sWxV^z@Q_wVbA(um)pR2K@Immr!K@|Op~LHY=y zo9@P*Lr~`qfv^RMETetB#!U7n4!C5Sj88&Om92$lq55eFhHt?>rtL;~j4% zj&mzTuerDGaHK`;nrqL6i*`s#yL)7HsV$dRKyStUb2`m3^ZUin9uiX$ovBDrvOeUx z7@(fgAF)RCtv?laAd`CJb_ItufLHq9I4(&?GL33=Sbs<(no`3&yKSE~?5!rW_IXp! zb~u=`%-oCDMj@#UBMxyq#+MH#f>Ck%A>R-xsw(5^8)S+nPn)!nJ1fnqe#t&QH|Q=bpf*D&kew=Ub)YCMI<;lbYn28b zFHw8fxkU`tr~YPjsq)XS3R@L~#`hLBColo}lw;_uI9>+)WvHJTu&(EBmxy;hbzm4Z*?_ouX-=w3HIM!Mc%6Kk3Hbr$*8PlsebH>F_x@OFYPea>0w&;O?JM0hFDoyKx((kLo?Fgrw+PjI~(ytLx z=RB8GF5X>AFruBwXcr^NIJ&wYcFr%idi4(@95g3XDrZLCtEwWDQkYN1(7Mr*_M6CE zJ|ZhRhTFK^i%Xh4?d>{8hP`+?XvZ2W`IFsUt+O>tvRrk;A7s!?$uvK?aLAE$VEPm% zwO-BmM%p{a-77B#0_mh1J$POHX(gWSA*|cP1WvByXEQHdr05&#xwbW9V5XB*prPiA zz4Nh0?qZ18g$3U-xrp<_v(cmTCxe&JYnzm?wsa} zh2I$#M9UkWdTs+;>3v65c~#pgjp)9#6980GFXWvU&zs9;Ms=^>DY#yo90x>Bq;mg?jxQe` zI%fB?LWCfazGxkOvNp$FQObZz72h$;byv-|J-JOcfRJ@~9JrMi2==6=6bgKhlT(|F zDnk1!kC2y@7sFshH(`oLSh zDkl1_UL9M4Mg^EG%lNlb8e+g6y>4JlM`vEbMS20}=6!@1D75idI>^#~%-n&5N(*!4 z8azs2P79Ei-gK7mKtVw0S*zk!uc|oR8&$JeUMlqf?Ccr+k9&HgqdYfXLsSt`hJ10D zRGuwx+Huq~sQjwT`2r4CKHYM;9Oi=GU9;T9ujy$+8n*t`BFV9-pDl)Yh_d>oL`fqn z*7o#;U|gEfrtilQ`x{2kjd_>4<3-u2{o$wi!oj=HX>K^d4uq<%EqmwkGAjQ!Q73>W zj)##64+*#=me3ZQ@aC$%z&{d)lvjT?2rd`wB_jl57*40Pc5C*}pIun0lAnTG;O&0Ldee~`H5oAtQ z=$_WOP@zglSB4ul-np!(VR>4X~ zhbbOW1iPL^yAh8(c!qC@42!-zP;!$#vfj|Cr?C;&YE6#eEr4*J?|Qg99pzXqoy)cjgSNcd7Kh>}C^86ohK~7(&L|L}j0BfsMYWc`XNXPu!txaj= zF6z!k(>5=vv0Kp3mK<}!KN`p3!kSlfR}6(Ij4uj!c3bT<<|i{@0DB07!mNi|MGR9m z10V4}0&_78(!bkF7@AZTU!I!&;qYtRz4WqaCEFLyaTFrLwp{vz$SmEa6ZW9e3t>5p zX!C47tV}i+m3`2mv}BZAP4BN3tVUPrq8lNkv+5*$L-^(4B$-ZabqMLBix!?R&0dYN ziNFHvcl{ns9pDn3vQZ~seVeDLvp{qGg~;N1>;sZ@Ih81GN>;lEjDqOaMxvx)2PJP< zEe(if<|H4We=Ez--_T+qC_t3S?`N%8Nq?B&4p1rFnc{V?Bg^$0(scURTmN1XnO^_%N<{q#PF-p5+%NiI) zOSMG#w5S5@+Ork*u)weeB8>ihktOI&2w=Tv=KW%oA0960=KMSTS(V=jj^Jbc=XHgD z-aKCB+fX{sk<%&vW%z1*kh_ z-wul=yrNkU7KN;dkS*=k)sIad@6wAO^6?DO*aOvS>~4dEtt&GLaJt;pz8h2Gp_~^3 z?2MA;SNTn|A>eG1;F=Ykz|fa7&KSQb1*}9>biWm|lWPB|V^755;1dm$3odG(Oh!bt zksmbBI&JMlSa)su)LfIVrbL6Ft=gO<{T=2g3+%17c<^DW5+=b5dSX&#LGsK0|m-Wz18J#$^tGPt1GGx)# zzJ)Z;EbH|aO`Y+ycg@xm%Ku1e9Lhn1vUEM$?a=Osw(6ZC+4ZmGV=X{!p)jx`@N1h1_yb0hkQS7qqs<_}mjupSgF^ zv$N6)?+BwEZ?}O16s3I?Pw<$XaDiqQlr(uz`pDb7BBI}khVw}=s61KKq`m};ia>1Q z*`RmxUC?2rn#PDEMuz>(qdTOXKn&%BzO2LYG+^=$mGRhN& z(2QI%@2&adwzTIrAQ+~J?-3iZ8@i8dQyfu_ZQ*0qVVq7io3Cck+E}M0xVW@jkH3(H zDLuTI;7N;ii9U+>Kr>ls*9jy(V%QJnefXF+f+Y^X;hoGN+Lzgxv8tr8sv}~LB>`Rw zE1Nk2@f)Im$l@;K3U%7X&{*a5c$eo{cs3Ym!dK^>)VvC9EGsFeY3%a^sYxTALoA`8 z9Aq{n_T(ikwc{rCE`wO3O|S;9JYQw)K8Ln!R0Yi5{dH6}ac;EY#F^z~D~u`oe$zsD ze~kc^5X$HPyhBV}Ge8d*v2PF1GrKvX-IR0>RXUP`gREEyrL5xFHN+=tuRnq{Xr2iP z)n*t#zJsL3gfW*sRn_VacT>!ken1%;1iGCC8N28ReN+#W(AA46W$ixQYL&yfyUELWxiZPifGW2vSg{Hxq5ipy;c)+MB#);QR6w15F&!d}~ zQ*MuZUzX9D`3>tAJlNyeTB`K#q>7~-bY|Az~*9~V)PbmMS6n#k)FqG8Yhd{-|6D(bgXXna&?Toojesh z{p_qT#-#-Fjgq(~jFo?*9JdW%i$s*zQJsw>FVMV5Lb6jzXC^2mls9Asj+X+?hj7eJ z%#(P^TOJvuJkhz1nV)R>T0+mP+*+w2*S*=eFl~9yzQG%b2G%I|B&h%2M;h?UXJB+l za;wb0KOTgg)Ufonz4TL6#z*t$Ix$*a7z}h`t6XuR_7v_hw^}1JBgm)faNY7j+#E=E z349c=RHEB+qDaj;{5C^(4W8?eV8-JlP__umjmp!Um$fr8vaxxScNIZtAn*11R~)GE zN#ZJbSQ7gaKViE8R$`5*RZ7x00t@^PV!k@hHK%W&A=%@eb;t};7bmNH9JW%o^H^(x|Oe-XB z_!N{@6()1gCRiYz){&6U7CtAdbc6YG#0CQuV(yUg|Gkwb!-K(aTRYi9W2XmY)IhC<}@E#nSVn^If?| z03!~8rXnjdfFMU>X}mkAO3fQ^^<-(Y!Fld%^bG^RP~3n_o1GKZ%2df)t}F$VkLA)1 zCtzWqvxfBY&9qkmbLV04Yf-C|&Ud)3;@*VVLzu0phSQeII#ehL-IlM_yl%jS9)w81 z7yq$RP(WFMM7{i2I-fy%`NhL+fuywxz)ymAoYr~xawvek7(o7U4;WA0gif*LtVy8} zhXPKXqlE*n;!UDz-`GR5PZS2*!)FMvqOmMC@jVW$^wTo4t0FePei=V_p>hFCIB>!X z@#_gK#58@+LnF6{<05yn4({1$UJkmET&yd_P+??#XN0|5V%IHB_2uXvC$C9~Et3zB zx0FM?p0OIC&xhwqUx_u{4afsgT3WU5YLabi9~EQ|+`DVx-s=Nmfg$-hOb+sySannt zoeA$T07LUpwU%yQE*%I$Zf`VLyhNd3GW2|U%j4bZ z0?=0NIsMdYz#|wSZPB^C1R5LTK>Fp#| znmtumrOO>ZOVj6Lj9#5ut72yJt5`GIGm zhC0dWz_#EgsTXa1%?KCMUPgvR4gKF|+DUDz!|Yc{HADVWe6{1Ok9R{}(uCtXxy}Db z;yx!U@N2*+qWEN@re;3soICtrjW{#fKjX=Z4nkMAvA2{mK1HNcYHKcDP_4k9YC0wM z1MXc;?_9DF#~*Lbdwwz|u6JLP??8i(b>?{ZS42-og#f2!o3p78Ji$Hc5X-@zm9@4rrKGZ!oJo43@NyWNp-84PT*B9rtD3(8dm$srO zw(#aXpxfVm-;_==A-&9JC)!SAZl+WV0M7pSk^plQpzgjh|DP`(5I~ay*g~w5ELn?Yo&G z(bAL7dr$eR*+E)t`0!S;6k-msx2dU%eEknv#jesX%Bfke=f@lA-*36hv(0yf>K)s7 z`J(_EyNFtzb()HFzj%;*I?1B+O^>Ya7;R=mL))$k+y&)S$)x4Ll}@C3x}i;*cp@1- zcG9ln(D>eOO7Pj^W4ULa)TfrmVR8C}KA{=&k;i(>dnv~}eUTd_^UyAvTiN_Munkjwb$^e`>F&u&a)d-0 z7eanUz4?)4h!d&Ea=^2uMQdyaxNR|)w3u}}?hJIm1f4qZHS~?rt>$KQ&i)Z=fQu%a|`IQ$QPd8lAWo9Y&!O{TJr>||4{x+ zNj}8L1ITlLZi;)!weIEnzbm@Ov^!t#X8|Gjm=s{i`|FE%x|Mp^m@Vddz?nsd1z+(Y8g_W%g0{k2{MMy=w~F)1_{%mX?`uMY&%sk|BVSmlh9Gg&J#!u?diGC{wk`Sl33yK zc*hCqQ1~PyjF5E7S-Q+?AnNdBG4n3IizXT8+R_o8Dr%B!H9J}B5dIu{4GXwk zGAHZuZ?V#Yyc_NT_USDgrhD7j|4dMLOuz{(W*%xsL9}gtKB?R1CpHw&pk;fd$3C$c zyD@wCF=pRRbKr_^Pj{(f31{BLv}e59D(x{x3s(N^p1+ra&QlHRtrE->HR;JD z=g?b@9U+ec~3f+{FdDiERB2&E?0aQD+^Oa$lYmF$#=a?P}iq%yf5sQ_i^Oi2ug?DIb$ zgfx!BaQR=!0%PoSiAyDD4xiOPlQ;JXrQc%Xo5ofW%FQbM;H|Y!TTe7Ep0^T@-^#yr z!h9)jG+DH#ENxTJ9fd}01XG|tqD|7;Up?b%qf~bkv5g%d*zhZtRfb zRIeTZ5jn`1(^P`aV5c+N_gt|DK*I)vbjeFT1niKRzs0J^4Ios}a3DpCvKw06OZ%(E zuX>8_49ZL+j@}lA7eC*8Zn2nX=l!DIu#mb^xWckFxRKIZ;E*@ID-Wr<<%FmLh;MJ^ zXt$wXzsP2Mw(aiwGX+C7cY*aDS1~Gv(bd(5W+rTBINw2Y06Ab#UhS~ep;b1udcXWj zwZT#8mtH&vs-2x_)GV1}pF9>UDf1wzKCJzQg29B28n3fDo&d6vF1nN$S$!^sl++08 z7xK!0f}_9844|F@gBuz>AYuVpPo|9bD)Jv<|1whP0pd+7Om{%cgh%X^^6w%%zj1Ih zvRTTT0O|{Uf6~IS^z3J6+q_AmRjozOiBwSCr9V&gZIwzB!?}Sjsaw;a+kX2XdmB*L z<40Zgg`{lrzSlkc2kkv@(VT0$2U#y`9emL;v;!=hF`HaY7?K?@@}bGDug#Xs7qito zIMx)D+Mao5_H1fDJ8OB>o1XU*u92%xK71LQmIo?c5z(TNwk3||dl;=`@u$8E5(|Nc z@qmgP>KI}y(v>l}uEDaaHX+q@ok^1rtLAA{@nGYHc))oVoXTZw4b5V2RSeq_?gve% zX#fG*S$8S>bd^XOy3+?36Ki#*HKb&Bpv^Ew#TbnVtNmAwVR^Q>vZO2-hq5AZmrCDD zZw0emy!vFuoCKxhHRCyg!JEQEtI*l36KW0mn<{}q=KEj~(zn9c{CQx5ztH3T74w%+ z3f!pZ=FIQZ@(KUNSpLt;_nq5c6y$#+W%q|LvpLg!zQ}+6K5EB|C}H(+LnC+o9xb{~ zj+G0{^NOQY;APKsQb&fFGKYfG(lh4mUP)G_Y?V|0S1?d8wQmZ}|0Wc9-m8bX);QEd_8l3i&AMsUS4Kw&7{S zv)L@{=HI;lWx9~KE$T}Tpj|908s2T&?~=t>X`uX<>|`%wZQ>S<;#t|zgJk~+F(E1^FeA_wixDb=|x1{Dt~TtJev_ofr2 zU46%sMIO@EHyPiq{UMjTXG6XMT4N$4=E+k8PIV4I{GpIn+_uGBQB@LxXk)@T`7;1C zLP-4yMq%VW{=h}+8y_A2?e9KH_9A1H11BeO89mzUVY|245|Q?-8875DosHAiMI#Pn z2sd@w51upUrBe8+e$Y~fh{!m+FW%qy^fTG=>l2;)Qu63cXJG-34PPmE0HS)*LnU`- zq;yTVwFuAqiM_Yn^^N*y|JMwEb)Y!mxN2_NO|$hQ;T`NOo52 zlylzOdOza>jl{{7C46ucAyL<5lM-#;tlc{mS>P40;nrSMGRyhwS-2oh@{r>zeYh+? zLmm;#A3~TLpU*TL3zD-se3hL?jhHe{;eBn)G{#*I%t2{yjAi7sd=gNSQDl<%ec@hRHxfp$bD&jBQ#eL#nD%G&(4h zHHQzL9`Z57et9ktwj`lWTDAYJdD7nk9YdVbZy2U~zEAt2!;RAGhg^BuZZ?1Pwub@UV9MALtt&TyJN_5*rKZ2U7=?? z5p<>;^~@JoBohPyB3z()6j9&2QC-AI;X4%032&nR5dyRw>16cyrI)&fXV7MZ-7I5- zkkZPI-;P^HEBft|jd2uaW6|#=1ow+ENrN?}r;}2zB-izA(=P)p{>;Ssia#QBedL&1 zez?oBrmDi3O8W8UaB-KS-Z5=fGM*W89k3exRC(IfG6XwA>Z^o&m|`&J4hg`es2!RC z0Owxyv#l3N<-UB)tX%xnmM0p zX_GyLp>39KaxKa;qZrn9)C-KWGcxj=v*lDKBWXBXF21_#foaZKn%$Q4uMVH zf@p6;ofm`6RhZk4o04;$jf#KJO1-Zl&WbJe!&5|6(oY8)pUcC`Tof3ECF^`HXi2v8 z+jQB3*-x@|Cb7LYqI+K6@)a*1I6%ra?W8#eYHN$0YeZX+`!}XM8XYUEi zh)S}whY=YlE2q3kyEEqVO9p|fB798&$?kylq7*FBp+=i1ow2YVPXQzJ?92p`MP7MO*hQO7SrpXrahzESfL@Cfayy(+Ee=~GQ9=;@RSUeLw`C?59}rH~{+ zK>yg2xV|})csGeUa3>8Ff~sDgH<@yqtcl1{*M>uTyxzSI7}ZC1M|x3$OO~hnZ?z_~ z#v4AyR~=Fda!<<$Sqmj?_8Bg|;u&^Ysu_IxoMn5jMJ*D#yM(zH9<3QnL!^LXjWwPR zkE5l?R;OvV)4Rx7($<+4s{%8#Cy*CR&xhiHOTr3RRKKr{BpU2U71KX<5*}1|KTFbI zA?3GFn2b!9A=9W2Zj^?c8oi13E(S8e240W%@ul8PXYs9{+^F(2crLSJxc~ucA^bnb zE_A-Iz1G1J2^RzcM^eG^wIh}M#Wpd<$5oSE65G=GJm;9uAupEcBFQiL=r{d|n%Ci3 z*AvS9^pMQZ%(%XI3>7~Muuy*}>^g6mJ(T{0z)xGDDaLa#zE!y2)of@%bhJtHNU!#W zUr$JsknKSH58Io>UstLew|kR0Aeqw>q6YTq>rhn{7zlCp{%_g6FTMXh?pw$IZe!kN zjQl-6AK*a#7i5@|oyGk>`&kHdbVSUz*6QotP{V2Lh9T)KG^4rh`Bxj}U95-WQ{?-) zAsju73_hXJ(eZL}5*T?;GLsdR8blE2XD`B+22K`BrEhPebUpLuz7U>^-xhtJ%Dw@I z@L*B?Nr;HJ*&|tEYGpb{1HXA^c~o@Vfn$!?+BL8I`3;d79e9Ii=cx%Bx?yOjQ~N=& z3ms>BGN+|I^7sza7u-{9aW3%dPCW5EZ+>2Qe9<_N5slz8CWfRKiO(>rr_HfiOJ1wq z!{EcL8SnfkI}vFX>_6aRK(k=8oZeP-0uFkiHJ%9|Y>KHbKa<)CWkoiNkE2K~p)perlm2XA@xwEl@ISJmXe3xJwALBVO7T8qy%!qMbrP`Lm25w%?31u@t*3dD z;-{skM6!+kx~^K|m9FLkE*-rR9PM4sOxuiOVNg&1+q8ij%|;5I7DGV6^mQ^n?`%}H ztWTBvWay(DprLR5_v*<-m*jikO6((>{W25A1w-RxTFebqRYN!Dkdw#B6Unl&a>Yjs zKGkZT@D&)Vyd<-+BF)Lpez2~pBE>`$QZ%=p_%Un4i(s-s!~?A2@L+xpVKr|HxKXIK z9(Q-I;pJi0G579v4m)d*>AhQ{db^WGS0kw-&3yK38#=?Glh7_qytLhVNzz}{kn*Hp zu~CRhQLf6J3-2TU%C>_yfzwEyMQ7{E3C0wT?23N%mR>e=YxtujnJnHDajK#z4~o@K zQ`{qX`xyJU!B|&aS4CM=;!Cq#n?~OYOS%VR4kyFXN=MLQeD`(*U_-B?8=Q$J^W0@q zg*!#uGwRY!Bk(x%;t0ZGF4bXQq`4>l=)n_7CQ&9~P(r|^yZ42)-L`9y zeDR<_CXo1G%*XXLb@Z2F1sh)&hS+sjfBNZ|*}01ROgBGSt(_}L-R(g9er64Okj6lX zi~U!-AFu9q-Hl2tO@&=Wa+A5`?X2h&x}8|OiF7}`s7Q*QSItd<2qph^EBG~qksTIf zjnY$++K0}RRFWB>>u;&-O*Xlv@C4-F@VR{96Iq_BF|P(@a=EH{{XbArql+${olW8~ z#7)XHzb=qXsYG37-L{37x1)rbLUb*OUJW?hjymXxRs_%OkJMc+)ZKNMh<;R;bqdbz z4#n=;g!0BGLl-dscRC<_;zx9hiMld6|V zP_6G(r`(E-WQw3+MA(BR*%AL>_1K#Je(5EKT6V(iF4;N^&d)K2G)fk$Esk)>s%}DJ&~*qpLfW+{KyRfk9bQp?!vkBnd)wsB^f~8)a`zfZurQ|;%eW8$FpwG? z-KHjhQMiE#MRiQRxX@L8^vOophqBNc`?mHLy1gTHCgM&6dcQEF{Ag`+6~GUYc3NonYhgeaRwH(shw}2_^@d)4ZGUbA{7Vd-VBsomfs~ zk*^4Wuzr+uc4b>=-=drrrdWlO1&gdBr;dQp4?>E;luexZ4YX^su>)4xA%b&Qe{zOP zoY1A|`PiX`asMQpRcKBuP<;}4&QiL&-$d=fKYr_3jJ=GHnTkt*ScqzkID{9G_Z};T zy$JHK%i4MOGLh{tjvmKW?m{#Jj&Mw+?)os6`D@fFtEwuB-YXus=ynn(~a6+z*Z>@ zq=A{Nc*}8+WM!KQd`f`k&6Jsl!9S680S8v5Fc-Q-_#2 ziOe1fIvAPeXTN!k@Smm|9PzJCsk3e>({=6QE~MtNIvUh|HU$^U5K6! z@SJN}^djC|3Bk@6_!p>KR+^v9B7MiLUJD{<8o#G`WsPera_OO4Iq;;mDp=7@M9*B zY*MvuCMQ9ZO3=tMMpeYc<&!=R_XFe8{8(0g2mcSFuxtl^$u~;B@~GN}@TQ3I-EP^H z5F(-i=SP9nm^Rq&iybxu+4uC+Jnb%1-@6WJ(V5&1xH-3dllGs#9-M~TkT%=G*IhNi zH=9lYFbR1*vORyY4&qE-$xdij!`GGuBiHab@mqg)-0sNtr`_)}nGKabgIal@WBGe8 zz@{i|8BI??a6v*xEk7k+4}_U~5r6cc(wmUJ^47~(M4Lm|E*dnse?CXWNyDgA6}}+& zU9VY9&-{3nOk2Aqi4a%Pa!z)q=9ne7q!^hwxifjWyNWp^#v9RE)vlImky5C^mBlxf z*FUls8aL=NyE@5=v6dux_9LNJ=PU&gSPmU zZhY)_O^_}?9c;swuW;OEF@{Hk@Kz|Mvx!!| zsC(M{IUD&`+F(t4S|B*H8b$}>38%+_y)DE-)36B?63lbamZ%;@1U;v4d4cw%*ge`k z29o0oJIZ_V$>qXAAiBnG7KWaQ;QU+S|7VT;fAb0c%Nanc$^KtE%>M#v!1Dw0c9wXf zZXe0meGzu{fgMoWWUNMe;N&A#v_kB&#{oqz#!Rb zCgUL}NAe0P+fF6m)Lh{9z$FwfR%s}B#O+pbS$QZzG(&36P5wdK({Q57u#$S0#J_~u za;7sVo#}TyrRvHPvl8M>D-jyy_lg~I5z8H1BJIi%8@n<<81 z5C|F*wYT_wB?XP<%gT+A27l&kD{?ThO`y*$lNDsmxAjIQ=^)C!TmE-(3+ z&Z>)1Xkzx`h=f&r88CRM$QVchEK5Xf_5u)J31}w%jWq`@k0Rv<5C8J%pifc1e}9a^ z>vW4aoZOOo&(*T7E~S&D*u|{#4;t*2nIOojy7L3LEF$`&?P6!W`~j1%apl&8Xln&d zR12x_UU?W8Yv4tJDlDl&=;=RbN;PALi?gQ;uups}(z`4LB!>c%eqTyw|A2!7RZiua zU7>v*5-a!;688H6?$%>3*G{O4mfBW-s%vczu~bnjPgsg)BJ)&-r*X}z+tLhT;%Yl}k`jj>+B2!9qhjZpW$o8UAL>jKJhe!-JRLD7KYUuF} z+lX~6`$ru2Vwae~_e;^rKDgRE~d3-w(x~EkW%a((#WB8$((&!c12{l6Coe$MYo>}aEe5_$peogz%Vq**>aVGA zHzN+E2L($Om*mD@j@Yt7pLEpT76qJOwQIytFG;DwT)3+Be`}oox?pJ}ij(`5Tlr-u zh?-HRBw4mBk~`YF^oyvY8#u{FFXH~E>MXr7}yU5T3 z&cA>wPu_YO&ZarMfn7jIPlXQBgq+By$lU?87d0M+SO(3pUia!Zmnm)4=>D#wf zW6ao9khOveZ?uX-pAB#aKBk1$Cf?vg?CHMycI)7@EbM-8SrvaJ9x(It%NEUkwUM4L zB!$z8l|cR&YyZZ_#^M7fTvHz_~|GV4|PViuq2jVzzg)*IA6&xL9l~r@f*n9hXD%ihx@l;oF zwAa4hn*}W_vHrPHw4!WwCV=4lJu`GxqhpoPWF+5g;bhU>fcw%I$J5*OIGY-#wTzB?iVBOgHdkAlLIkI%x0hsv0iEEEtnR?=_fAj z=;N~2TpwErK4c8XmNJfOWxAkS27{*5h9R`OHZxb!s6nJjf_1&|IHPMsT{zY${1Xnr ziWW85Xv~M>s^na$x2z@6To(`1Co69%ojV}R)E^esr&Z)HvJ2_%OZ&f>EdVPu_TO>m ze`yi`KrBO=e{C!x@On{nYvdoaIFAnkI5&ZvBR@O{ieK(p(V^6juPipSte4tem%qJOZSn&@`5C(*)6H{65Wwcuvl=F1otP?q>jMAzhFvJ&G+VS@7@+oU zoXL4zCqx~sB=86eP)J3`+H*34+65lKba4I_-N^Vjn5DeCxl4OWCz&Pqp{UCrk7<_cVtq$cdgW`lA7x*mJ% z6l1;zdz`El=O1ILX!Vxc4!777L|#)M@o`1?Y?>#`mTz0;ntY-D*re7p^-}3|#A?uC z@eFq|Qt|(z>#gIOZ2P})#6Uqslops0QUW5KQ;`-X-EaXCV*=966a*wEjdYD3lWvgi z?uOCbFksBz>2=-r{k^}x=Xw4(UrZUbbH{OfKJU*vm`jo%wdU38i(EfqnaAJcLwIn< zwwLR}-sYDxqv2+bvs|m-)1J{9_&uw$x3@pCitMU^`cn9*RM?b`U#?HUN{1yMZ$A2I zEu&tBs3daG()1)rhg)35c8E2sm3w=R^B+W|?sz1$lc*}Jg}3dIf5AA*(2rnB(+(KW zgc#2AUuPf3@Y(yT7lcMiKWx;BE4oJe^w+0CGeD&}@8b4K7)v$SM)k7HH%7B`C3(hq z5j!++1r+$3fXA1>vO5#*wyi3bA0V|Mq?MUua%(H9-aaU`ta3U1VK42l?VYO0#EYU{ zA#d5CQZD{`s#gJ%AI&2rP9K2z3~Yk;yD*wMPJv(9$GbvS5F@9#Nmh^?MeMNZszgjTJUqRBCiYVOV;&yOUOc&rWT5ycf}@`xlA z4p}-q=fT`Pen2rlG_KC8kygSRO>95QK$B;w>yHrZzBES+UgTcT_L-qmxw#hWDqtR! zW7=_lo2?TKq5~-YB%({^07+5|8k6suWOS za1L^fdw6ZJ-HE9ZT`W$r#L4p*YjRJu!_Qu@pVBR~UB&2Og9uvvDy0_k46(GB*|D}= z9Zx=;e8cxUJjuN@+rqT7MNJj)au%e43A)xxG3M6zUjX+tK(s;#tfIfCkpG!d0yC!n z>tn6j+MurM%qFy02fV2SCt!AJ&9Bf*$~%j7E(G$V$4U2dKSpWc$bL)udwhEX4rvQU623s|uY+XwRq6 zz$>_JU=5S5N^MBqt|aL?X#cyX@-U;*?7jTQKfHs7Pg*~X9z(Xr7yDV|M{1=+apNz& zk{`5 zinOIy^Q&0RiOjuV-?;Oj=Ob!JEss9BXYwMPRmoNGU8 zV(Ji!yJ=Txi`p6HJuwBQ#yeBB&)et*RJXlu5j#f)i-}3dZtoU#P0DOUcA$`-Hfe5i zcm(bDQ@h5xgZ7&Ce$KLTWnNGUWW7B{DgnkB7=w~dUFBy*?8F9My1`xAFb~Yrl}lGO>Np=sjJP5DNjC zkJ2(rlo<0_oPtWYnQ6^nrd77-(yZ>5Mny=0j0iKasrojMIZuDjaqjL2e<=7pEL7)* z8Qq&!d5tqnotts)n|p0S;_KtN?3pX3qYet~oO|l1lTg8J^C>(LV9Wj)u3P@>>v0Sp z(CJWMD&-|qHgj1^=-BO)j?xT^+kX>y1qE3vw9UFeJP5CCJwbM|{&ZmM<4im_X?cKE z#fWswvl9wP$oK0a)UW{=8|zJ@y)$)RO%Z*y(}v@_CzpVtZ&B-Os5@IBj+-(gJ}Npw z_<;Hwn=ncz!hKw2e?ZQg)sjKk<*LZt{jb$3C*4!X+~r{k zBo*(p*J>!w)RZ^m`|;wFW4a%~wJ)s{b8b)n*Y5K_qqb}RkN+neQXS!gkdwv!Xky#7 zB;zvMbYIqd)qbBjVZhM{Wxh#!9O+A+Wr|3%S;KKYzS@*3VlEaRqG4f)JLB(C_#dcN z6~)3aKp1oY3Q6Xq_0MMTwRrYdsaQ6Ls|ApgH(YCtajoTC%-y?lYo$HbmIlu%0Tke6 zM=?oI!J>TpNiYpvCtnI$zz+)T3d?(NX`42PRZ~8+R+{l$i}gFzU5DnSk!iSUP+uR4 zR$hFo5$&V8>T=_&cO*ISC-Q4j`Xje~Wb{hP;H+P7D!Jvd1hPgbD>)kSj(88} zaAjIY`Rr_A6>p)vq%s@$3tiy}N^M_ExxF#<7El7o ze9`E@vu?H@J*#)b-dQBw*`rM|S(O-bmz%po$KSq-`1Jv=aRMHy01jja6APCvzx0qn z1EMGYUTpuwBWGIa{vm;>4m<@C3;~wOzmbjrq-f9$0XK#H{wdieYbWF+HeyV?EcdYR z1^DwZ_zT(r)Es7&j7Cnwbfx=}Jbe^B;(BZ{oo;2RtZH&6R(<%fZ_N7XdeG2N+13?R zFTO9K`$+39Z{k=s!t)V)!IrEydyeU`eJd)vy_?Z_ZLA7`{G@Q_vRD>1&#{6Pk)=Evu^l-e7VQ~;zVPsixZGwhs&pAH<78PXS*DNzF zhsswn7a`EW%baY(lGW$dn^a(?0ELR4ML(_Mg#4pGIKWvg54yzycwN%Ic^DBB@y}7o z4S=?Hq{V15Xfpp{{_FqgF91;BPsfo;%+^b8buGvcT9wW9yI4ZyCwuN1YyCz|J_AGT_ymjTKHGP1CynJ;`DH~8-4+FMZvGK2-Am86| z7z)wiTG~oTxc74IuuC&Y4%trMh+=O~w&Kiv8T(v6ET25Cqj8y`ti=_M;i_HyYfLth z_4Nx7`^C8Rjs4lT%s^bS6aa|k<;plFWqu2lQ}QS{BBjM@lur9M6u+@%7WoUj@&h0x zEOh|Y3gs;7gI;g4BKv(%8pWdfw(}>L7VpN8TMU2NLon#8wrTuzEJb!JmtJB^EAq_#duAhVkICw zY_-08zbzqi{eq%CCABSF_gAGl0HN-}qW!5+i`poRT!xC@TWSLJT&9-AC6fX%-=K}` zo8+HHb2h>tZ9X-}^6vr3|LmLq=kQvu zpc|&F!fg#mfXTHm7bYN%q*zL!#Mzg`?5~D%tH76bHGmj4qLbXHD2>TazKI24V(oaY z*fs_xivY&1nYf+E5xBK9!vvC|be`M(I2hVA~gYNM7dXkuBR}$_@9~H*AgjX@`Z(y|mo!wB~ zje-KiQy_Tn`oGQb>TZz%Yy;`QluwprlM`|&#sEzsdsx4x!UE@K2#r^vl__ixA;S zqA@25$Q}8*LX@`un0v}omH*}Q@I=uE>S1j)kRZc5360*|$>dU}Bv~(~I>TPLqZjoR zc?4QnEX>`DBCOWWB(AF~Sx8mXO2wG9_zni>4x*o9;pk8?RY599`P@1#GnwMj+lzA) zROUIx5sXwhmGtp5f|3Lt4fYa-jI$3Y-kdpIJ5$!0LQA7M5*4Z8pX_uJ2aiT7v#Yq- zcWq@0rorwQ>}6O0jv|mYw!gyiZEmHZHjs5oiY)I19OC*Az?D69A%SH{Y?~< zb6lwZpt5soOHKOuclmlgU))AlJnU7}qlu06!>uQV4gL{SCTL4AMN0MY~xH+C!EjlOU6+cJBn zaE|rK9n?NW1y34^LU76c{IQm(QmJ*p*8|eCG+d}&Sv{;=7-1Eb86R+mt8)dWsSmG{ zm;E9CUamB+=36F`Fzy=p4++YcRF7{M6Z)nUccBT(n4qkwq&&cxpGOSF z@WH-!Br$#{k$$&3#3Pi|MYETGxZYi1W&pq$02N~D%g9$ZCB%l=rFoORFr?pv-p_Vh zBNU$&6o4PsEa2Mv>#BK4rSDaF9)lwU}xLVLNhgBKxI%$V~BiR6?{A&fa z{jHJQo{>0qj#2Yr_4?syK`qs0{1#lH0C4=yEKFdn>Pyh0+7p;nd#_XxJFL(!%hhV3 zmT%geOjCa#lT$8g8@(DHxhiZZQ3q{fhmx}^7KDV!Q`4NH9k8+s0Yj+!Re93ot4=Ls zKUW@&Z^9ItjP8`CkQN(QX^-&4e%JQ==H=%S5O&kCDLQHS(`aF4l?gxa@;Q2|*C3=b ztrTWf{%mW^3i{?jYy`+Z<8E!A!_DcdciR~QiHMG|C*?t~WrH&CoEA80we}!XO*8AptH&NW zy(aJ`72Dqg;$~NDfN5&bJl?hY;{B~z3V%-(QkWYlhC}e+J)T4jTSwqXuEjscn0VE} zWR&|XzY}fLAo~`GF0dq_x0dE=d4IQ?1NfDoMfx8r#_fL-6jXh`ypCAW=Zqt7*-`*!4gYO8DPb zqB1+XTrU9)OG7jp`89o8M6HYMqT(Z4%Wm%Mml)y3{uppAR4~1;D?~pjToz;7a%2A_ z66&rVG?lpJZwB5ZKf4$Yw!BcUMxB0O?Iv<8W&mgw4oVdjHRA%Z5wcLT9~Fw6N7!*Y z3yXW9d5r|W=ppuAut?pAnu*<^sE-xTFK@& z?Q=U$&n8EG;s@3Z!8__ED^Cx>~u_+_nHfmg)%w)4*AhHQ`QKI+p6OK(p_1&{b% z)y#6_yN$E_7}c7p+1ok!RQyTYd%B}2$5~M(uHF$J;Su-b-vqCXpssw)lyju}$Ycb} zcR9=KlSqVAH!lv>3&c)~;@gL1g9Kddyj3<^@P5=F31CN32KK1BTm|8oYr0k%<|JiUMfzAk3 zMFL&MDLV8d>Dkfi(Ov#tg=aylvt8BU<1-#wb27EfOGHf*IO{CHIcFoNXp6GTIT2oH zv>V@+DH1)lrbJwej^6f6zAr)tm=?)4dh;UQf8pOzejjTo*v`bj0$MV(aIvs6c40v+ z^V~fU91m?Hj{ipY;B_PYZM0|^^(cZ8!`taI^7PR@R8h)xldbHaeB9gi&| zD$GtV3b$8G+qw1S{q#($3ykix5D2o2Hl9P$X+@2eTDXtss~+h9t{^)Cih-!;+Wa{E ze3|x0-x1B~!cBYM;L@-05!Gy)F%AaP*Q}q0X;0f9HRhM&Ez3jRz4r8+ILUrLD&+k0 zSG+RND6p|Z`DFWFGpLl6{9#kJy!QW8pr5DnYN0hD-wbHaXw;tp@SQ%iZiA`kNzN8da74 z-GAuZJeIt6;AsuiPFu7glz*1?9A)#h-sH3L=t-W@evzY*BH|KLq3u4TrSf#t$NA&t zfedG)?YHWeVGkD(SzY}#*o+6N&p%Qp_i~yZQ`j|W!aoFj%dCzEll}DtC(IH_sJ+af zv+FRT73GMMux-)0z%}k6yU??tt{Mehr~4yFg_P$ARx%a!q`{0-nc}UO!H%@igqw1w zg=3KW8}{Y8qq3KoL94i@Cc{=T+lbj;!jc8Bvce0f{ia*lhmq2kh2mnyTnVjrNgk0M zR&L(2TiU6 zcVHId0mIY?R8*P;s0YH`Xuw#V!4|4kR|RYKRuCD%a~6gNi_7 zMS7K(drC4Q!a8;B4P{W}Y{7_`t}+HAcQN|ysHnZOTwXo8W;1O7f?3UmdQMI9HoNWN33R?-b`Pj_|kQ^?0ou|ALZvC)ftS~x@J2BNqb!Cj3 zme~(#>IG&)e{RI2v&ld-9Y#a-$rCm>KcLe3rfs$#MU$(>1HBx%nhk5%(5-mqJG3DY zme;ro7mLc=b{|`@;jZ%goD7t$HTQdYh=t#7rx(E7N8-!cs5otD&L54>jLA{-i|B7> zL!u3K*(f$ax4a(|IHPV+PN0z0?!R2>|RSawER^jiGOuv zI~glBxv9Q&z)=iz-?Ds4Gx~PW)FfdJ{gwO)E6RYw#l?eWJin_-b2W%D{iZZ=-U|Y{ zYsxg_F6lK8exUo5B4)Qtm6HB*iU7X1A&+*9wd>e;C9zi`EVUEoTAv!`?#5{e2x$DU7( ztCt0B5>c~r_;9ihtB%YiL8X)f8s7>2Ow}53-`n0;3{^IdeV4qX#F`X%#O>{0%hV3A zQ6Yp@ZBys(%KIE{4)Jt9!3RuLA(d5hlS;Q_+!-tUY7HC~H)_jo!34qLZ;#I?HgyfF zvSAMbimGI64vLz2Mzs7tPDA7wp4}2OGadlgL2KhpZ}RJVjx90SN;;dNX!6W>+hFwF z`-7FS?!}3w;-k~>Z&M?J^@?#w;a|>1@l`)|S*jy@s-lserVfem-%LRQw%ev`NC6L; zOC5G0Dp+#Tf-Oa7ju>E~QIplT9`~DoDyMK_ynkO`5hkj1Ju3XZ#+PMUAe8&A>&5hY zKdv$tJ&)8E%;L{e7GOQCi?p7{V*%ceAH=Wxm>6g$kt?9l81R?5%%t;G9C#>4;Pk9E zqt+-Hk(?HGI41SA%CBgBVN7E$=y;3EhD#E9>jPZ}X;=17flO#01n``qs1d|_s=iNo zxf;u(6U9Pq67rsK@MuUS9zYyIFn5!)jSS=P3{1 zH_R4L!1rlJ44lrWVk*5@G1diLxp~v2N^^4OMEiwdAj);VtmTn3hMrHbJByo*lP#5_ z*<3%ma596P+9$&PZxG!2!0p}uoLXH%#EptCr?Syx4eA2a9D_x!)^UsuAcb9 z36tO7nad3%Ak$m>acAq80#RPZZ(w8nY>BR}CM8)MpD~wc?Io8YP%3sQM*Z>m*xcl& z;ENR9*bNn311UF~l4)T_o24>^(UDJL^D5%aZz5ByWKx|{iK~-iZ{^#VCK?CK+KnoG zav7u2l~|aqqES{=7w)eVSUcWeIs}>|)SQk1O zLLRkKng9fI$goXI6FdfvW?*mqhmT62H1hA(7O0v&Q${-dH`oe51^*$j0_ggyTkMw8 za=YPehMMZqG=N>s`|HtG{$+(5a|}hWI?YAnSHk+Z9xsBz$E^)i$5(6;S)VB{_R?bU zI%yYYX!;Q+39VMzlq4_yScj@}t>P;pt2U>IL3;lE!xiSLOm@*`A|GHm{l(N2VN=OnzXqUrOCTSR3h>C1aeF2arW zzk;U59*a2z%@Q&m6J}kgz8Axki=3ILyz!dSC6HX-zz(GkgeP11^$H zpnvY+_J?>`ivVIIF$2rJ$!`S=c542qWU>Xj{kIcy%8;pNnE;bC*DCDE{C zwfX=vQT^(=7Q!-|z+#DCA+|+OzlA7fTZ@xeTo>cPJ(avU9#U0Z> za53??W~A>ahV?LBpuej(?H7OX7wzVHm_Z#;Izqv5ql#CvAhotTnP}f2;7hFtWkPli zl(g4Q1jOGzld@qTddSZHYTBTaxd6chAQu0*FaIJL{~3)u0LokdQi_TA*Ae>fqxAnW zxFfi^0eqpRb6Fa6j&Ydz=je{=>fCFeLQxNdlrB>|P0=gE_P%7Et3;c{@Lf+9=aTkL z%HhNpr?+Zjb@#m+7JKKXbv0V^a@$Vz(Q8Kb9>hl=#L!Dm&MFOY@dH32SHPkmST(9# zyPMu0S=ZT*6ua@ANMuLp^>-MgIYLhw!^v9z^t7nxhRJ7}E)*$_vuK(6g)K4R<4!qE+DaVJD$Kb_$Ihklnb0WXrD(U8e~nmCo% zicj)D?ofmUs=!UvVux#`@;3e=;p`*>S1PaILJeyV#;QEbPlx(~!d|pKAe0>|Eb?V-Q$zISotu}QIxe3Vgq&}(z(OBZiroKoN&BWXOgq9$iM#8aMQSfJwM>Gl z(VJh27CP0EpyL{3E>5-%YoJ>Qd%Z5}e!e5c=`pUh2$)08ucsNOTyc!RuQO<^!+Kj5 zs^$gw%KbUIV=U6G<`^pm(Wu4xo2H4NInqVR6BKzMKaBYuJ@ucZk7hln2rR(8wPxsK zmZG-aTuKwpt7kay+Wp!DJ~_=idc=?-HTCl%B#C*v#rh;CcXHc=`;O_S4Nm?VnR+&giburTmceuR!`IX^Y6FC2q+)R4{;OwsJ|EdfDdcAbS(@pDVwl zhI2%Xb1HN9jEbRd+zMiAy-v*Tmf1=`J{`&I9KkQeou`0MQzncqM5V?H7qZIDslK@- zJgY1gILQ<`=qc^tRKSAVWnd2s{f>SG>nnRJSEd+;xeVmId0}3cp;|IrS_7*y?NtB4 z#4MEC>gpI;H<=L85@|R`JXD)r;1*Z+@SUx@QYi}zil-hIu++5Xldr7~3?x2yt0T{F zvOcZWZ_U*cqJ{}l42+;=g0h5{r?YjMZWx9FcjpTO@7S`Mi&eG$jU$%M$3@%eb>qJp zZu67g+^L>Cy;7u`>EWxm8k{N(6_IOlTBI*C1Ni{KhY;UdQClar&!aq_q1WhIl42?( z89l{|4(5DL`zT39&QmK@d>#*61Z~&6N7}VIvmqZdI3y-k0mJzn0H$bm@0l`3Uzf5Y zYi9~z065F0T2l;?Shq~e%DQlwrODQr|6RCkpJ%H<({L?4)R|Jl|7c8|Sqwp;HwaXOUQ#Jguiw`QBu zWL%se>Dk$s_1D7Ee+n4gZFH*EdoInsjNY%nYM%1RK>3qbWR$trk4$2x1U5TqVumn$ z(N4^uU*lP>T1)!-H_8s)K69k=%6sY$QkhGwDX*yi-0DEv5l}?W88_ldcgslG^Ebh; z5Z*tHU20KiHCsj3@`6=sci9ft z2_{>gO)(qOQrc5c73&A9E!v&(NV1u?k>Q7J zq(_A$??-H$#C*Aicfn0{Q63slW;Z01#bmdgC2&iQGg;MM%vk9a0V;*WRZIQAzk=aM z`YW^OFoTYB6Qey|6oe2bKIZ9``^|Cr#UztA{-C|XcfdWx>Y}-Ej%29zQ3i{D_-&$s z;TPvCwyIVe!}iB~C><&3Dp_EWH_!6@5*4l}QQ=zt{5T;C#2+x=PHMHymR|EvUWdWd z21r%Qs3ZRcG(iM^_-TK_>HyJ>4Bx9(pjmz36D0jlw`!~imp3oU2 z^?#OQ%4ysswR&y1bs)B&gdKf0TKkkb`A%GIjIY1cylt7A8sMbP4vv_j*u^aoa$utL z4SsC4Wil83=)W38>tekyEF;Hh*)!k^gP*@TFE=Le6u)3|WMj3wr>2Dy^3c<0E(Sb) zUbnBPCPle6Y;#D8ZZI*IqW4?I&eN_lQOmKF=&|)pd9tAY`LNBv%L1?0Xi0yJp4->4!&24zA=wmb zgH1}UM`C>CS&TxOqYT}-dRR3X%bPoX1?J9E+1*48Yg47^Lyi+a$4)i7*EM+!pL*rZ zZQ9@ADP*uv`K(vwGI!(PgZ-Oo&1^Ous&CAuBXGx|eE(cxm%2&ytv9M=1&}3Dz~KhU zXS89JZ-+>J{uj9N3@uPq7C&U}j}Z)$UdX>oX7rk@?B%EYapnUx%3?au)1a@*WPkvQ(HR60A;;q&<)x53qHSc^A_M_qZbtvRj9ZAJ3|eYZdDy(7gTD z96k$4qgd$ezCQ|=9|KH8itLQJn{je(S`1&c7+7!T6`Ey;uA9(HFtpd0d?#M!M}Kp- zo-uZMGUnjI4CEfDZh;>h*C;w0NZ`kL>8wF)I9RKz?#xVWc4od>g+LdrMTj`!p}w}& zOY>WC1vc={Yv)?_A_U`~Az~2wBa!pjU=Ye3@&#u~(OV6zPHbd-{Vmg>8S(C7+?kcg zGFNKVVX$RRzgW!N?Csz5)%b&cYV4P?P`hMG#@qKNe!_LP#62(_sb$tekSOsXJI<$< z8AG+*b+9kZmH0y$*Xr>z6X>ifLZf!LHM(~>;uYAhp{;oRH^H+c!zk6Tj-wS;)|@2H zZNyhv7}SXPSo?zknpwvD2HYzU|5mFHQ0Pn28e*69gFNDNxfo`fA)I&b@ZzqI3!IFo zFh9stVN(Y%4N(GN!fMOb`M9G4KFI9bQnGl!Hmy4BMH}>w5brMEP_d`CsJab|EkFFmEOO)c6Y4dsLCsfbu%y z=j|tv<=|{~cp$g|$BN^$?3L()s=`b& z(-Y_dIfw#Bfs@Ta`LNg0M93Pn4;l+!k?Xs&HWbJG;39}S!2J0@s~wH}k`DQ)aeQ;# zzEi+)U9=MGwz_% zum!yg8+e^}rmGS9n*irI&6J}57v3qQq`b(ytL!+UvX^x!roxKQYV3t!&gQza5LU}9 z3kTa@S-p9vuLJhlsst3At80zU5g(>{nPms-jdiFP?l%NWz7I3r{scW5d9$3s!?f-} zN{#hUzrL+ommi6H_KI{%_n;%9(A3Fpv*4cR54-fasg$|NuFAa%{%J2o)#2%@hZmbO zh+Tzljhz&A+0jVs2QRy#+#1-b9^_j+SMjd^ogcq;*hq1$)>An119jm?!HQq-Bd)B6 zc^c_bO(S{?S1W@nX({J1}`ac>$vE$R;mizmM7=FGbI%DLFa0G^i%Ou~1SF8)1Y! zt0)b?6X+K0;-6v5x1MZ<-j+yzRmNSbL`mrd$y6pc>rmNL<`leaiRX^LQ#Z1c-v0gr z4f;o+(~hmG?QyU2?#I)Y6^9ge-3?ZnJ!6KdBszc&0`YOK0~w%*v8dSuQ+x87hTn*o zd$IHI6P$MW1ROSAOjs=$OUG2wGmTi$muUEEyV4lh{S98~fXi2%Zaf`anCUr8kv^AZ zUPap+2;x2N&=QaNb{-nYX9`h7^06SZuh}z2EB#h#ukWYQ!l*a zI`duI6%2dpCJiU0J-)4etYrxHuTOBfBs;hmJ1O%+#bc&!Ks-O-olLJbP33||TP@S5 z;}kMiYM6ToG@PqL96NKS&Kvw*T?|*VM#nl2S?Aq4RGT4fDrgjm^xwj5=zF3b4xKwz z3aFl`mkdWbjdW#SW<mZ0x_s0Kw9~o<_UqaGQoA`@gkfMmedPreyu{w`9TOtZW+bT7VvwU4+6prFRd^9Oel53Z;ax@cg^a|6X zhr&AW_i(C}2cKi*#|4uVZp;Y7md5Q(dMUb#c5m1RDMls<>#@z1C~gulL3k|e;S z>tuF)A*_y_bL&cK0r92mu`eIgQ1Ma3)9*RB{1r5nwjMP3<><$c?~!$N!|e|v6WPSI zp66C>_FXtd%YOK9Q%uU#w+));L+ZYTV_KZY%9To}-T>A6ehg3Xj>EyClPN2bFh3Nk z>0Tzc{R|n&T$c>{xqh5l3$K;Rof5m}WgFGP?8B#B&>!v9lzUa^= z1Y(i|0=E0=KZz#S1CrR=pCA~R_OR`u3?GUb_imrQdJqT%?=BWFMNxDvqG_spSh>;iLUuprl-QuHQaDM&H*t1>UZ36C(zsm6UM@|m zLv_p#C#3#WGX9p2L0Y+xzNShp<&1kmWoe<>R$}5sqyed)Cj|=ItfFW@J2>lb*&RR~ z#=EHmBHh`s!9TT(nfl5pQCeXcA+z-K%L%&dV*wZcmhnx$Qq4i0YmBcljtk=*&%+c( z6ZvJS7W%)|gZ3Nz`;wfX_tW_21$u^`h)quqXk=m)7hHF5Y%N}@E-c@=f#|Av;UMi~ zFAHOE5l4G`pPJH})GMI;-hPAQMJ}!1_5Iv#hSA78Sg`R^e}Q@KmktA3V7r3(84Jf1 zqI5gu4dULUgs$+APR5)w;k<|~T~8zTl{?3Vut1X`x*9%^s)N!5yS`_(9&6yo$lW{4 z7u*~r*i?8orz(8TYK<*@#XbXy({P-(XB!5BKwN(lEK!X6JyrBj57XO-<)~aF%0)b<`n|jo%l7kq$&Qx;pFZvaEI-<0E>g{uE6pFy^Kwe|VkK2Fyc7M% z8;PGqP#vD680c?;(e(xvjk5> zUcmre&U7oc?UPgI$&x&L(*UrnHS)<$7{6l;8yiM9^StvoW2O~-r^3u8JR|U?0EgkL zvfyQWqUP3ffx5sR61_##Q%ac#h12L8ch z!`d$GuS@A)8{#QvgBd%qMn?y%SI3sM9yjw`M4v89ip{+N6RRwwyU(|P7rH^!?k$CZKN@*={U7~Ga=bQ{`36raj!;#0G13Y2QtI~ zRv1&x@_~O`$|r^21k$aa;6Q;KR(h4`w{7B#ShA$LGDxTxEz+28J4`uomIH?D(TowX zrQfeYsHCzPgsb}n?Yzyi5p5ka5Ob|r+A0n~TKz*1aAT?wE%8nh7_WdKWeydGYnK&d zAS^W+eAvqa-1s67mVrI|D8Mq3$oNfA@5f}Qi=L|tf&cRR1d`yQ+m?vfbv}gAdV1NY zU-Ag3)EZb{->nElGG)0^bUBKL3@Ro?<+e=K9XKPMqC;bDNMz9AokDgGMWECr44H|; zIwfCJr>6AhdKgRn(e+S-3Odb1xzkVQ5?%7Mb zaG7%}_IW@*)yNtq8Rk5DqgZAxrxhM;15K7ZFb`|qrd^r3Ho%_{u%(XNpQ|9fnC0Gp z?}X>|XB#%-%ZGqt+WjR5nk{G`W)0HG4@-TGx0G_3R>z643@GVwztw`ndizoCL${^NNVx_Xeti)o(rxQ4tUi|XShW(uWg4>lHpwn|wa!R*HNLPQ?YmEQ8aX~X()L4-4QAU;Upe!|BgV@Wvv9oWQ@H{vgBV zV6Gg#aSB;8vU5iJ*P6JvuIYe}&smQOI6YYnsW2AseUTfnx=rCJvodhq6-gF7S?i^p z*NoSstUXCpIZ@cVV2p7-5D7+(ck0HeieLkCydD8eFf=7-Pt{Picz!n+bjyD)xEfRf z*!H#G^ZFKjNYqF^f8YYtu^;5%2U8a~trDq4aeb{eF7o?PTCcnQ{2esU{y=sR#&U0|Co>t7xHV?+ySVDY(9_Pl`+_WOwK#zp8mHTcPr4^Vztf*<%5XI>_J#{}QQl_{G35 zekL#)(aH%3zr?%#=*$;>E`bgsi{Ve-W>Ey@|S z%J)nmixS=w80%*n-rg&Q2_=-@TUfXN&B)&0r&E()bz0K9dMIPA+F_eNs5Wk18IL?0{JJ7I5-2WnXhvhHL#O68Zg@~f@2q-aeiPgiS5G-2F~x8BYRvy)U{kIZU)%7#f^8V(q`l%& zoJg-PVp=s_fILE+`^>`U86)uzj2^)UXt(g^=q%qL1;bXNF_ww*RM$r>y~EN~xB%=( z{{B|0?XYZ|mmJ`W5}vJg$|hOF-QEY?Z)ipQCU{ZYuqOu?DdynGT#GKIno{=Oajw%E zoMR9sekXwp6r_ztWbz0>58?XaM>szt-vzTvczausP0Fr}k_UJYt}6;B-GWTMHJq}D zp2poR()U7ZCtba@^TRt8!S-#N#;`{bs|&vgD!7R@3|5}ZtLL^lJ{p91 zF4~F9jvB<4wr+bPF!k9~9@62j_DCK)YzQyBBv-S8q;c5m&K&3g^Pj2Aw@F}?ibUs! zgjrRW4SsW+rTsWX+=5u^6M?0ilB)QQkrKpD0}Fg*1y+3!>!A~e;o?51|6b+=X-~!F z&WZxhG(HKKIL{hi+zYb3eR%9P!fKK4$%cFi1{8FMM ziKb*5j$3*Q-p(P`B<`*TR{R$=6)N7&VOS9@{bykPi(JHq^CysRd`$V4-q>Sj zEN`8$dZ7{bk=x>l>~+(T5aR8KIX3*VT*GTs>*=Ae_p2NmY%{N+WN;EVT#M8OB7>CB%o=TIe{;>xGTxfc^2*^KU;+}=hq|1dg=lRo+;|^YR zWL5i2zD~Bp5T&`0r1WKK-cJknWnX{YA#h0A1}58duV@KXox@<%eY$L)QTsl~Bl2{Q zKZZ|sw_HRYZqjmX4?%8LKQE$Uj_PcrIWEvpUolNrr!(&H=%r}|9rgi<5)VJST%QZk zO7_&o#-)%Re;eu(NYSY2@DaMqA=0wl|2w+;<@eG!!dvC~icLbE24x+kBvqx!ktT zJ)cdnGfz^_J>`1(thg@l1{=q!k>ZuOo`$GgAw%l0p zenx8RMl?A3!j~=8h>10u8!k-dka47EE{5htJz z*+EQz0tfY;bvDoj**!`*)u&AmDfEqEL$)%}mlCMREC2#6AYKhf=mD=JdDm5Blq)bE5}o?|_29NBWBI ziZchhL)x9*zsCV*(wA+f@k|L6Rly$>zWc){j|W_QQ=qrP=SFZ^P3arDei#iHyU zl&|^q)UU91firkO)}^d}>4xmVv<&=U(CBuDFj(QzVezDWs-D5p0q))>$2Y(>^01IMVoF*JPmLa4@q-wRajy^*NBYm z|HMDez#?VlsA91;>Q|c8o`dn4^pl+_#IyG!WZj*UUOYU)Z8fsIL+FU#?4xU-)%gu4g75gICuU zL5Q~(;c|d0f1oz5p|T;G;hoWpQP-dEnecc3ul|=isH={o3$n|zA{&+Rug_F609`Lb z`ypEDF!D0^TxGfSsuh>>(}BUGVgmRQKpoP+aSUb$|M_;Ra6l0Q{2a-NHSA;jIe+>c zh}=B>Twq;{>N4Xnv;8NqD}Dl*0esPJ8t|U4@+JRT=0o`Wt(qB91wk~D^1i7rr4}o) zw&AQX6?ztcEKNDsgL%7Rt_-0WWAUVl|hqHZnj-PGUE?D5>~F!WZ4ZK`XL@ z(50p&Y$0NyY*0n|yFnc1qASr{<@YOsT&<>4sXcxafPA0|hHS{SxqFcNV~KU9rYEMV zg~8cqTn+n01nf&7Rc@3v~%I%63e4ARIrdq&3TEt*o zf?|SW!q~qG>UdhJxyyU1WpZKvUwP*l)I{6%eafXEsEC4eq6APxKuYK&BGN>N)X))- zE;V!lQ4o+wmEL>rNRckxMsE_D1f+KegzB?+mG{1`=bpJ|-kJOT@_xwd?551-+}&f( zJ^sh>`@16wI&QQ3&=&4yC3v0Bdn8$|BzupJCJG<{Fi7S7@4WEkC{rQT`{b3C6aXn9 zO3nPm^@yJ95juM7Wuhy7@U-(0!2n1JWxv%p?bpEgCc7rqD^GE*>-GwLr*@dE?{ZRniv#=S=# zP{6p!tu>4_m6>4rwT`0BKb?BQe{m`pTD2{+#2C^zI`*TyR_9$v061xMFqOE0&U+^8 z;-uknf1I5QotAcD0o!hGZ8uWAS!~Qe{_Tn4=}pwt!3LWGv^CZs8G7*H+CBZExOMqr zXAo5r^HMX_ZtaZ<^OSj~i~EJC%A8S%2} zd2`qNnOf&*ip9f0=pr5_ND6Yu@4S=pvRI$sWmq}e%u+ zc9K!Akz)5V<~%&cb9S@a!=0hTgIg!FnlE0cx9(V~s0BwwHD+D?O300$Y_@zICO!nd zf!Pil!|BCC8Kd4`1cxrQbJUlzz!>oW#<}F`JjNngbo)~}VjXikqv%CWf<7+1j|kvH zEJ)hS^1xbHL6Pc1D)UEWtyJCIt|WEh2fcf7A{P4nQ2|FcUVctO)$jDqVuHTJh(NN> ziLv*JY~{9lqdP}SIWwL6br<$sBbeF3(7JOUa$(cinkAeYg;EL~@(($&kES+zeeu)u zhTf^tWnR9y3sJ}AU3k+DPyf`_?joftHfv5Jbl|8^;paX=>{G4L3SF-5emo?Ne!3?q zE+PC#i$bh{umE*bI%MH6*0*Zy&g`d#L0(b|;t0z8V_EZMX{Z*SmpdK_9y~oKUn4za zcDnoBCwgJ}nveZ!aiEXd7QIVt*s|GtzqSv>n(s}Gu?f1EP47g!l@kWUWI9*X2 zt-Fen*oy4*VTpL?nP~Vyyv;rfAeMH`zMyqgSuoN#!kg`wAYcO8_Cs@kH% zl@!kwE(94A3uT%9(9JY;INk9~$XAx7R*A}4^>V{NVFc5M5o^2Mheazb{0=WpY|Nw7Y#uj8lE^Yzt0ZJh!y*m5p7+RWIOyr3OXdI3@( znyUy`1U-bUNtiazZJx9ksS6ArQDODk2Jh*e2yA~tdpH23y#!RbB4!Z#@zYFxs+GGJ zF7OpfxypIcg!t^4T#zN?fbk5Ropr^N+K7lm(~s*$=qp6J`>k2f>jp5pL$8FjuBE7r z$N1gMlbB_0g%LPTY{B0~JJrbCPk-Z;q+_Q0prXcIjP!!BDL%d%HkPu*oD zoiPlPkXk6$pRSqmJ=2~3DkY(6+HVi%B7U+Bpv1A zn1j_LSSTfR@L&&W>;f->SDQmniyRTm0`=Ua;nFQdw-C`|EJBOO!fNkh`YYsfth*M> zhoimd-=N$E%4j!8(?}eaBWhnmnhKrImuU?ju0&%e^`|wu_ zG6tQ5N;Pm1hJoBn(w9nCt&QP#gxX)ptv{1o|2NA{%PgbD`(&!4yBQTIB^;#@CBbz^ zyBStn73N4<$ohgRzclI?vGu0IhrJ=ZD^D?3Cvsa4TRlOA97^axszP!fX$nJIyHTY_ zG84H&e7DQ=oQ1#ibk5FqHQ7YR{m4F39K=ACk$m?m#Rxa ztcI6S=~?Iok?^2&ne9T=@zvT7}eqWEaSu_i&0EKEz{=z`X`hQDio z@%HDYz+)S0_?2a<{sGv&R)JEUA^fy@US_SHR^XkMnS288;%9=?=Jb+k$q_0=x^lPOv_T%Zi5y_lfdVF9T(zkxW_}FOT5p2Sena3 zyNGspGkoWx771$Lxir^yjf?-w>E?#+gHquD$ZaQUPYL%%nD21daN)IfDpQ=dRFO-F zFxQL}smL8~>8|sIRkU8~&!Vg3UjnjqK-dgtrGbDVRxhKwLhhq1sHe8{!lFG6c6Ds& z_4vcyow8F}=Ewtt-d2ihWJmSZwRYDwdmK_5eHkTV26VQ_pbPA;w~EL;Gw5&<$Gx|y z&g7NNU+NnZ11Y)tC^QJ>b{S`l%d=#e5)-vR=k_6WP3*l>FTyerp+?7Mn`LVw}J59cr1&xdwRcdFcXIl?d%<6jr^<*9DDR!Qw^4#%v^M!X1mVmc4` zV(lZoc^Vzzk>5&>rbzDErrqhx#}(Uao7m$S=Ew+c#^{?mWKwX>YIiY>SScOrE{0CZ znA`gcgzlNF@De+Hw7YDF<+o$_X4T3$gNF~gDnA3>mEDAHQVI{DDWgYNVMMjXNciNp zW$N=aF_cmE>*2%k1q43n5wKbPpz%d?C0Jd5*e0PLT)hlgjpB*>Q}=-T`pRg|viM$XR;Qk7lP{6@x?}3+_iO62w*pry zs<|LLq5cT#Q}c#zI7dyR+5@IKhtN4jvX**fux@p8?a*B9^>udbSH{xd9A!@lm(pv^ zgxSK!3T5RrHHICZOf}dD-MDA50&jE>b#YrNIds=_b{>P(sQX!~N(q#0r|jX~dAdTcv+kdleSGd z-r%Oy`_VFqS#u^^%U_dmy`R6-|eMkT4- zZw`O|s)BZN1l|5g6lS_+WZZ#cx`2=vgQx3uZka4WIs15>>%TQDTBwOo?^Btx;u`Zu z+VUn9y%&;IG!Kf|d*AqxDpi!OBxuxe*1F~Nei{F$4$Uk-E|?CK3Mikv(`S z3K3X21Sr;Do&vhI@Y^@#I!u%}FZ@xfFaU!ZD#RtG;(P@O5!xEx9aUzYp_aB}G!nH5 zZwe;i`+l#7Ec_|%owFlYv}$2TKb&|T%jInMtaOJy5F;XvNcEieVbhbU34?GrhHP&z ztY1P5q7a2ky5~B>Op!mv3=|BXbxqIGmnda(jxDkus0Bq>AUQ%a?LF)|IBFuE$&sa# zLHbbAXN>JmH{F*JiECCg%g8iIxBj)#H8m;;eDV{cIDPJO)W<}h(t6dz?)_i@1 z?gDL0pj(XSB%7@&p0lZj;5K7KkU?ED%Tkz`52lL`e6aSZB$G8st)J1F7niTAu0=uA z2}jDaW4L9m0EPTO*LlXvvz_{T@jjpm0?OcTziQELbl(2W4|6-~|9FT3us?e7y+TM~ zabxW_9jET;%@Xqm1N>In?^x&N>y_mnhdq&gzZ&7QLa|^cr1xI2-N*Vcm!MHGYbt0< z3+~)X5*J8)z^^YyfEy-%p&EBo>md>AVY7#wESpPMs{|-zA0M`HtBR ziNsDnzUw`4qBXe$RtBmZRE=#xN9DviUe|5#{@)HVl{TwuiyoJMvwGJwyFW&ex6eM> z=R>jCw^^>XdaDkDxTp)mKiLxd#ATffS`4q8@u#JS42(S#Z2|O1t)jQLf(fN#SB9Noch7 z+hw!64^z6xY&PB69L7D6Cm9~(^A8BHXyfJS-!jZB`dv8Hv0|g(9opp|uZ61gBLp?g zlh;w>MZjY&FGevH?vV-F9-xXth~0I%e`FyS68L2Hd{gxfxA;$@`vWeT;3tD?^S!Rp zsXgfft2WFs%cxS!qeI4(89IMn?F!v5#8R2zFO`fpGh0Ul@8*ms1*nH}hDRJ|c!@C{ zxig^8?Z&S*NFco&vd>Mt=%jLCSs9=w%B>O>9iWd9jZmdA)|4Zn$*BXgYMO>R%}2K| zHaQTY^PuUo^?S(ZpjQe~M6|o^EO4YD@fN&w-_s%}cL*Gm(zCd6IrApm!TOG2=X=+v zs(TF}T)ZT>h~)w0v-go-ZqxSgr{If=P^w#;#kI1dVyDt=_qNTs zx*N`DKSs@xF-T%9-?R0IfknEbE=vn~Sh53SsULog_I2~1xhAOdO)Z*V=W}9J zf=Gz=7ju_7k`jJS z8~n>wS?iAzcvSBTX@>t*E%Imo_}`Y&XY91!z1{wduD?(qRzQUP6_jIXqMi`T%>qrx zq<(&Xr+QYB1H7!?0gC^)*8ut6H%gDC&%`{nf#0b~#=v(;EQIRM(L5n#r3p8AsKtuQ zSIX4>^63Q^ULDhy@q(XYv-=&oFy`Tjbyf;ZIJ)4y`swzlvMl$_$s|95>w(Xr{2@fk zoADG{{naOF6q)cC1Be(zdkC)mv~ctXWjW2*4K9$Xp?^g}A5dA~L31L@O%=B@Er8iD z>>PnN+cN-j49v?)WvRpQ+lP*_esMTYK(}6zKPJPMbTmli)*QbxJA^!(qN{+p%o%mQ z;okvAX4JWEW`Wuy{WfWt+;z|aK=1yeue_m12@lG{{*jtqfA&+RXqaXWh+-l%63|%g zN@P+5zx-%4QVkEVCzA_46>6J#v(+bu{;r|T8ywo)b~q3~8lf9_zZtaM4L_!cb7tBC z)Sa_xMIc`vjJ~ zH8P5R5?M_CBc>d_a6a51|525?M$BvIg*`N*&0Qt9?ayp=qa zM-m(z*+uul_O4L$ADx>%K2idJ|BUd}mEMEBv!8a#f|`H4&@D)7b0n|}%s{`9eFsW6iF)0aQJ3f0WHTrhH3s5=4TYC6}j>|l1X4K|ITVL?-R@$=ssln@G zSxHOXmp}^ahPSrr)7mf71SRRAoxMrksRv%GEkz7Kv4fiH=W!*f6J$7MH)3Y(J}`7t zh3cbih_2EYKsLF2VV6t8#@r)0wG~aN`IFmifVlRxKr*}7=V1d z70=vcPxywxko*VxpLfFzn zv&@T$!|I4wTchw9alWxt0O9AK%!2>MIsnuCMN|6~7tX~0!7EQr{;*yI0>@u|@qfaJ z{uP#ymuW^nS z_y+M`pQd@X2c#3ZxU57>^U_E~vrFj+HCqV_t#y%>hD-|B0~&^PcBWT4i$v=-uQt2Z z$Z&crYA}KVqr?&CQ+ASjMSernI^q#3o&D)z^6?EJhzU9h&LDB;MdgKq3jLyBe&ivqUN6jy9blLAX?L# zCa(%XC=r5k+OidID&;>!wqCfiG!e13Vz`gncsa$qrINP)@mX1I_`Fi>CC{VROXF-s1h?<+l2$n#iA}6WTiab%SVyb_7S=-!{{M*BzeeeQZ3B)7Fz&j) zaRBf9yXpDa6#YNEgwD<;a#;Xl@~eiCjQ1-LFjO&m8Z*mah|MM&Uj--`&U}k^Jtj$QO=R_yP@>$ zDoO=A)6>;F#`M8m7H&ncLFXeIHLs2oi2{K$W8{me<~fvHd>Q2cP8o%vsTvi~3M#J~RGvmH8%GQ|I% JzQ}%#{SSSyIq(1g literal 0 HcmV?d00001 diff --git a/src/main/resources/static/upload/product/ad501998-b3c1-4568-ae4f-31e2d9ce0e3d.jpg b/src/main/resources/static/upload/product/ad501998-b3c1-4568-ae4f-31e2d9ce0e3d.jpg new file mode 100644 index 0000000000000000000000000000000000000000..359f6372c24fc0541f7d4311397d089192abc47b GIT binary patch literal 235292 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%0DmL-^0%MEj+bSTi-`{22@lp^lf4 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