From 730a23dee3d7bcec808e7a0f25ec17b5092c402b Mon Sep 17 00:00:00 2001 From: Toyas Date: Wed, 2 Apr 2025 01:54:12 +0800 Subject: [PATCH] feat(user): Implement user module foundation --- .idea/.cache/.Apifox_Helper/.toolWindow.db | Bin 122880 -> 155648 bytes .idea/ApifoxUploaderProjectSetting.xml | 5 +- .../video-user模块目录架构、功能及接口文档.md | 751 ++++++++++++++++++ video-auth/pom.xml | 6 + .../video/auth/controller/AuthController.java | 9 + .../com/nuaa/video/auth/feign/UserClient.java | 15 + .../feign/fallback/UserClientFallback.java | 17 + .../service/impl/AuthUserServiceImpl.java | 22 +- video-auth/src/main/resources/application.yml | 31 +- video-user/pom.xml | 125 +++ .../com/nuaa/video/user/UserApplication.java | 7 + .../nuaa/video/user/config/FeignConfig.java | 15 + .../nuaa/video/user/config/MinioConfig.java | 50 ++ .../video/user/config/SecurityConfig.java | 42 + .../user/controller/UserFollowController.java | 93 +++ .../controller/UserMessageController.java | 105 +++ .../UserNotificationController.java | 87 ++ .../controller/UserProfileController.java | 147 ++++ .../controller/UserSettingController.java | 58 ++ .../nuaa/video/user/dto/UserMessageDTO.java | 29 + .../nuaa/video/user/dto/UserProfileDTO.java | 44 + .../nuaa/video/user/dto/UserSettingDTO.java | 38 + .../nuaa/video/user/entity/UserFollow.java | 39 + .../com/nuaa/video/user/entity/UserInfo.java | 132 +++ .../nuaa/video/user/entity/UserMessage.java | 74 ++ .../video/user/entity/UserNotification.java | 54 ++ .../nuaa/video/user/entity/UserSetting.java | 74 ++ .../nuaa/video/user/entity/UserStatDaily.java | 75 ++ .../video/user/feign/AuthFeignClient.java | 33 + .../user/filter/JwtAuthenticationFilter.java | 102 +++ .../video/user/mapper/UserFollowMapper.java | 42 + .../video/user/mapper/UserInfoMapper.java | 31 + .../video/user/mapper/UserMessageMapper.java | 50 ++ .../user/mapper/UserNotificationMapper.java | 30 + .../video/user/mapper/UserSettingMapper.java | 12 + .../user/mapper/UserStatDailyMapper.java | 12 + .../video/user/service/UserFollowService.java | 58 ++ .../video/user/service/UserInfoService.java | 68 ++ .../user/service/UserMessageService.java | 59 ++ .../user/service/UserNotificationService.java | 51 ++ .../user/service/UserSettingService.java | 37 + .../service/impl/UserFollowServiceImpl.java | 147 ++++ .../service/impl/UserInfoServiceImpl.java | 189 +++++ .../service/impl/UserMessageServiceImpl.java | 148 ++++ .../impl/UserNotificationServiceImpl.java | 156 ++++ .../service/impl/UserSettingServiceImpl.java | 130 +++ .../com/nuaa/video/user/vo/UserMessageVO.java | 64 ++ .../video/user/vo/UserNotificationVO.java | 44 + .../com/nuaa/video/user/vo/UserProfileVO.java | 95 +++ .../src/main/resources/application-dev.yml | 24 + video-user/src/main/resources/application.yml | 84 +- .../resources/mapper/UserFollowMapper.xml | 30 + .../main/resources/mapper/UserInfoMapper.xml | 19 + .../resources/mapper/UserMessageMapper.xml | 67 ++ .../mapper/UserNotificationMapper.xml | 23 + 55 files changed, 3929 insertions(+), 20 deletions(-) create mode 100644 docs/video-user模块目录架构、功能及接口文档.md create mode 100644 video-auth/src/main/java/com/nuaa/video/auth/feign/UserClient.java create mode 100644 video-auth/src/main/java/com/nuaa/video/auth/feign/fallback/UserClientFallback.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/config/FeignConfig.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/config/MinioConfig.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/config/SecurityConfig.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/controller/UserFollowController.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/controller/UserMessageController.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/controller/UserNotificationController.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/controller/UserProfileController.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/controller/UserSettingController.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/dto/UserMessageDTO.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/dto/UserProfileDTO.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/dto/UserSettingDTO.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/entity/UserFollow.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/entity/UserInfo.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/entity/UserMessage.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/entity/UserNotification.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/entity/UserSetting.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/entity/UserStatDaily.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/feign/AuthFeignClient.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/filter/JwtAuthenticationFilter.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/mapper/UserFollowMapper.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/mapper/UserInfoMapper.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/mapper/UserMessageMapper.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/mapper/UserNotificationMapper.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/mapper/UserSettingMapper.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/mapper/UserStatDailyMapper.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/service/UserFollowService.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/service/UserInfoService.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/service/UserMessageService.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/service/UserNotificationService.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/service/UserSettingService.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/service/impl/UserFollowServiceImpl.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/service/impl/UserInfoServiceImpl.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/service/impl/UserMessageServiceImpl.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/service/impl/UserNotificationServiceImpl.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/service/impl/UserSettingServiceImpl.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/vo/UserMessageVO.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/vo/UserNotificationVO.java create mode 100644 video-user/src/main/java/com/nuaa/video/user/vo/UserProfileVO.java create mode 100644 video-user/src/main/resources/application-dev.yml create mode 100644 video-user/src/main/resources/mapper/UserFollowMapper.xml create mode 100644 video-user/src/main/resources/mapper/UserInfoMapper.xml create mode 100644 video-user/src/main/resources/mapper/UserMessageMapper.xml create mode 100644 video-user/src/main/resources/mapper/UserNotificationMapper.xml diff --git a/.idea/.cache/.Apifox_Helper/.toolWindow.db b/.idea/.cache/.Apifox_Helper/.toolWindow.db index a5693ff0141c0e3b0be46fbbf61a7d88e6f199b8..7d3a96629c8d7dbcfed62b5ff6284ecaa0d5a71b 100644 GIT binary patch literal 155648 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 delta 1687 zcmeH{Pe>GD7{=#&cgOwb?y9-Lt~oQ>hFMxOvpYL8~Y^6~J%_k8c~{a)Vr zHOKs#?Oq+}B?!WsV>*$yka$ejAi8K8goiFxb-AbtiYVrCpYD+fNDc!eC8jX_keZD4Ss z89MNK3^+zoG(i$sRTWZ#!iV@&Qjj=K;l*%7RwFWJG!4Lggx^NMjstIyAAgI(inKge z;fpQOv1`5~{;UvN6dOty1R;qLImx92Rg1{!lpt%IsHkC1leI7_ic$o#lQ4u^FGAOE zh{O1DKV+Gd!bj4wqNPn5L1vT5w5SRi8&1l6hz$#6h+6#fD0uPw5QLaLA1V`85B~)r z?y|xuNaMo@G?K__6eoZrEw=@W@uLAm5`iH!K?|v`cD6+0O8iP{ zY%p_N8NJ$_nHrdCZ*M!P&d#J-mFa0^)@+N{<}^z`)#7!qZnJ!#wh6k0+TJZQ z>w3O@vk}>WHVE3FKkmAdmA8yMHu7ko+P_3lFY2EjdRF%`@G0Q+FYV9qzc$BhR?C9b zgEzV%i`+PI4&I|mEcC!8a^c!u_=23+5``V)Fuq5@gOJ^DorkmNU}+j`M3JCZ0}H;s T{XO-6?5W@$d#YnPlbQJird;5v diff --git a/.idea/ApifoxUploaderProjectSetting.xml b/.idea/ApifoxUploaderProjectSetting.xml index 4c2b765..517f9ea 100644 --- a/.idea/ApifoxUploaderProjectSetting.xml +++ b/.idea/ApifoxUploaderProjectSetting.xml @@ -5,9 +5,10 @@ -