From 449f5418b2e372555b6dae6fa673f920756fdf34 Mon Sep 17 00:00:00 2001 From: Toyas Date: Thu, 10 Apr 2025 02:02:02 +0800 Subject: [PATCH] feat(comment): Implement comment module foundation --- .idea/.cache/.Apifox_Helper/.toolWindow.db | Bin 262144 -> 294912 bytes .idea/ApifoxUploaderProjectSetting.xml | 6 +- video-comment/pom.xml | 106 +++++ .../video/comment/CommentApplication.java | 7 + .../video/comment/config/SecurityConfig.java | 41 ++ .../comment/controller/CommentController.java | 141 +++++++ .../comment/controller/ReplyController.java | 110 +++++ .../nuaa/video/comment/dto/CommentAddDTO.java | 29 ++ .../video/comment/dto/CommentQueryDTO.java | 43 ++ .../nuaa/video/comment/dto/ReplyAddDTO.java | 40 ++ .../nuaa/video/comment/entity/Comment.java | 98 +++++ .../video/comment/entity/CommentLike.java | 44 ++ .../video/comment/entity/CommentReply.java | 110 +++++ .../comment/feign/ContentFeignClient.java | 37 ++ .../ContentFeignClientFallbackFactory.java | 32 ++ .../video/comment/feign/UserFeignClient.java | 39 ++ .../feign/UserFeignClientFallbackFactory.java | 32 ++ .../filter/JwtAuthenticationFilter.java | 102 +++++ .../comment/mapper/CommentLikeMapper.java | 31 ++ .../video/comment/mapper/CommentMapper.java | 50 +++ .../comment/mapper/CommentReplyMapper.java | 51 +++ .../comment/service/CommentReplyService.java | 73 ++++ .../video/comment/service/CommentService.java | 98 +++++ .../service/impl/CommentReplyServiceImpl.java | 281 +++++++++++++ .../service/impl/CommentServiceImpl.java | 396 ++++++++++++++++++ .../comment/utils/SensitiveWordFilter.java | 215 ++++++++++ .../nuaa/video/comment/vo/CommentStatVO.java | 33 ++ .../com/nuaa/video/comment/vo/CommentVO.java | 75 ++++ .../com/nuaa/video/comment/vo/ReplyVO.java | 79 ++++ .../src/main/resources/application-dev.yml | 25 ++ .../src/main/resources/application.yml | 101 ++++- .../resources/mapper/CommentLikeMapper.xml | 22 + .../main/resources/mapper/CommentMapper.xml | 52 +++ .../resources/mapper/CommentReplyMapper.xml | 38 ++ 34 files changed, 2624 insertions(+), 13 deletions(-) create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/config/SecurityConfig.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/controller/CommentController.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/controller/ReplyController.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/dto/CommentAddDTO.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/dto/CommentQueryDTO.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/dto/ReplyAddDTO.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/entity/Comment.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/entity/CommentLike.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/entity/CommentReply.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/feign/ContentFeignClient.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/feign/ContentFeignClientFallbackFactory.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/feign/UserFeignClient.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/feign/UserFeignClientFallbackFactory.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/filter/JwtAuthenticationFilter.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/mapper/CommentLikeMapper.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/mapper/CommentMapper.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/mapper/CommentReplyMapper.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/service/CommentReplyService.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/service/CommentService.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/service/impl/CommentReplyServiceImpl.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/service/impl/CommentServiceImpl.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/utils/SensitiveWordFilter.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/vo/CommentStatVO.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/vo/CommentVO.java create mode 100644 video-comment/src/main/java/com/nuaa/video/comment/vo/ReplyVO.java create mode 100644 video-comment/src/main/resources/application-dev.yml create mode 100644 video-comment/src/main/resources/mapper/CommentLikeMapper.xml create mode 100644 video-comment/src/main/resources/mapper/CommentMapper.xml create mode 100644 video-comment/src/main/resources/mapper/CommentReplyMapper.xml diff --git a/.idea/.cache/.Apifox_Helper/.toolWindow.db b/.idea/.cache/.Apifox_Helper/.toolWindow.db index 7b57fac4fcee7c5e50a403e23183ee98984fa1a8..fd168ed1de459bb1ca3f833f759f78d6dc8092c8 100644 GIT binary patch delta 18123 zcmc(H37AyXnRefMyLzu~x~qC$s%RRpW$C*wxX^$K2xYSgigCFs-Owv^LzG}sL@*IG zbSiohmw*{3Iwny&CaLVBqj@I(OdMsBnLOi@MU6V@Bonht7GwVW@3~dg3v_c~;;$n2 zIo>+=-m`qm`@P?HJa}-pp}_?Ot4J263r&acR01m*`cv%-MuX zt_r9lo$I`(dvp(t?sos zzbXH2W>#cUHa$Pc;tuCxkahS z7wh@rH|G3HOGC|z)n9G-{+wG%k5>PDP1qt~S)D z*4D!OZY?4g3x!20>2&(7x( zEGc`0iL-fsoBGE3`OJf-?C`mp6S1d-aqQMZ{I-MxB2b(7TW%(-@a@+ZGVKeQ@`JU z=B@ti$5nd!h<|&Rt?cLWyf?J-O_Bq(PhOnbx{-)%jPXb?4zA5L3A|LR9we01&5b3UT`E= z*JYO%JVEDsX(vasOha*1UcuXVS+jVFH#}aD6vt6yN!&#{nYN;7`r3M zk}P13_=u-E{-9*f@|;m#=Ovpr1XFZHQ*vcIAjq!adb&+};R}kO$(m-#_}x-W$ud>V za|PQp97mQd+DQ{6kH-)!Lv(b>l?=nR9oLX$&o*UMludt7l5BXIYzeZYNV;Gvs;NoV zsD{0AUCC438)z@dG;J)7AUTGlD7LH{x@1TW7E4xm%a*REop@KZc~!x3W8{`)*q)|| z8t=-w>KVK&Uq?I1o^BYDY4M83E10FJxmZnAQVdNN1;e=3|J*3HPT_6W)p*^t1)djq zgBNudt1hdmu7ALPm1ud2Xz2K+qpFG}nu_7MSP@;-O;-}Gp`EDY7@B9>_|5SQL&V6i z7`&udredkucG^kzAOYBSSFtfD*HcFYUGgl;!c+_iGIX^+D#6t}Q!`!9))hfeMA5>a zRa>(RN7GF8D%wdkRmagh334e4qAK$a1P8KZ$fhT{lD>_0GBwfjWYJPAtOYN~kPur| zWDlEwjkTn$qkb<*fS?$TYh&(;#Y1`^unLyb6KS^~MH5sWn~3j8)Cjg^je6U|52pV=}7ZdamxtHZMR(U5Qs9 z=bpKNb|Q~G!N#BXk1dNziNh>V~3UGWo}4h*qtFJPjHNSOXp?O!Qa z$jh^Q1({txR$scMf1ux`n1YG@C@=P-SUU6CYsymTNdtUkYm4#>Wmb=~o|M<`v{8^OFlm z#ly_4%zQ!~X1>F;k!$~s`B!Eh;U8gs!nBf#&oOT>bIBh+$NZUzr+@!>=6r^UrCT3m zLLsIleclsHIm0HK)7qDqOVMabANVrEhuCCe`q8g5OXo*M%&tLq+lGNf=GHxz4D3j3 zSs{~O{*X}@`t1ug)g*3Z63OL} zZS_Z1C2p->ND*FM-qfw1Vdu%QD0_ZQU!U7Qywo1(AKpFC+w1OLy2%~vy^)L!bF~-l zaEI3n4AUDu?w-YQdt~=+biQ(T??oN6cGZ=+mh&7noh>Pz(nlclC^njJRfZ zmwU->x9_TcPi42>sT9Tu*l9dbC&UL&kN-%MDPPVlD_P&OXZS*2ZtgB(YjVS$O|&)^vFfbS z{|6?z+#jNN`?`(LuK85EuJ*O-qO5iWnM^VkW!q={Kvuo{(b93Bg?9C#+bQaG{4m=@ zPH^mH|9|yMF$DucJ&7xoN8T4!V zgsFn94_fqdQ84mS8hS0jiP^j^S}s7JW4W4S>p-D~Vi*c=9a*r8TXDGy*rzGLuz)F= zBMX8IO^2Ta27pG%`V^H?3>A=o=OsZ=phl7>X%2v+E~^snXbKtM#a)mS&G$&7@~M=O zlQ*+N?Ee1N{sAXz`2&#GIf?z;Z!wV# zu58(+?s%ps1Jh}$Xai?@uA^Fjgr?%Za5o&!u)Ev$6cPe8%K`4U6p5lvQMODCAlH+rV34^tveD8hi%cr- z;go0=tt>rNAhrd`LXi6i`JYOE>IrsN*+cmU+4w{GH*oQEekaSsE0|y9HQ3RoD$2rN zE8>`6jgS2pFs|Y%IGRu*xiF&CA6cEawK=OBh!@Tjpb%ymcV2yN9+TdA=_((hk>ovW z>dL2zWlezuK#?-8!Da#ByS&ywd~=2kal|6_I}SC?7h$#Hb#o~PQgGV|KW zU$dheo7W||wbMRj_y-qrsq8N{M7RcDk9nY zzMAG9hCK2lzJsmyT~$HmHu*~-Tbt9}*=3Px@9e`G1N_T5ENL4YRss&InJVQGH>;FE zgn;j`YG;vls*`n1FihF0obI#81Fy4DaFrB_9@$YMwd1FRA+Wt*>_EDXuANm zL=zz=hG~KK&}7LJ!41(^#C1gy-^JEZr&Uy#jh@K(IOnhQQ{QB&M+5kgzfP4*@D8rz zm=eMj4@gZl5#ZT0T!B{V0>Y|}Q&dTiEYN~rF+j7}mH`&bvjs&^U|1ZGoN~rpsUGwZ z%%=+dF@a$5fpSA}cbnlq(`i0&gz^TJj*LL4qng7zI$Ka1=86dx7nZfzw33K?SR9Shgd0 zCL&4!4hv*BAgDV{>E4?Fsj*~aVq<-nSaHgNkr#J!$AWe<2oPo*igGlz1rB8q97;wy zS7oI$i17`KfX+J?*{mf`cCfpGrbJywXOL31BMYG04vehfsJwt2jweG@B}wFwCUJO* z*J{aIJUmBEC~3Sivrvu(EyKA8CHkI%$z)em4O2z5gS-hScVwaf<^b$;L^Gb`w2~(U zc30eSJ&V_MOAwG1a8+0Ekgm{8nrRX|NtzCp-Xj?$of4a$iR5V{Gn0rmkPTtBD)ppT zNnU)7T}DnsCZW)5Ht6i6RzBLW8B*Jx*jF$4Hg!eLrUs-S0;P7oxOWFdbg0RMKGw{ zy@ie4{R&q^?*As!NcbOd<>ZFT*?h9#O|Ei%P_B8Z2q6*cYPyS5p9#cj^T@&qE^_V$ zh({eH4mr4n{oPEXj>Qk0Aw5pB~yqRX?3${)JUsZJa!3@2+Tpe&sLltBsf835(dud)r~FYDNSnK4lCNJVSI zF}9vOb_*N2I;c|MsA>Zwc0fw1uc<#`B#x}k8nmE1qHoY9zIEd3YtTqU%`bV^rw#fBYP-`cA#Vb@Qs5md9;HS$-q%IPJWzZCn!hy%42u1 zD|4@ow<8lISu$J`OcUq^-4YEKgn|eT!A8JBHr~Ni*IzoaZNo0NZ^aJRy>h6_Tsyp| zZ$;mT>kU#)v6>7#$A(7xr;M#*h7lb&jcyEDgsHNK#1#@!2$)QTNBM(jIHIi?4yqt@ z+q7)CmAw2BuBydTH1HIT;W|KhNEb^A64zijG}-ZNm5i^!l68EG-5ys2PztICb1Wd( zgU$0q8~<7e_plC#+@_|a{8jsVHa7P_kP!JqM0Ro8Pv0`(Fk3^ucik*oCKPg)lM^pP z13JIL6_CM=SlX%1H9L$;v+r*p_m8o~nf#G(TbBiUw3*tY)l||B@5)MAP_f79l15@H zxkB>%Cia#|)$>0+MQ&p4o?sw5frUf$1WF44$*`0jLR-KbRU#+f;Ns*(8FT4b!!?r5 zSJ)-%gNAZ0`%Rv|ll=o76;11A7v>!I=R2o7K7Cy?c#A(&XGRjqwc&wqxN+BnEeQ$^ zXRsx6Kh9oHKR9Cq8dR2aXwwaoF>?LHFoI~Y$zdR$zPJxGfA0k_lZ(j}-Ryii7(~qR z&||l}{^-~JfVt$7MY)_cIr$p1Xx8!OIHGfnncJ_2ISeO~T4b$HbIs2RX+VV#Bl%K# zCZ4Nt@v014v3b~>CCizu9@v8pspCs^>T@egCZ8e?{Fa-5e6#Z!G+0@6TCkFR&E$Ht zBjywU{&_<~#hA*QC|T0M4T<1KQ3d5Felkz+vbLH+EXGvsc zi1S=U1f3HZTEsSv2CSqsRmaYqY&IoioiymZBqI7!1xG+3out|dK!OAV-AX#%WIER= zVD!LO^SW%hC}HAtOBPfG2-4NSBxscJ&N0R|E${)1ktNj;dE1s$m~R(p9IO@+p!zgB z{GO3xlrS!tlqa7YJAK7dW8y_VPAQ#~qG9sV&q1WwIVd-~AO#a-8Pl#GU3VR{W+P>q zI()6^$!bkd$y}h))Xg91A08OYj{bCd7*?YLzmtjqPA47bu|?#cU+0!ji;ZTV-`OgP zW+QwTP(uQxP=PHS)GMNz59M?y1V9a+PdwF45KqSLk-qNXTy4z`GBn856=#SPI#e1b zjRq~uU#A2RPRFlW6>UWG03xWXgTULgic&|>S}T8Q#zhrO!$l#cg!)ArkQ%ui%Qnyw zbsi}iojkRVy&x_l`R}N%E@>X#2%;GM71?x<3`H%cZNERNFtmhiDwz}#UlpdTH^Qxp zCq!d0IZ?=+|LzEXo4=}NuqeN_o1ye}NCU09K$m4m91r@2gW@zY!rx%Mk; z(cNES^9!~Ky;lE5GWaxCzlJI})Pqm1?~No9;UqrL*fHUlgUXsGzd}G>*O32unv0UV zzQoqE+XV9Xm)N;IISI0GLrrf9dGP2{jJv;h? zCV0r)F(p{8oESnt`0mX-ga-1T-{qzR%h^Q&Yta%MD))Nua@!Kgis~Lps2mx{dbywy zdf&@szXU>M0V%%~9B|gBk&WQ-$PF)Wp@mz-9T4QfA>fqk{~%ijcVH!WMdQC zI`cr@D&d+&gQhywZv~Mv=z9t)t)rMZX^YAN%r_&6H=-3jl8Hz;tR?_k4@+yBaLXPDjTD}TWLONbdt zx4pprTOsqI^xH47KMOJY(?9u7_8TGQru03(U=M_t8_A%~Ri~HyhP{koKA0ZrwkEHEk6v1SS5Ys!hPtHu+v7RWF7sO1~J|IzF~Clz;nG$-?yY^SSMK96SL1@N(XvAhe% z#@g}^ZA@0AS9fxo(X%{#?+Px2XT#|SF5~{3&nC;#$JcSRY`ir6=z8u3G)mGHS8#8m zPjR|r3pXDFDN6I(xgUheL)^~1hWhA-%3mm+&+Qx^yNc6}>eqs{UyEc@2B4Z*)eShV zK~~(voqwjFu5R8W@Hitnt)Y3Q_yi6)7l^tt=V@~#;it#8?Wl)FDGdTRfH4OV57Zxo zt8SxgLDLk|Pd!z*(~+rPw=e}L`2>Ezg3wZ$iNfum=!~4)%SATe6q2T+EM2DuPE4?4 zC^D6J(L>3st=Xpk!l}hSX9qT z9E&Z;WQVinaAt8oHRXTi=<94m+rohW(GYnQ9HTtTqX)DMR8sPqfunn>MuaA=b~5%0uDBLsDefwL{V{qNXF1{I)Ua^ zV>r2mG7NeKi>9_5@DPS>S}2vnnI*;1QbUW3$vEY`li($6d;*%#ikqx~p!+&C`9J%< z2D1he1pwE;CU?LlX9P8udBDN3GoE`37SuMn)n_B7)3g7x&xtYxXCtd%^G(UoK{caL z6{p=)11IP-94kR3mCAcmR;$T>^K5BB=HQKQf=?CC^+5}8F5*dE`Un?^0p(jrqxj{@ zKvObe5vYKOgA6jxyIFocN*rlH7t9udelTLTY2&o1XPGt%C~=$!xxDw!r1~lUGf3r` z^8K@K>e&h^a{k*Ps7sLZU+7!ZOS2X==%ptff6#Agy!N^N~O2PV%CRk+RK;=HOs=2Yry@Yfh-k)yW?{6?T?I}1T*Pw*>xoi&(bRCt z7AKAs4abSW=+ZO9hKhQ6oCeEOrpQPN%Jig)i(|8E}D3-HGo|FuLevNk-dS04a%@^@C1sJOHiPY-r#Y58prWf zTR_N9--|@2hEr++Ui<#20!>hqWhlsu82Oqo<2pkx>dBl@wsN9kYr@vQd#Q>HTPyl( zEz^}3V_WK)jV7=0L}Oj`>vJ9}{cOP@rfYmmVDfM4NH(OeO>zQa%lh=kj&QAL)TO_8 zlq*D|HvRQuoQ6hC`qy`HOVOw%bMNJju*oQS_+IWAHW?v(_i-oLWEEL{KlfucSxK5d p&ArYh=a7Qq-2Z(j|3#(~M_^bSfq9X8C-#*STz+RdKhC}r`+q+VX^{W` delta 1810 zcmXw&dr(wW9Dw(C&z=R__j~v5<6dnyQ$q2T;$UL=0Obt|EQBnIvIqi-A}TK}EVap< z8{SF^vMdZAZD=R6hc!7`rsX4@noP{>;pFIqTA^lVkJJ9~%{Slg?mhS3b8l;_skPOx z#f3*G6bdmcPK6PX(l-QT65f1k=_|FBAYf&NYJv);d5U%J;D287MtsoE~1L)UCwY9DF7 zWBJ~lXxgid*B`TA(&l=SEL)6I967q9rgGCi&eb-~U1I;(xXZOer+0j+>F_Ree(s1j zB|Bn`8_e%oX6lQbzw`?|V<{uUpT%jE)BF6>F;fCC^Py&{brw*H1J*;kxEN?)gT0*p{ZL;g48-o?ho% z%RSRZ-Rs6%9=pNn?lG3R|FmP*qmE9^Md5M7Wb-+b%kY%pggsL@t2dd>m@DXm`TrN` zOjAp@XZhh7X=sWcZ}6jZPOjPsBByAVs%d$e7302Wc}hBv;)nIp1=`oK?s+HL+oZTu zKW_D*bdXzLLLzR7sX24hoAt+r*_d%(o&+y^-EE|5}L@1F8Gkox*)J$_R%kcv= z7fDBH4oFvNE@b)kA$mUrOw*50&1af@oE|(+YRmNDxh#BmmWDj(Sf&qhrRy~3-2Y1t z&DqlAEFaEdVebHlec$E9sbdu){mu@1aw6d@bENy$kiMLzIxaP}I;U#E*o?+t!Q%cauQYqV%ZLzYZ2R1;A{6Y^L29+Gx38w(d@o&SApp-Se@H-&+RxjKIj@;M< zBLRR2djMll5Pu)&09wd|eJ}%{nXKIp2^gBlo)2J@-&`KdtS!&as)-BETRy#Japv?T zQ{-zG!1|W58zmEEsq&8SUNVP8g8R`uVTY0vc{LYO@DDmZvmdY>vYxXHTH?$vYyXO! z&4nW2IUL$ll0)*hbNv{y$)p}`7ltfyc{jHmlgwSl z=8>f1+(#JZlEG7403eUdJ;R;AkV|~ubKk~52^qY|UBd7r`SDloAckV{@>Q-0Ly=rF z30Vn!X=VZhNc|1&V+@64+#q)vYi29>1j`IvM{G4WI})D6q0Qm~lE$H7Dkvkhv1qso zg5*UV+KZu-q*%}u4D-o29-YRzVukYyN44pa)~qJDI1*05Xmde`1pFwVf{Oc#9*aYC z(Z$3ZkG{sRi2OVjJ&U27&?_neSV+D~M3Ysf=?XsH5~I^-dexn(SK&p)^lfLhWq4bhFNA)PbPT_r3f+vXs;Vb!EJ4V3~^5p4z<#IS@6$wPh>RFZ@MI)mR* ziqWlrfI>iC-jn36bnS3?t=9}hy;rpv0+DbMppB!~lH4{l2E!WC-j0T0SWVvEgkmr> zlD;iyB8FAuj}9~nLxb$zhT37J{Khu)IjoQ?JJCs~m#4gf&ckxq{VMtmmdUCv^e>~UyJ_$pHKS| diff --git a/.idea/ApifoxUploaderProjectSetting.xml b/.idea/ApifoxUploaderProjectSetting.xml index f7f3101..01b4d2b 100644 --- a/.idea/ApifoxUploaderProjectSetting.xml +++ b/.idea/ApifoxUploaderProjectSetting.xml @@ -7,9 +7,11 @@ -