From a3c153fee686bd7bac57e6ef5076bc6113f81297 Mon Sep 17 00:00:00 2001 From: Xiao Fan <461179989@qq.com> Date: Thu, 16 Nov 2023 21:37:57 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B6=85=E5=B8=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 8 + .idea/compiler.xml | 29 ++++ .idea/encodings.xml | 12 ++ .idea/inspectionProfiles/Project_Default.xml | 36 +++++ .idea/jarRepositories.xml | 20 +++ .idea/misc.xml | 14 ++ .idea/uiDesigner.xml | 124 ++++++++++++++ bwie-auth/pom.xml | 44 +++++ .../src/main/java/com/bwie/auth/AuthApp.java | 15 ++ .../auth/config/ConfirmCallbackConfig.java | 48 ++++++ .../auth/config/ReturnCallbackConfig.java | 41 +++++ .../bwie/auth/controller/AuthController.java | 57 +++++++ .../com/bwie/auth/feign/UserFeignService.java | 13 ++ .../com/bwie/auth/service/AuthService.java | 15 ++ .../bwie/auth/service/AuthServiceimpl.java | 94 +++++++++++ bwie-auth/src/main/resources/bootstrap.yml | 30 ++++ bwie-auth/target/bwie-auth-1.0-SNAPSHOT.jar | Bin 0 -> 11322 bytes bwie-auth/target/classes/bootstrap.yml | 30 ++++ .../classes/com/bwie/auth/AuthApp.class | Bin 0 -> 858 bytes .../auth/config/ConfirmCallbackConfig.class | Bin 0 -> 2283 bytes .../auth/config/ReturnCallbackConfig.class | Bin 0 -> 1929 bytes .../bwie/auth/controller/AuthController.class | Bin 0 -> 3674 bytes .../bwie/auth/feign/UserFeignService.class | Bin 0 -> 674 bytes .../com/bwie/auth/service/AuthService.class | Bin 0 -> 556 bytes .../bwie/auth/service/AuthServiceimpl.class | Bin 0 -> 6716 bytes .../target/maven-archiver/pom.properties | 3 + .../compile/default-compile/createdFiles.lst | 7 + .../compile/default-compile/inputFiles.lst | 7 + .../default-testCompile/createdFiles.lst | 0 .../default-testCompile/inputFiles.lst | 0 bwie-common/pom.xml | 112 +++++++++++++ .../com/bwie/common/config/RedisConfig.java | 40 +++++ .../com/bwie/common/constants/Constants.java | 18 +++ .../bwie/common/constants/JwtConstants.java | 29 ++++ .../constants/RabbitMQQueueConstants.java | 25 +++ .../com/bwie/common/constants/RabbitName.java | 5 + .../bwie/common/constants/TokenConstants.java | 24 +++ .../java/com/bwie/common/domain/Merch.java | 22 +++ .../java/com/bwie/common/domain/User.java | 18 +++ .../common/domain/request/LoginRequest.java | 9 ++ .../common/domain/request/MerchRequest.java | 11 ++ .../common/domain/response/JwtResponse.java | 9 ++ .../com/bwie/common/result/PageResult.java | 34 ++++ .../java/com/bwie/common/result/Result.java | 76 +++++++++ .../java/com/bwie/common/utils/FastUtil.java | 55 +++++++ .../java/com/bwie/common/utils/JwtUtils.java | 109 +++++++++++++ .../java/com/bwie/common/utils/OssUtil.java | 153 ++++++++++++++++++ .../com/bwie/common/utils/StringUtils.java | 68 ++++++++ .../com/bwie/common/utils/TelSmsUtils.java | 88 ++++++++++ .../target/bwie-common-1.0-SNAPSHOT.jar | Bin 0 -> 27075 bytes .../com/bwie/common/config/RedisConfig.class | Bin 0 -> 3159 bytes .../com/bwie/common/constants/Constants.class | Bin 0 -> 651 bytes .../bwie/common/constants/JwtConstants.class | Bin 0 -> 544 bytes .../constants/RabbitMQQueueConstants.class | Bin 0 -> 545 bytes .../bwie/common/constants/RabbitName.class | Bin 0 -> 388 bytes .../common/constants/TokenConstants.class | Bin 0 -> 526 bytes .../com/bwie/common/domain/Merch.class | Bin 0 -> 6388 bytes .../classes/com/bwie/common/domain/User.class | Bin 0 -> 6170 bytes .../common/domain/request/LoginRequest.class | Bin 0 -> 1895 bytes .../common/domain/request/MerchRequest.class | Bin 0 -> 3027 bytes .../common/domain/response/JwtResponse.class | Bin 0 -> 1893 bytes .../com/bwie/common/result/PageResult.class | Bin 0 -> 3304 bytes .../com/bwie/common/result/Result.class | Bin 0 -> 4886 bytes .../com/bwie/common/utils/FastUtil.class | Bin 0 -> 2597 bytes .../com/bwie/common/utils/JwtUtils.class | Bin 0 -> 2874 bytes .../com/bwie/common/utils/OssUtil.class | Bin 0 -> 5195 bytes .../com/bwie/common/utils/StringUtils.class | Bin 0 -> 1808 bytes .../com/bwie/common/utils/TelSmsUtils.class | Bin 0 -> 3748 bytes .../target/maven-archiver/pom.properties | 3 + .../compile/default-compile/createdFiles.lst | 18 +++ .../compile/default-compile/inputFiles.lst | 18 +++ .../default-testCompile/createdFiles.lst | 0 .../default-testCompile/inputFiles.lst | 0 bwie-gateway/pom.xml | 44 +++++ .../java/com/bwie/gateway/GatewayApp.java | 11 ++ .../gateway/config/IgnoreWhiteConfig.java | 32 ++++ .../com/bwie/gateway/filters/AuthFilter.java | 99 ++++++++++++ .../com/bwie/gateway/utils/GatewayUtils.java | 98 +++++++++++ bwie-gateway/src/main/resources/bootstrap.yml | 29 ++++ .../target/bwie-gateway-1.0-SNAPSHOT.jar | Bin 0 -> 9289 bytes bwie-gateway/target/classes/bootstrap.yml | 29 ++++ .../classes/com/bwie/gateway/GatewayApp.class | Bin 0 -> 743 bytes .../gateway/config/IgnoreWhiteConfig.class | Bin 0 -> 2590 bytes .../com/bwie/gateway/filters/AuthFilter.class | Bin 0 -> 4074 bytes .../com/bwie/gateway/utils/GatewayUtils.class | Bin 0 -> 6222 bytes .../target/maven-archiver/pom.properties | 3 + .../compile/default-compile/createdFiles.lst | 4 + .../compile/default-compile/inputFiles.lst | 4 + .../default-testCompile/createdFiles.lst | 0 .../default-testCompile/inputFiles.lst | 0 bwie-moudels/bwie-merch/pom.xml | 50 ++++++ .../main/java/com/bwie/merch/MerchApp.java | 11 ++ .../merch/controller/MerchController.java | 34 ++++ .../com/bwie/merch/mapper/MerchMapper.java | 14 ++ .../com/bwie/merch/service/MerchService.java | 10 ++ .../bwie/merch/service/MerchServiceimpl.java | 26 +++ .../src/main/resources/bootstrap.yml | 29 ++++ .../src/main/resources/mapper/MerchMapper.xml | 19 +++ .../target/bwie-merch-1.0-SNAPSHOT.jar | Bin 0 -> 6887 bytes .../bwie-merch/target/classes/bootstrap.yml | 29 ++++ .../classes/com/bwie/merch/MerchApp.class | Bin 0 -> 733 bytes .../merch/controller/MerchController.class | Bin 0 -> 2265 bytes .../com/bwie/merch/mapper/MerchMapper.class | Bin 0 -> 499 bytes .../com/bwie/merch/service/MerchService.class | Bin 0 -> 439 bytes .../bwie/merch/service/MerchServiceimpl.class | Bin 0 -> 1874 bytes .../target/classes/mapper/MerchMapper.xml | 19 +++ .../target/maven-archiver/pom.properties | 3 + .../compile/default-compile/createdFiles.lst | 5 + .../compile/default-compile/inputFiles.lst | 5 + .../default-testCompile/createdFiles.lst | 0 .../default-testCompile/inputFiles.lst | 0 bwie-moudels/bwie-rabbit/pom.xml | 37 +++++ .../src/main/java/com/bwie/rabbit/MqTest.java | 11 ++ .../bwie/rabbit/config/RabbitAdminConfig.java | 55 +++++++ .../bwie/rabbit/config/RabbitmqConfig.java | 16 ++ .../bwie/rabbit/consumer/SendSmsConsumer.java | 49 ++++++ .../java/com/bwie/rabbit/utils/DLXQueue.java | 84 ++++++++++ .../com/bwie/rabbit/utils/DelayedQueue.java | 83 ++++++++++ .../java/com/bwie/rabbit/utils/TtlQueue.java | 64 ++++++++ .../src/main/resources/bootstrap.yml | 43 +++++ .../target/bwie-rabbit-1.0-SNAPSHOT.jar | Bin 0 -> 11772 bytes .../bwie-rabbit/target/classes/bootstrap.yml | 43 +++++ .../classes/com/bwie/rabbit/MqTest.class | Bin 0 -> 729 bytes .../rabbit/config/RabbitAdminConfig.class | Bin 0 -> 1911 bytes .../bwie/rabbit/config/RabbitmqConfig.class | Bin 0 -> 705 bytes .../rabbit/consumer/SendSmsConsumer.class | Bin 0 -> 3708 bytes .../com/bwie/rabbit/utils/DLXQueue.class | Bin 0 -> 3405 bytes .../com/bwie/rabbit/utils/DelayedQueue.class | Bin 0 -> 4652 bytes .../com/bwie/rabbit/utils/TtlQueue.class | Bin 0 -> 2956 bytes .../target/maven-archiver/pom.properties | 3 + .../compile/default-compile/createdFiles.lst | 7 + .../compile/default-compile/inputFiles.lst | 7 + .../default-testCompile/createdFiles.lst | 0 .../default-testCompile/inputFiles.lst | 0 bwie-moudels/bwie-user/pom.xml | 50 ++++++ .../src/main/java/com/bwie/user/UserApp.java | 11 ++ .../bwie/user/controller/UserController.java | 32 ++++ .../java/com/bwie/user/mapper/UserMapper.java | 9 ++ .../com/bwie/user/service/UserService.java | 7 + .../bwie/user/service/UserServiceimpl.java | 16 ++ .../src/main/resources/bootstrap.yml | 29 ++++ .../src/main/resources/mapper/UserMapper.xml | 11 ++ .../target/bwie-user-1.0-SNAPSHOT.jar | Bin 0 -> 6332 bytes .../bwie-user/target/classes/bootstrap.yml | 29 ++++ .../classes/com/bwie/user/UserApp.class | Bin 0 -> 728 bytes .../bwie/user/controller/UserController.class | Bin 0 -> 2181 bytes .../com/bwie/user/mapper/UserMapper.class | Bin 0 -> 315 bytes .../com/bwie/user/service/UserService.class | Bin 0 -> 237 bytes .../bwie/user/service/UserServiceimpl.class | Bin 0 -> 825 bytes .../target/classes/mapper/UserMapper.xml | 11 ++ .../target/maven-archiver/pom.properties | 3 + .../compile/default-compile/createdFiles.lst | 5 + .../compile/default-compile/inputFiles.lst | 5 + .../default-testCompile/createdFiles.lst | 0 .../default-testCompile/inputFiles.lst | 0 bwie-moudels/pom.xml | 91 +++++++++++ pom.xml | 70 ++++++++ safeway.iml | 2 + 158 files changed, 3081 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 bwie-auth/pom.xml create mode 100644 bwie-auth/src/main/java/com/bwie/auth/AuthApp.java create mode 100644 bwie-auth/src/main/java/com/bwie/auth/config/ConfirmCallbackConfig.java create mode 100644 bwie-auth/src/main/java/com/bwie/auth/config/ReturnCallbackConfig.java create mode 100644 bwie-auth/src/main/java/com/bwie/auth/controller/AuthController.java create mode 100644 bwie-auth/src/main/java/com/bwie/auth/feign/UserFeignService.java create mode 100644 bwie-auth/src/main/java/com/bwie/auth/service/AuthService.java create mode 100644 bwie-auth/src/main/java/com/bwie/auth/service/AuthServiceimpl.java create mode 100644 bwie-auth/src/main/resources/bootstrap.yml create mode 100644 bwie-auth/target/bwie-auth-1.0-SNAPSHOT.jar create mode 100644 bwie-auth/target/classes/bootstrap.yml create mode 100644 bwie-auth/target/classes/com/bwie/auth/AuthApp.class create mode 100644 bwie-auth/target/classes/com/bwie/auth/config/ConfirmCallbackConfig.class create mode 100644 bwie-auth/target/classes/com/bwie/auth/config/ReturnCallbackConfig.class create mode 100644 bwie-auth/target/classes/com/bwie/auth/controller/AuthController.class create mode 100644 bwie-auth/target/classes/com/bwie/auth/feign/UserFeignService.class create mode 100644 bwie-auth/target/classes/com/bwie/auth/service/AuthService.class create mode 100644 bwie-auth/target/classes/com/bwie/auth/service/AuthServiceimpl.class create mode 100644 bwie-auth/target/maven-archiver/pom.properties create mode 100644 bwie-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 bwie-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 bwie-auth/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 bwie-auth/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 bwie-common/pom.xml create mode 100644 bwie-common/src/main/java/com/bwie/common/config/RedisConfig.java create mode 100644 bwie-common/src/main/java/com/bwie/common/constants/Constants.java create mode 100644 bwie-common/src/main/java/com/bwie/common/constants/JwtConstants.java create mode 100644 bwie-common/src/main/java/com/bwie/common/constants/RabbitMQQueueConstants.java create mode 100644 bwie-common/src/main/java/com/bwie/common/constants/RabbitName.java create mode 100644 bwie-common/src/main/java/com/bwie/common/constants/TokenConstants.java create mode 100644 bwie-common/src/main/java/com/bwie/common/domain/Merch.java create mode 100644 bwie-common/src/main/java/com/bwie/common/domain/User.java create mode 100644 bwie-common/src/main/java/com/bwie/common/domain/request/LoginRequest.java create mode 100644 bwie-common/src/main/java/com/bwie/common/domain/request/MerchRequest.java create mode 100644 bwie-common/src/main/java/com/bwie/common/domain/response/JwtResponse.java create mode 100644 bwie-common/src/main/java/com/bwie/common/result/PageResult.java create mode 100644 bwie-common/src/main/java/com/bwie/common/result/Result.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/FastUtil.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/JwtUtils.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/OssUtil.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/StringUtils.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/TelSmsUtils.java create mode 100644 bwie-common/target/bwie-common-1.0-SNAPSHOT.jar create mode 100644 bwie-common/target/classes/com/bwie/common/config/RedisConfig.class create mode 100644 bwie-common/target/classes/com/bwie/common/constants/Constants.class create mode 100644 bwie-common/target/classes/com/bwie/common/constants/JwtConstants.class create mode 100644 bwie-common/target/classes/com/bwie/common/constants/RabbitMQQueueConstants.class create mode 100644 bwie-common/target/classes/com/bwie/common/constants/RabbitName.class create mode 100644 bwie-common/target/classes/com/bwie/common/constants/TokenConstants.class create mode 100644 bwie-common/target/classes/com/bwie/common/domain/Merch.class create mode 100644 bwie-common/target/classes/com/bwie/common/domain/User.class create mode 100644 bwie-common/target/classes/com/bwie/common/domain/request/LoginRequest.class create mode 100644 bwie-common/target/classes/com/bwie/common/domain/request/MerchRequest.class create mode 100644 bwie-common/target/classes/com/bwie/common/domain/response/JwtResponse.class create mode 100644 bwie-common/target/classes/com/bwie/common/result/PageResult.class create mode 100644 bwie-common/target/classes/com/bwie/common/result/Result.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/FastUtil.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/JwtUtils.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/OssUtil.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/StringUtils.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/TelSmsUtils.class create mode 100644 bwie-common/target/maven-archiver/pom.properties create mode 100644 bwie-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 bwie-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 bwie-common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 bwie-common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 bwie-gateway/pom.xml create mode 100644 bwie-gateway/src/main/java/com/bwie/gateway/GatewayApp.java create mode 100644 bwie-gateway/src/main/java/com/bwie/gateway/config/IgnoreWhiteConfig.java create mode 100644 bwie-gateway/src/main/java/com/bwie/gateway/filters/AuthFilter.java create mode 100644 bwie-gateway/src/main/java/com/bwie/gateway/utils/GatewayUtils.java create mode 100644 bwie-gateway/src/main/resources/bootstrap.yml create mode 100644 bwie-gateway/target/bwie-gateway-1.0-SNAPSHOT.jar create mode 100644 bwie-gateway/target/classes/bootstrap.yml create mode 100644 bwie-gateway/target/classes/com/bwie/gateway/GatewayApp.class create mode 100644 bwie-gateway/target/classes/com/bwie/gateway/config/IgnoreWhiteConfig.class create mode 100644 bwie-gateway/target/classes/com/bwie/gateway/filters/AuthFilter.class create mode 100644 bwie-gateway/target/classes/com/bwie/gateway/utils/GatewayUtils.class create mode 100644 bwie-gateway/target/maven-archiver/pom.properties create mode 100644 bwie-gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 bwie-gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 bwie-gateway/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 bwie-gateway/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 bwie-moudels/bwie-merch/pom.xml create mode 100644 bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/MerchApp.java create mode 100644 bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/controller/MerchController.java create mode 100644 bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/mapper/MerchMapper.java create mode 100644 bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/service/MerchService.java create mode 100644 bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/service/MerchServiceimpl.java create mode 100644 bwie-moudels/bwie-merch/src/main/resources/bootstrap.yml create mode 100644 bwie-moudels/bwie-merch/src/main/resources/mapper/MerchMapper.xml create mode 100644 bwie-moudels/bwie-merch/target/bwie-merch-1.0-SNAPSHOT.jar create mode 100644 bwie-moudels/bwie-merch/target/classes/bootstrap.yml create mode 100644 bwie-moudels/bwie-merch/target/classes/com/bwie/merch/MerchApp.class create mode 100644 bwie-moudels/bwie-merch/target/classes/com/bwie/merch/controller/MerchController.class create mode 100644 bwie-moudels/bwie-merch/target/classes/com/bwie/merch/mapper/MerchMapper.class create mode 100644 bwie-moudels/bwie-merch/target/classes/com/bwie/merch/service/MerchService.class create mode 100644 bwie-moudels/bwie-merch/target/classes/com/bwie/merch/service/MerchServiceimpl.class create mode 100644 bwie-moudels/bwie-merch/target/classes/mapper/MerchMapper.xml create mode 100644 bwie-moudels/bwie-merch/target/maven-archiver/pom.properties create mode 100644 bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 bwie-moudels/bwie-rabbit/pom.xml create mode 100644 bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/MqTest.java create mode 100644 bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/config/RabbitAdminConfig.java create mode 100644 bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/config/RabbitmqConfig.java create mode 100644 bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/consumer/SendSmsConsumer.java create mode 100644 bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/utils/DLXQueue.java create mode 100644 bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/utils/DelayedQueue.java create mode 100644 bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/utils/TtlQueue.java create mode 100644 bwie-moudels/bwie-rabbit/src/main/resources/bootstrap.yml create mode 100644 bwie-moudels/bwie-rabbit/target/bwie-rabbit-1.0-SNAPSHOT.jar create mode 100644 bwie-moudels/bwie-rabbit/target/classes/bootstrap.yml create mode 100644 bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/MqTest.class create mode 100644 bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/config/RabbitAdminConfig.class create mode 100644 bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/config/RabbitmqConfig.class create mode 100644 bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/consumer/SendSmsConsumer.class create mode 100644 bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/utils/DLXQueue.class create mode 100644 bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/utils/DelayedQueue.class create mode 100644 bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/utils/TtlQueue.class create mode 100644 bwie-moudels/bwie-rabbit/target/maven-archiver/pom.properties create mode 100644 bwie-moudels/bwie-rabbit/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 bwie-moudels/bwie-rabbit/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 bwie-moudels/bwie-rabbit/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 bwie-moudels/bwie-rabbit/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 bwie-moudels/bwie-user/pom.xml create mode 100644 bwie-moudels/bwie-user/src/main/java/com/bwie/user/UserApp.java create mode 100644 bwie-moudels/bwie-user/src/main/java/com/bwie/user/controller/UserController.java create mode 100644 bwie-moudels/bwie-user/src/main/java/com/bwie/user/mapper/UserMapper.java create mode 100644 bwie-moudels/bwie-user/src/main/java/com/bwie/user/service/UserService.java create mode 100644 bwie-moudels/bwie-user/src/main/java/com/bwie/user/service/UserServiceimpl.java create mode 100644 bwie-moudels/bwie-user/src/main/resources/bootstrap.yml create mode 100644 bwie-moudels/bwie-user/src/main/resources/mapper/UserMapper.xml create mode 100644 bwie-moudels/bwie-user/target/bwie-user-1.0-SNAPSHOT.jar create mode 100644 bwie-moudels/bwie-user/target/classes/bootstrap.yml create mode 100644 bwie-moudels/bwie-user/target/classes/com/bwie/user/UserApp.class create mode 100644 bwie-moudels/bwie-user/target/classes/com/bwie/user/controller/UserController.class create mode 100644 bwie-moudels/bwie-user/target/classes/com/bwie/user/mapper/UserMapper.class create mode 100644 bwie-moudels/bwie-user/target/classes/com/bwie/user/service/UserService.class create mode 100644 bwie-moudels/bwie-user/target/classes/com/bwie/user/service/UserServiceimpl.class create mode 100644 bwie-moudels/bwie-user/target/classes/mapper/UserMapper.xml create mode 100644 bwie-moudels/bwie-user/target/maven-archiver/pom.properties create mode 100644 bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 bwie-moudels/pom.xml create mode 100644 pom.xml create mode 100644 safeway.iml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..1296681 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..ec6f435 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..cf28a47 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6560a98 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,36 @@ + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..2a89eda --- /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..4b661a5 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bwie-auth/pom.xml b/bwie-auth/pom.xml new file mode 100644 index 0000000..cdd4fbd --- /dev/null +++ b/bwie-auth/pom.xml @@ -0,0 +1,44 @@ + + + + safeway + com.bwie + 1.0-SNAPSHOT + + 4.0.0 + + bwie-auth + + + + + com.bwie + bwie-common + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.springframework.boot + spring-boot-starter-amqp + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + 2.9.10 + + + + + + diff --git a/bwie-auth/src/main/java/com/bwie/auth/AuthApp.java b/bwie-auth/src/main/java/com/bwie/auth/AuthApp.java new file mode 100644 index 0000000..349c75d --- /dev/null +++ b/bwie-auth/src/main/java/com/bwie/auth/AuthApp.java @@ -0,0 +1,15 @@ +package com.bwie.auth; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.scheduling.annotation.EnableScheduling; + +@SpringBootApplication +@EnableFeignClients +@EnableScheduling +public class AuthApp { + public static void main(String[] args) { + SpringApplication.run(AuthApp.class); + } +} diff --git a/bwie-auth/src/main/java/com/bwie/auth/config/ConfirmCallbackConfig.java b/bwie-auth/src/main/java/com/bwie/auth/config/ConfirmCallbackConfig.java new file mode 100644 index 0000000..7b7c230 --- /dev/null +++ b/bwie-auth/src/main/java/com/bwie/auth/config/ConfirmCallbackConfig.java @@ -0,0 +1,48 @@ +package com.bwie.auth.config; + +import lombok.extern.log4j.Log4j2; +import org.springframework.amqp.rabbit.connection.CorrelationData; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * 消息发送确认配置 + * 消息发送到交换机的回调 + */ +@Component +@Log4j2 +public class ConfirmCallbackConfig implements RabbitTemplate.ConfirmCallback { + + @Autowired + private RabbitTemplate rabbitTemplate; + + /** + * @PostContruct是spring框架的注解,在⽅法上加该注解会在项⽬启动的时候执⾏该⽅法,也可以理解为在spring容器初始化的时候执 + */ + @PostConstruct + public void init() { + rabbitTemplate.setConfirmCallback(this); + } + + /** + * 交换机不管是否收到消息的一个回调方法 + * + * @param correlationData 消息相关数据 + * @param ack 交换机是否收到消息 + * @param cause 失败原因 + */ + @Override + public void confirm(CorrelationData correlationData, boolean ack, String cause) { + if (!ack) { + String exchange = correlationData.getReturned().getExchange(); + String message = correlationData.getReturned().getMessage().getBody().toString(); + // 发送异常 + log.error("消息:{},发送到交换机:{}失败,原因是:{}", message, exchange, cause); + // TODO 可以把异常信息 以及 消息的内容直接添加到 MYSQL + } + } + +} diff --git a/bwie-auth/src/main/java/com/bwie/auth/config/ReturnCallbackConfig.java b/bwie-auth/src/main/java/com/bwie/auth/config/ReturnCallbackConfig.java new file mode 100644 index 0000000..f3c2220 --- /dev/null +++ b/bwie-auth/src/main/java/com/bwie/auth/config/ReturnCallbackConfig.java @@ -0,0 +1,41 @@ +package com.bwie.auth.config; + +import lombok.extern.log4j.Log4j2; +import org.springframework.amqp.core.ReturnedMessage; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +/** + * 消息发送到队列的确认 + */ +@Component +@Log4j2 +public class ReturnCallbackConfig implements RabbitTemplate.ReturnsCallback { + + @Autowired + private RabbitTemplate rabbitTemplate; + + /** + * @PostContruct是spring框架的注解,在⽅法上加该注解会在项⽬启动的时候执⾏该⽅法,也可以理解为在spring容器初始化的时候执 + */ + @PostConstruct + public void init() { + rabbitTemplate.setReturnsCallback(this); + } + + /** + * 消息发送失败 则会执行这个方法 + * + * @param returnedMessage the returned message and metadata. + */ + @Override + public void returnedMessage(ReturnedMessage returnedMessage) { + log.error("消息:{},被交换机:{} 回退!退回原因为:{}", + returnedMessage.getMessage().toString(), returnedMessage.getExchange(), returnedMessage.getReplyText()); + // TODO 回退了所有的信息,可做补偿机制 + } + +} diff --git a/bwie-auth/src/main/java/com/bwie/auth/controller/AuthController.java b/bwie-auth/src/main/java/com/bwie/auth/controller/AuthController.java new file mode 100644 index 0000000..9dba0cd --- /dev/null +++ b/bwie-auth/src/main/java/com/bwie/auth/controller/AuthController.java @@ -0,0 +1,57 @@ +package com.bwie.auth.controller; + +import com.alibaba.fastjson.JSONObject; +import com.bwie.auth.service.AuthService; +import com.bwie.common.domain.User; +import com.bwie.common.domain.request.LoginRequest; +import com.bwie.common.domain.response.JwtResponse; +import com.bwie.common.result.Result; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; + +@RestController +@Log4j2 +public class AuthController { + @Autowired + AuthService authService; + @Autowired + RedisTemplate redisTemplate; + @Autowired + HttpServletRequest request; + @PostMapping("/sendCode/{phone}") + public Result sendCode(@PathVariable String phone){ + log.info("执行操作:获取验证码,请求URL:{},请求方式:{},请求参数:{}",request.getRequestURI(), + request.getMethod(), JSONObject.toJSONString(phone)); + Result result=authService.sendCode(phone); + log.info("执行操作:获取验证码,请求URL:{},请求方式:{},请求参数:{}",request.getRequestURI(), + request.getMethod(), JSONObject.toJSONString(result)); + return result; + } + @PostMapping("/login") + public Result login(@RequestBody LoginRequest loginRequest){ + log.info("执行操作:登陆,请求URl:{},请求方式:{},请求参数:{}",request.getRequestURI(), + request.getMethod(),JSONObject.toJSONString(loginRequest)); + Result result=authService.login(loginRequest); + log.info("执行操作:登陆,请求URl:{},请求方式:{},请求参数:{}",request.getRequestURI(), + request.getMethod(),JSONObject.toJSONString(result)); + return result; + } + + @GetMapping("/info") + public Result info(){ + log.info("执行操作:获取登录人信息,请求URL:{},请求方式:{}",request.getRequestURI(), + request.getMethod()); + User user=authService.info(); + log.info("执行操作:获取登录人信息,请求URL:{},请求方式:{},响应结果:{}",request.getRequestURI(), + request.getMethod(),JSONObject.toJSONString(user)); + return Result.success(user); + } + + + + +} diff --git a/bwie-auth/src/main/java/com/bwie/auth/feign/UserFeignService.java b/bwie-auth/src/main/java/com/bwie/auth/feign/UserFeignService.java new file mode 100644 index 0000000..1dabef3 --- /dev/null +++ b/bwie-auth/src/main/java/com/bwie/auth/feign/UserFeignService.java @@ -0,0 +1,13 @@ +package com.bwie.auth.feign; + +import com.bwie.common.domain.User; +import com.bwie.common.result.Result; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +@FeignClient("bwie-user") +public interface UserFeignService { + @GetMapping("/findByPhone/{phone}") + public Result findByPhone(@PathVariable String phone); +} diff --git a/bwie-auth/src/main/java/com/bwie/auth/service/AuthService.java b/bwie-auth/src/main/java/com/bwie/auth/service/AuthService.java new file mode 100644 index 0000000..fad7ec0 --- /dev/null +++ b/bwie-auth/src/main/java/com/bwie/auth/service/AuthService.java @@ -0,0 +1,15 @@ +package com.bwie.auth.service; + +import com.bwie.common.domain.User; +import com.bwie.common.domain.request.LoginRequest; +import com.bwie.common.domain.response.JwtResponse; +import com.bwie.common.result.Result; + +public interface AuthService { + Result sendCode(String phone); + + Result login(LoginRequest loginRequest); + + User info(); + +} diff --git a/bwie-auth/src/main/java/com/bwie/auth/service/AuthServiceimpl.java b/bwie-auth/src/main/java/com/bwie/auth/service/AuthServiceimpl.java new file mode 100644 index 0000000..1cd9e6a --- /dev/null +++ b/bwie-auth/src/main/java/com/bwie/auth/service/AuthServiceimpl.java @@ -0,0 +1,94 @@ +package com.bwie.auth.service; + +import com.alibaba.fastjson.JSONObject; +import com.bwie.auth.feign.UserFeignService; +import com.bwie.common.constants.JwtConstants; +import com.bwie.common.constants.RabbitMQQueueConstants; +import com.bwie.common.constants.TokenConstants; +import com.bwie.common.domain.User; +import com.bwie.common.domain.request.LoginRequest; +import com.bwie.common.domain.response.JwtResponse; +import com.bwie.common.result.Result; +import com.bwie.common.utils.JwtUtils; +import com.bwie.common.utils.StringUtils; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.UUID; +import java.util.concurrent.TimeUnit; +import java.util.regex.Pattern; + +@Service +public class AuthServiceimpl implements AuthService{ + @Autowired + UserFeignService userFeignService; + @Autowired + HttpServletRequest request; + @Autowired + RedisTemplate redisTemplate; + @Autowired + RabbitTemplate rabbitTemplate; + @Override + public Result sendCode(String phone) { + if (!vailPhone(phone)){ + return Result.error("手机号格式错误"); + } + Result byPhone = userFeignService.findByPhone(phone); + User user = byPhone.getData(); + if (user==null){ + return Result.error("手机号或密码不能为空"); + } + rabbitTemplate.convertAndSend(RabbitMQQueueConstants.SENS_SMS_QUEUE,phone,message -> { + message.getMessageProperties().setMessageId(UUID.randomUUID().toString().replaceAll("-","")); + return message; + }); + return Result.success(); + } + + @Override + public Result login(LoginRequest loginRequest) { + if (!vailPhone(loginRequest.getPhone())){ + return Result.error("手机号格式错误"); + } + Result byPhone = userFeignService.findByPhone(loginRequest.getPhone()); + User user = byPhone.getData(); + if (user==null){ + return Result.error("手机号或密码不能为空"); + } + String code = redisTemplate.opsForValue().get(loginRequest.getPhone()); + if (StringUtils.isEmpty(code)){ + return Result.error("请注册"); + } + if (!code.equals(loginRequest.getCode())){ + return Result.error("验证码错误"); + } + String userKey = UUID.randomUUID().toString().replaceAll("-", ""); + HashMap claims = new HashMap<>(); + claims.put(JwtConstants.USER_KEY,userKey); + String token = JwtUtils.createToken(claims); + + redisTemplate.opsForValue().set(TokenConstants.LOGIN_TOKEN_KEY+userKey, JSONObject.toJSONString(user),30, TimeUnit.MINUTES); + + JwtResponse jwtResponse = new JwtResponse(); + jwtResponse.setTime("30MIN"); + jwtResponse.setToken(token); + return Result.success(jwtResponse); + } + + @Override + public User info() { + String token = request.getHeader(TokenConstants.TOKEN); + String userKey = JwtUtils.getUserKey(token); + String jsonKetStr = redisTemplate.opsForValue().get(TokenConstants.LOGIN_TOKEN_KEY + userKey); + return JSONObject.parseObject(jsonKetStr,User.class); + } + + public Boolean vailPhone(String phone){ + Pattern compile = Pattern.compile("^\\d{11}$"); + return compile.matcher(phone).matches(); + } +} diff --git a/bwie-auth/src/main/resources/bootstrap.yml b/bwie-auth/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..c08a8be --- /dev/null +++ b/bwie-auth/src/main/resources/bootstrap.yml @@ -0,0 +1,30 @@ +# Tomcat +server: + port: 9001 +# Spring +spring: + main: + allow-circular-references: true + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + application: + # 应用名称 + name: bwie-auth + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 111.229.36.192:8848 + config: + # 配置中心地址 + server-addr: 111.229.36.192:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + diff --git a/bwie-auth/target/bwie-auth-1.0-SNAPSHOT.jar b/bwie-auth/target/bwie-auth-1.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..3002c1ea6c0835b65aacd161d5e96f48e63137ac GIT binary patch literal 11322 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 literal 0 HcmV?d00001 diff --git a/bwie-auth/target/classes/bootstrap.yml b/bwie-auth/target/classes/bootstrap.yml new file mode 100644 index 0000000..c08a8be --- /dev/null +++ b/bwie-auth/target/classes/bootstrap.yml @@ -0,0 +1,30 @@ +# Tomcat +server: + port: 9001 +# Spring +spring: + main: + allow-circular-references: true + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + application: + # 应用名称 + name: bwie-auth + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 111.229.36.192:8848 + config: + # 配置中心地址 + server-addr: 111.229.36.192:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} + diff --git a/bwie-auth/target/classes/com/bwie/auth/AuthApp.class b/bwie-auth/target/classes/com/bwie/auth/AuthApp.class new file mode 100644 index 0000000000000000000000000000000000000000..4bfd81bd7442614281194f3bdfd9c7c7a31cabf3 GIT binary patch literal 858 zcmZ`&OK%e~5dNIk(oN_ir7h)EdP{q#FC0LrDusximWK!m2TtCNvvJwjk=IN4Tbw{h z@B{c!i19XR16o${j6IKUW(Fz!MyXXyR^w{Q&nu+{c3e4;fmgN-KB9Q12a$ z85%<~kqjG=((+X?kEMMl;*2ca$Rr{g3#7Qe${F^e#LRhosU#PLoACjO!D7)T zxVcc8VYl}ox)7fP&xB6-$XTV+epyb~lmNCX+zgv9rJI?_8)3yxoAP|&3r{`VrLiA*Y>e|Ao5bj;N((Fb zs0?{d4jLd+NeMuMJgo#sGE+>rSx7yVD%Jdj_T-%V{V-EfyPQ%_D^v4iCMQKk{cv&J z=@MXc?dx~YLcp+7Nib3LFRK9_b#Q>kf4N@A7cy}S$NweaYV4Jf={?wjZZ7VvT--1d zdET$MtE0*hiB%^*J3d^p>$zDeL1ypn;}A7^nf|MR9wY*ix9G%4Gt$lDuV7zF_ZrDo zX>22;edj6wZQ22AxQ%rJ@yX9hFreM7)qkM=4UP9V5Ft51!6Aj;z_hV}O|oy%YSKSI Vs)lYUw{eH`I_lUVy-RBk_yYvJ<#+%9 literal 0 HcmV?d00001 diff --git a/bwie-auth/target/classes/com/bwie/auth/config/ConfirmCallbackConfig.class b/bwie-auth/target/classes/com/bwie/auth/config/ConfirmCallbackConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..b70cddb5a8d94d480683ac09e707f829d82eb73d GIT binary patch literal 2283 zcmbtWTT@$A7+pIggoMLItW^-((u*b`aIB@a5=4Qvwl=f~h}u5wgiSa!IVYZTB4r$B z>{}najBlOljF+j;TJ1#bbo>GS4q^1E|G;tWlgOo{6m=N(_50TPuKVP-zwZ7DU5miWlNIhM_o)<3&B3h~p$)(jvoJB-4VCR=kYSC|-%s(}Q_(31 z^kp5lV9K)0FDjEK1jMitj92u9_!o^N3|z{wQ5aBe%*;1yg_=|MFUa$)0gr3~ege(?wGJhr57DyS^i~q%7BC+c~NH zMQ46W>KgHt%Q&};Jd>n{z_RfSf#RKE8EW) z*o!9(bm8$R&KP(NXQMc0;B}mjB5Pn07Ytm)R1|L*n8u8OS$)!p#~6;a>h-m2-`&4= z^ZgI*-}`9w)6f3=@Y?G2?|;90YwhE2*1otK+^pWZ{l}ee_5CMbu73X2+Krk*6mJ@s z!&@|V_k|S2+XmhNBiOl-x{J9bmVf{YpkV&X9y|O%6q)sHC&oF}m^)FFo~M|QWB-AM zt>h_P<(qp$;OuS+eA~P5pv^&94?o(fhjofTYeD(b%CES#nin{lNH#2=pzmt$R9$wm z)+%h;frrvJQm8SWUT?%bWZcMSy;%j~G^f7~0Gq zlxe1xz#Xj5ppT!rcCg+NLXYleeknux8Q|F-uA4bO!8y#CF9gS@xHCBm&XLql5VyGq zp_`)?1|fPl8Z`ktjb82qo}qFmP(Hy~%f(W65K2|iv;h$36{yler45i+9poQ-_630Z zai9+PH6o-2(!Dp4>aQYPMPxW!TQpY@t)gW(@&jUB@$N`>c;FYbMxZ&H0;Bg*8+eW$ zCeVf?nfv)S81Ro0w+;IkrGvchWt0warRCFgoAl~1jsy;+@how)2Wes*Bz`hr5&cMU z(bhysPzJmOee7S4XJ4StkaQV8qwPn;w0ZpQbF9U*lVEA?LKs+2%OLls`5&ib2Y=6; HYL5L4D6WJr literal 0 HcmV?d00001 diff --git a/bwie-auth/target/classes/com/bwie/auth/config/ReturnCallbackConfig.class b/bwie-auth/target/classes/com/bwie/auth/config/ReturnCallbackConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..5bdde91add99e9f142a88ceee46a477b3fb78999 GIT binary patch literal 1929 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 Umvhicey`@x3V&Vo&=l6*0kF8r(EtDd literal 0 HcmV?d00001 diff --git a/bwie-auth/target/classes/com/bwie/auth/service/AuthService.class b/bwie-auth/target/classes/com/bwie/auth/service/AuthService.class new file mode 100644 index 0000000000000000000000000000000000000000..b3824a3def3a5319a01c0a44892e61d611cc5a7d GIT binary patch literal 556 zcmb_Z%TB{E5FEEnUla)Z0OD3I_yD&eB!t8Pm4_Pf0dBISt`fUAPJ80VIPd{{6k-!9 zK&p^9aIn0)GdpX~zP-P^0yxEf2Vn<$0^Nd4a%mG1I2n%TYN=$VOe!Pqv`I%tG09C8D1Q*S?R#H$(>cYyEg;a~ o4Fk=VKoc#_1I_}0Ho&D0x=dJ?dW`h>G_b|c0NWf3?9`Rr4~S}|ZvX%Q literal 0 HcmV?d00001 diff --git a/bwie-auth/target/classes/com/bwie/auth/service/AuthServiceimpl.class b/bwie-auth/target/classes/com/bwie/auth/service/AuthServiceimpl.class new file mode 100644 index 0000000000000000000000000000000000000000..0ca7ac8c8020214be73dddc59233d026a4987d22 GIT binary patch literal 6716 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 B!&d+R literal 0 HcmV?d00001 diff --git a/bwie-auth/target/maven-archiver/pom.properties b/bwie-auth/target/maven-archiver/pom.properties new file mode 100644 index 0000000..34c155a --- /dev/null +++ b/bwie-auth/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=bwie-auth +groupId=com.bwie +version=1.0-SNAPSHOT diff --git a/bwie-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/bwie-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..3ba0280 --- /dev/null +++ b/bwie-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,7 @@ +com\bwie\auth\config\ConfirmCallbackConfig.class +com\bwie\auth\service\AuthServiceimpl.class +com\bwie\auth\controller\AuthController.class +com\bwie\auth\feign\UserFeignService.class +com\bwie\auth\AuthApp.class +com\bwie\auth\service\AuthService.class +com\bwie\auth\config\ReturnCallbackConfig.class diff --git a/bwie-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/bwie-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..a2ed063 --- /dev/null +++ b/bwie-auth/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,7 @@ +D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\AuthApp.java +D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\config\ConfirmCallbackConfig.java +D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\feign\UserFeignService.java +D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\service\AuthService.java +D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\controller\AuthController.java +D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\service\AuthServiceimpl.java +D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\config\ReturnCallbackConfig.java diff --git a/bwie-auth/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/bwie-auth/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/bwie-auth/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/bwie-auth/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/bwie-common/pom.xml b/bwie-common/pom.xml new file mode 100644 index 0000000..1cd06c9 --- /dev/null +++ b/bwie-common/pom.xml @@ -0,0 +1,112 @@ + + + + safeway + com.bwie + 1.0-SNAPSHOT + + 4.0.0 + + bwie-common + + + + + org.springframework.cloud + spring-cloud-starter-bootstrap + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + org.springframework.cloud + spring-cloud-starter-loadbalancer + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + + io.jsonwebtoken + jjwt + 0.9.1 + + + + com.alibaba + fastjson + 1.2.80 + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-starter-validation + + + + org.apache.commons + commons-lang3 + + + + org.projectlombok + lombok + + + + cn.hutool + hutool-all + 5.8.3 + + + + com.aliyun + dysmsapi20170525 + 2.0.1 + + + + com.aliyun.oss + aliyun-sdk-oss + 3.12.0 + + + + org.springframework.boot + spring-boot-starter-amqp + + + + com.github.tobato + fastdfs-client + 1.26.5 + + + + diff --git a/bwie-common/src/main/java/com/bwie/common/config/RedisConfig.java b/bwie-common/src/main/java/com/bwie/common/config/RedisConfig.java new file mode 100644 index 0000000..b62e4b1 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/config/RedisConfig.java @@ -0,0 +1,40 @@ +package com.bwie.common.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +@Configuration +public class RedisConfig { + + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory factory) { + RedisTemplate template = new RedisTemplate<>(); + template.setConnectionFactory(factory); + Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new + Jackson2JsonRedisSerializer(Object.class); + ObjectMapper om = new ObjectMapper(); + om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + jackson2JsonRedisSerializer.setObjectMapper(om); + + StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); + // key采用String的序列化方式 + template.setKeySerializer(stringRedisSerializer); + // hash的key也采用String的序列化方式 + template.setHashKeySerializer(stringRedisSerializer); + // value序列化方式采用jackson + template.setValueSerializer(jackson2JsonRedisSerializer); + // hash的value序列化方式采用jackson + template.setHashValueSerializer(jackson2JsonRedisSerializer); + template.afterPropertiesSet(); + + return template; + } +} diff --git a/bwie-common/src/main/java/com/bwie/common/constants/Constants.java b/bwie-common/src/main/java/com/bwie/common/constants/Constants.java new file mode 100644 index 0000000..2fdc9fe --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/constants/Constants.java @@ -0,0 +1,18 @@ +package com.bwie.common.constants; + +/** + * @description: 系统常量 + * @author DongZl + */ +public class Constants { + /** + * 成功标记 + */ + public static final Integer SUCCESS = 200; + public static final String SUCCESS_MSG = "操作成功"; + /** + * 失败标记 + */ + public static final Integer ERROR = 500; + public static final String ERROR_MSG = "操作异常"; +} diff --git a/bwie-common/src/main/java/com/bwie/common/constants/JwtConstants.java b/bwie-common/src/main/java/com/bwie/common/constants/JwtConstants.java new file mode 100644 index 0000000..03692c1 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/constants/JwtConstants.java @@ -0,0 +1,29 @@ +package com.bwie.common.constants; + +/** + * @author DongZl + * @description: Jwt常量 + */ +public class JwtConstants { + + /** + * 用户ID字段 + */ + public static final String DETAILS_USER_ID = "user_id"; + + /** + * 用户名字段 + */ + public static final String DETAILS_USERNAME = "username"; + + /** + * 用户标识 + */ + public static final String USER_KEY = "user_key"; + + /** + * 令牌秘钥 + */ + public final static String SECRET = "abcdefghijklmnopqrstuvwxyz"; + +} diff --git a/bwie-common/src/main/java/com/bwie/common/constants/RabbitMQQueueConstants.java b/bwie-common/src/main/java/com/bwie/common/constants/RabbitMQQueueConstants.java new file mode 100644 index 0000000..b054d9c --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/constants/RabbitMQQueueConstants.java @@ -0,0 +1,25 @@ +package com.bwie.common.constants; + +/** + * @ClassName: + * @Description: RabbitMQ 队列名称常量 + * @Author: zhuwenqiang + * @Date: 2023/9/19 + */ +public class RabbitMQQueueConstants { + + /** + * 短信队列名称 + */ + public static final String SENS_SMS_QUEUE = "send_sms_queue"; + + /** + * 登录日志队列名称 + */ + public static final String LONG_LOG_QUEUE = "long_log_queue"; + + /** + * 添加入库队列名称 + */ + public static final String ADD_RECEIPT_QUEUE = "add_receipt_queue"; +} diff --git a/bwie-common/src/main/java/com/bwie/common/constants/RabbitName.java b/bwie-common/src/main/java/com/bwie/common/constants/RabbitName.java new file mode 100644 index 0000000..e0d4956 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/constants/RabbitName.java @@ -0,0 +1,5 @@ +package com.bwie.common.constants; + +public class RabbitName { + public static final String RabbitConName = "rabbit"; +} diff --git a/bwie-common/src/main/java/com/bwie/common/constants/TokenConstants.java b/bwie-common/src/main/java/com/bwie/common/constants/TokenConstants.java new file mode 100644 index 0000000..1871fb7 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/constants/TokenConstants.java @@ -0,0 +1,24 @@ +package com.bwie.common.constants; + +/** + * @author DongZl + * @description: 令牌常量 + */ +public class TokenConstants { + /** + * 缓存有效期,默认720(分钟) + */ + public final static long EXPIRATION = 720; + /** + * 缓存刷新时间,默认120(分钟) + */ + public final static long REFRESH_TIME = 120; + /** + * 权限缓存前缀 + */ + public final static String LOGIN_TOKEN_KEY = "login_tokens:"; + /** + * token标识 + */ + public static final String TOKEN = "token"; +} diff --git a/bwie-common/src/main/java/com/bwie/common/domain/Merch.java b/bwie-common/src/main/java/com/bwie/common/domain/Merch.java new file mode 100644 index 0000000..c681b3d --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/domain/Merch.java @@ -0,0 +1,22 @@ +package com.bwie.common.domain; + +import lombok.Data; + +import java.util.Date; + +@Data +public class Merch { + + private Integer merchId; + private String merchName; + private String merchType; + private Double merchPrice; + private String barCode; + private Double salesProPrice; + private Integer factoryId; + private Integer provideId; + private Date merchDeadTime; + private Integer merchNum; + private String merchSta; + +} diff --git a/bwie-common/src/main/java/com/bwie/common/domain/User.java b/bwie-common/src/main/java/com/bwie/common/domain/User.java new file mode 100644 index 0000000..57a8741 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/domain/User.java @@ -0,0 +1,18 @@ +package com.bwie.common.domain; + +import lombok.Data; + +@Data +public class User { + private Integer userID; + private String userName; + private String userPW; + private Integer userType; + private String userIDCard; + private Integer userAge; + private String userGender; + private String userAddress; + private String userPosition; + private Integer userSal; + private String Phone; +} diff --git a/bwie-common/src/main/java/com/bwie/common/domain/request/LoginRequest.java b/bwie-common/src/main/java/com/bwie/common/domain/request/LoginRequest.java new file mode 100644 index 0000000..36c8497 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/domain/request/LoginRequest.java @@ -0,0 +1,9 @@ +package com.bwie.common.domain.request; + +import lombok.Data; + +@Data +public class LoginRequest { + private String phone; + private String code; +} diff --git a/bwie-common/src/main/java/com/bwie/common/domain/request/MerchRequest.java b/bwie-common/src/main/java/com/bwie/common/domain/request/MerchRequest.java new file mode 100644 index 0000000..374624f --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/domain/request/MerchRequest.java @@ -0,0 +1,11 @@ +package com.bwie.common.domain.request; + +import lombok.Data; + +@Data +public class MerchRequest { + private String barCode; + private Integer merchNum; + private Integer pageNum=1; + private Integer pageSize=3; +} diff --git a/bwie-common/src/main/java/com/bwie/common/domain/response/JwtResponse.java b/bwie-common/src/main/java/com/bwie/common/domain/response/JwtResponse.java new file mode 100644 index 0000000..df20d8a --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/domain/response/JwtResponse.java @@ -0,0 +1,9 @@ +package com.bwie.common.domain.response; + +import lombok.Data; + +@Data +public class JwtResponse { + private String token; + private String time; +} diff --git a/bwie-common/src/main/java/com/bwie/common/result/PageResult.java b/bwie-common/src/main/java/com/bwie/common/result/PageResult.java new file mode 100644 index 0000000..85ecdda --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/result/PageResult.java @@ -0,0 +1,34 @@ +package com.bwie.common.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author DongZl + * @description: 列表返回结果集 + */ +@Data +public class PageResult implements Serializable { + /** + * 总条数 + */ + private long total; + /** + * 结果集合 + */ + private List list; + public PageResult() { + } + public PageResult(long total, List list) { + this.total = total; + this.list = list; + } + public static PageResult toPageResult(long total, List list){ + return new PageResult(total , list); + } + public static Result> toResult(long total, List list){ + return Result.success(PageResult.toPageResult(total,list)); + } +} diff --git a/bwie-common/src/main/java/com/bwie/common/result/Result.java b/bwie-common/src/main/java/com/bwie/common/result/Result.java new file mode 100644 index 0000000..30b1e73 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/result/Result.java @@ -0,0 +1,76 @@ +package com.bwie.common.result; + +import com.bwie.common.constants.Constants; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author DongZl + * @description: 响应信息主体 + */ +@Data +public class Result implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 成功 + */ + public static final int SUCCESS = Constants.SUCCESS; + /** + * 失败 + */ + public static final int FAIL = Constants.ERROR; + /** + * 返回状态码 + */ + private int code; + /** + * 响应信息 + */ + private String msg; + /** + * 响应数据 + */ + private T data; + + public static Result success() { + return restResult(null, SUCCESS, Constants.SUCCESS_MSG); + } + + public static Result success(T data) { + return restResult(data, SUCCESS, Constants.SUCCESS_MSG); + } + + public static Result success(T data, String msg) { + return restResult(data, SUCCESS, msg); + } + + public static Result error() { + return restResult(null, FAIL, Constants.ERROR_MSG); + } + + public static Result error(String msg) { + return restResult(null, FAIL, msg); + } + + public static Result error(T data) { + return restResult(data, FAIL, Constants.ERROR_MSG); + } + + public static Result error(T data, String msg) { + return restResult(data, FAIL, msg); + } + + public static Result error(int code, String msg) { + return restResult(null, code, msg); + } + + private static Result restResult(T data, int code, String msg) { + Result apiResult = new Result<>(); + apiResult.setCode(code); + apiResult.setData(data); + apiResult.setMsg(msg); + return apiResult; + } +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/FastUtil.java b/bwie-common/src/main/java/com/bwie/common/utils/FastUtil.java new file mode 100644 index 0000000..94b1722 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/FastUtil.java @@ -0,0 +1,55 @@ +package com.bwie.common.utils; + +import org.springframework.stereotype.Component; +import com.github.tobato.fastdfs.domain.fdfs.StorePath; +import com.github.tobato.fastdfs.service.FastFileStorageClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; + +/** + * @BelongsProject: 0107day02 + * @BelongsPackage: com.bw.config + * @Author: zhupengfei + * @CreateTime: 2023-02-01 08:52 + */ +@Component +public class FastUtil { + private static final Logger log = LoggerFactory.getLogger(FastUtil.class); + + @Resource + private FastFileStorageClient storageClient ; + + /** + * 上传文件 + */ + public String upload(MultipartFile multipartFile) throws Exception{ + String originalFilename = multipartFile.getOriginalFilename(). + substring(multipartFile.getOriginalFilename(). + lastIndexOf(".") + 1); + StorePath storePath = this.storageClient.uploadImageAndCrtThumbImage( + multipartFile.getInputStream(), + multipartFile.getSize(),originalFilename , null); + return storePath.getFullPath() ; + } + /** + * 删除文件 + */ + public String deleteFile(String fileUrl) { + if (StringUtils.isEmpty(fileUrl)) { + log.info("fileUrl == >>文件路径为空..."); + return "文件路径不能为空"; + } + try { + StorePath storePath = StorePath.parseFromUrl(fileUrl); + storageClient.deleteFile(storePath.getGroup(), storePath.getPath()); + } catch (Exception e) { + log.error(e.getMessage()); + } + return "删除成功"; + } + +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/JwtUtils.java b/bwie-common/src/main/java/com/bwie/common/utils/JwtUtils.java new file mode 100644 index 0000000..f560aa9 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/JwtUtils.java @@ -0,0 +1,109 @@ +package com.bwie.common.utils; + +import com.bwie.common.constants.JwtConstants; +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; + +import java.util.Map; + +/** + * @description: Jwt工具类 + * @author DongZl + */ +public class JwtUtils { + + /** + * 秘钥 + */ + public static String secret = JwtConstants.SECRET; + + /** + * 从数据声明生成令牌 + * + * @param claims 数据声明 + * @return 令牌 + */ + public static String createToken(Map claims){ + String token = Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS512, secret).compact(); + return token; + } + + /** + * 从令牌中获取数据声明 + * + * @param token 令牌 + * @return 数据声明 + */ + public static Claims parseToken(String token){ + return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody(); + } + /** + * 根据令牌获取用户标识 + * + * @param token 令牌 + * @return 用户ID + */ + public static String getUserKey(String token){ + Claims claims = parseToken(token); + return getValue(claims, JwtConstants.USER_KEY); + } + /** + * 根据令牌获取用户标识 + * + * @param claims 身份信息 + * @return 用户ID + */ + public static String getUserKey(Claims claims){ + return getValue(claims, JwtConstants.USER_KEY); + } + /** + * 根据令牌获取用户ID + * + * @param token 令牌 + * @return 用户ID + */ + public static String getUserId(String token){ + Claims claims = parseToken(token); + return getValue(claims, JwtConstants.DETAILS_USER_ID); + } + /** + * 根据身份信息获取用户ID + * + * @param claims 身份信息 + * @return 用户ID + */ + public static String getUserId(Claims claims){ + return getValue(claims, JwtConstants.DETAILS_USER_ID); + } + /** + * 根据令牌获取用户名 + * + * @param token 令牌 + * @return 用户名 + */ + public static String getUserName(String token){ + Claims claims = parseToken(token); + return getValue(claims, JwtConstants.DETAILS_USERNAME); + } + /** + * 根据身份信息获取用户名 + * + * @param claims 身份信息 + * @return 用户名 + */ + public static String getUserName(Claims claims){ + return getValue(claims, JwtConstants.DETAILS_USERNAME); + } + /** + * 根据身份信息获取键值 + * + * @param claims 身份信息 + * @param key 键 + * @return 值 + */ + public static String getValue(Claims claims, String key){ + Object obj = claims.get(key); + return obj == null ? "" : obj.toString(); + } +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/OssUtil.java b/bwie-common/src/main/java/com/bwie/common/utils/OssUtil.java new file mode 100644 index 0000000..9c1383f --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/OssUtil.java @@ -0,0 +1,153 @@ +package com.bwie.common.utils; + +import com.aliyun.oss.OSS; +import com.aliyun.oss.OSSClientBuilder; +import com.aliyun.oss.model.GetObjectRequest; +import com.aliyun.oss.model.PutObjectRequest; +import lombok.extern.log4j.Log4j2; +import org.springframework.web.multipart.MultipartFile; + +import java.io.*; +import java.time.LocalDateTime; +import java.util.UUID; + +/** + * Oss服务调用 + */ +@Log4j2 +public class OssUtil { + + /** + * Endpoint 存储对象概述 阿里云主账号AccessKey,accessKeySecret拥有所有API的访问权限 访问路径前缀 存储对象概述 + */ + private static String endPoint = "oss-cn-shanghai.aliyuncs.com"; + private static String accessKeyId = "LTAI5tD2tppzLQ4Rb6yKYyph"; + private static String accessKeySecret = "KEKNKwVvDq7PZLjE63NPBouqHXox4Q"; + private static String accessPre = "https://dzlmuyu.oss-cn-shanghai.aliyuncs.com/"; + + /** + * bucket名称 + * @return + */ + private static String bucketName = "dzlmuyu"; + + private static OSS ossClient ; + + static { + ossClient = new OSSClientBuilder().build( + endPoint, + accessKeyId, + accessKeySecret); + log.info("oss服务连接成功!"); + } + + /** + * 默认路径上传本地文件 + * @param filePath + */ + public static String uploadFile(String filePath){ + return uploadFileForBucket(bucketName,getOssFilePath(filePath) ,filePath); + } + + /** + * 默认路径上传multipartFile文件 + * @param multipartFile + */ + public static String uploadMultipartFile(MultipartFile multipartFile) { + return uploadMultipartFile(bucketName,getOssFilePath(multipartFile.getOriginalFilename()),multipartFile); + } + /** + * 上传 multipartFile 类型文件 + * @param bucketName + * @param ossPath + * @param multipartFile + */ + public static String uploadMultipartFile(String bucketName , String ossPath , MultipartFile multipartFile){ + InputStream inputStream = null; + try { + inputStream = multipartFile.getInputStream(); + } catch (IOException e) { + e.printStackTrace(); + } + uploadFileInputStreamForBucket(bucketName, ossPath, inputStream); + return accessPre+ossPath; + } + + /** + * 使用File上传PutObject上传文件 ** 程序默认使用次方法上传 + * @param bucketName 实例名称 + * @param ossPath oss存储路径 + * @param filePath 本地文件路径 + */ + public static String uploadFileForBucket(String bucketName , String ossPath , String filePath) { + // 创建PutObjectRequest对象。 + PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, ossPath, new File(filePath)); + + // 上传 + ossClient.putObject(putObjectRequest); + return accessPre+ossPath; + } + + /** + * 使用文件流上传到指定的bucket实例 + * @param bucketName 实例名称 + * @param ossPath oss存储路径 + * @param filePath 本地文件路径 + */ + public static String uploadFileInputStreamForBucket(String bucketName , String ossPath , String filePath){ + + // 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。 + InputStream inputStream = null; + try { + inputStream = new FileInputStream(filePath); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + // 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。 + uploadFileInputStreamForBucket(bucketName, ossPath, inputStream); + return accessPre+ossPath; + } + + public static void uploadFileInputStreamForBucket(String bucketName , String ossPath , InputStream inputStream ){ + ossClient.putObject(bucketName, ossPath, inputStream); + } + + /** + * 下载 + * @param ossFilePath + * @param filePath + */ + public static void downloadFile(String ossFilePath , String filePath ){ + downloadFileForBucket(bucketName , ossFilePath , filePath); + } + /** + * 下载 + * @param bucketName 实例名称 + * @param ossFilePath oss存储路径 + * @param filePath 本地文件路径 + */ + public static void downloadFileForBucket(String bucketName , String ossFilePath , String filePath ){ + ossClient.getObject(new GetObjectRequest(bucketName, ossFilePath), new File(filePath)); + } + + /** + * + * @return + */ + public static String getOssDefaultPath(){ + LocalDateTime now = LocalDateTime.now(); + String url = + now.getYear()+"/"+ + now.getMonth()+"/"+ + now.getDayOfMonth()+"/"+ + now.getHour()+"/"+ + now.getMinute()+"/"; + return url; + } + + public static String getOssFilePath(String filePath){ + String fileSuf = filePath.substring(filePath.indexOf(".") + 1); + return getOssDefaultPath() + UUID.randomUUID().toString() + "." + fileSuf; + } + +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/StringUtils.java b/bwie-common/src/main/java/com/bwie/common/utils/StringUtils.java new file mode 100644 index 0000000..93c47fd --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/StringUtils.java @@ -0,0 +1,68 @@ +package com.bwie.common.utils; + +import org.springframework.util.AntPathMatcher; + +import java.util.Collection; +import java.util.List; + +/** + * @author DongZl + * @description: 字符串处理工具类 + */ +public class StringUtils extends org.apache.commons.lang3.StringUtils { + + /** + * * 判断一个对象是否为空 + * + * @param object Object + * @return true:为空 false:非空 + */ + public static boolean isNull(Object object) { + return object == null; + } + + /** + * * 判断一个Collection是否为空, 包含List,Set,Queue + * + * @param coll 要判断的Collection + * @return true:为空 false:非空 + */ + public static boolean isEmpty(Collection coll) { + return isNull(coll) || coll.isEmpty(); + } + + /** + * 查找指定字符串是否匹配指定字符串列表中的任意一个字符串 + * + * @param str 指定字符串 + * @param strs 需要检查的字符串数组 + * @return 是否匹配 + */ + public static boolean matches(String str, List strs) { + if (isEmpty(str) || isEmpty(strs)) { + return false; + } + for (String pattern : strs) { + if (isMatch(pattern, str)) + { + return true; + } + } + return false; + } + + /** + * 判断url是否与规则配置: + * ? 表示单个字符; + * * 表示一层路径内的任意字符串,不可跨层级; + * ** 表示任意层路径; + * + * @param pattern 匹配规则 + * @param url 需要匹配的url + * @return + */ + public static boolean isMatch(String pattern, String url) { + AntPathMatcher matcher = new AntPathMatcher(); + return matcher.match(pattern, url); + } +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/TelSmsUtils.java b/bwie-common/src/main/java/com/bwie/common/utils/TelSmsUtils.java new file mode 100644 index 0000000..36a1207 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/TelSmsUtils.java @@ -0,0 +1,88 @@ +package com.bwie.common.utils; + +import com.alibaba.fastjson.JSONObject; +import com.aliyun.dysmsapi20170525.Client; +import com.aliyun.dysmsapi20170525.models.SendSmsRequest; +import com.aliyun.dysmsapi20170525.models.SendSmsResponse; +import com.aliyun.teaopenapi.models.Config; +import lombok.extern.log4j.Log4j2; + +import java.util.HashMap; +import java.util.Map; + +/** + * 短信工具类 + */ +@Log4j2 +public class TelSmsUtils { + + /** + * 阿里云主账号AccessKey,accessKeySecret拥有所有API的访问权限 + */ + private static String accessKeyId = "LTAI5tQYiKvBrFCLCdJViegZ"; + private static String accessKeySecret = "pzGYeyC6BuXrdIW8f8ueLbdgHSb8MW"; + private static String templateCode = "SMS10001"; + /** + * 短信访问域名 + */ + private static String endpoint = "dysmsapi.aliyuncs.com"; + /** + * 短信签名 + */ + private static String signName = "登录验证"; + + /** + * 实例化短信对象 + */ + private static Client client; + + static { + log.info("初始化短信服务开始"); + long startTime = System.currentTimeMillis(); + try { + client = initClient(); + log.info("初始化短信成功:{}",signName); + } catch (Exception e) { + e.printStackTrace(); + } + log.info("初始化短信服务结束:耗时:{}MS",(System.currentTimeMillis()-startTime)); + } + /** + * 初始化短信对象 + * @return + * @throws Exception + */ + private static Client initClient() throws Exception{ + Config config = new Config() + // 您的AccessKey ID + .setAccessKeyId(accessKeyId) + // 您的AccessKey Secret + .setAccessKeySecret(accessKeySecret); + // 访问的域名 + config.endpoint = endpoint; + return new Client(config); + } + + /** + * 发送单条短信 + * @param phone + * @param sendDataMap + */ + public static String sendSms(String phone , Map sendDataMap){ + SendSmsRequest sendSmsRequest = new SendSmsRequest() + .setPhoneNumbers(phone) + .setSignName(signName) + .setTemplateCode(templateCode) + .setTemplateParam(JSONObject.toJSONString(sendDataMap)); + SendSmsResponse sendSmsResponse = null; + try { + log.info("发送短信验证码:消息内容是:【{}】", JSONObject.toJSONString(sendDataMap)); + sendSmsResponse = client.sendSms(sendSmsRequest); + } catch (Exception e) { + log.error("短信发送异常,手机号:【{}】,短信内容:【{}】,异常信息:【{}】", phone, sendDataMap, e); + } + return JSONObject.toJSONString(sendSmsResponse.getBody()); + } + + +} diff --git a/bwie-common/target/bwie-common-1.0-SNAPSHOT.jar b/bwie-common/target/bwie-common-1.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..d103b363cb3b165d3b26c470037a20df602f2ee4 GIT binary patch literal 27075 zcma&N19WBIvM(HW?4)DccG9tJ+qP}nwr$%+$F^vRRcqFs zRkK#ruWHIl0D~X{0Dyx7-vUSpDe_T^Nek0T@kxsb3n?hl zND1FdO-@KkP}9u8NKjKuPtG*R)BR@LIlP;s9u=FCnxYh=0)#vZHcUP!R3|4&GATYI zIX*r*I@TlOTdKjlI7WlN*v0LiI8;neOUOS@im$@dj7^7*Z`wJurxBN;5|f&9DsPm( zk)o2AQn(SPk_R6pmztSWpj%=DYV%Ej0+9U{81h?SfWHg;E#rS(5Z|N!68OK#^1lDq zf6;soK)!DS8!OuXo#Jl~`WuD5iz>il<2XQrd3gJDvEkWYM z$IM3{1J1a3^5MsWh*Nt!%>Et2Fh1kqfcV=^(wcY^mb~-aWbUrwe{?vX}y}}z=>XHFb1K}y-B&Ffr0`Pp8Yj$EB%3HxOH)2$1 zE~As|dTfniH2(p@bLc#^7BaNA`es7=CUb393oadeDXMc+SEDSCW_8vi{5GR^Xn|FK zji$Sf=2}yECv1$&c&%n-!MP`sN3OBi^RmPA(ksPQqU+7w%JU>@pOJ}ncx^wrM zN`jP)`C`an1W+@iJ$yw6?h&Z@$ESG0OMI?5TOMdh$w>KuEWM*WWHk2!Icb;e@R>y` zZP&w&=`2vhxBc>5ew7QIz>%9)>|!57OX^G*K|3JpBt6M%<*;{o*P05H3Um$NBdZcq z>cbZD0io`Of-IVMc_AJ?%1ywk#RWWYkDDH?rWS`4wT!G~JBp4epCjcU&O_r)!-(QI zMFt_hf(U-=wjrZx+cNOqeY;8>7q)8mWDhleWHhofygiGKL^~*!thS5Qi?BzMG(n#i zx3W=FUc_(J)jvjmrz33OSB{oz+(YV5D>KJ5V=Ze?Fb#a(?=g3pXKNEndHS*qxQ+ zYOjRl!}usiG)cO#%@K^LkTpWdJXeloxt9F`zfUZlzv|YUix%H^R(ov=qjHi`{s!e+ zrjc_H(pYb5$mG1a@#9^Pn~PW10k>~x z&=fll*wJdZ{aNn-c2?l*#*hrhJzx~GQzfJ=@2Ja3a}6ybt{=R$n2<1Ex{ zH3zN2fH!O+i~|g*MPt7wyyeN`w}Stc*|J0Te>q%s*Z{UMV=027baw{0-fD zhdub@=@0*Ly!nmQQNHoAZI=C6-pC%E) z|HX)+6(2%-jj~0@@o{byzt^;=l!d# z3AJXkvB>F;jT#Kt*+%K7k_=f(U6cm;`g==*+q#-7XnIy3*vUFO>9*Ul;t*7shF2qQ z&zlb0+&(nk*?_LWRxn~z7OH*bkPuw)#!`Ll{v#kmo?2B`X(aeM=c>RHw$wFN7an=0 z5j*U9&Ys?my4^$v#paWAww){~g%#b)P}H=R>ef1?D|kdt7*Xy4vEiMa75WLW8+Kfz z8^nX-NhJ8%k1?S53JzR$E7#3}H{<4Q{PQo(hb&dSaj$5RA*9kVvgNDZ%cfmUfqi_- z&nsGU&ynYR?p#Uj1|0@0QxETc)Y@$IQyYaRWu6hyZiXnxPL_Fv0)FL$FiEl>a2Wj` zQ#@x?(X|5p-e0f#+Y7YE*T158JhKW5bgqR5@bNuN#wz=GX{x`1Yh|};HVA=PRO^W% z&_(#7N96#?O?AE4vi+vr+#_eCcG17Yx?`=P5dygDWVl`d-%yhdR!InD`+%F@lmKz` z{kp=3G*S*zX7--p8MhH8=6lFOCzO$!=39wVxrZtPi$e2lA^uh2qUTsT2Hy(D`&KyB zUn*SO#qs~rxdbh+9P(FnGe`Nu?y5Txi+|AS3PRX#QQ4$abN$7QG;OE#G|tI_p`QA9 z)fYhTL^j4yHT4aL?(2zVf12SyP%YudC)h?E(imOw4fhP7H z!fH;RIqO)tpNhU6oK+PcRD?xsNth~%!_kx zh}LX^$4!;ooT!0q65z8|UH3Sf2qg3nmHC{GTTh|M{K4AS9#5vrZF!n1zgmG{Ph{{O zN)IN-NMx5GxC_`JB!MgqXPJ$s>jT}B*6|LXn*chDDBPUvIzNbZpje?OZP-Q}eWctB zUWr@sy&&Wq5^c#_bbczFAj32&_kO>PY04FeJ$ZcgG_?EDcq(sBUD*3VbX3Hep}$93 z|GhiG*)RlDzmFnidJ0VcMeCiHjSRK z7Ay3wr+WGb4uQww#dJ#ALha^RYPGeCl>=^WTDH{T`@nFS#%qgo~xVFo1 z*T!R8mq{=5eOv}~o>AZ34cpE(;~vpGIr?YhqM{;ROxyKjy^`%1K_X>o;QB1qu2Gl4 zsz_S%4{FY+91UJTq2Pu;)4HV}))gi*fk^YlKzSs}ba0g=s*-`{Wo3u%3n+4j31Np& zBBLX=W4rK}57fB|B8cR(OW;;`0&E?@4uSU;t_c*V9VMy+!Wz1GPIq8W?XijE#Xk*U zQNn|Y0F-`{F{>^X<(b|7*GGrbWRke98ge%Bu2w1Ny z-0>;bgguc`t}_?4FMByOQ)@k{D@fK3*uLecK{s5w!Pysxizkz!z0ds1(B>f{$ZTW{0{oBYx%Z7i>CCwjNMU3@gIsosXSkIH-1HE%8h zQy;;UU?wB2l?nw*2XO|kGbk%`;RpZu+z}``)P~ZXq?pf+uBLC9noR9USz@!MClydC5zZs#Z) zV@ShB+%M8)E=F}ZIOs2ZQ;!( z&i)p^9X4c?YPNJ9&<=kL4tE6v4F_$c*o&eN1}rMmtlR<38JY2(r+xeRvMN&BeVxY0 zXhOQ+{Ogs=ZR<7b{%dQS{l5E{JMDAAN2dcEfOPFE+4bj7#81!?0WGh$`(m z_LU~>I?gS5@_CG_q!*6K^DA~TM)YJP(3}6rjp2CoBXM$Ow3GMf*id=w!+(;N{6Yv+ zdtMhHTYlHb{VRO3M#)tu=$@jo%$6@`yY!|UvZm~&9nz-sMgxTg@!SQnbBtH5`Mjv; z6cns2fV47U$#tllCR#=%<0)S&M;HG1OJJ#f3XhWhDE-miX^s$!y~!UWYJb(e4O#cP zqUnf|r9R26qPwNp_sVdfd?jktU21lJq)NU)`InGJSj}$>(g`S*U83a;6AdVl@y4)7 z!gcdx%Ki6BlCbh=9E}N@Obc~r{e(mFwzdqu=h+)MFa(p;hd%p7;j>PyU;4Y*ra4XV zO6=x~6HKTHaYyoPeY*R7@>Xu1Uw-x6(YkHQ*gB=u8i!{u(9{7E77@-4!&AE6rff_h z?GpC$E9=7dh^KX#nk1WfqcR?eDY9$5IIJb;Sd&d9Ns4eUX+^u0IUA83p*h=?9nqP) zfzM!xhBkxumCS|6$ie&!yr(mhD^o>l{gp~1SWK53Bq}zIMZ~`vc_@)j=LEGeF5S$a zkj(Pv){=8lhu;R7){quVWh4!>^z8-uI%gTegf)yY?2YxGKB+6_!7py7Uy+>4*y%mt zfR!z5kaqRqtC&+RIIhB@cXOBX#dt1b7P>V$m4x+My++0StS8tzdo9Biii9OOnaqas zL_f*N>_^@@_Qb@*JnTt`fM~tcjc?Gy_7b&<*%+m*Ki&uNUH2<%@D^p|Z%v9|?%T&O zkC4O~i{6bZQM@^KHm7Q&n+%nn6@n0G)S`$@v^uSd>wFtRN=%*%f)GZ|oC}o92qtPY z^Q#2Qbn%(k57RR@S`$U2rc+6dg&*%@A-k*QT%ocg zv5R$EU^R3#Loj!Qv76)DAgq`4F!L@0onu`{)3kKY==e+#tqtjHi{2GNXnXx(-*tOn ziTM|7J79l|P0nuMGq}XD1GJpkVy1D9Za_3}V39lsxrXxT+-$8ZP^h4m`pA1`;m19Z zV{iFyC%gjVkk^*We zdI)MMdVg(DWV?dDIAoyN{M^U(?@{2omAp9)M3b@qV(vXL&HDt19=;vBLC06{SPLL^&+H(#rj%0uj?1#wi zfL{D&mbg5yM?9jI3MSz538!FKZf1`)f zgOunrvd9wNPzd;ZNVw_b=t>U0p5Rt+wnJ_VdK~j;Ya|Y%IuRyg{$N-a%&J2yQ@*ey zfss^^s4_D$L79IcTDjnO+AV?FR49@dQekVJSfMtf98m=(1i`6)peVuNlwq9ZxF{ky zv8Wg!aU7&^yC{o6VOSzUVPjmJsF$%!oaNF9zPxg*dt{~H8LNX(eV1^wXqSH?qdRfD z-cf`hlyJ5vDBn0HXjo(41!ept>s#n=T2U|I9*OWueW{M+EMJ#Q|8`P){^C4;Q9q7#sEJTTwkfc@a5C7L z+9+9p!afX5e-uFoSKu$0XTtg2>l@ZmLh=4zyEU`CiT%{sAtd=s5q%M}{E2$Y14y=r za&VYIB0GSBYR;V1f5ZgYSt2}s1(l{O-f$i&gx*yK*?gD@f;xlsOz{Mi#$*lIl+F;G zh0N?y{sIXIe}gSVcD>OeBfD|?P+0Alz3zSa1KbW{VlW_da<2VwLsJRjWSYof^$1Cg z^{CDkZp3-jazkLF_p#yfg)fpV><)R(m7JCuDS0c5Jt|41mrV_iD`oq~jkl zhifEoVU#bGv3^az#qp=NW^Bam{NqOtdUo!T9_UHHLZ{OWor{)lKXGR0j-D}e3@V*7M9TAs z7E@eEDd(;|!KH#fYQmAHv8{4!(vw*Z?jAh;8Al8*$`z8|EnNw&hgu8xGR^)oO7$Q- zLD+4^;ghaZ!@Ox;3T}veroUZDf|%Ih(Y)fI3jut2(e1c~b&_)dHq- z7@{IXcIrxjYdAO31^ovUF0b|-0AeemD7bd`AnOe}m;5+~$*}dAD!AeKh11jFh0{{@ z{rmQ>FX$Z#405X6wWLyX?p=+PNQyn@qNpLCEGL))F0Nd(mMXh+B-d zI=tK0FWH2#W?aoZjTKt!>lIfZUd!thP^Q#9Q>yw?j~luIc-gdE`OnFB*_N%@_qHqR zPH(vD9a>Jo+w~nW7u}T4aSBizSG>9NrmtORS1Q#C#3!%XO_$G>%N0*qw87JOr7R!Z z%j>YLmR48neafQL8MKoGCUk^``miKz60iGZ@eb{$AlN-!M$eboNNipV3}E|jARTL) zeTt7F9WhzTvb3HQcpoXC;rxm-a2(P)c*L}BJn{C@>?0k8kU{*#{i3aD+YlE^$5I|T z5JTwYZmHDk>xquwoKLw(423uL${Op>85xBFnJ1h9daQV8tn&p9Q@wDs)83q4wcGYr zt@iLxA}HNdv<7+*6Q~TTjj==dyr({sqx>kx)RjAtK@NynNheaB#J1+{Agm$QE!0lx zT<-kZ2s$k{0J!#8he~5US<95FtmGph8{B9^(B+y0<-z&PQv0qk&8)Xly$nBkaMHNl4VAIS zVhB0zWYhzi6)3!cwK%ChAulaXZU^RRXVVY&z}wdliExtJem9QWq)wR0)Y$@5#4iZb z4Wk=N(M~YOEf`7fku&^AojGkAWE0~wta+iIf98ipn#b1c6?#Ot*g^E7zw3(P^0Gs& z^8<uP(v zbb?lV}Xa`0%#$4#VRd*C+PI3Oj?F2n5NH8^9$yHpUQw zzd3K{v7~!ljMxa`L!CipLDz*o#=BNdXOh)Z;>X=D{Kqk*Nux@Hqr)IG22y@YanJY( z@YB;{#|Qjl(wS4OB&U7ce@%WW@>3shKmh<2p#Gos{NIzHf8Fy+8a9|p@L$ngtTn7D z#ZKx1>5YxP2As^x+L^_H$;}{pOjhD~hf7fnQCV+@OBn?C*$6VCT=@96;>3wR)aQ`> z0(Xi;KS;#W*gLdsGN~!znN6lASslJ_lh5T}Js)5@D3uwbd--7!s^WYjMyS`dt^Ipi z*w<-|+D3L!dDjh3fDv$No`cOXPMWOrfe~Pq+9@!KZd&v^Xsvp>NiNLTPJmvk&NGcF zSblM@%A?jpM8-D}p#$-k;N ziRIHTmCcGa8_%oa&pqpR9XsWNY@EloXN4w}MmRUCjAX1Cs?(YDDD?Q!ta7!*GR^8V zlsHyig3_`^@zXY@8Cy4Y!}k~0C?lFJSg~j9%2FLk-ET~3jx?hW9=Z}Z=MtDHep@@f zNq5zD9w~O6j#&WZcV+eW66ZE|rSC&R+v>nQzhEUkh4#h!#?An4Z?A_~{}B%0?y=*^LQtosottwIgdBNFl6@;UbN0SoENQH%}S3cYD+7~pw&*V$Sj%{UDhmVn7aXy zkHf_5S}!8_N$(zlp}lSroZj(!%eG>=jRS7A`s4v?w_1(OH-KY_YC~|KpY2H_RreM- zyO}Qd6Da5peH`jmZv`qzT+4}4g0gPa=$_jFRpt=8U)SfogL}c2s$M{MdLOn@7|x?u?FZ_Px?RoIJ_nAUfB2a^ zyf)3MW(lJ_fH)=jloq^Ru5NfxV*(z8Cgx4#`25ZAsQV;Gow!s<4>$n&KH@xsosY+8 zOs5X61rCyO;#xxtwG%4rMS`&j*h7iLlIBZv`v&#a)V%Ssha4IqNhn3t^OL;Hzer1e z1&cA6{U+=)N0Yo50kQb(6SlO)XJK2#%?yX383v>L>@&8!L5_wG5142qLCd1u2yic< zRZp5L;2{V#jw(ZRq{9cX3O2h3(vFlU<2DmF=9Xk9QRqg_VR$VhA1NRoF&a=N6g*(~im$F9n4$&q*YSA5~CNB#j2&-p!B%N0~ z1a#gEW=>LS)^$cWtyecJGg2Bhg`=~_1Xg3N5aLx;9T>X{nI z!O{T9l9)U2j1sJ~HsrqAb);0kw6KQg?@Vs6qZ6q4N^5NWEyXZ~Y0HX6PKvThX3m++ zC@5@g@y*04Ou)J9iV;qS}$ZFW^P>apu=O0*!&6B%p-p3bKtVk%6gk}5zjubJJ zEq&#e)xjSmguJ*!vK-~T#Art|>LB+uL(qU*wSnn!wJNDZEw)s}^(I?2ST}FHLJDe`ZE%k=#hW ziT3LNa^Lyo%;h&ZO!$u3u~yfWb*4P)(3REhi`uFsf>(FpZe2?OKl2l3-hIGk&fRg~ zG1DX9s(Haf*Tw})ZNO$NE5vyw>3Fmh)T)J6cGdK4^Xv&}`Fo>y)vSG&&(D=SqjcliDmVM!92jDio%T*Me0--iegA3F{}ta+bzZ#HyD?>vl-p2XZC zO)mp?EaZ%SdA`RjK%WKCf(HI6=8cOud*xd{g(y5Ao)MIvCfh$rgw`sTqqr*_xKP$* z#bv$FB1SeTJI+)Qq`TJfvwoA1ZGckn>Ngl-{8aS+N7Dj+iEP(q14MY%&^=o;CzB z8dyS=`Mia@EVN2Q^K-hAVPt*`4JolqlRb8WyoaEu(3(5j$h5Wufn#-OCgi~+Ig&)f zO3jI9r}9CcK5;6zjEiH}8y0Rely0v(`Lri8!RPk&r{7H(`GT5~%j=1=k||HRiov4Z zP5Ffjg@h$SI0}#w%X^M}G(k#)7-4Wic`R?h17KPiqhg+DdNnJF9%7Pk(!`$wPfj`CRK*5uUv=|}a(ZOue`NOm`)B_nGt2K~ z@TKLOvxp=dO*>S~JnAiGk8-AEtjmrVz>2D#n)#rgKUhS}Icgo|4kc}$`wtQ}tbd4RkJa>Z z`$zKd^>}#R;bjx;p;;Rm)rHZ5U5D=ZEzEvSpL?h5`vse8KO>&6C8{pNIe2Z3$-2?E zpmnJsE%*}8{8m15C=x(%pBX$Yw=R(|=_k8j)Z>Isvt``S?}tU?6vHNIjF`3N_Yl1x zrsrqDwAQPArMMlsKA5`W0t1UycshhAS6UT#;~gdq=0 zzzRGEI%n=HqIYYj@srG;9~@W6O#Fks6(uLKdOUcCHSh9Kwze30_`DF@8t%vW_>RE% zjwl;jH8fA zmVp5a<2zzTQ(?BY!suK@nyb)1T)uhz%?#ygqh?t2pW!rpSso9kp@Jhx8nbBM?DXjr z8A>-`7|RnctBMN&pX9eD6}Aeb(ao3-qjkrzxen!=cIT88uAou76H2&>w~Q(m69@XV zVDA%07CU~cOSMt9PH1r*cAaURRTXbwZyZ`@-vx3QbuK1)_>({1BtDlZV0{08DcP1% z@)6jc5~i#W4dTJxui!1;CDE{$=xm$9A`_;ALSXdX_0ni7Obh+c12i{!){Bep2Ah9b z0qo;@U|8n^Bd;kGn@y2lOBmo29Ejou$1xqiZYs2dx6iHFKt1y#&hElcn$zEHY? zlDGasGtO{p9D$rxjGYn}&#E3uD1KAfPjoY0v9?`H-VkM`(Q5$4RR^oo0~mf2j&v@^ zfHokYndL;!L>JZSa&{)$mt7EnZL*v$h72;H5}H_$Ue$2_23-*2_bQ+&Z{Yy?60nh= zoolid9Eu=VWuFmS5Ez7g$7S{Ef^DB^AE-E-EcAid_284s$8~cx}dx znX2&bKCm4-S9rN(>^>|f!7NJ*mwDdbL*_4KbApKml&Y(c`COb4+s1JC6txa7FpqTk z)-P1aA5JH856}2TeT3g&UBJw4&NPp&HQ@dqxD(ioPc~bGx7-v)E`L%!B#a_4jjnNU zkuHSjy}GOik(FJ-NS&8GT>As`!jhZJAB+X>1O}e6Er!AqY{l-zJ6xs#7PYSjXt*=r z?3JMpCrq9FNlgVCD36+Q%Zp|st&~S?`qdQ^ORW<3n(61`s~j$;*%B^VZk*Fvb~7k0 zTA=GYGy@Lk)fMZ~wkrJ&#F{Ba85>6KGz(5v^$8nE51L|EYxy`?C4z)T$LngpJR!Ox zzsSymYVgc~1FQmS?&em9pu00%D|*w){n2Pcnm3cIbIHY6#9V zJRQFR2_L9=z9He6dYk*XS2%A*F6n}SJ6T`Smy;bM>kjbO3DeLWBV*{AZ%7zD<@u3? z;Q;RpLsQzYOKe^rFk=Q9y8<Xv?dN1wJw1E$RKiwFuml?ild;LRA2lgW zztigZ@(!50QdQs5MHJA!&nRX+E+U(VYep~j;3)!|%u@!)bo}Q4(9h8?1iuc5XGlwg zE2P$hmro!Yf_H#$X0l+P0T3VkoJa2g&ya@fw|_&2+QJr3WWLd%lkbjR(*F><{Ga}2 zJrkqvMCH5H`5zHXmC`?OV1t>LC9(ZhsZxn~l7}NUF&HbdSj^aX{(yxe;oQTeFvh_J z4(Hktyja)0Ah;b+9^Y<|F!A42rGdPnihDm_P;x7|9rQ_?Gr%C2xlLwxOrF#&bcTIC z?iXeNgzL}+;7|)@>xd@o(QJlVYew&!p|5w+RhNz2RFa<$zTWFS;fF)$9d+sbG3zzz zD}`edyr_XRo?`k{;RtK`Y$d9dW^<>^XQ8Br7U5^M8hPp%l$Oa2>mMR5LTT8~g(j+! ztzb5#Mvx{Z_7ysj(rv?|Ig9X9F*NmRBZ`=}t|mEz-o>2^7HMcTDnQ*4SLLTEDpid{ zvXc~C?xlqW!Yr#B`v)^=-h?>QqX@qE}6{19%F!;&cc@CUzG^fIMo#B8mS4){qr%l{F&{)RflWIfg_#%upN_Sr$^e!o3+&!*t z*1-p+A>-xv{G^K)nBf2!Mq|{RLr&;1eb^YDv~eYCEdmu2&um4L@l)i~Y&lR0V4>7W z<%gMGV{vwumf)O}&r(e{0B*lB=cyH1N3&^>F1>G#$bc%^dNgC zD?Ld}$_r+YSGY%v#{^riz0Y_q$oM!Qhn{k8rO85<@k(0?E8fefJ1-gjwH)EsZA4KUL zqGyE;u97y1QASS{e&x3F4NhXiw-+stc|sQiOAr~?5s_9B1mcc>15&(Cu44;GK`Oai zw`5ar_g-$CCTY-%oX1-#Ax?^Xz8{Gjd_c9VC=G6RD4{FBC(F?=+X1%%S&E~;XZN8m z@bpQ%bs#*o0xpxlFpWR3Nlw70DP}7+K$+YvUwHVR5v+$Vw*Ann41_i43Ow|TU4sZq z%HJrsy_I|fciu@ltG$#H2PWve*{X18RwR2obap+H3m&**peQVrjYtld$FhoBkD?m` z&$tofx#xJn$w9;-`f^|gPrU(Y%O7f73-Is+I?`=z;C&3GFF821ex2{9`E!c1>8wjQ z-YJwcevVzSw9-Ns^#tVEz}gkW|5QYtkwM_exCu7s2d!*xkk7koK?ctIHq;T z-P48xARYgA8k)Ne)dW#es$q3eB8^dm0-Lu z%u&?XR+l_$ITlwu50J-y@cLY&?J%z zjwDd&Pof-oyWpk_5+ASf{!3`e{e?KW`)k}-l8#I8Ked=0i4nW8D|Th~=)M7{jFFiQ zdhfF2TM2S|z{Nt9SC~Yv-G6IW(vx>f;`j!TP>}!t2>*AV{4f4k`P2n-5#>)5S3z8& zojzrAz#i{jpu9+ZC0NE3rdTIDC~cqpMm;jxgo1}Z6}s6V;?jK7e6c09#Q0s5=U51T z#3;Fy%sc4x?ls;AjHm8tmreFT99RGF58T(T_bZRC_p6MV?$=`<0O-9eI>$su zHvB|FBA)(z5dl}pk$o%L?_h}*5#Fgh*93qtK z41eC4EFeK9ERxr`Sin{1~UJQf0wz@V2%-%}jDKrOB*QxhqznsSgVRoj)nEXR$~U zhje$3kv4&{C@T`Nq7>>^$IqcqFS4H&n~I3Gih;WJD8B4u*3j0d4~IIEk7gnygc8WW zjAJgpJQG}xJgh`bo=FvQn6f7WhqSiw zPnWeqdMSjvnc`c0BXeOEx$BxzsxworQzc`G?XVJTkb=KNo7S~)CuKWI-+B2OF6SjE zbka=nC(i-60ykOFY^e~2vu=BPyX4EV$wuY;CLa0{s!8lUhs&Mgi>s-dMVW~pev?+^&n9!x?26NeVBqm zqL>0d z==}lC8v9}J1`Uz>lYSa8-T=!wPhvcqfW#dVqpC-46!=6im1o47;MI5@OE}^sH;fFI zH>_FH?~V1Vvyb{WSlN$PdzUSWr%mB=w{7G{F3d2G=O)*uA$q~8-D*TM-(8L=fJefI z8geFIM@EW`NHJE2-#<#>8ZrW7QoMJICbWpUY6neJxW4*ve0F_rmUZskIHho(iv%OU zyvW+-1jg(#V^x0;5$kRJOj!rYwqo@_gP1rOy|>Y2C%1f?>+~Cv=$)N5{ z0ytBO*@ZXO2++zzywW4(=8BT#a&ohyEN)|TJGbFM2aqga7!MXOEtU#}ish}g46kra zyEb&IJu;3;$KO-eH&Y3Jw3tO_L%J<=9z8LobJkNk(1bu07O+aBXBB4$z(>0Hgevk!?LoAd4_JTJI%Z5U}Qc(kv`mvV`)EdtTt$oT6f`A zXGkm`fgL;|9Og{fJzR*6T@wD?>>5KAn zY85@X9O7|E6r9ASe|#TGIwLjh0U<m+%B$WNKYSkUh~BS>mc z+;kjQpvhe$pJ>&|tVe>|1DppnW#YS|@0&%Fj8`0wz@dsOL@3xCjYodCkx%YyWl0t@ znJfK)!2N*YeEt%2%iQi*IZIpU8D*hKuUT;IoiB4(gP(@zf{4>xL9Y{)GKEQ1vR2GU!!GZ3p3A?=PKqjVA9# zP&}RnFA`V``@+b5vX%m`aT1@6#41qm_6aWr=qS5)0J0!PkznC}8U-vl3QU($lIJZE zSUy;k5APzIXk)fM%+?z&ZK@>X6s2C1Z)C`+Qz393=WGtIa63AaATrvn<`wWa#o_l%%vJ$elb&F&3I-t0j6=f)>+p2XQVJKOma$U2kC3(Fp!Zt^ThYP2X_EMUf z`b`jAx~Qb&hatayKCWbB4hVA)|G|$JPO`lmIvy9}7UcHS-*6sRZO7Ru#~Th;X`lBw z>n?y;gGtEQ!@5wxH{ysj#kSBj}!`1 zeFFMD@}0aIi@~lZI|}#>?7Pj-iz~A!jG^bHFbd3&rSqwhfeGV%Mks4z6l}z(H&0eG z71dlVps+S#u^WLZPbZIPE<;Vt-fi&ePP|mQ&1JGq8s*ukgJ}=VNT{=5H)&F05zIS& z*W34NRbqiKN2pb@E7{mjbLda$#PMy`6pC%iyp&eZrd13E47FYx$1 zk~1L{$k(&g;L*fJT;!gpTNEFpM5f)oKn?QmOw4iM51`lBjw|8`oGK(zh-O%3j$S>OgFD&q%C;E{_1VK`n+d&foUeD5SehQu zN~Ru`8eS;*9n5uVQM*%MKJsC?c~xnDj+gNkUnPMJQgz+Pt6>aeD?Di~`f)THgapGm zdWM?upD*j4jpEl70F>>cTQ0~6ij6>1!8CBt^e*k3*wR<^EyxXva5U>y^hQ%WW%u=E z=jFX`d%Imv_XlM3P;GwhZB?!Ne0p~DpS)tROg^*Ej55$;5b5I z_mu$3IM+;xo;dq3IF#0De;e3d_U`m~%qXhq{<-qB?Nzmlgq^d;i29hfJ+@IfxsX&h z>`l}f4^67#Wa!au{iuPP0@1iK$b5u)@L?ENC07$OtjMTh&$pOQ$gRBm3PynLFp(6C zXvP7Q#SEWpQpqNpCA?Vaq$Uh}5ZEj6$05{CdWcYeGVdZ)1MO*mkuj5ZPFt5n>t}D+ z;*CLAd171={`T}5Ze^V?(iV4(UZei{t+h$l+DIrtWVzeR6*DE8-S}?NNH~hiEbsNJ zDL?ny=FVi(M*ef)-JRX}MG0^8TQ(B+pSbn~!%Nn9L+=r<8u@5SoRYSZ==--)`Np(Z zKKLa2tOu`{G)JE7jnXs|QEd^%MT^%fb#%j2Y8*O0r5uIn92)N(KQQ^|xX}IIe!UF` z8LdyYRtMu^LT^|uU@Co1T1O;&Z$cJ6@ZBn&+TVf@q_;*b|85vJDtV_s0AS~}59m{W!8xd=yK{2P-^3Ggk5 z2e8AZ#5S@DdSipP<*LXje7N*Z40By8A~9fbPYEP9p3JMx7b-98lY}onZh#h%KR6Y| zZLu#pf|4yvKT+J*--IkpdDn-}6Ptt~F0^_{zSdCd*!^SfAgXa|8%2D8Vc*m@Lz_&@m6sl0_1kUMPlNS_;Pr}R=`Ct#b$WH zv*{AoVN_5W%~b61krIDobsW;n^5C+%or-(P7EZGX?dqsWvw2Q7oM&3LuU54_Kd-NS z0A2v5*oJS+uyS_2fhb3ZYr|&@TruHRo}gH`4Ck9bmTp5~+CW%p$@lCs8=D0^$#*H6 zCnZ*rYZH7UwIDp8pDiG^Ltm5!U4XzewHzE}co|gW;1q`xtK#FIu?8rp;~mFpp>5Q7 znYgyK1=qsFw22dP+ytzU2i~DE--WH>f^!-IRLp-JtcrCGEBe$i${(li z_t`|iZB@Hf7zz<<+ES4YqfX;8bP;FMIKC0F79?(Q2WE#tm-?(&C4SwjlU1)Z_$;U= z#u!i-eS8^Qa0&;Vj1)ln>Kef}=K4cL@B?pOgbU$TF*w{GTuKHY(+#&7(F-= zvYbE?omrK^^0yFI!mjVU0n>&EdPA$2&4M<1x>Z}YxmzbkJt-!^W-dGreu&W-3>1)H zH*2`xVE)ed%`7~xkvD(>V^f@zZ`Y-G+D&4(D6tS=^oato3 zKM)|1jhrF?j%rj)&<&-WhNPQmMTHG}6Q^PFn?;Gj)mKIV1U;*(NZL@IOubf2@`=9=H~``D=|CuqNS$|bTd?|VHSkgy7JD2S0OG}MVrr4FU`*)EaO%dBT}USay7)CKAI z_5pr%`nvR)hg0gt_wv%I*ultoyX72#PpL%1k6{sF^hrE)3I3r6%V!HF!(+YAJdle< ze|8ERWE;VTd0M{ZnId14nj_m8E|VgWSm2tvP$-^H+(kAC1$%^7r^l#ZVto9KKxEC0 z3OE-g5-Pyon-iPU!tT7EX+UoM^m`Qf`4$!Q2s-mNkx>L~a*Bu+XLlYw^LoK5e0qaD z=K!D{mmscN%6P5!80e5y)a?hug< zHznQOAq~=@bayu>-L3RS8U*PEszmBkSNNb zmdQi^kpYbKPau<_z)>Qk^!j~3l4HY|Ou)z-m9T5`coU`=E57jIX0q|vFqL4z2oVsL zg|!XDGC$gW;-YB-Jd-aCPMQAG z$ji^}pS-Q@ZSSx6#knWuB>HuUnVO_FA%&cQ&m&kSmXnzdK`yC~a$=%>_$eYe$>{2; zn$HsIFV*$7Nlb)iDbWy2l8^dEt7OL;J1l@aaw6k7FI=)t-D~$YEx)7A3~iUFR?vk? zUP86LUUxTYVLe>qYd+b<)ww_NrciskI|1I_DKI|C(dMuOqlxfze}j*=L8k*oyUsf9 z1&DUZT{}ii12mioU+*l@(M~?(T#mKgOx;a!buNs^u%w6{-=r3FNKSI7&o*?h1dsRC zmz;m4Q=NB+R^Dk}&&@A6f(6t)cg89Iex+BL*Ci?0sP5d4aM)#E(k(byo^{Mt+wK0a zt%!r$=aAvW!=h_s3%96C#`=BWPU}(^a7V|=U@i<1UFTSzqpR*biEtA`MqjF<$}8gy zKeeuipgc;SlqO=p^F-DA)l+1rVInqOhNk+Z_i71{?YGni(7qs}Jjuo8%7|2nh$7Rw z(9VGMHD#GD39s>orL#8VGi6F214LAhy;Fd5x>WwCTrisd%w%aay4M$77PzwNokkKH z`-VL!xVMVI@%RYsWXWA!hV>-6{*y)oA~k8E~pU7*CL1EhBCD=JcCu(Hr@g&W#-5xnn+=izAe-QsV`V z0Gny-7#vu z(DEDZ6s2gtRw@DK%$OYXdLH>m_R{{DcoCZJ37WvC{dQl)3f~9&SL|dUQRptn?)BP| zrjkF&is-07Yy}D#H$Lf%5L*m$NbR!sjX&b7rNkz?HH@|3D0 zO=mcRXJQ(s{N#<_0zoXpGnW&!O}f$_o7S# zy2Z(}Fu#Q*M~o#roPAeB&kv-%BhFj3Zv-UISbvZ&(mNG;Rlm|TXHrc@iOy{gRyCR? zmiatthzLJIscWBhDmeQv)435nA_DFq2g&9F*9?e*09Bf^XJN9sw#u<4f{16Hx2f>5 z9n3T6+T)_iEG2VLdI1z&=W7DV4IZ_Q14~F70MfgukDtCk) zQ~d~TjY>TFHWQ6o^4|3%^~L)ZhyD83s9Fs!JBgmn&mv-5rO)8Cv-M+SX=rgO^rLMW(AbD*i~+-nd+BbKYoR_YX^<|EUVqopw7*jlF)uiP&3 z!J1Er)~t}*C4ox-C|Fn{KViGBp2cKdyK0z&gZD_yy068nE8yq7rbR!a5c9} zD4bmzgu>VzG0>cdA8cd8Jzb-U1+F$pK9}+u>@%M93hO%|$_V*rqaBDNjo%?Oq5tSu zX7YnQOT_jGrSf;l$2`bZWLm&Af_RqmjnNvz1|JM5x-9YHAjbA?^fY?Hb=M+CYG!|u z?YR8U%UXg4CEoB9QY?~JmRBn}6T=MXXin{@xjv=m1%$>qj~j6aN6NiDK5XZvT9ALX zQp}BtN3NYFt-3U9v@E|=ZOrYDa6yFDnVqN^m&wsi^N8}qXhVK#^+@oWzU^q>LsuBY zG)%1t*O9Px%FblRjGik%So>uzF+y>^k5~QtBx+@d9%?2>p*Rb0(pSiyqsW&Ic@ETfQoLAOVObO`LQRac$MUlDy zBnq1l0NIY>yWaN0ej_Ie@;Jpw44#bY7V2v3X(TzI6p-!fsqF8`#aY|zqawtfZ6K{_Scla&+kF4!Vmmsw&Tzrz5iZ|Yv-tuu6dDUGUknz@<03q! zoqNTvkAP^a2nKL+=@{sb@2?u7v;q8G0)?AJ(m^?2GK^O`)946&UAOU!ZS^DdIA5`D zlgnGKU)tzm0bpsg!LiGg)$xo?&SFR);AK!BDogJ!3iIG_j(AW+$0F4Tz`SEV-vHzd8r_w zNSHSG$!rVG|A-st!4J{$i^(Q_q!G?OzPui z6X+8BZ9wKpsKF&CL3cT8STm*?zZ}nr?D8Okl_1=B*5I?KkOIQO9Y&LuBGB@K=sUhsHg5~@SMdCq9yX{tY^4gBmVDcjkYSQ!2Gju-aa+!pg@ zsI0QLCONw}I}8Ucuc=B>2PZg~ty+PGI>}Es694;`0duuv|5qG47SBA8uAo|uLP)U+ zSVI?5_ASpCiNxJ^zOkFla3&#H<#u@d}+< zG`4DL=k`kGOh;K25eX{nRF5JfbI69jID2SS8BT4-U{xVghGX#1lnI-<7J}fF(CO;OoZ^~MDSdi<-!{l z#eGhAs&rc8j_)Ya^$riE1RA?#I?g(Cvtq$^Q)v4^VTx3-(`-apQWsw>v$73#Inh(R| z4}JVbog`D`AeM5P=KK9|r~4F@?YS}qZ7Kym{w743{3V4C9_XybssJp@O8O~2Xg)vP z%Cbm5f)G}>i^Lyp^5GM;7gOe!KC|Ua{ctT2 zA=E7FwEU##9JhyGh`o}vH6%sQUJp0NbR92D&s&FCN#j*sC!WFjw18(8H!oszMaSZ> z?M6sdTv;gcRkB(aP;=~ED!?pgJh79AzAZxnd4`5rK5L447@EG*5Nld-AJ+zeBY)K! zhg}%;2tfP6-B9{f*VbFQZFVTEjw!|-&vPON`}C*RnBm(;Cl-n@TX$#`jWZV4X_K1nzkY&-E&y3Ls2l^sRv72~L=-c;Lyq!JzOvwRq^;PXMo3}%t&QqTF z80l_ctDNSJ6AYZ)z2wjg{;}d&_U#aq#Wr0)?|Q)NJj}Oye&R9YJnVeEUpjn!KaIH7 z&A1H_U*O=QKc=>sA5C6D+LDhHg4E&Lu~#VPUqqC;%21Ky-Uw)!MId~27RrW=J$VEp zqVV#g>qi({M7pUZipO**G5ZvnaoBI* zHGflh>SdmLmoJB#T0|vD%Hbj}C}uy-4?IvAQ^sYM(3_U@e7RjcG9~N1WN@`RCEi-R z;Z9W9v#@Tq{;#8AjTjhLi|EH$1Ty(pp)-KhCrUhzF+MHj7)mRc(Z7?;ufbu#NP>-s zlYI4nubns|`!Q>?Y0_Mhlhh=v$d#?Bmh6@S1Slo~VrE zBssp!Syz0wG!H?aM&m~IBBLshCU;KacT>9TAiS`;BmxClEw}gt3s<#TN;7NCPVI?m zvY@Ic#5FTMAlzlO%2RVbDr1)eMDcVbyIJVtkWfa8R{?fy7gqI6#ra~Y{R$Kbh98cw zZ94ptVHi8Bi;4;H#Q++xLCg{x2v>|fqTz4Y@DwXuzphLBb{Le<%qCP0HGkbMi(34F zvABx(N!3JD_l1dSTZIyqcr~s~Qs?;Y)lg-;99FRc1~#)%SKoo1-JFMxL$LbOss@($ z%;{-22bBQOxp`!)?aA1evAp80)Z73A@h&)gTxTv|(;zY+ogrhoU2Lh$wBnih;4AJX zMb#ox@cKx1hmR910v$(;BSbVC5i3IAVf+KEQhWD9yl80(7 z*(HwT5!8=Vg5bdFgE51I3;JPdb_Mz*e|>)XTF2eyM?c~6DL={e#f~`ZIVe=?t06a&}x&HQ2{4LilUOH)15uUn1l zMj%cO+w;RV|5+e=FGDZ)Lt4k+q`6muKprHIu!XV&tSg*W17EGO*`BjzpRF@rzv{&w z?pnkrQ9{k@D;|fs)I?Hts2l1B_=tp+jHCn;Vj>aS!+hp|hVX9$GqK}s<6s$vQ$G{hX!lu?*7&9SUmaV3?*{c)jl{eTMm?=!^B0VB5uYoPce))d`Kf$JZ(!dC_CGq1XGMqej*jesl2# z@rDem#QqX0T}DV2UjVPqlPQlo#j5JGKGJAE0L=vRbRpGW8!jEOyXu@XxthJ7)okqn zePiTc=Q)A)7Bvak?0jfKio;jW*)RoO&VV(T(a4zGMEs7hvQ62ulM|%ELZED5Y9&#< zjUJLcP5f=^ovgP$;gT)R5A)S@Y~b3iu060Ng+$5-nU|R}>3AUWk=|wP$!Db64ms2- z(y}?y7+aV;byitlp%XfqhEA&v#FZ?=T@H*)3BGg=Sjf?h)kq>1xGN&!(k$&xJ z@{PJU1zB@GvZH9_+QI{_UP`l&&_bj^w9TLIs?<86f3(*#o7!vFpwu8>Fj7hQoJ)nv zRU>ziped{XvFtgmf|f@#&iRaVMDGHGOQi`9)Y!dec)tS5cu_rY7WP4oY#LXBC^bVO3bSemc!d3UY>kZok;dAN4ysEH6aD`dp~$B zwE&B*&%V_N2AJeA+Z1krPe`-7(7QZiFuo6Q&EV@jW&=+!&@-#fph=>s;AT%@CFGE( z+l6W?g7OAh&ruImxXxXW6Zw&exxAa$tTcE_?o|0iaiZb;se zMc7R)K3n&kh~Fcio1w{MG`MH7`x6fh(Q_lS0O1idV`1jBCk|S}(~G*4io8?Hia)|! z@%6yKkGyd)eOkfpsK6*O2=MtNW30X>0zI~g6&%7_3zHGTBI^|AY9;s*AjoyE_Z!)x z;FUVtv-RJX3H2mcy$A;^l4yea%sgNvGc9;-8N%=jo@)Ln?fqT9YX$zNleyX8i+PK2 zCajiSn z2+ML3$$|O|V2wRu3|J4L&u)9!kF@tt4xAs=gQPLI^hQYA|(`_Z;%*8BilJ742OGzL-H61M{ z1s!#b+Ts>AJ>3V&WiUJFo)mC+H8u8qs?;gj_>2$PLcA)+RWP%}h1+=Dn__w%nNE_y zK3tcg@fI0zKhM9sD!W`m6Xb*?ICGE-&F$El7iGcXwj_Xtr(DuUuIIOOUEl7~nSFhg z<}LCLN*EmqK1OW2!JdSQBFCa_J}lE4E|q)gqb_!%=2{F^>SMVp#>Z3-pkK;ByQnm1 zre5XQ5r|J|4G~nGdv4f1h^Iw=F*)hYvLvsbAmhA(^Xc-Svm zp9C!`EsE#>g`+mTVjw~QHWZ;tpgkD_pb+>tT}b@hLTkly1cDD+dr*aO>F{ogs`I#Q~t7=%kZ%k&6IRk!)y=T8bFj|1p z;wg|jic+xFSkhhUNxa*<;c@14b$;mt%pD(6;%yE`p?qkPt{__6cK@V;JWU}k+JX<^BA@!&dvQpJ%+^Wg zpb`!~%~d~H)0<90t`V|H9beDSN#YsQi^=OpXiTYVgbMO4HHw%1FyF?8}tP(hSRdk{ucz92{O=m168;q`!v*eeObrs9jPqk+C#z#j7F0 z2Q#lL(Cwv*dX1*d04@v^G#1QHVarW%AXWF^68&e(^1k`=*B#_H@%>N2-R}9H@o4wH z36=j&_&w}TF8bTBDe&%1TFk#i+_>p~ZZ`+I0Pp^lNb_%DH?I1h+fCRbuu}1_F!0V# zbN$Wv`B^*2V&3T4Z=>b^5N+_wWPdm0#$|sCxv^tH76AAk8!KQ zh2%ntU~jpR;Bl3^%l;=VEF>G!VS3AE2H!Rz+5a?}Lh>M0V7EMO{5yHS?lb=sgF)gU ztwXnX2IBt}|4#=IBp%YUaf?qT{}=pS)(uEJ}ybIgxP-^p(F0_>XA~NGRlJ>Mc}R`7Y=`##Voa{^|Ac7Fw%* v_jBv_C(eIgCVvP2smpr{*3|yLgKs;)3es@*Zx|HdpAPVYe-li(ckh1y&`ud; literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/config/RedisConfig.class b/bwie-common/target/classes/com/bwie/common/config/RedisConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..e636e574e23156ace6e4a6fa8918d1b8dc298320 GIT binary patch literal 3159 zcmc&%ZBrUo6n-u*uF&IsiFU+ z{S9qC;7pzA59p8T^xOq466oSgXUYuc?!BDz+;g6L&biBNdk< zI&W6A+_5e+dZ?HN4MtHfX*;5z+biyKf?>##(_K-imbpWa$5Uz3Drt7r(v4El;uUdh zTCcPMcev)NN*F`r9i0%*pjz`ao_9>Eo|yKAutd}NY-937DK^a+mc8x0TwoY<&SRSQ z#_QtGwIiN?Wt+y`4H9moSwTdX^`C^r@YoB}K3CQ@dIM41KC{9w>z-DT+m5haSISyz zZ)B9o-bpp;_4GGUbQ_%HU8|FB#maS(KJP|37KjxBJnZn&Idb zv8UTQm14>;Ooz)Fp*Uu{(ne+Eh}VwB&sDW$!40A!oHc7!UaaY|#7EC+j7s;mD1itq5fiXZSo#Y+%Z5BqnzYdNUMA+Mq!g^;2sMM)BQ!@IvSjN8JY zW4PELiOc^Yo#|#6pK7b7l`^;OguF23x>MPfYTK4cjl`*^@_Av~CN(sFDxGGS@6m_; z#WbPdkRk55rEH_Anq#g~dFP!;w^H=7?$jyc+b8Ne(Pg>82&x``Ds#ZF=!c{*ZPMF?=^n=NUhUT3A9Sa)tNP@sDDqm_*{xUUN}ymn=Aq11=Ed52 zCPnAlD~LXTiN-Nu$QO+c{G(oE_5*rZVn*mB+wVe#JD1wtt&dRxc`EAd_j%H@BHQ{~ z$F=KX%1VF2?ZXb-h|D}*u8H=|CR)00{Se_ry8Bw0rwcnP90vLR)}=AFmE^^|!*yJx zH&yxZfyu5<@_m|VG%^~4w@$!*bAP@@a==|2#s~DQHWlz8KB5`J$M^&RY0P}^yPz*m z;X62ie=|1IK;RU?gUG-Ml*}mxX*m=RL<4USeuH-!Q1|8YPy@sJv(Z2UBc~W8opxc9!j$x7!dUqbf5XLE}3G(JDVieK>1(hJJRq}L$ zyxgXspW!B+W0Jc6XKpOXroXLNKo`Pw+@P2S>9V*g&NF?8<~RjL#z zYoz>!C__+`c8>Bp3cnz8)w6+wZe8x4d+zSN$9KN{bM*_r4z?5|@l3&Utfr8_i_pB3 z@JhmKf@FNGRH}wS$kq?dfvG#D+tF)oAUeX|B|MtuKfO2h2${JWBk*mv!zGIq&+P@K z8?;QPFJu%5iE6XiXcAJ94|`>-5t3!wwS%{Wg<`2ih*!MNg0Nh-UGbscZ3}YimfEz`HdcuK~D1G`7qtXp1JZ-2Fg&Y?Y%T`b{Y+zG`1X;x*WWxG?j3J~ScGhSg3M(L}kA5OXeF4!o@Yd5OT#@X>P@{GoZjHOY$+}$cGXc<&lB{z7OLVRE}A7#4pY9 z%ba78(AZ`;tFtHeiS0|!dDNO^n~X>aj~T0z0<0j%k&Gw*G&6;)hMOT`7g*5fE&}oJ VDgJ}lDm)RaD#cR?PZ`IM{|oAmkthHF literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/constants/JwtConstants.class b/bwie-common/target/classes/com/bwie/common/constants/JwtConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..452b534641592a2df98eeb0dd2a45ec22a968bba GIT binary patch literal 544 zcma)(%TB{E5Jj&`OG7D-miJR)gMbCuumd4gZIB89BvLA|s+`mmw}}IJP|9DiLSn%O z@KK0K0FfmNkM9|4u4n9z&$o8~2iPoO3`<2U7qP-H(=b}KrfGGqE#s=wY%o;KK7Zu8 z%T-UeqCl$NA;VPNS7F3e)aGt1G^{erW-Bjh=Z1zg1}*hDGj24jGmKkC{mN)**dTo* zm5h!V#&&kw4Eeg>6?DHTmAHsKTLdj`yOgP#zQf%%4`jkW$$WGtLxvsG@jcxhN}-eR zd_~)LU!i_FjDDL8spFF6$AKeGWa3%L9_}ael`)MOhVB3P(X@Y$a%uO46EPIyPy`*> zrJ)n0xJNgovNI4PhE;AmU2)sHll_6~DgXW<2&4FM_%wRP7IO3pKprc!3ZUm9%7Oj_ zT81ZxOBtRdE@ya(Dp@iL#aVLDQw9oquV62!WrgB6r9tLZise)nFo$^}h6Rc_EPesg Cd3opn literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/constants/RabbitMQQueueConstants.class b/bwie-common/target/classes/com/bwie/common/constants/RabbitMQQueueConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..fc4eccbd1e5f210d1238ef6f9866eda5eae5076a GIT binary patch literal 545 zcmb7>%TB^T6o&ud4uV{~A}e?5!W!dFV`88ZlLA74Z8I$s98#v*i$0et6Bj;!4`nm^0`5Gv~}dXFk8)KLA{yQ9u$qS?p%9$FOPYUDGl9ra8dcPY7`7-Tu>B1?ae~tT literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/constants/RabbitName.class b/bwie-common/target/classes/com/bwie/common/constants/RabbitName.class new file mode 100644 index 0000000000000000000000000000000000000000..6b173f9556f12fb7db5d9e593d7b27d656be2421 GIT binary patch literal 388 zcma)2Jx{|h5Pg^CqlA=}0s|uwLco9*HV{iCrm9F3Ww(P>TqU-YIPklekQn#@{3ygF zMe54(?%v(`-8+B(e0~AA#!-p^_7hAK91up2QYqtS&Msu73DfynzDiL_yAn%Z8@syU zA#OKbTA$0Z)k7Q-;#*^lzatFJFLFXSbI<&GJU3P^+DhsANvg8fbA>E(S(}dk6+{1G z8p7GUaFtMRMhi|VXE|*4G-6|`^ThkprEBX#-0KNAkyNofH!2%g$*5?sM*ki_? I83Rmy0nvk5rT_o{ literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/constants/TokenConstants.class b/bwie-common/target/classes/com/bwie/common/constants/TokenConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..684ace3b3539ed572fbe090abfff328502045cc6 GIT binary patch literal 526 zcma)2O;5r=5Pbtwkbofgg`e?;9PGuD7!yN^BDEN3h@MD`4K9{#LW}yhJehd#2YB)q z8K)H$Z*H=0=gsWCoi}eEFRuU&u#-j{>q%@Ru}Mg4SC@_UiP>lw1Ue^VYo7E2O9oxb zoj3|V;T3x)WZGK2t#!_NX5&Je=J80#>8;a-(KB03&FD3?YeGRETKAUfT5_Ovg0YZ; zY6@EfCAyQsHev2aND&+p;^n317f6~E8cG8&C!S+ZnLY7&>Y;CQLKw;3m;WGgOlYU&W0vQ@UHwo+SiWho_W z1OF4(ne1b3V7x0-wOZeUQ-YgQ6M4vcE=f2;2_jm8S zx$oZlMt}a#%jbybI{Jf26ZCkBGV}zCCs}-x#kW|TWbthl-(m4x7EiJG9*d`w^nDZK z4_N$=9sP*Wk6Ap!;uMRYu=pv9XIcD=#c38lXYmU*doD@On>0v|8}tH?zhv<%gI+Y~ zj6oX)oi*s!2EAm^%Lct-(5nXh#-MY|`fZY46O>$a>kG@%i-HRKkCcy=Cs)eVrOD}P z!(DRgQ-V@bf1teT3d)BVbB%hXy5tiM9$N#!l;qiZWuc9|r`DWbaluZ`m+QN0i%@6Q z%Pa2sY`v!Gse8%`javN}ZzZ)>uN|!{x{Nc@=N`Abc(B5o$f-><8>>FHPjxP zs~((dlm#VrRH~K6&4Ri|wjB}_Q;+T0U#YqWnyd3}{a_h;;lL2s#aLsx zvMy-z{)O7=pRKCM=MKzReZyqM-NnQILzd)*gAmZylh7hE=w+YjQK_jVVKaN6S`a)SJs zjI+5O3PEWkA_5%#+>F~;t}V`%>qw=BTSss$&rpS>7&g^WVN0K;UEWl#9e4iZM#d5 zsI?ZARtbvN8q01S@6KsByy}%`MlJ{Qorz zB~+i95?aXwyOKf4hW4ZuLIl}Zv=8~7DjC#c7Jh$+M;oh0@n(Pkf-LiEW3+3uwK4G+-TD{JEmv$;)H<{ zb$7kF(f}(sxwL}%h_b_N2Vo9}LT(O+f}2u?GLELkGKPAhVq*;ZamXrC5CiQ&zL?Rd zsY*k=%+;Fp1$SSCd!jkRDR(7b2o~+6n=QJMCM~*(uD0kJ7T3~s7G2Ni21Yls_9hnF z$+2jP(GI#=(BQ@Tr$wKoMT_>(UW*nOP19`_?PoE=YX?}okHtQ^)uQ*XcrT0FY1X1U z7=4Z&6x1JFT6zhzyV;l0c5g134lU z`bQWi z+Ksc3#;B|a<7B&WPoyy_GQ!wsH_k;GqmmFHqX;(Qz(J40R3$z4(mo!p$eTy=up54*U)B!|f%`aqP+ z?oM5D0sAhmk}mIzb{Xr`CHDf~czY7#AxFRIWso;48>!o z$6lw*Ns4!$9(#>4GvlKhl$BF}o&)0$PHf^&l(u7UQ12DazP!I}sw~og_$k$FP%3GBhb^8zEA`Nr6;wOgqISQalYnQoqv+Qoob8dzqBiq+UB8 zA`LhNkOrJSyTGJAO)A)ZA(HJBL9(5aU1U;8lZtjJMB3!^gS5#Ru=|-bph^AqfJcg* zMn~)p-S6t-;7xU)UjGzl$fbLb0Y&jNE#ZTqi-yH*iEZI1|1i}R0T@WlVUT~fK1w;^Rxz(rdR1-bRUpKf1|%r9VkQp zpuf;MP!=CGXQ%6bF!ld{ z-gV`o;9~rBuRG0loCM#1ajrBz!0-o}IzV*+#=Qf?ku2fW{1RT0C5+E~Ea6U#JpmV4 zl<-7uYDa9REY!i=)H2G{$c>$%3L#hm4h4NNbB_}0SsBCSO@>KnfDOIMgLcJ@i0Vge0 zD0OX>_EffGNtNZREKjw`$w(DyUt49QYB0KV9#MhRk?$6x^m+OM!WBI=whEKJ3>3qM`#5|Hj|R$ABzRqJBCKl;LFVI!mSVScoB+g+Kz65a;puVBW{P!d*T%u zJbaekmfyTVTewwi&`|zzg>m_9$-iCUe#ToB?q$xf!npgkA;$6fQExGx@ojFyzM|HfX&4KTP;9_6gkz1bsuc>J$G3=LVCO literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/domain/User.class b/bwie-common/target/classes/com/bwie/common/domain/User.class new file mode 100644 index 0000000000000000000000000000000000000000..04d0dbd4c203d2cc8a06be511eed5307ef1fd54d GIT binary patch literal 6170 zcmcgv>vvpL72jtvk2`nnJd>HpZ3`_nXr6>edGw}5OIvCnDUpUIbJkR1(g1%>B z{632xu%j1P`yq=LS^S8_k6HYL#ZOuMjKxbVPP6zq(|(blmrdG2#|`==k7ro?%Aj8x z^ol{R8uXe$zcJ{y2EA_3nnCLZoi*rpjCvzMZwiX9u2dT1`vi4Q9CIIZM;G1N{OEYC zS(&di#snE`KIkr01Ql8U)6GV;HV?a`PaV;~Lk}+lXeyU`-Nu}t1W)$Nd&>tZwYf?| zP)aV(%{3}3D}pSZP1RSb&1$`-In(Zni$_qAN&Amb!7=q*#>X>yAu@Dkf~}PLLw3SJ%uQCB3-!4vw}InrRvHLVO7qnAimgn&J0^PG z<^D87@6Ug(-k+YU{ppFnKhNmzPcO9WPp_!`VdAAj<$+aq5ih*q74MiiR+(*%4csG0 z)Hmj|i%oD+SVc6{8HT=l1E->9~g3CwE2@&RgRfnCl6vwZP%U{-UVt>WC` zUM-}20Ef8c<#?L)jpO@NlyiZ9Zz%wI(QX0xOTMQ)-Vx*jSHYSO3l63b;DSX{0`(E4 z6hhC^(@l5w{z-RPmL!^=>^;V;TieekiT1JJt}LjkMv0Ge<=;6zxgRG9J&rE1y4XZx z@Q)}dHFX+>)MezADx<6rDxiud^HqCLkxR*$7Y|GM@nVsd(_nk?KD`;ESy$D7RySQ= zZOm3~t#b28a`(83yQoEDw9BHaXw;&s=^Bf!WpN!(cd&LnYd5fVBa53@?Bq3vt`W5P zB7MrD&(WtWx`p;y^hwqZur|(OlEpsSZ_%wRKFZ=Y7PqsQU~!Pe=jjWA%0aVNd%0z` zx+pud#k=TNm9g8Rx9DvazejTz-o~pO(cRdrnoS*nt}T2Tn5C6Pr6T60n&W%|qY63Z z8EsTS$3j;7)t5oQ$Dv|k3~!UC096cF^bJCaU`w5$7*Qq<|ce1#(0p$Pu}K zaWe@{Cdl2GjbaoSV}oZ&ye45cL&nu2eHgl>^^edV%mk+jCgQie3oSqKG2*&u}&>BU; zle?r4q>`HxpQ}#L$H0pTOmdjqNz-92yE=8r1?;=LTDm+G?lRh`OYQ}}%WI{}yTUgf z>(nK;72oA`(&gdsw~Tk{k~@^|a))$zB>XKCox0>^=exXKy1YC5EsaiHa^Lh_-XL8b z4R@LB)FroI-{p5XYWNm2hC5lDQ4E>SPrzqBSX6O%;o*W)rr;MCJ$sQbraH1oBrj#9h zhw`V%8nL76l=BdICk9B~iQ6&8#NVO9X-eBMJKh2+I0=9Xj$tPlWN1*rHd;X4P702Q5#on}x*gVJ`U1ypjf0F|7aon=r? zgR*w61ypwO0F|ABoo7%%gYtHv1=Q$^dP0dhIfUdNrtQ_j;h{8Fa)hYX3NRR~@L=KgAl|OZOoIisD6b@xc(GK5>F( zu+~L`;whSi7NrBCMsv_&G$|IS0xeF9Vw^q=EkO;jm*$}vbVBse0<UQGN6!%T2X2t4p64Hc1)~tkQDmsQV8NLbStym=|DNU$s z%}RQvvSUh<>6=jRiq-3+qzR?2St-wCJC-zAzRB`To1C;Xq4qT^Elpd(OXq17NFDhu zF-TveM-b+i=%+71i;yX{)1x?zF4`_kdJI|==l3t99GA{fr26B~;z-pu=m}^EI!-Up zSD+d6GEiTImZU$SguVvNq<`Qq-PfU|=s)-a`6M(;l&DNkK}&NoN6u2|JQkuzW+9Nk zB*b|15d-c8&6;jr zfF5|b7(zQqUD!$B=Mo_8%DSklz}uy9+F|-q4g;SZLA6_Mk}|JAzsOH!T~xNzPS9|U zvcW%h)uZSfN{9c`o_ve896d{y6)s<=t=y{CXz-~dY&2x6Uv+yBGFTK>bF)U80! JH)X4S`hWKDLURBB literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/domain/request/LoginRequest.class b/bwie-common/target/classes/com/bwie/common/domain/request/LoginRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..5f5443efd30e3338629cc641122cee9e68701435 GIT binary patch literal 1895 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 literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/result/PageResult.class b/bwie-common/target/classes/com/bwie/common/result/PageResult.class new file mode 100644 index 0000000000000000000000000000000000000000..29e968719446abaf49c470a4316b9171a1318eea GIT binary patch literal 3304 zcmb_dZF3V<6n-|@%^O>q7Fr0lkjh({wnU+#HfdF`C?$oySq0zNrfaj1CNXLJSvBQuVUGcw~}@UN)&oZU^bO)2dMr|G@to_p_k&dYP|{`v3EzW^A= zMhyK}h(g7p3`=3W6XU!r!@DuOhwCEUkl}q9K9KVt%J5MbAIH#zg$QoSY{;+@K|$u# z2uztj31cmcq5{pX*hWc#GNV8(Sv6ZhJb%mh%*fPjtCY!8lT{F1wARXoU9Xx7`Z~6A zOH0`)o(biwvSm*x2&RUYY3yQUm8ZM&R@uB-Utck+OU6oxn%;b+V3d}PswHbrsoF)W zrr>zKP+8Bc+_B6Ih4o4~Q#EV#lAW0|*31P*BvSuY3!iT^t)zCp-t_ihYNjKOtau%t zHSJ<$b!xj1=~H6cN!NxP*X>H%GX>|j9nB8!?h+$f&Mi&2?v#x3TISlyEwf-} zr?#2%kaxG)3^QU^+_Wh;yUp6p&b3l~=l^lcwU^tg-$JLznrSb&+$5pM&M*~1M=~fi z+*vyXhqftOIjFTPsi_$$TbLTx)PYo|CD}jRsclz0WPVyVN~A@fcgA0^;TvqEics9? zApaIStzs9=Dtk$&e!^|Fn4|L+r}mJZw4|nM(KZUVXN?V~dH6E0nVGPHQJxm(C>D)c z(d|Fx?lQ6G7B0_D(>cnas?$dlPI$eqc@B^)i+0s2)7ZggHk}w;Es>|5PKWK`x*DsJ zSv1+_CF=|6bsC5*R_fJ)dC8KOpu62WXCz@dj^db(!${~jg69+r?fM$XmD4)X7zxAD zaSOL~Oe3q~1-z)^EY9hekmV)3MT)em;zo3#Zk1N0COvIWQchAPb(F9!Lz#3LO-i{O z9jmJh>zKt=J{E0zZpSijj;bSW1%o>T((KJ}tzIaYHPY(b(`dC5FBY@@46q@5)!UL5Zf`N?y-GWu#}Ge6{a~UI;2-PAPgy`pN!@@W4??HR zGILB)GtF7ytfe17`H4c1Mt~Tvfu>ZNdY+P8;vpQz3C<_CXijk@CQtKjl5(B1%DG!i zrjOl6AU$>;!M5>UXZtY61fukAKm8MsBro!s2O^S0Ai&*D3_%CD-*HV&39!32$eSt3 zQ3)D63@_Ya0+5@YXLF1|AYzZ8UOzhe0NRgSxeT z1sx^m7|wX0*EkDk^yuhAgdQT?iJA0aMq8MYn5~$i*%32C_t|nBlf-(1u1Vgs^gRTA zpx}?OXO9(S^U{oKu1S)62zI*Pw{Ll_~}5LATQ$;8W-P}2_{?)rAM}q@Yx`4%Ls_eg(e8?I8{)Za7PH|#`Y>< z`P6x_{Y7?bygomY{vMjTIr1CS@1O-YM}CDmJDP4F;w&jdNBRHFx3bAq>?)VB33co- z_9fIm&~q31SVC=JpL1T_q*2xBQGW#EE?6r~^T=V64)t-KV$TNn6d%KD)CHND1YW14 z`r2vUOQL&T=ySn|Jsghwjs0O-^{$Fn(gQnGhpAf7D_#gktSef9NC(ZnV+ zQ6;p;h{Q+kB9hP=&~Hu-JS%nMUh0DEp|^3FXc{t@p%h^Ir*VZz3$pzVAy0=j-%}tr z#bHUl@&a0=S!vbOBXnJVfc?GQ4a6m`26}pX nT{+gkf!>3Z8|dq7KR2)L`<(KEXlGM2;#|NZ={3wbtNH%`Ddljg literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/result/Result.class b/bwie-common/target/classes/com/bwie/common/result/Result.class new file mode 100644 index 0000000000000000000000000000000000000000..39ab3dfd2df09fa0efb52e5b4f2651548baaceb0 GIT binary patch literal 4886 zcmb_gTX!2*75+w^(MZZTu@zscByFyMBU?6YOaa?*F1`>2UsBr%v_RXjJlINY$&KYa0$g$1BD?VqRefHUVpKo8z z#Q*ruAO8Yi5Wk7TM%hLshH8T3GqQd*hA-K8PS)3C__7RNk>RTe9LF`0`I-!0m*E?- z@l6??m*HC?@@=8MBh(8vUQD11*J5}{=I_ezatz;#;rl{fkKqS0|1gdSUP<6b__0v0 z+W3i$pBiW@d!@X)dc`Z1^TopD?6?8rqJh@2Vxe4d3zaMGYSpuN7x^&^*z=di#wODtVE zZavs&oAxRz#idJb$zAg*41$3(TX;>cwy_>KKGDSS&{cF$woyg^9@*NHU8@Uxv%FHN zSZV-w#~#gW;nDx>&R|b=*Jp{$>=u6PURi)kf>~WrDQ#e~NdR}RntsOJ^?ac8@V13? z;@%R0t8-gio(Z~pCj+I?k$fRv8D$6PIeCROU0KPq7VKrOqN1mn*vJpCJC+CSJ5LSD!RO$gw#PAy#|gqw*8!bk;((X+eCz&_g=mJ z&p*HR-b=6CdHHn*6PR?+C&%^1oj*N)=k{#__cv-&m(`DmgHL11!DU==@F*U0@ELs8 zK?c1J`Z3_(qj=E43clcA2D1(>;SmR)m*pJh9po`$(*MFDt=kHQ-C- z?)th{STc}lmd~Lusn}|78J9z>hkI;qQl~?FFZul;UD-m#TlPvc(q6xZW-__*`fG!= zF)=qcJBOqE$Ti|6`7?t?`GP$9X{6*I+w-} z_Z=lAiNn?KCeA6YM)+$P+=e!D+BY+*&CGI+a4#-qdbM|9EB(HeE+wR`P+YQ=mh1N7 z+zaf*Bfh=<4V!0p;A~S!tYowaBoBokIg4}J*HapjIH9!C`dB1{$ipE-l!qJlulsV| z_oW%kbzi~&426^?GywH$3n#etT`-?TGnlPrFpvKKU>?(O4eQX_#(}_M7_9Rli?(zi zMhh$h6&yw0`>A(eKl(OeGns=m#53s{5}Cdl_GBc{6_Q<$ z@A^r^@F}$70+Pt08y9^K(n^U&R?19#k0nkcc(@g+fsv(e%}ZmUWQ$=L2jgOLL>WjYDD$> zdNKw^AC= zYV(&Q+F45Nuge}6$r-MaLuTgh*po8fMf*)SnUq<>{y@BA$f8KcP&8$UO!QqOZ=yA2 zrJ{k5DOqZUx~59{3(BF5cvbPZ|EhK3Nj$+qh;TJd`a!>7M&Xh&vA~yek(5P54(S&A4S5B{Tq92e9?IyT{f2aFJ`=t`xF`9fbVfe%apGn1ski_AVp*a zuf}3i*HCE})GkHoygbhJvPXKLv5`5i;1Y@|%R6O)K=>riu~2bF$}bPGGuRlng`ID@B1MbN=4TBX}9 zteI}CkupOU7}ux@mKR}uKtN4mX&8i$e>eGn$Li~dFgjrc0)dRVnME<)pPzyng>`x% zU2^apbg{R0C-18vB|y}0Ajvi_bdpo@kfJ+kxIg&-=^73<_L*=~9n`n3heJ5h1!5>} u^l16Ake~f;;7AQe{{TMt$9%$)5>+2h2|pF~^EK}#rP|awp5}f8rT+r2x1c!y literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/utils/FastUtil.class b/bwie-common/target/classes/com/bwie/common/utils/FastUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..c87c0cf6c05b85794a685c3104182abeabc781ac GIT binary patch literal 2597 zcmbVOYi|@)7=BK-?d)y`D5cm|5DRi?x6lzq6iTaDTP(H|S*VD&&hDPwPMOO(GfN9z z_@Ifz#Kcb~BqsX7#P~_Pq)>?b0DlJ{{t4rAX12>xwnlBz_uSs|zR!C(&+PAi-MkIp z04}HTIELFWf)|r`DUG9eS&7jUy77wI9#dkx4ae|m8WT94#%q{Vr&CFsXu~v4Ch@vD zIi*BaiPK8^jE0#sI`M|mIh(|r8qTHh7T(tIjzGfpN&+2|o?kKoyLe#UnDj~|=?@94 z3qsE~OLEkuF)#w@U$FAh80UK2vSqgZDsA);5h(GVm&XUh-z^5zDp05hCsDpAl#t z^$Jp8!=&ZP6BQ>X{nI85Mj_-)d&cxFwXSY9hjSJ^^hU^Y3zjq(g5$YHCA91yLVJcY z<)%`$J+mM%))(iZ>|1WB=$npQ@ci?}g3K9C#SX2q>4(PD%1p&N)E@<4*rr=DvZ1=C zvRBhqIs*Iuvsr<5&$mjJYud_$ODHN#m8@01QmRt&q#4dBKWkU1;5nw{8bwtxRiWq# zv8Kls^RiqmNBfiv=e)v6Q^g)ipZQA{q|Ip@$nL&JAvDZ@Al%J$x-}>Cs1+H}8Q*4} zvZ0wjKV_DqlCf6>l1K7(wdm<=)CaNWb*j5my#`ed1Tqa%8W6Me!i!~TjCxMlbJ@H@ zI<{knhIe(mhgktJsKL~cLtaM#QpXe6rlW|GjyYHw=5?Hht-;aZVpfBvqm1`;Y{6E6 z9aZeT!^6EJBlo`g?9Q#F``3TGd;8NnH*Ws%!_C1#TK9DX;G^k&`236epZpeU>8Rj> zjs?u>SXAN}Tol;!pt`km>A0lMKTziMyH~#b^Xhl^u6%j-^KS&Usamhy*BU<5@ew{| zCq1w`otu|=nlhp%|L@zJ;7T%_exxHi`x;ii&SU&01lnxYZ^A9e#pxnjqfsAC2&95a zE{I-{(wS&zd_9p&xaCSn)6#SVx>i6~o>6z8I*qDX>k@mB1ae&9`L&VDdMxq&62LexW-pa9;V>3rG73EW0 z85{-2mdtgCpEzm4PD-T=e$jVP>ahZLV-HsXedtFby8Jcunz?siU>QvUvFu1Jp}Bc> z2`y8ZU(w1=nyMwc^CSC8V$MUhHc(Qk-vtMwsgfaTCWbLflG_JLspMbAzZ9 zmQ3ugibegX$zXt(x=62kv5yuFv|x}jfv2gjg6+h9&RR(390W=5S*oenZ&4}1ad_Yc z+ODGgXXqX4ma)DG9UHE3uRRK2?-DlhzhfDj68N5*RO5Q{G9II1*R{w)hQ2##Oyw?) zC&PFKu#u=biKd5WGIYF;SOy8d!D#bPt)APdsQywN-8azl3v^XeQCHK=w0@X-O&F@R#S!3dS2w)W literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/utils/JwtUtils.class b/bwie-common/target/classes/com/bwie/common/utils/JwtUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..bb09882b2a4da342cfbbff4370706bd8bb25cc84 GIT binary patch literal 2874 zcma)7?N{4$6n@fDlC}Z1f|Vgm+>k+G>tHfXR-#o{^$>Z_)B?0=9p79~c@AbLQz4y5{|NQsIp8(!NBZgso9K$Dg7{>}SQLN(A zDBi>)G5t)u9*fvOWKi^u4ra4z2(@3SzP4ql3^OovV`!|^sa=Sj8)Jj3}g*c->g@2 zy1lLCDqKlqt-My*)oeq|{ly;Vz^F+W&*rUaI@d7tGzV47OxGQwQcJHloE14_2CIzBvOw$OTIsT03x@ z=bgo6^1QO4I|o+bnPzKM-O+7Yk8T-7Q*-Jzqp;RS{F1nV?!^u@yLJ|lSs%DLIn!Cg zN|$Pu+0b*Yzv+w{5Ymhlb!Vrh+fVdk36p_$19Cmw9gz0B7z^Yc_3f_}m|B0l$%si% zINQ}Kbq<%iVm8Iz7h<55a9Ow)wsNIb@%s6a(6{Ai`7#CM>XB-f@hvGVqC=J>C(qQSlZ=WqhaNdpwu%LWPE$jJ%2hbQRYyqGBIK6$da>lu(vYQBj4d z!os19mnv*f9?9UishGuW=BB+e@|Ib1G}CdbBXc$(={nQ-oDQq(4GR)vcWyAg?vBae zs&G)3z%oCAAz?(z~;l4b}Tru>`W92xn2vf<84yujH_VF7Vmb5bYO?*3PALJmxh;{^#)TueMtz> z><2rMg=p9rR;&Umy4CgbY7X;2TQ~Ffnj>|7TyZQfYIuh~!D0SXDJW659K|_idGkHS zS(;zg4I-)EA^pNZ2-o@Ubr<{bHpi-W0OJG$VQ%0i!tUjLenVUvJwYgSif{<8(DMqB zQ}l*$3RyyS=4bAQUCfwwmL$ep+@wFBz`Hy%!r3I>5^izk*&M|LrZ}7C6QNT1N%09` zhBVkiI1)ar@+*88If3F@kA^@xu@E`LCHw_dkZ5-7R+D2RuGw=VlRO&59R}tCT==M_ zPSBT~NerCe$_1R~(_KU`*W{DxLq;Hz^j(tkJvalO^TEYeFqczpxL*7pG|}{s&S{ER zL^0o$=G6e28PZ(6Jk5Ffqz3hD`^G&cpo1S z^+T?z2>pwzG9F}PEV|O5U`0aj^HH#LUYyrmaj+T_$zKr>)ycmK-=05%oPESu2+RKi Db_6*|b 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

-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 R_fh9~c!7^%X%g(+e*i$qj(Gq8 literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/utils/TelSmsUtils.class b/bwie-common/target/classes/com/bwie/common/utils/TelSmsUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..2547872ef52e23052a1ac6115b1440472da28cd4 GIT binary patch literal 3748 zcmb7G{aX~*6@F*=m}MOSSHZ7TV>AjPED%TtQd1>rfL&0RXh>@8?C!7(S#~xvvnIsa zLfWK8O*KsulT>T$mu=cag{Lb9+y35vBV9~>%74)Iy)!Hhf?^&X_MSQS-1G6CbI-Z| z{_mIn1ki#T0o3D|j2{Ky!?7}KfGVh%pyGl`2udp>rO6l!Ab_Ndp#T&d6F<7x9v0Lq zf=UT$B!DywL1hH*RX@ySuwaXitk7^=#%q4OE|{YMynz!kejLC_{KSu+`Z4CmxF2u& z@iRYuE@a*c;BEXOz|*Jvcqf2$IPJ%o0M6oF8NZZJlroYMHiZo{8B#N9d`JtClho5m zv9=6{!u-0Wh&+|qbT*931%IBtxD)RaD&O@|Vr)`+EM^ybEFMdxd34@)R^bytM-wAPy)iD_oP8cR`cFl@xt)M3@s#rG_;*dEd? z37Z{LvDb7hM4KZSSRePw+nQ=* zv@|0MjSvjl>U6|}nZ2*awT!JBX?iAG1c^RKXsuZYvda;^h9YWaXYE1>2@+$k@@&j$ zr>T<6kdfy8GGXOe)mEv6iMvOwgz{N04r#AuHH*1vADy7Zom#+G_k2M(@;xjB_&1^K!~~j~7fr zWkj=wjKl%eWQp3E$#j%OS+S~}H5tWAOQz-_9a%Ji{tn&rKV5Y)%GAmbASzrjTXmjt^3Aqma-bMJjKHh$;w=l}WF zm2W;f`}MW)JD-k!d;61_+^L!IYx%d|%71Zd=A&!md^L9d#L2J5n7rRAxQtH~Jc*|i zJc}z5R^Dw@b5}vaQCF>NB7ghM{M6L9x6jVJb7tn^m-%xyJvzyrm30ix-*HdUKRV>u zQSdwbp2ei#5BMV+tN`kP-A2Zr6kNrhC9Dbe@9t`~4-V)($M=}~I>Vib?!&s4d{M%N z%p3a$w9(Ed_her%6J1Bz2HUb)IF?907mc+=jY4o658W7NF20*TeItIS*LNEO;2E9AQrV4(%Ex7oYB!|drrZu7ief4@t_J`(gQD~!FG8gG}o?`bi; z*dgr$q9?nfi+yJQQr;92J2x2@y=nA~P2Ltw%N?`AQvbYhym1!2m>N?*C%VyN-#oO!VdlVH;7? zDxYv1U^M1F=QxJFVRWWc%VHuQq{V#%R(X%j=0?Qfy{e-YAAJ&5#IvT!XPuZ`5j~X> zuP#2=IKwJ3d@tJ0{Ovc@I0sqz-OC>~(tJ6|$JJC;>lGo+L_{4$E1y)D!54ctW01d4MgnLud{a?kb&`2UWwX#@tSd)al$ zySl4ULb{Eb+EGahtEhK9wH9oxB6m0TP^Odr!rgT!<2>6-YqTnr@x0J*Xc`KwF5jL* z`2;F*sGPux9D;RISee7Bh}1iQs$jMFyoJ?8n82DHIjrryik0ofVr%{Oy0yi(@JI>j zbNC*`uG7{gg49ln#SRY5j2?InesrN6-So8wYY@gpL@3!u_zqA$$`c3a{~=2BJ8`to z!w#O6}m5$i!9&khg8nrm(}=xj|P$ zOxa!nSL6V<3l%h4Nmr_|9IFu|Y^(7I{~l$)HK;=^Pt@@_w1ekDJXue$8VF4zen>z> mF;p{{eS}Yd=%Y+MUg91cP|5`;dm*trh=eGTqulY~<^KbEeMYkY literal 0 HcmV?d00001 diff --git a/bwie-common/target/maven-archiver/pom.properties b/bwie-common/target/maven-archiver/pom.properties new file mode 100644 index 0000000..b19b7dc --- /dev/null +++ b/bwie-common/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=bwie-common +groupId=com.bwie +version=1.0-SNAPSHOT diff --git a/bwie-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/bwie-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..17df5a2 --- /dev/null +++ b/bwie-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,18 @@ +com\bwie\common\domain\Merch.class +com\bwie\common\result\PageResult.class +com\bwie\common\domain\request\LoginRequest.class +com\bwie\common\domain\User.class +com\bwie\common\utils\TelSmsUtils.class +com\bwie\common\utils\JwtUtils.class +com\bwie\common\constants\RabbitMQQueueConstants.class +com\bwie\common\utils\StringUtils.class +com\bwie\common\constants\JwtConstants.class +com\bwie\common\constants\Constants.class +com\bwie\common\domain\request\MerchRequest.class +com\bwie\common\constants\TokenConstants.class +com\bwie\common\utils\OssUtil.class +com\bwie\common\result\Result.class +com\bwie\common\config\RedisConfig.class +com\bwie\common\utils\FastUtil.class +com\bwie\common\constants\RabbitName.class +com\bwie\common\domain\response\JwtResponse.class diff --git a/bwie-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/bwie-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..5f98a6a --- /dev/null +++ b/bwie-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,18 @@ +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\utils\OssUtil.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\result\Result.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\utils\JwtUtils.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\config\RedisConfig.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\utils\StringUtils.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\request\MerchRequest.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\constants\RabbitMQQueueConstants.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\utils\FastUtil.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\constants\RabbitName.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\request\LoginRequest.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\constants\Constants.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\response\JwtResponse.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\constants\JwtConstants.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\constants\TokenConstants.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\Merch.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\User.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\result\PageResult.java +D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\utils\TelSmsUtils.java diff --git a/bwie-common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/bwie-common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/bwie-common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/bwie-common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/bwie-gateway/pom.xml b/bwie-gateway/pom.xml new file mode 100644 index 0000000..a710c2c --- /dev/null +++ b/bwie-gateway/pom.xml @@ -0,0 +1,44 @@ + + + + safeway + com.bwie + 1.0-SNAPSHOT + + 4.0.0 + + bwie-gateway + + + + + + + com.bwie + bwie-common + + + + + + org.springframework.cloud + spring-cloud-starter-gateway + + + + + com.alibaba.cloud + spring-cloud-alibaba-sentinel-gateway + + + + + com.alibaba.csp + sentinel-spring-cloud-gateway-adapter + + + + + diff --git a/bwie-gateway/src/main/java/com/bwie/gateway/GatewayApp.java b/bwie-gateway/src/main/java/com/bwie/gateway/GatewayApp.java new file mode 100644 index 0000000..962bc29 --- /dev/null +++ b/bwie-gateway/src/main/java/com/bwie/gateway/GatewayApp.java @@ -0,0 +1,11 @@ +package com.bwie.gateway; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class GatewayApp { + public static void main(String[] args) { + SpringApplication.run(GatewayApp.class); + } +} diff --git a/bwie-gateway/src/main/java/com/bwie/gateway/config/IgnoreWhiteConfig.java b/bwie-gateway/src/main/java/com/bwie/gateway/config/IgnoreWhiteConfig.java new file mode 100644 index 0000000..5705d6f --- /dev/null +++ b/bwie-gateway/src/main/java/com/bwie/gateway/config/IgnoreWhiteConfig.java @@ -0,0 +1,32 @@ +package com.bwie.gateway.config; + +import com.alibaba.fastjson.JSONObject; +import lombok.Data; +import lombok.extern.log4j.Log4j2; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.context.annotation.Configuration; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: 放行白名单配置 + * @author DongZl + */ +@Configuration +@RefreshScope +@ConfigurationProperties(prefix = "ignore") +@Data +@Log4j2 +public class IgnoreWhiteConfig { + /** + * 放行白名单配置,网关不校验此处的白名单 + */ + private List whites = new ArrayList<>(); + + public void setWhites(List whites) { + log.info("加载网关路径白名单:{}", JSONObject.toJSONString(whites)); + this.whites = whites; + } +} diff --git a/bwie-gateway/src/main/java/com/bwie/gateway/filters/AuthFilter.java b/bwie-gateway/src/main/java/com/bwie/gateway/filters/AuthFilter.java new file mode 100644 index 0000000..3afd7d6 --- /dev/null +++ b/bwie-gateway/src/main/java/com/bwie/gateway/filters/AuthFilter.java @@ -0,0 +1,99 @@ +package com.bwie.gateway.filters; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import com.bwie.common.constants.TokenConstants; +import com.bwie.common.utils.JwtUtils; +import com.bwie.common.utils.StringUtils; +import com.bwie.gateway.config.IgnoreWhiteConfig; +import com.bwie.gateway.utils.GatewayUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.gateway.filter.GatewayFilterChain; +import org.springframework.cloud.gateway.filter.GlobalFilter; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.http.HttpStatus; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.stereotype.Component; +import org.springframework.core.Ordered; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +import java.util.Date; +import java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * @ClassName: + * @Description: 网关过滤器 过滤用户的请求 验证 token gateway 全局过滤器 + * @Author: zhuwenqiang + * @Date: 2023/6/19 + */ +@Component +public class AuthFilter implements GlobalFilter, Ordered { + + @Autowired + private IgnoreWhiteConfig ignoreWhitesConfig; + + @Autowired + private RedisTemplate redisTemplate; + + /** + * 过滤方法 + * @param exchange 请求上下文 + * @param chain 过滤器链 + * @return + */ + @Override + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { + // 判断 当前的请求 是否 是 白名单 请求 + // 获取 系统定义的白名单 请求 + List whites = ignoreWhitesConfig.getWhites(); + // 获取 当前请求的 URI + ServerHttpRequest request = exchange.getRequest(); + String path = request.getURI().getPath(); + if (StringUtils.matches(path, whites)) { + // 白名单请求 放行 + return chain.filter(exchange); + } + // token 非空 + String token = request.getHeaders().getFirst(TokenConstants.TOKEN); + if (StringUtils.isEmpty(token)) { + return GatewayUtils.errorResponse(exchange, "token不能为空!", HttpStatus.UNAUTHORIZED); + } + // token 合法性 如果token 是假的的 方法就会抛出异常 + try { + JwtUtils.parseToken(token); + } catch (Exception e) { + return GatewayUtils.errorResponse(exchange, "token不合法!"); + } + // token 有效 【是否过期】 + // 获取 UserKey + String userKey = JwtUtils.getUserKey(token); + Boolean hasKey = redisTemplate.hasKey(TokenConstants.LOGIN_TOKEN_KEY + userKey); + if (null == hasKey || !hasKey) { + return GatewayUtils.errorResponse(exchange, "token过期!"); + } + + // String jsonStr = redisTemplate.opsForValue().get(TokenConstants.LOGIN_TOKEN_KEY + userKey); + // SysUser sysUser = JSONObject.parseObject(jsonStr, SysUser.class); + + // Date lastLoginTime = sysUser.getLastLoginTime(); + + // long between = DateUtil.between(lastLoginTime, new Date(), DateUnit.MINUTE); + // if (between >= 10) { + // redisTemplate.expire(TokenConstants.LOGIN_TOKEN_KEY + userKey, 15, TimeUnit.MINUTES); + // } + // 验证通过放行 + return chain.filter(exchange); + } + + /** + * 指定当前过滤器执行顺序 数值越小执行优先级越高 + * @return + */ + @Override + public int getOrder() { + return 0; + } +} diff --git a/bwie-gateway/src/main/java/com/bwie/gateway/utils/GatewayUtils.java b/bwie-gateway/src/main/java/com/bwie/gateway/utils/GatewayUtils.java new file mode 100644 index 0000000..7b789e5 --- /dev/null +++ b/bwie-gateway/src/main/java/com/bwie/gateway/utils/GatewayUtils.java @@ -0,0 +1,98 @@ +package com.bwie.gateway.utils; + +import com.alibaba.fastjson.JSONObject; +import com.bwie.common.result.Result; +import com.bwie.common.utils.StringUtils; +import lombok.extern.log4j.Log4j2; +import org.springframework.core.io.buffer.DataBuffer; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.http.server.reactive.ServerHttpResponse; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +/** + * @author DongZl + * @description: 网关处理工具类 + */ +@Log4j2 +public class GatewayUtils { + /** + * 添加请求头参数 + * @param mutate 修改对象 + * @param key 键 + * @param value 值 + */ + public static void addHeader(ServerHttpRequest.Builder mutate, String key, Object value) { + if (StringUtils.isEmpty(key)){ + log.warn("添加请求头参数键不可以为空"); + return; + } + if (value == null) { + log.warn("添加请求头参数:[{}]值为空",key); + return; + } + String valueStr = value.toString(); + mutate.header(key, valueStr); + log.info("添加请求头参数成功 - 键:[{}] , 值:[{}]", key , value); + } + + /** + * 删除请求头参数 + * @param mutate 修改对象 + * @param key 键 + */ + public static void removeHeader(ServerHttpRequest.Builder mutate, String key) { + if (StringUtils.isEmpty(key)){ + log.warn("删除请求头参数键不可以为空"); + return; + } + mutate.headers(httpHeaders -> httpHeaders.remove(key)).build(); + log.info("删除请求头参数 - 键:[{}]",key); + } + + /** + * 错误结果响应 + * @param exchange 响应上下文 + * @param msg 响应消息 + * @return + */ + public static Mono errorResponse(ServerWebExchange exchange, String msg, HttpStatus httpStatus) { + ServerHttpResponse response = exchange.getResponse(); + //设置HTTP响应头状态 + response.setStatusCode(httpStatus); + //设置HTTP响应头文本格式 + response.getHeaders().add(HttpHeaders.CONTENT_TYPE, "application/json"); + //定义响应内容 + Result result = Result.error(msg); + String resultJson = JSONObject.toJSONString(result); + log.error("[鉴权异常处理]请求路径:[{}],异常信息:[{}],响应结果:[{}]", exchange.getRequest().getPath(), msg, resultJson); + DataBuffer dataBuffer = response.bufferFactory().wrap(resultJson.getBytes()); + //进行响应 + return response.writeWith(Mono.just(dataBuffer)); + } + + /** + * 错误结果响应 + * @param exchange 响应上下文 + * @param msg 响应消息 + * @return + */ + public static Mono errorResponse(ServerWebExchange exchange, String msg) { + ServerHttpResponse response = exchange.getResponse(); + //设置HTTP响应头状态 + response.setStatusCode(HttpStatus.OK); + //设置HTTP响应头文本格式 + response.getHeaders().add(HttpHeaders.CONTENT_TYPE, "application/json"); + //定义响应内容 + Result result = Result.error(msg); + String resultJson = JSONObject.toJSONString(result); + log.error("[鉴权异常处理]请求路径:[{}],异常信息:[{}],响应结果:[{}]", exchange.getRequest().getPath(), msg, resultJson); + DataBuffer dataBuffer = response.bufferFactory().wrap(resultJson.getBytes()); + //进行响应 + return response.writeWith(Mono.just(dataBuffer)); + } + + +} diff --git a/bwie-gateway/src/main/resources/bootstrap.yml b/bwie-gateway/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..5b1a714 --- /dev/null +++ b/bwie-gateway/src/main/resources/bootstrap.yml @@ -0,0 +1,29 @@ +# Tomcat +server: + port: 18080 +# Spring +spring: + application: + # 应用名称 + name: bwie-gateway + profiles: + # 环境配置 + active: dev + main: + # 允许使用循环引用 + allow-circular-references: true + # 允许定义相同的bean对象 去覆盖原有的 + allow-bean-definition-overriding: true + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 111.229.36.192:8848 + config: + # 配置中心地址 + server-addr: 111.229.36.192:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/bwie-gateway/target/bwie-gateway-1.0-SNAPSHOT.jar b/bwie-gateway/target/bwie-gateway-1.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..73b83400051add20f538d4663d033134f9dc25fc GIT binary patch literal 9289 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 Xk^K(+ZJIWz1_rfU$6eAs@;%@e8d|-e literal 0 HcmV?d00001 diff --git a/bwie-gateway/target/classes/com/bwie/gateway/config/IgnoreWhiteConfig.class b/bwie-gateway/target/classes/com/bwie/gateway/config/IgnoreWhiteConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..a84d0200dec19a49eeccf18abe06212fb4622641 GIT binary patch literal 2590 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 + + + bwie-moudels + com.bwie + 1.0-SNAPSHOT + + 4.0.0 + + bwie-merch + + + + + com.bwie + bwie-common + + + + org.springframework.boot + spring-boot-starter-web + + + + com.alibaba + druid-spring-boot-starter + 1.2.8 + + + + mysql + mysql-connector-java + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.2.2 + + + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.4.1 + + + + diff --git a/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/MerchApp.java b/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/MerchApp.java new file mode 100644 index 0000000..ba04279 --- /dev/null +++ b/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/MerchApp.java @@ -0,0 +1,11 @@ +package com.bwie.merch; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class MerchApp { + public static void main(String[] args) { + SpringApplication.run(MerchApp.class); + } +} diff --git a/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/controller/MerchController.java b/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/controller/MerchController.java new file mode 100644 index 0000000..957bc36 --- /dev/null +++ b/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/controller/MerchController.java @@ -0,0 +1,34 @@ +package com.bwie.merch.controller; + +import com.alibaba.fastjson.JSONObject; +import com.bwie.common.domain.Merch; +import com.bwie.common.domain.request.MerchRequest; +import com.bwie.common.result.PageResult; +import com.bwie.common.result.Result; +import com.bwie.merch.service.MerchService; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; + +@RestController +@Log4j2 +public class MerchController { + @Autowired + MerchService merchService; + @Autowired + HttpServletRequest request; + + @PostMapping("/list") + public Result> list(@RequestBody MerchRequest merchRequest){ + log.info("查询列表,请求URL:{},请求方式:{},请求参数:{}",request.getRequestURI(), + request.getMethod(), JSONObject.toJSONString(merchRequest)); + Result> result=merchService.list(merchRequest); + log.info("查询列表,请求URL:{},请求方式:{},请求参数:{}",request.getRequestURI(), + request.getMethod(), JSONObject.toJSONString(result)); + return result; + } +} diff --git a/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/mapper/MerchMapper.java b/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/mapper/MerchMapper.java new file mode 100644 index 0000000..0213b39 --- /dev/null +++ b/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/mapper/MerchMapper.java @@ -0,0 +1,14 @@ +package com.bwie.merch.mapper; + +import com.bwie.common.domain.Merch; +import com.bwie.common.domain.request.MerchRequest; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Mapper +@Component +public interface MerchMapper { + List list(MerchRequest merchRequest); +} diff --git a/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/service/MerchService.java b/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/service/MerchService.java new file mode 100644 index 0000000..d82b77a --- /dev/null +++ b/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/service/MerchService.java @@ -0,0 +1,10 @@ +package com.bwie.merch.service; + +import com.bwie.common.domain.Merch; +import com.bwie.common.domain.request.MerchRequest; +import com.bwie.common.result.PageResult; +import com.bwie.common.result.Result; + +public interface MerchService { + Result> list(MerchRequest merchRequest); +} diff --git a/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/service/MerchServiceimpl.java b/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/service/MerchServiceimpl.java new file mode 100644 index 0000000..a6b4c11 --- /dev/null +++ b/bwie-moudels/bwie-merch/src/main/java/com/bwie/merch/service/MerchServiceimpl.java @@ -0,0 +1,26 @@ +package com.bwie.merch.service; + +import com.bwie.common.domain.Merch; +import com.bwie.common.domain.request.MerchRequest; +import com.bwie.common.result.PageResult; +import com.bwie.common.result.Result; +import com.bwie.merch.mapper.MerchMapper; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class MerchServiceimpl implements MerchService{ + @Autowired + MerchMapper merchMapper; + @Override + public Result> list(MerchRequest merchRequest) { + PageHelper.startPage(merchRequest.getPageNum(),merchRequest.getPageSize()); + List list=merchMapper.list(merchRequest); + PageInfo info = new PageInfo<>(); + return PageResult.toResult(info.getTotal(),list); + } +} diff --git a/bwie-moudels/bwie-merch/src/main/resources/bootstrap.yml b/bwie-moudels/bwie-merch/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..b00cd7f --- /dev/null +++ b/bwie-moudels/bwie-merch/src/main/resources/bootstrap.yml @@ -0,0 +1,29 @@ +# Tomcat +server: + port: 9005 +# Spring +spring: + main: + allow-circular-references: true + jackson: + date-format: yyyy-MM-dd + time-zone: GMT+8 + application: + # 应用名称 + name: bwie-merch + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 111.229.36.192:8848 + config: + # 配置中心地址 + server-addr: 111.229.36.192:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/bwie-moudels/bwie-merch/src/main/resources/mapper/MerchMapper.xml b/bwie-moudels/bwie-merch/src/main/resources/mapper/MerchMapper.xml new file mode 100644 index 0000000..0098b90 --- /dev/null +++ b/bwie-moudels/bwie-merch/src/main/resources/mapper/MerchMapper.xml @@ -0,0 +1,19 @@ + + + + + + + diff --git a/bwie-moudels/bwie-merch/target/bwie-merch-1.0-SNAPSHOT.jar b/bwie-moudels/bwie-merch/target/bwie-merch-1.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..30e06b17d67778a519b78f9597a9e7913b0a0fb8 GIT binary patch literal 6887 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 literal 0 HcmV?d00001 diff --git a/bwie-moudels/bwie-merch/target/classes/bootstrap.yml b/bwie-moudels/bwie-merch/target/classes/bootstrap.yml new file mode 100644 index 0000000..b00cd7f --- /dev/null +++ b/bwie-moudels/bwie-merch/target/classes/bootstrap.yml @@ -0,0 +1,29 @@ +# Tomcat +server: + port: 9005 +# Spring +spring: + main: + allow-circular-references: true + jackson: + date-format: yyyy-MM-dd + time-zone: GMT+8 + application: + # 应用名称 + name: bwie-merch + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 111.229.36.192:8848 + config: + # 配置中心地址 + server-addr: 111.229.36.192:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/bwie-moudels/bwie-merch/target/classes/com/bwie/merch/MerchApp.class b/bwie-moudels/bwie-merch/target/classes/com/bwie/merch/MerchApp.class new file mode 100644 index 0000000000000000000000000000000000000000..3f90e313b5d8e7e25fa585e826c4d63dd5df9dba GIT binary patch literal 733 zcmZ`%O;6k~5PjaSl;# z_yPSO)B!Su*#qBj4d}&CBsIXnt~^nO7cS5bi$9k+@DS( z0xX2m3~Ph0@wxaWcrJ9tN6sppMKz(Y89}VfaWgC*NjEX4$HIz2I%z2|9GS|d@=*Dt z7VnAPd2CALq|#0ma;!>4S?+6XoN&r$y0{k`oAGk$na@1lrLh-0F~)IGIg=WFrn1UP zKB_|w$Uzn4Dy;#c9y$mZ)*q>qa{a%&0Iz#^gSY>tJ1&W3$$tQH;q#5b<&JVDw z+Py%sQyT+>wC~*ppi4Vo0gHG_ApY`h4F+`kjpj9)KhgT~01=YYhllmLhv{Mo%Vd8> Uf1AdUR0I85uHZRo&%6r!1)hnyCjbBd literal 0 HcmV?d00001 diff --git a/bwie-moudels/bwie-merch/target/classes/com/bwie/merch/controller/MerchController.class b/bwie-moudels/bwie-merch/target/classes/com/bwie/merch/controller/MerchController.class new file mode 100644 index 0000000000000000000000000000000000000000..33c8d739965d5649e84a1b78f14cabdd09cbd3ff GIT binary patch literal 2265 zcmb_eTT@$A6#jMsB*3AqSgS3yTq-TM_IRP%7D}bq+Dif$EH6IoB%5&X0H&*PFc-6p_6yjr04lsYRC6Nfvb_(uoBSRLLkd(#ScEU^GbT5y&wzP4_0ki7qBO* z+Fx-3RixTfpgyarPzzklEXig0d1T*J+FsPUV&COpppuY_87b2;?s$%#pwk0`^8!s% zevytG&p4i%u9ovE_*fF5Kxf7;NOxWaj@j3UO?uHGSDvhPb3vR6*+UERfP*8Uqll>>7@NcK_Wm8@U)#`pe@pkpL_?U%L zc-6u&92dB@@%>MmPkvng>buP!ejeF;@_ggjqldZ7^)J4xZ8pALTmR$n_I~~Gqm6H# za&O@zUP)of!Uwo*;SO%6@S%mfxR=6x3lEU7Z~`x-khSnS&It_eX-@~&X$sR8W-!ZS zGp^dMWb>QJFR21cxBp1ZMWCZp?=%l{_ZY>2!Kg3A+UB%raSVDZ+2V|5@fn2Db@DPV z+3rHU6tXegpPQN9GHz+#Y-4GG3j;e;#yn&DTIv3mZqCN!cniM3gPj^{ARBEQg<=}& z`8^@u??oWjVc@dTV}A(ZK*djw!01ktQ?3j{x_y`y^I)Nu4_*gf$Ry5~ZHWU}N48i;o>E~l0?~&w*Io4JEXOYN z(DX2k-#|A@?O=rH;ir#`xLo_dTMG35_1BE&woBX-`)Y>9L5RkC9p4`TPYs|Tpg!{)tIjpAs5;jTv#oYK}XLG`G6U@ zVmWKYz>f_`eegvO*pl>wua2cp~G*7qc5l$qXXLHyn5Xk3wCX3L#b8 zkY(+TcC?-ue}27x0Jy_>jZq2f6oiWz$BkPrwAT$s_JJ^Meyt#kOIx)%cAg1u|N8v>U+NaR;$Gn~ zyBo faYP^t?KyDSp}C}?~{2*xZB=oq6$K@yCKS=_}Gq_F(hyEMBU=dsT8go=N| z@BRj@vPje_e}F&A^7PDPK^{d?<%gNu-S^e^+;jWyfByIjzzsC3IEVQv7I3wSMJ&0M ztl}Cz7=efDqxcXv%J`^?inFTV<0?ME%`!eM*-ivw$Y9P+1fK& zX6G`<6ta0>M4tXTUv#Q z+*NHG#ZRQ_JIJ-vMtdgKI}AI#VnSnA1qN$#+XAIK(T)~4-!P%xNQ0J+A1Y=Om}o?8 z8NIh0EwZ@kX-q79Dgu9WzbQY;& zY&UJmp6ckX_SrW1fXg~9XgT#?Y@YO<<8$pu)Roh2m9=_#m9cK0k?sXTj5W3GMmrCb zV}jK&J2bLoI-#;@%ufFFze0cfK1F97K6!VJn-r~nUbU;cx)r5yTi-K|Y?GPh5OJ1V zcLZuD@;qUUI9i)={Bi9`vT4a3wLfl#i2mOgmzo`DM9B0Q0LQBMA|Yx@@(4O;$&FvXJbHW zC04~*a+=rb^?X!M_TeRF`gLUkd%{~MaO-6mdTe$ptl}ZxM?WiT{czd>&SNYk7B|>CkMDYwm-_HMr;f3E(9zgR?RK9zPk&VTD zRIfh6=r8mbgv&CKc~4SK;T`6>%p5M`d>*yP$oP1hdckj;*)Ot$%NW7Cm}Z + + + + + + diff --git a/bwie-moudels/bwie-merch/target/maven-archiver/pom.properties b/bwie-moudels/bwie-merch/target/maven-archiver/pom.properties new file mode 100644 index 0000000..97f20e5 --- /dev/null +++ b/bwie-moudels/bwie-merch/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=bwie-merch +groupId=com.bwie +version=1.0-SNAPSHOT diff --git a/bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..d3801aa --- /dev/null +++ b/bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,5 @@ +com\bwie\merch\service\MerchServiceimpl.class +com\bwie\merch\MerchApp.class +com\bwie\merch\controller\MerchController.class +com\bwie\merch\service\MerchService.class +com\bwie\merch\mapper\MerchMapper.class diff --git a/bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..557a5e2 --- /dev/null +++ b/bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,5 @@ +D:\zhuangao5\safeway\bwie-moudels\bwie-merch\src\main\java\com\bwie\merch\controller\MerchController.java +D:\zhuangao5\safeway\bwie-moudels\bwie-merch\src\main\java\com\bwie\merch\service\MerchService.java +D:\zhuangao5\safeway\bwie-moudels\bwie-merch\src\main\java\com\bwie\merch\service\MerchServiceimpl.java +D:\zhuangao5\safeway\bwie-moudels\bwie-merch\src\main\java\com\bwie\merch\mapper\MerchMapper.java +D:\zhuangao5\safeway\bwie-moudels\bwie-merch\src\main\java\com\bwie\merch\MerchApp.java diff --git a/bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/bwie-moudels/bwie-merch/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/bwie-moudels/bwie-rabbit/pom.xml b/bwie-moudels/bwie-rabbit/pom.xml new file mode 100644 index 0000000..7c65123 --- /dev/null +++ b/bwie-moudels/bwie-rabbit/pom.xml @@ -0,0 +1,37 @@ + + + + bwie-moudels + com.bwie + 1.0-SNAPSHOT + + 4.0.0 + + bwie-rabbit + + + + + com.bwie + bwie-common + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-amqp + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + 2.9.10 + + + + + diff --git a/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/MqTest.java b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/MqTest.java new file mode 100644 index 0000000..67136e1 --- /dev/null +++ b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/MqTest.java @@ -0,0 +1,11 @@ +package com.bwie.rabbit; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class MqTest { + public static void main(String[] args) { + SpringApplication.run(MqTest.class); + } +} diff --git a/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/config/RabbitAdminConfig.java b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/config/RabbitAdminConfig.java new file mode 100644 index 0000000..dfb03e1 --- /dev/null +++ b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/config/RabbitAdminConfig.java @@ -0,0 +1,55 @@ +package com.bwie.rabbit.config; + +import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; +import org.springframework.amqp.rabbit.core.RabbitAdmin; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * RabbitAdmin RabbitAdmin是Spring-AMQP中的核心基础组件,是我们在Spring中对RabbitMQ进行初始化的必须组件,提供了RabbitMQ中声明交换机、声明队列、绑定交换机和队列,以及绑定路由Key等其他AP + * RabbitAdmin 配置类初始化 RabbitAdmin + */ +@Configuration +public class RabbitAdminConfig { + + @Value("${spring.rabbitmq.host}") + private String host; + + @Value("${spring.rabbitmq.username}") + private String username; + + @Value("${spring.rabbitmq.password}") + private String password; + + @Value("${spring.rabbitmq.virtualhost}") + private String virtualhost; + + /** + * 初始化 rabbit mq 连接工厂 + * @return + */ + @Bean + public ConnectionFactory connectionFactory() { + CachingConnectionFactory connectionFactory = new CachingConnectionFactory(); + connectionFactory.setAddresses(host); + connectionFactory.setUsername(username); + connectionFactory.setPassword(password); + connectionFactory.setVirtualHost(virtualhost); + return connectionFactory; + } + + /** + * 初始化 RabbitAdmin + * @param connectionFactory + * @return + */ + @Bean + public RabbitAdmin rabbitAdmin(ConnectionFactory connectionFactory) { + RabbitAdmin rabbitAdmin = new RabbitAdmin(connectionFactory); + // 设置自动启动 + rabbitAdmin.setAutoStartup(true); + return rabbitAdmin; + } +} diff --git a/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/config/RabbitmqConfig.java b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/config/RabbitmqConfig.java new file mode 100644 index 0000000..7b55a00 --- /dev/null +++ b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/config/RabbitmqConfig.java @@ -0,0 +1,16 @@ +package com.bwie.rabbit.config; + +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.amqp.support.converter.MessageConverter; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class RabbitmqConfig { + // 消息转换配置 + @Bean + public MessageConverter jsonMessageConverter(){ + return new Jackson2JsonMessageConverter(); + } + +} diff --git a/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/consumer/SendSmsConsumer.java b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/consumer/SendSmsConsumer.java new file mode 100644 index 0000000..f1b2f8b --- /dev/null +++ b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/consumer/SendSmsConsumer.java @@ -0,0 +1,49 @@ +package com.bwie.rabbit.consumer; + +import cn.hutool.core.util.RandomUtil; +import com.bwie.common.constants.RabbitMQQueueConstants; +import com.rabbitmq.client.Channel; +import lombok.extern.log4j.Log4j2; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.concurrent.TimeUnit; + +@Component +@Log4j2 +public class SendSmsConsumer { + @Autowired + RedisTemplate redisTemplate; + + @RabbitListener(queuesToDeclare = {@Queue(RabbitMQQueueConstants.SENS_SMS_QUEUE)}) + public void sendSms(String phone, Message message, Channel channel){ + log.info("开始发送消息"); + String messageId = message.getMessageProperties().getMessageId(); + try { + Long l = redisTemplate.opsForSet().add(RabbitMQQueueConstants.SENS_SMS_QUEUE,messageId); + if (l==1){ + String code = RandomUtil.randomNumbers(4); + HashMap map = new HashMap<>(); + map.put("code",code); + redisTemplate.opsForValue().set(phone,code,5, TimeUnit.MINUTES); + channel.basicAck(message.getMessageProperties().getDeliveryTag(),false); + log.info("消息发送成功"+code); + }else{ + log.info("消息发送成功,请勿重复发送"); + } + }catch (Exception e){ + try { + channel.basicReject(message.getMessageProperties().getDeliveryTag(),true); + redisTemplate.opsForSet().add(RabbitMQQueueConstants.SENS_SMS_QUEUE,messageId); + }catch (Exception e1){ + e1.printStackTrace(); + } + e.printStackTrace(); + } + } +} diff --git a/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/utils/DLXQueue.java b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/utils/DLXQueue.java new file mode 100644 index 0000000..c7a8618 --- /dev/null +++ b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/utils/DLXQueue.java @@ -0,0 +1,84 @@ +package com.bwie.rabbit.utils; + +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.DirectExchange; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.rabbit.core.RabbitAdmin; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 死信队列工具类 + */ +@Component +public class DLXQueue { + // routingKey + private static final String DEAD_ROUTING_KEY = "dead.routingkey"; + + private static final String ROUTING_KEY = "routingkey"; + + private static final String DEAD_EXCHANGE = "dead.exchange"; + + private static final String EXCHANGE = "common.exchange"; + + @Autowired + RabbitTemplate rabbitTemplate; + @Resource + RabbitAdmin rabbitAdmin; + + /** + * 发送死信队列,过期后进入死信交换机,进入死信队列 + * + * @param queueName 队列名称 + * @param deadQueueName 死信队列名称 + * @param params 消息内容 + * @param expiration 过期时间 毫秒 + */ + public void sendDLXQueue(String queueName, String deadQueueName, Object params, Integer expiration) { + /** + * ----------------------------------先创建一个ttl队列和死信队列-------------------------------------------- + */ + Map map = new HashMap<>(); + // 队列设置存活时间,单位ms, 必须是整形数据。 + map.put("x-message-ttl", expiration); + // 设置死信交换机 + map.put("x-dead-letter-exchange", DEAD_EXCHANGE); + // 设置死信交换器路由 + map.put("x-dead-letter-routing-key", DEAD_ROUTING_KEY); + /*参数1:队列名称 参数2:持久化 参数3:是否排他 参数4:自动删除队列 参数5:队列参数*/ + Queue queue = new Queue(queueName, true, false, false, map); + rabbitAdmin.declareQueue(queue); + /** + * ---------------------------------创建交换机--------------------------------------------- + */ + DirectExchange directExchange = new DirectExchange(EXCHANGE, true, false); + rabbitAdmin.declareExchange(directExchange); + /** + * ---------------------------------队列绑定交换机--------------------------------------------- + */ + Binding binding = BindingBuilder.bind(queue).to(directExchange).with(ROUTING_KEY); + rabbitAdmin.declareBinding(binding); + /** + * ---------------------------------在创建一个死信交换机和队列,接收死信队列--------------------------------------------- + */ + DirectExchange deadExchange = new DirectExchange(DEAD_EXCHANGE, true, false); + rabbitAdmin.declareExchange(deadExchange); + + Queue deadQueue = new Queue(deadQueueName, true, false, false); + rabbitAdmin.declareQueue(deadQueue); + /** + * ---------------------------------队列绑定死信交换机--------------------------------------------- + */ + // 将队列和交换机绑定 + Binding deadbinding = BindingBuilder.bind(deadQueue).to(deadExchange).with(DEAD_ROUTING_KEY); + rabbitAdmin.declareBinding(deadbinding); + // 发送消息 + rabbitTemplate.convertAndSend(EXCHANGE, ROUTING_KEY, params); + } +} diff --git a/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/utils/DelayedQueue.java b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/utils/DelayedQueue.java new file mode 100644 index 0000000..bcfe767 --- /dev/null +++ b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/utils/DelayedQueue.java @@ -0,0 +1,83 @@ +package com.bwie.rabbit.utils; + +import org.springframework.amqp.AmqpException; +import org.springframework.amqp.core.*; +import org.springframework.amqp.rabbit.core.RabbitAdmin; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 延迟队列工具类 发送延迟队列 + */ +@Component +public class DelayedQueue { + + /** + * routingKey + */ + private static final String DELAYED_ROUTING_KEY = "delayed.routingkey"; + /** + * 延迟交换机的名称 + */ + private static final String DELAYED_EXCHANGE = "delayed.exchange"; + + @Autowired + RabbitTemplate rabbitTemplate; + + @Resource + RabbitAdmin rabbitAdmin; + + /** + * 发送延迟队列 + * + * @param queueName 队列名称 + * @param params 消息内容 + * @param expiration 延迟时间 毫秒 + */ + public void sendDelayedQueue(String queueName, Object params, Integer expiration) { + // 先创建一个队列 + Queue queue = new Queue(queueName); + rabbitAdmin.declareQueue(queue); + + // 创建延迟队列交换机 + CustomExchange customExchange = createCustomExchange(); + rabbitAdmin.declareExchange(customExchange); + + // 将队列和交换机绑定 + Binding binding = BindingBuilder.bind(queue).to(customExchange).with(DELAYED_ROUTING_KEY).noargs(); + rabbitAdmin.declareBinding(binding); + + // 发送延迟消息 + rabbitTemplate.convertAndSend(DELAYED_EXCHANGE, DELAYED_ROUTING_KEY, params, message -> { + message.getMessageProperties().setDelay(expiration); + return message; + }); + } + + /** + * 构建延迟交换机 + * + * @return + */ + public CustomExchange createCustomExchange() { + Map arguments = new HashMap<>(); + /** + * 参数说明: + * 1.交换机的名称 + * 2.交换机的类型 + * 3.是否需要持久化 + * 4.是否自动删除 + * 5.其它参数 + */ + arguments.put("x-delayed-type", "direct"); + return new CustomExchange(DELAYED_EXCHANGE, "x-delayed-message", + true, false, arguments); + } + +} + diff --git a/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/utils/TtlQueue.java b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/utils/TtlQueue.java new file mode 100644 index 0000000..1992b93 --- /dev/null +++ b/bwie-moudels/bwie-rabbit/src/main/java/com/bwie/rabbit/utils/TtlQueue.java @@ -0,0 +1,64 @@ +package com.bwie.rabbit.utils; + +import org.springframework.amqp.core.*; +import org.springframework.amqp.rabbit.core.RabbitAdmin; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 发送TTL队列 + */ +@Component +public class TtlQueue { + // routingKey + private static final String TTL_KEY = "ttl.routingkey"; + /** + * TTL 交换机大的名称 + */ + private static final String TTL_EXCHANGE = "ttl.exchange"; + + @Autowired + RabbitTemplate rabbitTemplate; + + @Resource + RabbitAdmin rabbitAdmin; + + /** + * 发送TTL队列 + * + * @param queueName 队列名称 + * @param params 消息内容 + * @param expiration 过期时间 毫秒 + */ + public void sendTtlQueue(String queueName, Object params, Integer expiration) { + /** + * ----------------------------------先创建一个ttl队列-------------------------------------------- + */ + Map map = new HashMap<>(); + // 队列设置存活时间,单位ms,必须是整形数据。 + map.put("x-message-ttl", expiration); + /*参数1:队列名称 参数2:持久化 参数3:是否排他 参数4:自动删除队列 参数5:队列参数*/ + Queue queue = new Queue(queueName, true, false, false, map); + rabbitAdmin.declareQueue(queue); + /** + * ---------------------------------创建交换机--------------------------------------------- + */ + DirectExchange directExchange = new DirectExchange(TTL_EXCHANGE, true, false); + rabbitAdmin.declareExchange(directExchange); + /** + * ---------------------------------队列绑定交换机--------------------------------------------- + */ + // 将队列和交换机绑定 + Binding binding = BindingBuilder.bind(queue).to(directExchange).with(TTL_KEY); + rabbitAdmin.declareBinding(binding); + + // 发送消息 + rabbitTemplate.convertAndSend(TTL_EXCHANGE, TTL_KEY, params); + } +} + diff --git a/bwie-moudels/bwie-rabbit/src/main/resources/bootstrap.yml b/bwie-moudels/bwie-rabbit/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..8a7f28a --- /dev/null +++ b/bwie-moudels/bwie-rabbit/src/main/resources/bootstrap.yml @@ -0,0 +1,43 @@ +# Tomcat +server: + port: 9008 +# Spring +spring: + rabbitmq: + host: 111.229.36.192 + port: 5672 + virtualHost: / + username: guest + password: guest + listener: + simple: + prefetch: 1 # 每次取出来一条消息消费 消费完成消费下一条 + acknowledge-mode: manual # 设置消费端手动 ack确认 + retry: + enabled: true # # 是否支持重试 + publisher-confirm-type: correlated #确认消息已发送到交换机(Exchange) + publisher-returns: true #确认消息已发送到队列(Queue) + main: + allow-circular-references: true + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + application: + # 应用名称 + name: bwie-rabbit + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 111.229.36.192:8848 + config: + # 配置中心地址 + server-addr: 111.229.36.192:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/bwie-moudels/bwie-rabbit/target/bwie-rabbit-1.0-SNAPSHOT.jar b/bwie-moudels/bwie-rabbit/target/bwie-rabbit-1.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..73b9d41eb2083dda493b8a3c6f117577f2e4034e GIT binary patch literal 11772 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 N!t>k0GX(_Xe*i(d`NRMK literal 0 HcmV?d00001 diff --git a/bwie-moudels/bwie-rabbit/target/classes/bootstrap.yml b/bwie-moudels/bwie-rabbit/target/classes/bootstrap.yml new file mode 100644 index 0000000..8a7f28a --- /dev/null +++ b/bwie-moudels/bwie-rabbit/target/classes/bootstrap.yml @@ -0,0 +1,43 @@ +# Tomcat +server: + port: 9008 +# Spring +spring: + rabbitmq: + host: 111.229.36.192 + port: 5672 + virtualHost: / + username: guest + password: guest + listener: + simple: + prefetch: 1 # 每次取出来一条消息消费 消费完成消费下一条 + acknowledge-mode: manual # 设置消费端手动 ack确认 + retry: + enabled: true # # 是否支持重试 + publisher-confirm-type: correlated #确认消息已发送到交换机(Exchange) + publisher-returns: true #确认消息已发送到队列(Queue) + main: + allow-circular-references: true + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + application: + # 应用名称 + name: bwie-rabbit + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 111.229.36.192:8848 + config: + # 配置中心地址 + server-addr: 111.229.36.192:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/MqTest.class b/bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/MqTest.class new file mode 100644 index 0000000000000000000000000000000000000000..0f7f2f34b3ae7456f45453a5c4b4d192d5bbff66 GIT binary patch literal 729 zcmZ`%OHbS|5dOTcKz3VTc@+9oZwm)};et{j!Ad=aw(6qop(iJpU`Xu6aiD*zr&g8d z59p6VjI&hTR@+#av1i8LH#44JcRzjt*u$$3ZEOU15@0jL7M=!p#?X1Av~mXw&B6AV zp*1w8l3^)UTE44_MA{RPya6@K33YPLXK6bD8)mqjT258P1g=$V>4b(JnxxDyD|2XC&oA~DrZuo&s0`f z$wzg_5jhSglU$`WK-5DA0aY=-OiJ|M+5$Z9;RRm)<$9l7$kZ|H{5O{=`wTNZi>;`C z$zY~^!(5bQG^bG)_iHeq+ix^)(fp3qr#}!OIemCouir3TEMb}K VEA+Q%6iGGEujMM%NPFgW;2r~Ax7Ppw literal 0 HcmV?d00001 diff --git a/bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/config/RabbitAdminConfig.class b/bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/config/RabbitAdminConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..7c9c706113a8f3f39ca6c6285e1ceb5007d7fefb GIT binary patch literal 1911 zcmbtVX-`u@6g^XxLR+Ek`;J-)@(^*wg^Hpd>Jrf=`fb_{@U(po=S@*#{7;$~NHp;W z_@j*HzQ<--BgPQky)*aDId{&?-2V9a^*ew`+|MA7@iZ=EkivLB1~DPtMe!!ZyCmLa z@vew>RlI9yT+bkfDf!$;<7OJS6uK9~$SLe9ztYRvYv^FXn{(C=7N!&qK5YfgZ<>l9 z`PGIg1wrVv^TQxgm@J2O!Hbq8b>8Zxc^lf-Ue)Lz^5%8Th4#ItHx_sm-Dnv?_AHB| zuz%=7vUbesYSnkmH)B%BM}@vtWNbh{g~RPh>p@9e(osa#ddI}|AQQ98zI83#NOpRx z9dt{a>Ag4nz;~3Ut1w)lKr>;TwG5X1z&vU-tHwUl6hkBnYr0X<)|c_xWVc)NsZOz6 z3!7f`t#7_TE1M=-MJrvJ=kvjySB@nRjmM8Q|YCkX|#)N3A!y$5jh<(J%6Y&7flKC78 z{1aB$Gm+O=`)G%lkw_!eonw^u1jF2r)Ka1CqRoFp?#0L|c03$qB?F_Ij016e0{#45 t9KfZRDkxe5$m38VA&T}S(v5i>|_yuq3{+s{+ literal 0 HcmV?d00001 diff --git a/bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/config/RabbitmqConfig.class b/bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/config/RabbitmqConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..e996f859ef4490f4a17d1b62a6b646492d9828c1 GIT binary patch literal 705 zcmb7C%Sr<=6g{c6t@Tm0K9?@U2WUXVjiRWaAXP!7;4(ADF}0J_Ovd_Ix)K!p06$8+ zllsPm&f-4KoO?L;lINF)CjiTsD5D!AMU0k_%ko$e;|zs0rIlM}=$f6YGvv3;nPjNc zl$Hl+97ua2f+iuuH4}ZPx>?IfRRf{KSt7WX$?C|+d0TP}( zO0`q5tgA$kzfG-;6HXaT_7;BCCW}tqI4(Y@d`k*VTIFMt+EDJOZ13v#9TpqnS}?5q zRkE{rYQ2}$J`_-7*!{<@dm_A~n=S4AdbsI79iCw@v(1}ANBl5o$k1U5d3p}nmjk^5 z6e*Ud_ycke=MDFw+UAKhg@HyZA WWxn(_Um;GWKIpkaJ`Up@tpcySv%6UU literal 0 HcmV?d00001 diff --git a/bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/consumer/SendSmsConsumer.class b/bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/consumer/SendSmsConsumer.class new file mode 100644 index 0000000000000000000000000000000000000000..058d814e2a217c59b449bfe24739baaf1b5d3565 GIT binary patch literal 3708 zcmb7H`*#%89sk^9cW1MifNp{|YCu40c<9K(g4vV`0W`Sbkqx1dR(f~#CK=eBS!QNI z`h>Ptl%mqwm$pb-Eq&_I_5`VY{Lphe$M%>0QvZW^>c8MQeSGfBnk?B6W6sIkx!<|p z*XR4X`}hC;@h{rF-U zUo!Az{rxK$+=;Im_*w>MaMr-r1zOAAguu$Y=TBI&D(y*Skuu@96MEfp%*u18{G33C zuS!lZqAJz043)s?;hGyd6*cMvPO+?ZxULt<(DB?rVB5TUi%PnIH7@PY z^G{oHhQZoV3%yegeWKV@zvDXLcH-8%c2poS;Faje(!ArUeYHwa`6H6r1hRS0mgQ0D zJ9=LyCc;UF>euCMuVNKXIm+^7vFLpX4pfmnd3!Sp{unZ=L zWR=#5vcOFZOnHw15ol2x1(r3?cRy~cszzV)5T0ap(sQ{QmDoaoyBFySdF|Z;p|p<^iYUM=U<2P^sj6wegAns2K;j!x*VIjMQCu0x&6x^c{H0<_jw zUPzFw0k2YJsNFDU;$B!LK8d?o9@Bq1GkxX!^s^V=KXdlIsdMk0ea*nPOgxEmM9#!h zc-p{u6W_)K6TMh#;29Io;yHo)W@?8o70-=oCzNg&STR;Z2O}SK2}NYaU~bDWaM8qf z@LfjB#Pj%`f$y960e&cOb9A&Z$xZwSFPL}{KQ{0a6PNIkfy*X-il3SIxn_OB#LIX^ z;MTcXcGjG7N%?d(cCha3x#y;ze#yiyaK*$gaY0~B^XCo!e(mb?`M4%IcG!g@P9;Cof&hmK+~ZSGw=Zw59QILpNBw-)8o zEQ^3St6q1LE~=dcsy>JWHqIw^!HLKwBcu6MR04X)Kmjo#LKd|R36F&cLf4#T|y%Wc=1uX2cE zL*F2xO*|+Wyk)(Eje=)jY^~M^#$QergiJKE)vz~_;tAUL@|#1U@_S> z-`9h4gx88gY>^yALxcMcjqENkzZ<5=JVzO$&5Oy6IVLblfzFGE76rxLkFY_P(GuqI zE>(6;D*yC|WO=8HGH~o2_HoXH-o20NGbvfEaw-Vi)2Ox{o#uem`y5?NhhBV&5s1VN zD?KWCKhl@PFdCL4zO*?`Rxi{KhNR0|3p-~Ut&Q)W0$Uo587Rvj$i=0<(5)3KdC6YG z+j0vp!kj$O&6)Fr`*jg@JvMMnfzEPm<;o$&=Y8DiRd7wNy9)6-Us|w{Pkk8Z#3nw? z_y9KZvJbxBk55qunOhP(mnQAqH_(!8y@o^!HcTNog;ZZ+-5+2~A)U=6{*3mq*6u{% z8q8MoCA;~(BlG+Vc+7YcOZrl8Vd>aa+|*}u8`+z?Q&Y$uj(I!Rcc;40^#*RahFep( zCl>t)>gi5^8sEZgWV}6l#}s-rU(XblM>bqRhc;+Mebd*M{E#d3|#9-@YaN!f(de{j*jpn<&~plzptNB&1+QwH)8amc{F=;aXzeoK8oN&Csy(MqMD zI#3a!d|O802l#*R2*iVQNT3j4g!yu4Cizy9sQ=ostKY<3zekHsKz4dQ;{?po_)+d! Ma5$2wshGeOq{|Vqj{Gj3>#>2Rw zq6Om-+-$=HZbdK|##98iBe)a6bQm)#+AteM7IRK){4RPhLp zBlt{(fs|CIrBy~+2^EXThOwleb98KI^zro6-P!TUYmaY^%`1paJTX=bJ!e>1ea3T4 zE1Oi%K4M$0XIS2xkt+%XZFMH?zL&B4BiDx}uZ<~)RF@r&kxH4~tjHH~hDXbR3ERo) zZb3R;bd0=MwVh?%$UiOUrLB6}c7#4%XT}WT(?!cO^J30)%~VbdS(fb?p2@TnoNwqe zB@D~e7mc)MJL|f!WuOlgJ$u!3M22qLNqOvVuTQ@0^0*h@Bw{yCzIaOcwJg;mjH=N5XEWjoh5!m{Kk)gWi(K`VLQ| z?Yy2^HAMxZqG#q@eRSgfouVkpFq$i@Ohr~O(X+jaZ`4eso`|%Utl2Yec_J&Eq|7?{ zREC*kw@8JIFfxAFk{l`+Y$LO*B~IC$0#&RPOvi7Of;|n~6PUbFkcjxSlZENGi~>t) z^@A#Sf9Iz7RH;DFkzr5M-q>1tiQHwT{Y?x<>-IBZIAvNH@>0QxCZ@xsjS_eXM>S@2 z3mtMxuD4uv*Ee{*P-*f&edQNxKq{ZV8ciA4%Z%K4OL$9m=C*`ic*0=|)ES?4S53*N z_6i;PC9(?o8rI~}QrI5T(MRlj!M23uB{lS-Pr>eLORgL465B$rYl*yYT_YB|cmc=?*B4hNIRlerfj^m_C z4p~l4!v{DKMqYyjTfwO}+tqV}fmub~wzkrgE(;o-!U@CG;9)h4H4W?df?cTQ7si(w zzQWfUzQMQB=9z}0I2Oit8lK~OHnBQvORXgyRn&dN1BIf;8CQFvx1ZLsrguA4NakA8 zGNl$47V2r|pYzi@g0g)!mq#Y~pUxSM@K2$F3q1{4=8w>7Lz1<5Zarl7HOy1aAGX~O zQaxuUo5iVY_3LWV?DA}A6|U^Et=V)BX4WtmL;5#oZ-5H zhiJoP`jWP?{tk8eN8284Ud0+?1unUrP7IbfS%Ro>}Sa({!^Jd~2{=XR`j z`zfrxSaqarYehKTkd>L?yMTWbtHWjclVrQ5GDGHYgl~xl`AQnX0lb5Eq2Lgu7O0fp ztC71XAFh!jl#kTNowVY(qy2H;8z1KUhn&PUx*lp;DD#=a>q$yF{}ukX_H9D>)xUj; z*O0H=iv-tNX#@JX8C;*n89Je{@{-AG)V+R%mibKt23zB;v0yy-8(IUn$8{(c*;+?q zYH9rnZSyCCfk3=<6WU;??*-c9p$&B0dxc%|vCd#%6T1h)zB;^tSUmI+d*WQ}jdg9H zdobePiELn>zdusiAN93S?w9UQ(fua&530UamCoa;bi)mMW0boG+x%N?bi+kF)*0(c zY~X-IAOMNL4a9iW5oNVqI7hGth{ngbi1WD0>kKaO<$nly3}c0w=eUL+F^->U`3t7- z0=Mx8rtvp-N)$gYAyr0^nBlD7KDj!_RSWmL=9kF;njM_&mxQIAEa~`mq_`ipo&CLJ+ literal 0 HcmV?d00001 diff --git a/bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/utils/DelayedQueue.class b/bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/utils/DelayedQueue.class new file mode 100644 index 0000000000000000000000000000000000000000..64a164376f08539faafd80e86e864b13f1eff605 GIT binary patch literal 4652 zcmbVQ=~LV29exA`8KD5{WYZ;kv`fe?M~Kr+(@h{v*Bk*FAS@8Fq)k)Veq$7D$&us$ z?e^|&@B6;*yC2$_4rwGPWo5of*%BZNY(y%o=g{p>oa5T8^RMZq4ot|09ZOlyHUb%LCZGLI?_SKmU z1(}7r#(g7OHmp*1)pJa%G@;lgul|*q<(U<+Zn|c^EOM4* zdxmFH00kFX(##9Pa$#w@!bH$2jDR`+Rp#y~TaY*86 z-!waM4lBa7YfeG%w)2u{ncigu?L))s3Q|*ckyhwkFfFlEtK@~VW>6hzV7p+H*A2&% z`|vR3ZJN|?aG_vVviWUOL^i5(byY5NCOY{-ds2X$@Wr+tuh^{~rJ5|&1-N68AK~6!3PfWq7gH7x^ zK2oNqP;))IGP6_IWXw^5GYN=O4e&IFnm4T?qfEhz38<3+pfus4@HXw@vQ$=h!lA;) z3XWjpHj-Cxc4#<(Y9j`TcNtEpRuPs*s=a}cq#v`3MwPe68v|gs8U?}mM$k(!^M;ui zI|*HKnFRaGMkQY~1|N-z!Lteq@wkY5o}ka7a9yJ$CX)1y;OK!$fRgNiI*vwja4 zD(*A1R{c!6V#*|WA|BmmWJOXi(o$@f&J(srD`uzcO4YV#_6Z%s7*TNYzzS54Knc37 z;|08^Vn@d=KCI(1-mBvycwNOub$kq;RPiYtpT-*s29ooWnNtkX^^9ZF?N(_^?5cQE z$7k_*6<^TtMSMxem+=)H131Z0jKIZy3iM6dw&!||Q4PY>?d`-@`|veBzOLgN_@;_) z>G(FjLreMP+7GWe!`)))g*3;cVVKlKR>1-Qqb~L45d^4$7Y<~VV=veb0tHXTLp2O|S)I-vNT9iogymf? zibC0NgkNJ6TpVf{I)1sYM*`!$F8zM%>kUcO>(giwwFuO&tqGP6E7D}mEEk2twjpa7 zZ80rehK^ro*?aGprJ5tJ^?Az@&Q#fOUBTkAl_W|~WRnuPQHa5oyjf=^4|IfY#KTZg z(B|1p%vnJ-%tB1`@F5d!C; zHWAnQR;x5fh~L)wwIENmX8#|xT99H@v1~RvhT(8xiwp%M`<^hL!V{MDBriv}!yJWw zj$hC*Nf=R+Ns9XjPEOpvWZkaXuD9&i1vazrO2K^G9Z>^4B;n;cJ=>w~=MFS|b0w<} z(me&+x-T3rXBAgD_bI5vMQWZ5nopwX??Co`{)Q?y3M~upk$Q{q+e>@3=5ZE}OA&FX z7trt|UQ@%PM^Kx^4Nq>~Y@CPua(e1eI&hdP2`^H}v8yznDGTPg#7J#IqTjNIV#>(b z=aY7Y=Z`QP_u_Wi51@4wztZt*{7%O-W;j^XEoWNy?JbdA@P|6~eU z56r*?+uo|Nz4^0MXrH_K=9uJ4-ncL6u1v!Nicn)uef_HG&hHmbkkL~+-%5jYMgIsm; zd5TZS!7z3<#FG^F954Al%3YREh0l(W2T=aPMH^1@UlIT^7~{Vl0N@OP!Sz|ZlTZ@* z-{^qK=jubWZHzuZ`*>>PuSoT$_Rw)-WDlL=9sa&!4{CqvZ%FrZ)s^YqgT99&}AWashX@@Z!Bl8nvf0ExHUdDO6f(ux|C11?BK$K8S z3Wb+^`^eQf!na95iSur>lh!=(FZfoyh>IAfA}`|^OpsP5-b2VE?L-F=K@_Pqhid*y zt*c}ti48o&(TxWDY1;UiQOPCnn*0(2s*|Qd z(sKa^%~zURs(l5sq&&y941;-J)vh+2@9V=AhENLc<5e53?nluA_n+WzfOj|eJ?G=- h=U1HT_za)7`1~BY@EiOdzvVtpI4O96q81@g{4WDrfFA$= literal 0 HcmV?d00001 diff --git a/bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/utils/TtlQueue.class b/bwie-moudels/bwie-rabbit/target/classes/com/bwie/rabbit/utils/TtlQueue.class new file mode 100644 index 0000000000000000000000000000000000000000..d157c099e479949f57277b84d84d25bb655b4e05 GIT binary patch literal 2956 zcmb_eYgZFj6x}xu2I7DaUyZibX9WbtYHc-9T8Q|l2pUopT5BiCB@84pab_a$u|KJ6 zb%CvG^#}Avb#>p##3U=h*tPm0Gjq?q=bU}^dF1~6&!2w*_zHdkCo!wx+XNz*9mID> zFo$^!*#rh~ZwN=QkidOB(C|>hqd|P1Kmw1IXfc5&SV~|SPY3ZVfgDzpIInbmNMIGu zHM|he^7+MAj~CVil8amB8`G$mcG+0*UCSGtkx=~&;6T=j$1aono{3z&8pmS+-<|GzOEUKqejtjrIG7Uqn}i+Zu?eM zu3DZ|sK`0nc6`&f=v?4dPn!j4+Mcmt7JbLvGtBo2#$4TZb}UzxX!c0M>0GI5*#g&l z8af1AphFX90$O(4J>;b4)ZL=w?!X<(w)|Ov==j8{KrHK&$imS@%a%*^YC*brli?_G zouXM;HC;=sLt)I{v>4yH#iCO+3Okl;a#Z)Nif82g%CowxD>u3)?NW0skRI>ORhwkF zuqBIrrcLt5_GMYR8HI7^wKBTI+z@`vWRi%XJ^7)!Ktk@;EH_Alz_A|Y77#hB<2*fT1IAOzQJrrb zq|V9CtnAgAnYq~+(4Dr}!`5h%gnZ4?;OGdKI)9UVYReGLTmeamp(Xggt9X|?O zJhT^E+$*y`>G&MyG`!UDGhPWyeORxPdV#YaE?-tJQO(FOwaVcyI!qKa6m^tP*08C= z!Zyc=I_NsABfGpU_cT;=RAK9IP}6Y+pK5rm!v$#_Z4Iji|D>TsO+ZVuR`)qQ+IywD zGeXHkcRpE2?W$qk*VorOYa{5XYlkw{J@vw2q?cr|V!ATu0D;@%Jxd`NPOWTZ+Ht-g z(x-ajRK0#QbkgdptNr{mj|Oq|sf4hT=Id6aBwda_)q?^j?n#d+3uwr9r>7CP?>8@0K(N#VXG826d9Rvlvd}6g~lOFI+`1#`Wp8 zwN5E#7WY5n*8tyV`G%UcZL;%}M7ZX3=kpR*2H%43_~Ze^Z^8CuK9vE`$rpU;jRUxX zajpa=Fi9g+7NgKGNZHmqMAi-vO~+EPWNi8m#G`or4g+gfW6@|Tb^t9MpZpzzsrWvI zxRF>(>apknhSLLqcwiqRsrXwQP4R0qIkt~vS_^ixeH`P*@uZ#{o7%?-g)j<*aFTaV z^&G+!j$?)a8JNZmq*MGLvUQzQ#9<{T6i;JB{ + + + bwie-moudels + com.bwie + 1.0-SNAPSHOT + + 4.0.0 + + bwie-user + + + + + com.bwie + bwie-common + + + + org.springframework.boot + spring-boot-starter-web + + + + com.alibaba + druid-spring-boot-starter + 1.2.8 + + + + mysql + mysql-connector-java + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.2.2 + + + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.4.1 + + + + diff --git a/bwie-moudels/bwie-user/src/main/java/com/bwie/user/UserApp.java b/bwie-moudels/bwie-user/src/main/java/com/bwie/user/UserApp.java new file mode 100644 index 0000000..49424c5 --- /dev/null +++ b/bwie-moudels/bwie-user/src/main/java/com/bwie/user/UserApp.java @@ -0,0 +1,11 @@ +package com.bwie.user; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class UserApp { + public static void main(String[] args) { + SpringApplication.run(UserApp.class); + } +} diff --git a/bwie-moudels/bwie-user/src/main/java/com/bwie/user/controller/UserController.java b/bwie-moudels/bwie-user/src/main/java/com/bwie/user/controller/UserController.java new file mode 100644 index 0000000..84160b8 --- /dev/null +++ b/bwie-moudels/bwie-user/src/main/java/com/bwie/user/controller/UserController.java @@ -0,0 +1,32 @@ +package com.bwie.user.controller; + +import com.alibaba.fastjson.JSONObject; +import com.bwie.common.domain.User; +import com.bwie.common.result.Result; +import com.bwie.user.service.UserService; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; + +@RestController +@Log4j2 +public class UserController { + @Autowired + UserService userService; + @Autowired + HttpServletRequest request; + + @GetMapping("/findByPhone/{phone}") + public Result findByPhone(@PathVariable String phone){ + log.info("执行操作:查询手机号,请求URL:{},请求方式:{},请求参数:{}",request.getRequestURI(), + request.getMethod(), JSONObject.toJSONString(phone)); + User user=userService.findByPhone(phone); + log.info("执行操作:查询手机号,请求URL:{},请求方式:{},请求参数:{}",request.getRequestURI(), + request.getMethod(), JSONObject.toJSONString(user)); + return Result.success(user); + } +} diff --git a/bwie-moudels/bwie-user/src/main/java/com/bwie/user/mapper/UserMapper.java b/bwie-moudels/bwie-user/src/main/java/com/bwie/user/mapper/UserMapper.java new file mode 100644 index 0000000..9684c20 --- /dev/null +++ b/bwie-moudels/bwie-user/src/main/java/com/bwie/user/mapper/UserMapper.java @@ -0,0 +1,9 @@ +package com.bwie.user.mapper; + +import com.bwie.common.domain.User; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface UserMapper { + User findByPhone(String phone); +} diff --git a/bwie-moudels/bwie-user/src/main/java/com/bwie/user/service/UserService.java b/bwie-moudels/bwie-user/src/main/java/com/bwie/user/service/UserService.java new file mode 100644 index 0000000..f8f25a0 --- /dev/null +++ b/bwie-moudels/bwie-user/src/main/java/com/bwie/user/service/UserService.java @@ -0,0 +1,7 @@ +package com.bwie.user.service; + +import com.bwie.common.domain.User; + +public interface UserService { + User findByPhone(String phone); +} diff --git a/bwie-moudels/bwie-user/src/main/java/com/bwie/user/service/UserServiceimpl.java b/bwie-moudels/bwie-user/src/main/java/com/bwie/user/service/UserServiceimpl.java new file mode 100644 index 0000000..1a8ac4e --- /dev/null +++ b/bwie-moudels/bwie-user/src/main/java/com/bwie/user/service/UserServiceimpl.java @@ -0,0 +1,16 @@ +package com.bwie.user.service; + +import com.bwie.common.domain.User; +import com.bwie.user.mapper.UserMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class UserServiceimpl implements UserService{ + @Autowired + UserMapper userMapper; + @Override + public User findByPhone(String phone) { + return userMapper.findByPhone(phone); + } +} diff --git a/bwie-moudels/bwie-user/src/main/resources/bootstrap.yml b/bwie-moudels/bwie-user/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..8ddfde6 --- /dev/null +++ b/bwie-moudels/bwie-user/src/main/resources/bootstrap.yml @@ -0,0 +1,29 @@ +# Tomcat +server: + port: 9002 +# Spring +spring: + main: + allow-circular-references: true + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + application: + # 应用名称 + name: bwie-user + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 111.229.36.192:8848 + config: + # 配置中心地址 + server-addr: 111.229.36.192:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/bwie-moudels/bwie-user/src/main/resources/mapper/UserMapper.xml b/bwie-moudels/bwie-user/src/main/resources/mapper/UserMapper.xml new file mode 100644 index 0000000..acb3256 --- /dev/null +++ b/bwie-moudels/bwie-user/src/main/resources/mapper/UserMapper.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/bwie-moudels/bwie-user/target/bwie-user-1.0-SNAPSHOT.jar b/bwie-moudels/bwie-user/target/bwie-user-1.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..184947ca04e0caf2a909967a4c946890c9aa6037 GIT binary patch literal 6332 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 literal 0 HcmV?d00001 diff --git a/bwie-moudels/bwie-user/target/classes/bootstrap.yml b/bwie-moudels/bwie-user/target/classes/bootstrap.yml new file mode 100644 index 0000000..8ddfde6 --- /dev/null +++ b/bwie-moudels/bwie-user/target/classes/bootstrap.yml @@ -0,0 +1,29 @@ +# Tomcat +server: + port: 9002 +# Spring +spring: + main: + allow-circular-references: true + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + application: + # 应用名称 + name: bwie-user + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 111.229.36.192:8848 + config: + # 配置中心地址 + server-addr: 111.229.36.192:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/bwie-moudels/bwie-user/target/classes/com/bwie/user/UserApp.class b/bwie-moudels/bwie-user/target/classes/com/bwie/user/UserApp.class new file mode 100644 index 0000000000000000000000000000000000000000..91817a7336c4a4766de52a1a8c447aa1b0fe89bf GIT binary patch literal 728 zcmZ`%OHbS|5dOTcKz3VTDNy=C+!hY_!Ud&5f|WR>4|Ut^p(iJpU`Xth<3RsbPoPTe z59p7oIu482R@+#av1i8LH#44JzrX(ku#c?}ZL9~_2=Fw-CY}X&&d_O)B!Su*#pO#+Ex*CBsIXnt~_SO7g0dmVY8~G?_#M zR|usU)(2nW3vnfQE_B96&MKWnHJz{-0j$n(Gc3Q6?%bTd7giL~NlSs@$W%6!C(5VP zoAT^=Xok%Xm3FF-V^u0j@kndqgi}V-y~EhpjF%HneCFYq zQ5|wj4k{p5X$=td&_TekHn&Vl^xxV7yy)R2Uj5~Imt4ryG3@>~l{@koVtN%@QU8*` zO#6npD9dP0$9CoxNwqoo)$!r9M*n;>6lC`92-|4TeE6>c8Vdv@7wE)EGt%wd8?bM+ zdy!iG6#ja-EG!d(7%xOITqNOU#u$td2ue^A!g6sp@ZwYN((DcnGwaMOm`dd( zZz;8Su=FWamZ`F=@+FB{MM$YXz~3QT{0hsjca~+Bn>bZ7r~Az5bG~!!zy5jtCx9U= z#?Xwn8)4v51K!c}aueC_>d%!J-ow=nvemfbxPc5T*YO3e7H#@DkG7UQxvJJ(?=v%{q~n{*G99?y9aEMM znB)1tUAH{7M72>*eV$i-AaEhRBG=>>Mf0`_%xnS@3tgDf!4U2miD6bEWIx=YlEys$bI{qPPuoggWYS;px_chv|Wi zyFmLMrjnK=cU4+W5fOE?%%~viF3n3F;y`(HqcLe^92w+20!#dVV57%c9HY&lLsPr1 zQf7)lsm$sP70k$7PKSf;u1PyjOlQoB*qL{WLAWQ-Rb5PFkE*Kb%85@y6eE;Ll<41)DUltxd-`?09+E=<9^}WC)^u& z2`@+Sk%5mfY2XGXqqu2c3b&$|HW0^*ffvvk#jJrhFc-zVflrWN|5SJJkp&$^(!gyj zu%2`P!aANyt*A7cu;)ZQC~zuMZpeki6!YBMcUWOJQY zw~}+SyT*;c)!VSA1kP91b11_`+rwPyJ!<}siN^-BoMl&Fx>955c!k1}jgxTn-07?i zI9quC*c7;Qh{c1$qPor7%X+yuFiSWx{d_vDe0G1;C@M$j*yC)E?&HEWBOS?0f|G@* z3oi@~fl4nXZ0Y+<#Bo~mHG@vxRn5HIYH(IJ30KgS3pOHG^`vKtJl6X@UJdu`Eq>c5 zVUh~cy8cawr(8s+FjSxwzQ(l?3gC6Lb0^ps=TKKX{4;3{dGo&@(puC18)~;uClD^` z1qPlWx`l>1&1oFiLM(!rBSZ&xMY(8tLY*OwE;Ml6M#s()OB*`)9Uzix#4<@bO*9%~ zM~I_@k%-9YB-R1+pbOp9_9mr>t%Ib8Zv^Lyk!q&U1-`wXLip%IKmSE_NCvoQz+gF0 gTAO|vTa9Np^(!JeSfV0WE!6oIc@bPJ=fDL11rXY8ssI20 literal 0 HcmV?d00001 diff --git a/bwie-moudels/bwie-user/target/classes/com/bwie/user/mapper/UserMapper.class b/bwie-moudels/bwie-user/target/classes/com/bwie/user/mapper/UserMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..1244567bec0c2683cff651659940fa9e8d5b27a3 GIT binary patch literal 315 zcmYL_F;BxV5QU#hn?MVKm5B|(f`!D^2?nNAR8+8Ek|S{y+mYjd_-hRO0DctWnn-l< z-T9ur_w1kFuWtZ%I7zWcajdX-Gp>C2T-V;Q!tGVIrFYT|xk_(hFs@o&XN9*q|1hkj zvEJ#@TQW|+bR3onXDg1iFV_^va^%n{%-Rt*-}pWh{Ae0spYHT4YFiFBI}?TT=iWtQ z`PFnLZ}{FhA1NB|1aX=9P-$wZs9Bp_t~*V8fgV9(fAOEL7rwTG!H{i~NWlG*p7Jdh iF;P&M$UgvTs&Ig*%rlv03W<~n(&0SBk<>(%bKnnrBUj=8 literal 0 HcmV?d00001 diff --git a/bwie-moudels/bwie-user/target/classes/com/bwie/user/service/UserService.class b/bwie-moudels/bwie-user/target/classes/com/bwie/user/service/UserService.class new file mode 100644 index 0000000000000000000000000000000000000000..efa136afa6addb2005abf571809c5b8da07b4bdd GIT binary patch literal 237 zcmYLEOAY}+5PgL)J{woCW1}Ono1KLfA(=Qpn<=AZrd!$|u4dr?4kc<37FDTN@71fS z$MbdvFhMs&J4A=j-5Q%tudAK2Oc)R5dwtd_*EUme>5a{z;XHAL+FT4PDGFy*>I!YF zS|8a*gx-S7ol95R>w-)6M?!G;*mYue@(IsOF5bOLAG1H3gh$mDLjUJ{5>81}|ySv3(#uA%h;-0eUM literal 0 HcmV?d00001 diff --git a/bwie-moudels/bwie-user/target/classes/com/bwie/user/service/UserServiceimpl.class b/bwie-moudels/bwie-user/target/classes/com/bwie/user/service/UserServiceimpl.class new file mode 100644 index 0000000000000000000000000000000000000000..f55de38a70c32e3adf05f4f7db5e756c782a2e55 GIT binary patch literal 825 zcmah{U2oGc6g}=5LO<9>HwNQt6baD{2@8n_q$1Ej;wgiPLf@UlZ9N)0a@)xd4s32`^XUWj`P^+_S^ zk;rpt8QM`|G9FKrwQ<5JqYH*-k+DNw7?ghhIXTQ%-eQi?7un{RO-%hev z+7E)NF|;C+h;d(7<@3d1)r}ODfB27mvVE!&S^DqI_bSWBRIM>kI(;=e9vMxVPdd?w zI2C*>^pN+Qci-J#X;Duyqj_pFp>!!m3PC>Sw$4)-HjktmneqTfJu{Hj!_X zzr?oh=wFT=`|=E(3)@$afHZEFOTM6Vn`offM2O2F+D){u#qi+l=%~O&cPDSFtGxR!NE7MFXiubTIb{% zHfZmm1i&V)Ql!aai$py6CB+KG#=%!q9(~7J1)nLcU?s6$O6<&G3kf1%8`nr`htL6y Op(I@|*BeW-yTBjg2F~>W literal 0 HcmV?d00001 diff --git a/bwie-moudels/bwie-user/target/classes/mapper/UserMapper.xml b/bwie-moudels/bwie-user/target/classes/mapper/UserMapper.xml new file mode 100644 index 0000000..acb3256 --- /dev/null +++ b/bwie-moudels/bwie-user/target/classes/mapper/UserMapper.xml @@ -0,0 +1,11 @@ + + + + + + + diff --git a/bwie-moudels/bwie-user/target/maven-archiver/pom.properties b/bwie-moudels/bwie-user/target/maven-archiver/pom.properties new file mode 100644 index 0000000..bff4d91 --- /dev/null +++ b/bwie-moudels/bwie-user/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=bwie-user +groupId=com.bwie +version=1.0-SNAPSHOT diff --git a/bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..c6831c5 --- /dev/null +++ b/bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,5 @@ +com\bwie\user\UserApp.class +com\bwie\user\service\UserService.class +com\bwie\user\mapper\UserMapper.class +com\bwie\user\controller\UserController.class +com\bwie\user\service\UserServiceimpl.class diff --git a/bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..8552d23 --- /dev/null +++ b/bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,5 @@ +D:\zhuangao5\safeway\bwie-moudels\bwie-user\src\main\java\com\bwie\user\UserApp.java +D:\zhuangao5\safeway\bwie-moudels\bwie-user\src\main\java\com\bwie\user\service\UserServiceimpl.java +D:\zhuangao5\safeway\bwie-moudels\bwie-user\src\main\java\com\bwie\user\controller\UserController.java +D:\zhuangao5\safeway\bwie-moudels\bwie-user\src\main\java\com\bwie\user\mapper\UserMapper.java +D:\zhuangao5\safeway\bwie-moudels\bwie-user\src\main\java\com\bwie\user\service\UserService.java diff --git a/bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/bwie-moudels/bwie-user/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/bwie-moudels/pom.xml b/bwie-moudels/pom.xml new file mode 100644 index 0000000..cf05444 --- /dev/null +++ b/bwie-moudels/pom.xml @@ -0,0 +1,91 @@ + + + + safeway + com.bwie + 1.0-SNAPSHOT + + 4.0.0 + + bwie-moudels + pom + + bwie-user + bwie-rabbit + bwie-merch + + + + + + + + com.bwie + bwie-common + + + + + org.springframework.boot + spring-boot-starter-web + + + + + com.alibaba + druid-spring-boot-starter + 1.2.8 + + + + + mysql + mysql-connector-java + + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.2.2 + + + + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.4.1 + + + + + com.github.tobato + fastdfs-client + 1.26.5 + + + + + com.github.xiaoymin + knife4j-spring-boot-starter + 2.0.9 + + + + + org.springframework.boot + spring-boot-starter-amqp + + + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + 2.9.10 + + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..8de0731 --- /dev/null +++ b/pom.xml @@ -0,0 +1,70 @@ + + + 4.0.0 + + com.bwie + safeway + pom + 1.0-SNAPSHOT + + bwie-auth + bwie-gateway + bwie-common + bwie-moudels + + + + 8 + 8 + UTF-8 + 2021.0.0 + 0.9.1 + + + + + + spring-boot-starter-parent + org.springframework.boot + 2.6.2 + + + + + + + + org.springframework.cloud + spring-cloud-dependencies + 2021.0.0 + pom + import + + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + 2021.1 + pom + import + + + + com.alibaba.nacos + nacos-client + 2.0.4 + + + + + com.bwie + bwie-common + 1.0-SNAPSHOT + + + + + + diff --git a/safeway.iml b/safeway.iml new file mode 100644 index 0000000..78b2cc5 --- /dev/null +++ b/safeway.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file