From 123fa6a7aa03651f299d8566155b1d7fe37a9ee8 Mon Sep 17 00:00:00 2001 From: nanxun Date: Mon, 23 Feb 2026 18:52:32 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/IMTest/bin/Debug/net8.0/IMTest.dll | Bin 46080 -> 46080 bytes backend/IMTest/bin/Debug/net8.0/IMTest.pdb | Bin 32588 -> 32580 bytes backend/IMTest/bin/Debug/net8.0/IM_API.dll | Bin 470528 -> 529920 bytes backend/IMTest/bin/Debug/net8.0/IM_API.exe | Bin 150016 -> 151552 bytes backend/IMTest/bin/Debug/net8.0/IM_API.pdb | Bin 132708 -> 144348 bytes .../IMTest/bin/Debug/net8.0/appsettings.json | 4 + .../obj/Debug/net8.0/IMTest.AssemblyInfo.cs | 2 +- .../net8.0/IMTest.AssemblyInfoInputs.cache | 2 +- .../obj/Debug/net8.0/IMTest.assets.cache | Bin 118762 -> 119264 bytes .../IMTest.csproj.AssemblyReference.cache | Bin 42384 -> 36792 bytes .../IMTest.csproj.CoreCompileInputs.cache | 2 +- backend/IMTest/obj/Debug/net8.0/IMTest.dll | Bin 46080 -> 46080 bytes backend/IMTest/obj/Debug/net8.0/IMTest.pdb | Bin 32588 -> 32580 bytes .../IMTest/obj/Debug/net8.0/ref/IMTest.dll | Bin 17920 -> 17920 bytes .../IMTest/obj/Debug/net8.0/refint/IMTest.dll | Bin 17920 -> 17920 bytes .../obj/IMTest.csproj.nuget.dgspec.json | 8 +- .../IMTest/obj/IMTest.csproj.nuget.g.props | 2 +- backend/IMTest/obj/project.assets.json | 35 +- backend/IMTest/obj/project.nuget.cache | 3 +- backend/IM_API/.gitignore | 3 +- .../SignalREventHandler.cs | 8 +- .../UploadEventHandler/MergeEventHandler.cs | 21 + backend/IM_API/Configs/MQConfig.cs | 2 + backend/IM_API/Configs/MapperConfig.cs | 32 + .../Configs/Options/FileUploadOptions.cs | 8 + .../Configs/ServiceCollectionExtensions.cs | 3 +- .../IM_API/Controllers/MessageController.cs | 22 +- .../IM_API/Controllers/UploadController.cs | 124 ++ .../Domain/Events/MessageCreatedEvent.cs | 1 + .../IM_API/Domain/Events/UploadMergeEvent.cs | 13 + backend/IM_API/Dtos/CreateUploadTaskDto.cs | 10 + backend/IM_API/Dtos/Message/MessagTypeDto.cs | 26 + backend/IM_API/Dtos/MessageDto.cs | 2 +- backend/IM_API/Dtos/UploadPartDto.cs | 8 + backend/IM_API/IM_API.csproj | 1 + .../Interface/Services/IMessageSevice.cs | 2 +- .../Interface/Services/IStorageService.cs | 40 + .../Interface/Services/IUploadTaskService.cs | 12 + .../20260214101014_add-uploadtask.Designer.cs | 1167 ++++++++++++++++ .../20260214101014_add-uploadtask.cs | 52 + ...260214131542_update-uploadtask.Designer.cs | 1170 +++++++++++++++++ .../20260214131542_update-uploadtask.cs | 186 +++ .../Migrations/ImContextModelSnapshot.cs | 53 + backend/IM_API/Models/ImContext.cs | 13 + backend/IM_API/Models/Upload/UploadStatus.cs | 10 + backend/IM_API/Models/Upload/UploadTask.cs | 24 + backend/IM_API/Program.cs | 22 +- .../IM_API/Services/LocalStorageService.cs | 236 ++++ backend/IM_API/Services/MessageService.cs | 53 +- backend/IM_API/Services/UploadTaskService.cs | 43 + backend/IM_API/Tools/CodeDefine.cs | 6 + backend/IM_API/Tools/ObjectNameGenerator.cs | 51 + backend/IM_API/Tools/RedisKeys.cs | 13 +- backend/IM_API/Tools/UrlTools.cs | 64 + backend/IM_API/VOs/CreateUploadTaskVo.cs | 16 + backend/IM_API/VOs/UploadPartInstuctionVo.cs | 14 + backend/IM_API/appsettings.json | 6 +- frontend/app/android/build.gradle.kts | 27 +- .../reports/problems/problems-report.html | 663 ++++++++++ frontend/app/android/gradle.properties | 10 + frontend/app/android/settings.gradle.kts | 36 +- frontend/app/pubspec.lock | 80 +- frontend/web/package-lock.json | 166 ++- frontend/web/package.json | 3 + .../web/src/components/messages/VideoMsg.vue | 124 ++ .../src/components/messages/VideoPreView.vue | 30 + .../web/src/components/messages/VoiceMsg.vue | 158 +++ frontend/web/src/constants/fileTypeDefine.js | 40 + frontend/web/src/constants/fileTypeInfo.js | 29 + frontend/web/src/constants/uploadStatus.js | 7 + frontend/web/src/main.js | 6 + frontend/web/src/services/api.js | 155 +-- .../web/src/services/upload/uploadService.js | 52 + frontend/web/src/services/upload/uploader.js | 122 ++ frontend/web/src/stores/chat.js | 223 ++-- frontend/web/src/utils/imageTools.js | 119 ++ frontend/web/src/utils/uploadTools.js | 55 + frontend/web/src/views/Test.vue | 46 +- .../web/src/views/messages/MessageList.vue | 17 +- .../messageContent/MessageContent.vue | 487 +++++-- .../hooks/useSendMessageHandler.js | 109 ++ 81 files changed, 5952 insertions(+), 407 deletions(-) create mode 100644 backend/IM_API/Application/EventHandlers/UploadEventHandler/MergeEventHandler.cs create mode 100644 backend/IM_API/Configs/Options/FileUploadOptions.cs create mode 100644 backend/IM_API/Controllers/UploadController.cs create mode 100644 backend/IM_API/Domain/Events/UploadMergeEvent.cs create mode 100644 backend/IM_API/Dtos/CreateUploadTaskDto.cs create mode 100644 backend/IM_API/Dtos/Message/MessagTypeDto.cs create mode 100644 backend/IM_API/Dtos/UploadPartDto.cs create mode 100644 backend/IM_API/Interface/Services/IStorageService.cs create mode 100644 backend/IM_API/Interface/Services/IUploadTaskService.cs create mode 100644 backend/IM_API/Migrations/20260214101014_add-uploadtask.Designer.cs create mode 100644 backend/IM_API/Migrations/20260214101014_add-uploadtask.cs create mode 100644 backend/IM_API/Migrations/20260214131542_update-uploadtask.Designer.cs create mode 100644 backend/IM_API/Migrations/20260214131542_update-uploadtask.cs create mode 100644 backend/IM_API/Models/Upload/UploadStatus.cs create mode 100644 backend/IM_API/Models/Upload/UploadTask.cs create mode 100644 backend/IM_API/Services/LocalStorageService.cs create mode 100644 backend/IM_API/Services/UploadTaskService.cs create mode 100644 backend/IM_API/Tools/ObjectNameGenerator.cs create mode 100644 backend/IM_API/Tools/UrlTools.cs create mode 100644 backend/IM_API/VOs/CreateUploadTaskVo.cs create mode 100644 backend/IM_API/VOs/UploadPartInstuctionVo.cs create mode 100644 frontend/app/android/build/reports/problems/problems-report.html create mode 100644 frontend/web/src/components/messages/VideoMsg.vue create mode 100644 frontend/web/src/components/messages/VideoPreView.vue create mode 100644 frontend/web/src/components/messages/VoiceMsg.vue create mode 100644 frontend/web/src/constants/fileTypeDefine.js create mode 100644 frontend/web/src/constants/fileTypeInfo.js create mode 100644 frontend/web/src/constants/uploadStatus.js create mode 100644 frontend/web/src/services/upload/uploadService.js create mode 100644 frontend/web/src/services/upload/uploader.js create mode 100644 frontend/web/src/utils/imageTools.js create mode 100644 frontend/web/src/utils/uploadTools.js create mode 100644 frontend/web/src/views/messages/messageContent/hooks/useSendMessageHandler.js diff --git a/backend/IMTest/bin/Debug/net8.0/IMTest.dll b/backend/IMTest/bin/Debug/net8.0/IMTest.dll index a0cda451d694d4817c2e18d6b5bc96d87896a846..20b497b9cf3d22b22413756cce0e2138aa3fc9d0 100644 GIT binary patch delta 245 zcmZp8!PM}AX+j6f5!KL!jXf$81-?hPe4AMy>~I6;^xfTC#IPt85*VVFD-1f6*J8 zCofqQAaHj=>8-<2hTi)&s{Ng@`>_0Emes)uP(f{&AW*fj-AWz}vzFwuZtH`y#TInBt( zBqhxx)xzA+#L(O@)gs9>#mG1@Eiuv3AjvqMnGu7kOE|x07Wbq%oz-UEJH92;wLef0%eUDj2RMvY7&9alEDBd S3gR0AMJyN$HwUj@%K`ua6HxvD diff --git a/backend/IMTest/bin/Debug/net8.0/IMTest.pdb b/backend/IMTest/bin/Debug/net8.0/IMTest.pdb index f9575cb588d2903cee52a899df39729d98feb674..66950217faf49eebeca3a0ad780078fd24d4011f 100644 GIT binary patch delta 13310 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 diff --git a/backend/IMTest/bin/Debug/net8.0/IM_API.dll b/backend/IMTest/bin/Debug/net8.0/IM_API.dll index a3b4ee911c6bd4f2a81aa98c726ab4708adc3d12..ad7198412413ef8ee57c9f1bd631961c72e0e232 100644 GIT binary patch literal 529920 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�C__CVc7Wob zlsr~2cGO!lEoSV`fe1x|o%!Q`4J-MoW2enluy+W`KJ(Dn3A6>6W9Vq{Sm^amSRJw+eOpfHSUCd8c|%bt!d2w1;;~zwuiGKwp*9-ldc(qe)UX%q%x` zBQaRciNVPe9RYPyetDrHshBFO+4sjgVimu5>i_xOC7=I?=VJ4!4}5t?^|pW5**Foa z_~+;D9+-OmpVG04@8B0T=yH5rpy&5LDd~!h2Rgq{z3nfak5wFf?%U6`Jbd%>v3ZRX zckHX)w(F6`Pw4c!dn8@)*N?;wX$r*nvuA?CY~jg+5AOY&&)j$*Hvh=O|9R({iGP01 z;7fk&fnPjjX}!DWZ+~~yeqw1{^7d!X{N27E{%&mk#q{|B)_rM5wA|EPSo-kXah9;o z_j`A5zlhjBcz)WHSG>EY@e@a%Ub!tc@95Jt`*wA`yXQwkv3VEMFYP$`H2WBo_Zeb&1a4^G=*68m!F(FzN^dN&ilJ(N3*sb`*Zxc2lr}<*Khyf zbEag@HfT|YTCLQaRZ1=F7ehf4vQ53 zl)(cmET#Tq#*}Tw>{T~#QKCk!!`}%h*$>@jPTf?zY#$79KlE5|7TFoY94S3+;9PQg zuyp3ZZ^eyb@HT{bG~ikdIp~pjE0h~1&dh0`FsZuEtW| z40@}~lcPrtY5T?@1=_s<)TD+HpQA&!OC6rQ)j`zgK}*BZ@_x{2LVg%^qb;{d%eUkC zK`oOO9Y1xGb>V#XCEs3e0d@~~9l(fMIa3ezgD1+f&y#cq@UWMFjMqR4>L&JAuOuyM zFW^t021kyy_JV4^Qq?|=s-^?Q9^(sRm^WHescU$J!_eZIgR=RQE@vk75&3!hk!G)u zZXj>gMcONTYBz|hshaPX0(;2;U<^Y8M!*wWCROT6w1i_d2rUs^yuq(SIe7HzIG+v( zrM=*YX>|iWL?)6Tmz1WrBHl>bGb+8N-s)AAbIy!XEn5!f891&ETW8NLCen+F(ISqu zGDtUQ=M}$q9h~6sM_RY-s_HiAS2O;vhFhxEbENGEQS#J-b(qccVd%J74QIdDi!A~< z0J?oj-9qcP7tU@caGQ|Ery7JFXVV5Z(rWE&c-rSE)B$ztY_&Sjj@1rz^K6)Q4$Mx^ zce>Rbv(pQ8kJ9rrV^(?G=d@6*nT>vkx7pX#Ypg???X-ASxrgoK^lM z?YV>W?zmpWZk^fI(kkwQy?+dI8Qzmvby`yD1?_co6oo_hJsq%mv>b&y7{R!Ciz%~I ziuP&IM%Wu|$+-{0@w-?ZRjWOsQS@&OR&exhGgn{#?@E`OJ>}P7I);4^SN?wd-HY~U z;iyBjd}ht6E7Ic)o7FCq4+1yTXk0-my3->xf7`9JLD>P2v2o0y{rAIO>9dm+Ab84>IZGFO{G@?@VIlBk+CmjVU?A2e!@z?+> zO)JL8hnB2|AsQRDoj0$=prE(@_(*N(m2PaApO!dfiHB}lO(oKHolizK2vSp7DXVDGnLzj7a_Z3l%; z>FH+l`62YZ3w_xu&<^yMId!LR;ltgeuPL;{c8v;Utm=yJCs9jsWOt=Sa73Sd9B&+D z_V^q*xtiG#MsiJmWnVRWf6d4)^XY~hdOfNpC-y)_@38VIZ-vaZs=M*r0ZCe&2`S%? z(aW0?qMM8j`B81xucG4>j^19hbB}reV|EWlvJ3uf*j7{zynZYUaXi_I?r^6`f04Vs zFw$*gDSMOr9!J~H)1FmfOHpoS&>1t6ZPcWQc8Ij1w7fpZ9*}!;N@FMFe;-o$`Mr=d zxz-wvIeklX6^@RBCpWC(I@X_OKV)`BY3P+W56{K)^LIP`ERWKO`V9t8q@-JzVQn`Y zafd-!(f=R8f9-vE@)EDXu2%NURTb$^R3?TG84K1P1!ejG{*jv!E{pGYOnuqqe~{gc z>X*7XI`+Ob_D1Rk!npz!(IBxeT(OFjRWPD6#+6FqUOH0P2V8;Gwx~O?XKcbA^mgnH znh?9XTYAp^Gp5@uYZxhTuf%mq$86OqMtK=U(jyR!nx(Lka;4--%osUNhUOf?e?;8p z^x*$~rS51~A4BcE_}hh+xN>tP;Ep34Q%l=MuMo4GgJ|8H3H*l-J_mb=avcj+kw`hC z!`uVu-r_W&mJm&yk#ayPIaXlC}XqAI5;# zpaqp&&AVa8|M=uTrQiE}g^JbMCCYB2R2dJgVr4vTi8cJ?XzbDW)nin44fS$480(77L925{5G?RRzy6jBVMw=y zVy{%KI*{m6+wjYn4jfN2pb=YWAX<&(6MJFRgKArO z-(NrX;U{A&fBwj+G|S^xk3M~WhM|)CGt5_AeQ+o9d`f-xuG&%@Nh4Rro?L4H1-;q+ zSI?C{%)_ks)oN9Vki$BR1szLHK=yD2rpr2v5hu|KOrLddIyNG;1`?*5PmESTKXTx$ zCn~PS=5;{D_3a8ZU-x<0V?0O%Z}ZvKUHd+{n>-@lK&`NWQBJuqv;)ra0vp_NsQF_L zbY(p0RmdS-7icZ9M|5$>XzTXtul^R6aT)!2_P7pMwM-xD-1W$V(6=p=f4NSnC7gCT zWS_@}8*kx2j!;*NWMUOOwrqX)Z#!ePOz}X}YOFq9T@AT)sMtJ~mOnf_P~8=~Z|B~v zau7;vYAvNs&AtBW)ZXh~_?ypA-q&A!ch4^dU)n)=GtGlkE%A5vd~e?m{s?lepbUk& zq&QNsMN#8w4WwE^crn*g&EvtWnFEsU_=5U9NTtFBQ_9G9tb%yo*oKmMfA)+^-@%lf zc|QN^l;)V)Qq?uTTl20t2aVgf^_b~MBv1O+jEi94qR?GoaD_%+4Es%e5A5m+4y)gz zoHsmh^0^=ERKG_XVd0Qx`O&8b9=IRlqYstCQBi-Ok9T!HI5xl7HoyBDIE3c`v>u`A zZKV2(Z4Yk$#HLwcdxXT>9?H2HN zr@8~YGu+x@o++eh-@@lDu$~+*j)GX}RSZFMMbT@?(EjURAVk|htq0l$avbd}6gftC z9faQ5gN@nxJ`*1LUO}!n8+pCq{tVlo++%C~Ik!$t?Tu>ZI%Tbewj3N8@Og~^MYMZc zxE@^p0=E;PeO?7yW^KE+thDRKdaPwS)R-p^-une!UeS{K$bnD)hi^ZpCHL+geKF)# zTHkrBWmbb_bYh}MmA>r2Tea^ltDEl6+$t+qI9I=Y`2LKxpOhK;J&$X})B~p;VOw@B zMtTq7a)kpj)jIyE^oj$z?!P>A->9B}KYi~1`vYye{`%R^zQ}d%`m0<)s;;g@ilyXX z1>DK&uM&ef%!Av$(sO&dEEB&7hjAmA;;g?7Qeb~ z+wc6&x@~sycdXeN^0%beftk#3=O;?8oGqYkIcF|gEOzi59-H}m!y5ex*w8__-t)ITmp?;Z z<*JYFWv#WoHuR&aIqqBo{^fID>4~iz{!D5|?-%IdQC~SCAAbIychcHxd#dyA?je?5 z-Pi8N3bBe*8b9%^-?ghmGrWa2{^;m)6<4pnTD^@Wwm#Fba@s!FwN)Q}{*HaNj@E#W z95_Av(Lt@_1*=TOf8Tzmc*C)I^hDVzycHas(d&wCA60FBcvmgrEyz)9LG&?7Bd(q_ zi;vCir4Hw*`F_xVo^$?oTrJ6`!YeUr<-pJ$z(lv#Hi)fmvgP!2W;h0{vRp8#{U9+9BSK$EMnginHqhu=E*Jq`0YZDQnR)~!z_UVNm)0XcK%|y!08jYM znJBgE7G8FTyoT_X+gi1Ry8_w*%7{k}v_m4TT5gWH$tItan<}SYO1aqGoQ7boImvO} z0;4uux!E^B=7(~Yb|W=NAsSLq^P`~}RYwho222!eo*U13)R}Sd^b5zRRm&{WCj5&E zw#mJUf^~9~idrWbp*n^GDQWH}=z~(*x1n8Lk8>loWTs;dEiJSQO|YRfjNOe^6N~G( zx#*_YMwp(N3CVP?vZc$0y;de4;j=dAHz=o-VpP!PN@5q=6&1r*n`dwJTIsN_q0alel%lOxhq$OY zFU+YWVcPfhfrXHH=y}g31GS+zjccvXzWBJ|PNQgFHhyqxvr|BOUazCJN_kgQqFR7j zH-;@2I~Ea~ZRykA?{ zIE)=* zH*FYo3?gE@m66sK#FWQT%)8fvcg~`mfW6Ab7e*QF8n|X6Cz{$*a zHqmSotv1nS6YXWGl31d|X793z4x89y6I*Pevm8~xU>tz#XJg51r%ez=Agm+_l92=n zOM?BB1X++oYgtMqvtNO*;`m>J|Mk*B_LVrqR1e{m#Nzcx%A6)A<( zPmls6`*rj46n;W*bt+E0FX^0qmH-n38+2Lrn}E(`15yD`a1{qmU2M+WI)(qS%JP^6 zv59Y^LIrG@PJtAWrE!$R=9WucJkX6qNnNZ$%}FG)-%B*q*Dp*~RgrLAN!^^f(z>#` zxpn1r@w$q-%DQ=Is09D#;D0Ipm*M|h{4dAZF+b;+pQYv} zb&VaEYkroSpOg~e73OE9`8n_U@)OCSGo!sI)w+q?3t-$;Pr!;x(-3 z1FFisQV>`X60phAWcE_BJDDz-t76IShQu7D5*4Z>nSB%g67v+wB~?-)O8g^C+GO^v zM7$;zTdI*3EmczXRYT@$^T|e7|7+4zE)G5g%EV*^(sPCWU^NIWRZF3`U}BKSlNGw?a3VtK zu!bHXbaDv@NR1<=*{`!%fG3w|w!d!R&kOu!i=KJjz&~r?lQ(O8$%kxDt}VsnPYbi_ zlauR3Qd=QxG;)trB~+?TZq3U-D7E^NlY^BM(&PkE33e=asa)i*B{n$$Rx;l#NhFA$ z`EKpxk+O0mzQ?i3d@rGY%$ZXji|b@P1c2EP*FRu-YcoH9T|STMc)~zmUtXDjZe@NL zOVnmgv7|(BDk~FZ@IEr9V4)H)^d*Tni4bqDMnGp_XB2ozRPrfCEHSsdG=WU1LM=Q> zK&1qEp>-Y_p3J<}P{u40d`>m{S?6gpAP%L4A|y$uG}SD14LuCcjMCWG|!B!Of85a+*3OVd6-yM$0sN zS?q4+E3~Ps@Sd%3LDcX)0w*CzRxJ@_s~6CUDglX5lAThpLJF2kdby;V=Y>czpp(r4 zZ!8zMsn;m5l+;T}x|I?ORtiKGmCTgD+XT`k={`yKNxE0ky^J5 zWN<}F#--$tUy_YW$ss9uO43hBIw$Fzq%)GvNcuIekGk$_0)N>Ga$1mI7T~LrepS+^ zC4E}b$9)z8UE{cvoE5CIl0G5n6OukD>64N^Bk42HxOie|d3i%wGPoxhY&PotCUQ2J zko9=-6*m{&Or_>RSw(%5!3K+Gf1)aMGm)G;bzONG)T#kEm@02Vln<0JA*xMB2WfaX z@IVq3u8@tqZ0gh`uh}IA>t3(w%bxoA%YLT?(e9;2lZ7Bk9Yg zqAtHIu=k|=y$UWBlka2tz;>9QROO`#6IxG)(z(gZ=St=#O6JBZDlN9qxFR&JFrDM{ zUR_pRBDMfCKQ6^Jnjx7d zxf%g2kQxglz1T>Ck}nZO%Pp3I<+@&_;L5zqHA}i#is31;pUFVPnrjuHh&?A0DYr|I zcL{vAq<2eNCRI)*RjyCqGTCx6!SJLc9*yYj1;Kh0CAFF3ScYLQlbMS)F>Mo<;}{f* zs8ma;6zT&b^KE(Nb1rkn2gy{;ob^HHq{VYS=%Row`k-k6LDj?l zTo%w}4-|+72FeGC8U%44Bq|du@Ii}7D}equ@U~g3Kq()zTtLh1xSgL)&=ZG zGWdQXRch+|0IM*n>9t!wIsU1g{1N`mFP~HIQx4gEi%4}T^h$dClSHB+0k@%{B*8)v0(auK&Ojh^NYQt^x)bh8pGvBMW!uv4zRU zA?qJ-Ct}I`x_%BC_4^^F?61GIWzDfN^yG&y&RE=}ladmHA<+G_^}l{b`h|<%L`!=7 ze~1+~QC~}6^Si#TgzEP*s-I*h{}B`J=gdKgbVi6ENh1Btv6O-T5;#6JJx$O=6dKMQ zjZD&#^5>ABHdEF%|4Y539yLoUe`0kGzNi;cW@XiRnRY2B9#!tRq>l?6mYqu-Bz^*6 z7%32EDR<2JXebcVmpc~co?$8(EK8P`VhS8XrI%ya+4IT0OR#KiO-wZ`RhVP-RjL#X z!mV0{?LRgGL@H0sfxE?+0~Vg_N;vYd>-t4kJsJOEey~6U^0S-m5DwXV-$N%6M&11BxN%f%bN=c8I3}VRC%Mx6R3Fj3>Q~ zR|Wp6q+gfx>ymy=(yvKc*5%w8Ny~zq6W=*^NpLO+T-Mv1_>s8_0;d#`Ia!+VWcm$( zzaeQ^#dG42=44^UlQ{1Pj`*Ot_ayzEz~7hj`;xvQ=_^c6l`@Sd)3Tc5$#jjtMF>+> zlCBcCEbmj|9Zt#ej3@DBUB;7XS?}>=S{8adnQjz1jgnp==@pU|^`EL|I#^iMT!Jt{ zZXx3dv3Mos!E$JXBwm*-BOn;r@5+Wd*HD{Vh7D#icWW}YB$>Op7Mpd{UWsW50Ja7T zYiUzyY?sTd#~?4#RzJH3&KpTuIJ5@MYFJ~l&{-%!8zD#{bs+01a~H8xRf4=Yh?(;> zu1M3Uuf@!BFrwG98`(y*$!eObgjY?95{3`SR5`rbU`5gq(?kG*6!G-28Vj)~cT7DG zD|5a83$x3$RhrLJDJ)JYna`ZTKGhMrf|2nENg+U{1Cr%12NxXaD}HwcAt5p;1!aqr zITQEWXHneBgc;j><_zqI*L;?R0I|23*F$Q4lY*1*DMTcpDV(<~opnUc=CgFxXX&gX zcozDV#}Yw)`D=ycuL;Yqg{|eYd{(5CIh)LuTBK~L&yo~bmLxOZjAph}^fSINR30hU z&^WNfl?=)HZ3||ioU<^VY@cUHwsT1c$+3tw)Jz}bMBl1HbQteE^vo$)KQS-cc9)0T!I&-pENIKwf!J zRZt#OdF2t!F!jSp7x(2ZrA|%Jc2HADn+T=Zb{@SwozM8laHa#k_2ZD4~y(l_G2L znDJyJg>X{}K#?9Atm9tO0!kEAi*#I93##&~`P~;BSqqTLoQR@kPPo;Jh0)eTXY%o# zAXyqQog@GdjSnbw+8N*J+Y1)Njp2zP`DTFy2#MxpPqzWE~39GDXiNgK4XA!E|lreNVC( z76N2fU1r5dzVFv~qp$|u$=b{tK2~Hk*L3NO)@HN=b}5-TXB9hhE;8X*WXC>W#*)pP zi;k-l0_2zb%$ah>7VGyhpp9s%u94y1uHLx}xeqYqHgDAV5WCJIXXiw#KPQM5 zkC&Gur`m8}rsGuEBRt*;PsXxxN|jAlS!e@1>WUhiybF#j_7-}&)E!%0@LBr;91j!=jVF}{oHrMwah**JBYiOp1MoY9g^;l^d?DflJpiyZ;^DT zq&p?uCFw3n?~?Q`N$-~QZb?5X=|?5qE9qWI4@i1I(&LgIm-Hb?ACmM_l733k8A)d( zos)D<($7fx8T2%JL3Zc3LBJh<<{vA01pyZclDQ4ow&Jz{5z~hKj?9<&_zD{O zYIP)6Bm8>BRX9}@RGuU2==&@Dfxw{d>7dq?OaP{;r8cxga;D(fNC9)Y;^ViJ&x^}G zFQ^62%W(pU7>`L~gBUC+sSU7ITn3qtRh&yg=tSU!4TD(OTvEaV%9^FI>dLS>&MLY4 zoT$hAVQe^exHfmh+mIfXbRe74CC(BpFGQgMwu@TCxmX7oiHZK%0y?qjx3qOh+*7-s6Gp zQpMnTAR?HT0yDYiA%Z$3Y1D%ox12H)^uY`vmUPnsBGr1R!=|l5z$w;cnGOKVCP zc=*Gj1G+ReSGG`<3oK`D*uk1rI~+Y24qPj6{U%dpOfo0DKBTA#1$|iVq_)hFAfwB@ zn#-HY6LESxoB(0>8^OK?opGsiP_ZbXM!SS%5C>SE(tZAtglY;EPKR#<(+VncMlOTV z9^f#>v=_2^COO$yfr+*hQd}BymCm_JIIq!_&V`lEq0$CO1FDS!9NjTVJ4M70+fiO2 z^-Zx;J#-U#U0)K9%XDQ>2^TpQ;B+td)nx9=sC_G@Ho{4{uh?yM=7g@`@@I4&wrH{5 zQ=M5vKQZ?TCj+`0!tbsryWna|23K$+(prTYFJnzqi5NxK(LrWsk)LS`G`((TC2$;m@}+~JjNDc`n&GBN=vMg zilh;! z3CIGpfNZWBM^susyi#|A6_PFXOxGgHp$NR1b)1$V0u%PwgHoeS?;P~{Xs;a{{l<3U zaWrSdlk8j~v(P9Ie_%!7Dxw#v5D%Ut>xHB`=aX$OzgSyUO~O!;ANsgT?~>rU>lSmT zw5{`7tb&L$FX-*}-WKE7$mP z!kv)j5782^+%AuktuSmjEXB$LC>Kd<3~{RquC_IqldT^jcaF4Y8{1q}`Y=XmQO=77 zX6T6Rv%>sjoAx7Gj33cLdkc>YLV;AVtcGp3`Q{v^6@+mMuGjMBTVdG9Uaw|v(VBfT z)a>(W_7$x;Fhk7&3>-a!%o&fwKv5DSGmseZYL47o?oQefMP8_@h;A^5%ifP$eK-^6 z*1*{xQHywFB+f)e;!NI1Kw{%!EaZUy%5tlO$t>LqZw#|^aFUaU(6C$Q&SIV8ZUvFh zFlwJUTO!WhS7Bwv;(j}syBS6|!4>1X+S$XCyQ|#yu!dma_@+lO8#ffQE({3}bss2eY5WI=QYfL{&bK*hm(;W2l6p2d z`Ba#L{A3T4EuGhlX_c8;3fFXr@Y!k{)XAs3v3=_1^2)q9m@%vbo`+&aszWAM%= zGqwah%e3Pbv##tWbk5`>KiEqRz#ujtSbIJ?({ru~I3$xftIcP*UxX;Zg_so%lc5*3S2h2!L(@K574YPji&Ra5rRV0W`s6E&v{y}aNIaeBSs@?$b{J4 zbDI0};?kH^9{sO}vuz!fWbTK_-1!F2QK|PQVleG%YA_wuROBa*)A!aA&0MsKdIAH- z>nys!2-Gd_7oGQa(baSU1d&O2=URXlJprB&{cN*hJaMbl$z@jvy7~5nSJ9(R3urLgku~&sLtx;Ox zw33C?;q<=ht%-=yI|~tytcjRIuY!%oOXA7QMGP~4c-*`y+_YP6UahBDCMh@DP8;Ds zGPWLO>}gF%&$a4M)~hhT{Ur zi4r6BL1&-g!3+3zQ_UR8_?z4?(n0WDQDVUfE~%)*G5-Y^@(a9?3m>c<5eifxBrY%5 z)YQe2UR-@yDwU)*%zzU7@&e zwxEZi5+$P3TkObQUIrVLPu&D}3dz3b5qi&(c<*{RH+4FA)qtBjc#i@XjO*Zs1j{fU zlE#fi8AaUm1pISd_ze#ArJHMj44hUz9w9IReXc)(~x{O$E^3of)f-6W|5;!n9 z-hsk}LHHo#-Sj%A>M(&!8@W=6n1#j)GpN)emfj$UG+e>snkJUAI2hIPk)*L~!Q%*f zp?eycSH33rCP+gWU%mN9+*KnJyw*MePI#TF0h=E@4Z+3eIoY-ZlDR76(2V7!ss{bi z`yhCUH7wyvLhxMP#C%WGYb%myNNG74D`Lr&)J|1IEK06setD@D0>~`@xr7;Ksp%V^ z+=3gm@#Lj#5gW`?GPf9rM{0urRclODnk^Ww+)rq0z9Lr5;@dIORjECsCU>McHb=y= z1qfS$V&Y?PPxbx_ycriT89Z;Mj2?Jxva}JCMl`q*>{#7kW!o!MM>CIW#*on+LBcYI zB+zYmCeWi=xvZu{Tjk;b4Gbk3!-=cr#;mYnOw9@_X*(wj&$;D#uqx*plaJZ@*-CGC zD#1zA#N?XwfJ?B|+lA(uIfHQ;B_hC2W7Ts=EaP1|9tmYm%~z$#oQWz!DmPnaDQLAm zOVDa1(i%#nHJNJ-7tWBlS)11AaBi0#A(_o!*GAF9=7?j} zeOE#C-Pcfkx2?XrwY-{RjRntyzhMxdw2$I)pV1#(2+KlV%v=-42ZKS!2S4zdS`61G z%}N353s};cL(l_FYC9JQ*hB#M-UzHBQVC<9OtY33jy&}6aD^DZ1S|vIsgunr*P_T0 zw>+}MEzeuxAgf2s%C;Pq1^uR6ar}ZM80Q^0TF6WZ-@1_fLj}f{v`kW1JMsjY%=H@C zLU8$#=nG#4t!mQqxd6nz236;AWQu^j`vgp zY`#w|5jGlMgrg9kEE9UJL707vv4cyoyJ3QNJ;M8QnPXVgSU-Vak0fx86w-H>ax%w~ zL28L^>{eVfq+)u_xr>V_Gw#P=j;3zK;>UUoLV6{xB>Ejeb2_vH%$1O73doBrCStu| z1F`yq2d|xKxlY1}sKv;kRA)k8+94U&ffH_2PFU-TV7S;t7vq34y4>-<-0*+G^3PJH z$su(7gjM$N7Sc)A#!1)i$xwzTLm8fg;9avPi#2=FHp^14SjoDTcMrIf~xpkZ^>~6&sXu zmOM+Xbf60olAuzAq%J!07ahYFoxC#_^~BETumvL<8WMNPsq=6GwKo@Xb`i~3QD$&f zAmet?a>i1_8FuD)XAJ5h38!usi}lQ_AL*IYXV1c3OuL>V``_?h0CF+6|H8 zblP${9p!Y|a_X)OA=p!7K6>>doJxIi8gg~naeCQtdO76uvd`(|(3V~fWqrArtS{Rh zu+)?FW!ryL7nD>c7K+);Uw>dVuqMG$=p}>2E>wq&cM&GUrjQAi zdQ8AjXePqWEpSXMa2;OY6+257Ebs<0SP;r&K`{;%STV5F;{c>J2VrZA9S4gY2aBEl z1dIJ<7d!n4>Rq*ZSFN6c#Nry4m&B2%Q&vd=+!9!9Cv>n_Pw1fDvdL1*=Het?6eOEW z`1Mn+zFBr7^;5Qf%GPJX@s@J@rb1ZQ&6MBGRM^esuG(^|2i^+;anYE7UmppVZ&hCu zT7n3@b~)e#>5z*!Dk3qtF@^1A=#`X|i(A!@Kp-SJwH~khRU-Hme4lSJCgkN-Nm|!Q zT(0#%6xPLC%e+aBmmv`NrXCi)I13C=2E}{umLs#9@%|)#G?;9OP}#dNgn%T;-I2^0xVphxaRu+pP_nc$pC?y@NsyZck({W zKy`MdCWZwn#{&=jjRb*_d&*Ve3rTAu+q9GTz>tenqVp%&?8~uamrU1*`jwENr7SeL zy~bd@YPX;a6X=%EfQcIG5Rr)*>x_#U>nsRJ1Ba=%*n%@eE1V(`@^=Af3lKcB44^QX zJB@ZCC^(@ImQm>8Vl?0)`$KUiuNeNWUwjtV*20!LlQ|v{7~yvs;deUWv)qWPbFo)Z z@6u8FI%@kt^iDsB-s!|4n|h*iw!Mt`#Z7)^9;a}feNNBi6~7TJej~3K@pHfSg(U^- z23PRQd82X}Q@l(Im5%Gr2S1*Y-p zBWhW_u_tmkk+c&7$B#KVt%4p0(}fMQ9A0K#!vggi4yGB9hVIGyeUELLx%{4A@V-~@ zzF%;~E4WgqBkgz%6BtoVAkf!@c8RNJS6VxfoWe_9VlhzFDI;p}+gzNt?GY_*OHRRQ zv|8L|w7AVxWVxx>7OB{poT>^dwwj8#Id2$YxvAK?ka0{%Df1HuipF8822~L*OHLiZ z5!oERhs|8}!319L76U#NTGOeT=l7F8uy-S{d~E5gi`IXlvp1%+n4|zY3mnItv{S?#Ji<%CtQj5swvAF zqh*a=z08}DvT!4tZRDpx9K}+D##^G885c~MWF1pj-p@EMI$MgDJ1udRAZsZy>ozk) zbX;h}^B&?^9KL8iP^;$Fg(@xG5u;|(LPBtjt+BfiyWc#;?WoOFU$QQa_aUNJmwhXrLpRiw;&JrVWJ zN6P%RY?t$1O9Z`|NS&a@XDZx2g7~QjV&;@V#IZHvf2K?_;NLI9#~Q3;8xwjl-j;X)-q_y zth`N4?h>d2lC`5NnbNR?_v#&*yin(tIW=I1o$i|#>5NiA$ej{9pw=SIm!jA#(>jW4 zbddlI2Hu2<6ho4h5?^Ms>2pXM&g=_m(d--1Z1_s}C8u4N5CwA6H@FmbAz+C&MOkL) znKJjj7|Sl0woI9OSBz!vN6X%~Mld+;_&APpw~!Bb@6EOjOOSPna@z9`S* z^3)fr^ev`i0(n`UFUeEiCps-@eP!n;G{o^ztN4o95f36?SHTNR*+DoC@)Kv9$R4IP zNgiR0Iq1*Sx4|)cH1%ClpE_mm`>RQF>iZhIpD(^;zKYk$%vUmlx9AeWd!G6Mwieid zezgWW;i>ar;hO{|r{2`ZZrNwCOuP4rBv*saH|fo89A8XCvFtj32*z-cx;7i&c20Jx zq}Z)#d5ed)-7OZ@Zm$kM`HH|eJzs=!XOs+D3o>@ItRr7v6J>iI5 zocalR^HY(`PkHyiZkv)*cftRX-I;jD*)Ku3ouN|lXI`oj7+5|txlH0V% z-rnFwZVK;ei@PYkVyt%R=Mh@=vdq+$8t$+S?o=n~fq8arlO^0q6ktf_r@DYb-xM8n zM7sDv7{DX6c6+oO>$@H6k9x&-*`^+K#l0*xg5o=ZaA_Ot4L_b8$CFb7nr+j|TJQW> zA3sNqnx_UtJy8=bvJiF&48?%y(I)Sb%+$EYVLS8&cmMD%79Iw<0|7wB60@h|cn=av zPK{T?5!J(c$g6JePfi_*$nq(m7-DxZ%yR+XAjRb3XOB(SpE3+3r!u4;j!vt^$T*Cg z!7x>GY>MM1n}%m}T@D+39)t2s{P@TBK3#jha$WqDQ-|Ab{o#LlH2$3>SL=^`=fB(= zf9=V-tKVPw!w2Gj^@Z=RX#0nnviQl1KY90OZ-3%{#9O}A_RuT0Z(AF0xcc{%1M2DW z_=+nGQKZ;WPJREiQkXkz508fz2z^y(-r^mftSDdY}f4% z#hYK*{`UXzAOF)&qx4UKv-(r0*K8iMQjBz zEkN5a^U+VF$?J<`+;Zi4E>aYPhy-sBdqgI%_%K)F=hr53o< zVwb9Ssgz4mEJ3McDFn?fQ>R%_#Yc@T4eBXAO^+zLmrUutF{S&#le2Y**A_#KDdd?+iwR3nzy(Tf@g?y|d?J>;^Fx>PR;vd{3bl_;Nf1)|D&A#$+KxfIk3vf$$^>s}=*!(;)Ps)?>#;{HEC1Fk_)XzL`6Q3nn_6Z-!Mw$1HGI-G6Eyd6#v&%6X z4>2(SV446gnL$6-H1q=MbpZpP|Eu;-y@mmXZVH+?!;zHt*gDqd<5j z-nl^2iQ-=u0lG?6UP}o!RK)>6LkTG{?@LLEDAW}&$znZ0L_7oqUmaI%dumE?T0Qi=^^J!pKv`DQo7kLy?A#2>}koMSr9y1bx)^4heml zkC*uPoIlcWLXKKpY(p+X%%IzXTA4e}2UC-8P`9ubX%`tIfk?lZlyCyM+9d-ro_Qgn zx$UfbiHvf9@a-n{87#M3-tnn1g3R@9Y7uXIV^*{a9s9OkdsKiIESIDoyvjyoQNnD+ zTAZAujp0N}n0X29g>!@8qYPpkCbcQb4|R1mS8qs=Zsv=4O88WacF)qXJQMxkiU7*%gFI|KaDsfkZZQl(0>FY>8^r1;RSY=EAr7tUM2cn4U5; zU3wl)nXBq_SEF*G*~@X#<+|_)UT5kqK1R@a7*Pz1+}4ZaPDFAiBe~OlE@<_0nKO~x z*+`D|ENt&$BsU$&UG{T;ylI$*9yVJJ8 zgs6Kb2h$x`F~`|z%GlO!J`^}6R=u4i!4*u6u%2YYig~57U}PT!pCbP;6q&efhf@nC47 zt9b_q^a>()^*%(O7u0z;0)f9-1lCvx%bYKuR_bHPIRM7c#}Zh=hsZ}A<9 zL=mhg4?GPhpvCin{F;EhmQVj|gfD$U06)n|&^spZtLn3Yq=#q@3<^M*Q}`smBS)-w zAbeE8hBONJh!;Rg^C0lW^Z1fehXSmKB*24wyU*7{9w)@}0f~j4 zMi4{CKYVp16vMr!7$Rn6gdz_lA^@IB`0U%Gi6XE!iohavM-CGr)XechMAQZrp=Mwg z{1y!CeP57r91v~695_U3nuCUdnh~Y4M+?3vd5nOtlP@8CvVaAF%LwcW&JnnR!w(y>+Utf{#i*=HWLq#Txi+HViGJu=pWYVrC;BytgzyZnk@M-RqDMZsf?tSH5{2Oy1~B{0H5}qqdFj%)X$ZgLqs;IQ zdgyK@hoCP4y$cLe!Y@yB&<%6~Cs`64n8ta>C0@=&;ETUCM1E={h*szHSiTcw3m=^T zTc&dXenpp%K#aqs-Z$iA5V1Aqz-PXMrg31#FjBAqqm;lalJwO%^l==ju@@Yt2Z5Rl zK8N!;YD(||UO@#j7<=I@8N6m+TTZqC7>B;-4z(hxa6NuslpFTU3tG_007nNe+PC{O z6*x=5MLX2^@N;CSdA#5Tv~r<+dmkrhP<`{X-G@N+YozeMK$Eu?(T72O`xTaJ$futOY2d~XxqmHCqV`WcW)$nljORK3mN#Z9gF zJn2N&ZJ#RT90mYOxHVLGntpxL3JC;*jRKigkBZdr+0L(qj3Xpt#f-^1&q*Yau*@;y z&=@KgU$cK*E~bNVEpogaC>n?hrKS8$6s2MnQd(dsu?jD1tMIavEY~H=r9|Y4qXj9^ z3Kj4pB{*Ktb@&+txZyhU8tGTc2Q&4l1GonlIvs+iJ@9l0zU+Z73t2H;IG&Kq8@i1* zB=f$`yl)L7-bFx5q9+zq>Oj(Cd}0MC$;>&a|BkNzj%41`nfFZlU!^K*wqRv4#|&7~ zA^3y`#y6#KnkOF`Iq88fdEORyPOChfpV+F`pf0oaZSlXgrb9b(%t zA$Wmwv{84oQ8FuZW`$&$bw++9gYUttpwe5~J_TQlk}c z8;Kyn6o>0IqfLe_8rI;b7T?dMF^CAh!Y)|Sll(ou^6PG}L$WCxzZw|4Df&v>oN7B{ zjQy)|@P}ivdk_yhtXtc4T;P1L*bDH@y+kb_A=D0MT%)!NDl)^JpVO6Z!0OwC9An!%+=?!8D3E}&~3F-&?jI9)bmdXw2_BIU0} za&XMRZgwk9g6*f1&_n;-%vW{6*XiZ! z&B*y=C%No&r`6b|G3Sn*Q3D5;a1LXLi6R3}^a5Lz(?sNP;ANL6IifO)E7NwtX4GKKwd$>r! zo=y}%8uKCeo`7ptYL$i<(0O@TA;b_!BFyU(iLiz}kI2JF6kzzR%1J~NgXa(hkk_JA z&w7056Nm+_C*Ju(SV^Bg=nwLXnDxsFc>r8=cVrONZs+cq28IK`3V7`x0!ZYSdtH-A zKR%G>2*9~w=p-M4h;=?rJ{3=d`urfM3410GZ{RcrKA+^MBD#$8g|HRLgOfZAzZJ&) z8B2FG(0$&w_v#3wuue@u9ltlE;&EcAdb|n*0Wd2yiS$>7G)?6HR6YdfF3~y>UZs}D ztD)knnK?bkYnhQUqX1H;G?K@;L8MhVHORy8dJ772Vi4*Orv3&y25p!6ClC40QmWHB57z#$MY)3w11 zpi(N(lt5pW^m0kRD(SeSUzg`=z^)`Y8&h)0=@5EZP<113Ncw%tP~0Y@NyLKKp?Bo@ zo+iNf$FVSZB21nPlc!x0Q5#`_)y{;;vtjaFn7kM!4ZEy%*+H?Jx5R>Ym|PGh7l+CE zFqsOIA~?iCoLo!?u=_{Mg95LTXN|)^WP@X3C=<_gpGnhaCQa{{G`(Ze^bSeOJd=ib zCKpI^jq+R}&t`d^GF9N172U+h%iD~Bd*NH<1xh>+zKDY z!r@F;$#tI??H<`SJao^Yp7h9g|L{;(-{|lYV=>^B%Sq1qm|EPl?VhfU!=vd9BO@yw zN{@~KZT-QvCcMqll~{1^X!l_HiQ&=5I{L>(2D%S#LpIJDDPY_hQ_I)vUvuZ}ZLN2% zTzluf-j%Iu*6v@~-Q2Tp<(joE>7M4bYwt|o(X7)s8Wo8|PVtRuZ|;($_B z;G?CfnSYg96H`r+xvjT#^_^>PZ(iHd(%jb8($dr0d&j=??cL3Hbnm}?UrS56rT32g z&AlyamHKc@E!+7-_gLS)iJr#>(oGx2Mz*EL*_$SS4;)C3-j^Oy3ddIHE}l5HYKf^8 znw6%V>CuDzJ?XKg4HM&iCUaZ+mf-{aLmS2p5A}Skckf;_(i&5%X05R!eV~7AJU!|v z-LBNVF|{GT(#GMTgAi~xN5VC?aUk72>X(c;GHaCTh^dcX6Pf$i?T~y(r1e+er6WC% z9#8vp950Z=eKB?Swes@d7{oC!uycGg-97kQ>BEi=MDwfA@p-xX@aA4e=Z;@NHX`B& zhrmkj#^H&faYv->S0J*r`?2DZxl^gmnEI`2lFWl6z1?{N-Vepunf91!!CY7uQ)}}H z-aFc#9_n>^bN9e-&tqu~bREJdZHTG%YpJSh-hG%O<;fM}a}AAaMagR%LvnXat^a_= z{i+46V?aI{Q@4Kr3Fx|RdJCqV>pR9_V@!SQTI=peKR%Hj8;_8n=&zv*o4SX32aMQ89#ePZ*S>Fbcw)rq z&cW`1e$#xUHU_^frq;|}c_Zf0cv=X$W-;_1TygWz!T#|y^)0kc7_?%Yjk3$W3S?_~ zaGz&pXPPO|+RzpOL`ND@z9**cn!T%fx=L-|5V>x*K-wRVsdckc(dr^pvYn`STZVhOVY`P%yAPzD(&%yT>>eH8JTx{w zI?=;rEbI#OzSu|>CAE2|f4r-E?6I&m1X;}NY)y}i`8;4O4JcG0=w30KkzbWUFtA9o z#pIt~m$OyIq<{bhu$aLpMxb-F{~#t#0SOG@9Wk{!e++h{d;7;WcK7s!BY@sJ)>l6Y zffpP4;`KP|gqR}$i5Hu)MXK*e4-OwpyNc*?u{CDKiiJ&IdyjW|J-+={=rQUQHVZ}h zt(dyEsGxVG_m8H>`nrZ6OM9-FSUSJR2>}!5SEIEfeGs&Z(gI&wV`|g2^YswTH&m%8 zH7udUG;$}GyP=-+=Fo$HI&DiI8sBLPT<0*tYh$W8pP>gw28O$PId7d!*w7n#WU#1r z##HMy)I!6N*$-7LrpZOx(*}9xc=z~3XaK-&u?a*4aEzi!<~I-RA9mfu7#36Hnd)h0 zWe6J}M*$;Ow99_WJJMt6@y_nCG3=s3VPTYtS<6VNzk#& z^|F|A5NXwuRCL9Jz1bX79cFwX$VlY>&lQ`bwC6Jx5d=6G9~~Y5w%);pd9#Tnw@@^1E{7MsT{qt(d+mpY_neieg*TUcMv->g<`9lP z!uw~t(UmO3fL6^=6FSa{&@0dBxR#2d53CCP@|=!qsjBxqtP6#^J*HZWEd09Kp${Rq zwHuGkbkm#kA<|gWjMc_WFTF`Wdp+%HdX1u=jLTdTuXa4pzZsOLkkL>om{wk(Wp*}Y z@5{bHyJwJzb=u7gxvd>zE-;Y^R3>verZRtNI#x_qAK7^rL7hP;5vG_pyJJm=CZ$LF zdz#qQP@Sc=5O0zvR~f+etVk7-Sdp?ZHU!Z4cSUOB#K1Ug==!1b#Q13Uz>1Vu%pOEd z#2s0`uX)Y>wfpbb-_p{%wz+#v_nz6OOF_@Q4V%#i?33-DrC85>p%m$so~+)!#~-YM z*1g?}-u;jVs8!}uG4;ECOL?ZkihujQ--h&^D0d)!(?6L0Hx#3{0l3zVcoPK5?zz#k z5(xLd6an;o1`A@=rjXWc?RiTU3>P-9Hq0~25Yo^Za`q?1>@2S5c7@HkDj`Uwk0E5I zImhrjm_sM8VGuuf4$aJ|8+wn(zv1xDumWi3)0cqkWHp%M2NSX~rWz;2DPDzOT=&4L zC&%F&Z|*&^Y6QFFu~kp<$F>Q^ERM`L+Jz12`5Lx_(Vibul^RUPSv-8Z=l_7w_ldEt z8~Pa*+nLzmzTeE;kQo9a-cu;Au_k(zVg9!Et!X2+8O(e>e&^`$ez-!c1PORy`;cg1 zBlq?X^%^#3m|gkJutwthM>gVu!kYD0J;v8H?ErrX;_z z@zL!}gtwOYE6l_b|0Xk06pAg%2>yoFvR-)9hI^bt4fOZOA&K5r=oJJ`t}(mXi!jhA zaA*I4q3(elrtG$MsLI&HpjEtmF}3Fd8?n|`_Wr%L6%cYhsBCSDH35s*9aFpil}$t& z?$}qX1sI(@F}3So*@BVIjQnGoeKMvV{y^%o#+$*=+e|Aa#uH{Fj{re`O!fXxkdL&f zdox;0Olawv#@g?Q?Sc=RMV-*Zu9({SD|N;;@j+6$CM6O+?;q|TvQ!J$GHbY~e-X#S%yWjByB+X#_@_Ov2`(V*D}v?r!Md2QTlY8zx% z5S;-=MQ4=IwU6!0ZOq<_YidE;P=xQSkR0ION_!l^f)+aNE~b?j;A_&Jnd#0h7TkHz ze{dIp-@#Kc0PLHrxEEl-3SgUNm85>zwPg6Qxf56vH}{6cyiR~C45dPsfZkJKyPY&>Pbl)S&=eUpCFSwk~+ex7o}YYDAlxY7#bcrJUBctmSX;6 z!3|jFe+fdHg$jJl6`(ng=DiF}R;LYkXaDawFw+LS2{$GzHq!uO*vApVVWs-FLj|cYYA&q07`k)?9s;j6=uVi-tV9vSTnM5) ztkDA!`fg3Vv&x4r?VQQa~GIt7Ms($hWqn3a5(o0V>U zuMV(R2WG93c{Zj7K7bd?1%HCIt=)&BgAoA$VGE+s-emH!v$8U?fc4I4!#KNR)3cJQ zkEumw`Pe$#n;t+gd{E}mA#9SC#Z>+3=GC`1uWoK_X>D#^edk`Dg7#zjh^ML4jWKn- zhjB-9+uokO?x6$ez1#*V^`V$*aOG>8Z*Ohg+uhr{GL(uwj0jO$)->O~cS3HQtnBgp z*Odbd+~YFLpgvvghe`8@uWebgx^?ZHwx&VSaX>@-j+WIeceJdrC_IZ|P^N3R1F0^g zw(sAMQxByO#=bSIvwF>%Hd`l(xsuUyrBX34*YrrDw&;Qa-?)zk>M8+QBJ zwzZB2L0Boz{@#_e)X{FWw6-+kua=qKv~#nr)Xg!KG9+7D*0ii`U2WU+v6jZvlJ1fI zRgXZBCZxD$)g#^F0PIm}VNBKJ7b~?`FCAs$JXNen9~wa|qfxCf@?!5vA&$(b3^iGX<`H`^B&S_)m^sI{Ezc zMTgsyTtu6>yTc^y+_@{_`(w?s)54Q*V9w&u%J$GXKYab@Z(l zo=5jI4jL~ig9eAEJN4GlKe_ac|9!O)!;F-Vo_K5WGn#U$Nb6N^|NirrzWGIsFr)b2 zI{K-%|Kb?9eEW+Tw7a_5b-HM~4qcN)7@%m6QV!1_SP=i_^ID?dr|39b|Mq7-GySb= zSBD>e?%3PU{GVXoSBIJ99L3h-Y~_p_jEPS^vSH=F>t6Xg%`5NRbKCNQF<<7Id+RfQ z3Vnt4O+WXwx4-bIx1agK+n+y^Yj0PkiL2wL33lV1|MKpU;V1w5 z@GXD*_h0`TuxkJOi0PEgMSuQR4^Q#bbo8D>>8;)ULuwGmwxj8EQ}4ilu5$HemAWfh z`+wz(1WH5?QV8@d2BZ@|O@aBr`GN3Z5jYVtd_?|e{Jw%BQc>y!Y>-~K3xg^fB~x)u zD-sW>ooX+h_oy96ZC2aWHsm+sc`wrZ^UczK_!q6!nwC!Eo}858i$VBlOAJVL2<#!% ztwuqoUk#`Y9G>YQ&c(XZUntSH6m>sMvuCYgHwV(o7GnIas%X!`|J2~yWm?+JAgH&dZgWv z2w(a2nsGfJH;_yZA40uR)C~L40#2IUf3`CZ_>{!B;0}SO0gp4Eev|4&nVw2`{RH*4 zpw0oQ!Jdt%!@}VK)dy-yrSSh_LVvq~Q);Ad`D0E?V5WAo+&WQz7_Co02IC%gg>uWP zRp2X%pD%?_2DgD`E7r3+)mliR8P68{ZHAV&Nva3sz3L8(VH)M#D7gdA{YdYV@-&_- z-;a`Bq!FIQpEenT4Uqd7>J0*S0Fp^Tr=z10^1(4t>ZOfw_1`?j{fGbSTkRh|G&o?d zaIF6jUS9Z63U{oAd;5nDtpCu1UH7hR`%r3Z9JhtL2Zo2z>pyfjJ@%oGf2_K)y0RS? zf^a!x;BX2ghQ`)^Xkv6|-54(W4R(*M9PIBI9UdFrKMuEja9#Jl=LAc0M~OC z1J`w?1BPFmtpxwo($)!a=JE44_ND-);44gVo0j+ohc3ske>tcxWr7_G@1t36} z1FSKUOF^qmeNxL(a};twq^(k7F>r(o*s?BCQYg)IOa|`b00v`PVoq@?)Kg$X^s%@G q=5&1&x7+B$0|BVOMjsYKcHm?~e?ozSfd^>o7c2T(J!<2?hX4S@J}ChJ literal 470528 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 literal 150016 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 J_kZ^Me*hh}l>Gnz diff --git a/backend/IMTest/bin/Debug/net8.0/IM_API.pdb b/backend/IMTest/bin/Debug/net8.0/IM_API.pdb index 4d12f0b522a52b8c428b4d49c3bd8b8ba37be465..008f17a0254324e64e349b56ef9fde4a49aed025 100644 GIT binary patch literal 144348 zcmeFacYIXU`~CY&V3HYT=)DK&C{3!=&_#L^A_NjbfIz6BDqs*06cJF0^hgmYB2uIZ zh$0|@AR1z4vwJ^1pK&BDK$m>_*mU#PH<7{Zg50 zEi-CeI?3gEb2loqy}2{OJ#U z(n=(MhT#ftrJqH=jQ%41b^0>_`=3Xesz%6A`X}jMr{6<=o8Fg)`>g7b zuJqIB=hA;p{}X+Uyc|Ce;WkLI>iBcuy`Z~B?^i|LQhpP~1b zK>J*(5z>UdJ^f_*+4Q^V57XbGkGv1r)8{UO z_R*@^o<4#81^Q+5C+RQK=PQf$B~>G&6Ma1W^Yn}8kJDeE&r%NU^Q%Tk3;NFVljvvB z@1{RY|2w_6JlfY*^++@NQS_7Ox6r>$|0De!`l=PszJY3l^rIg^zn*><{kQbD=6g*3r~jP(2m0cb(f$F|2uYwHO#ce~X8No2ztEScg7$dL z6d`@-Q|Vu&-%5X#{ula^Rnh)I)d)$VA3?v4emnh5dhdg1Q%lt&&FM$cPodvKf0X`j z`fSzEzNM;19;JVoeiQwN)lt8!8X;F|!2hZmArIGvk5!G3|Nr*?-XpM7{+gb#_gf_M zERih|pyr|$q()QAQY%qwQ0uAgl+Dzg)VHaJs2@^4pLTiLD$d9z!MWHZI2W5_ z4eJ}J+f>&{vpG=Aah+f#tP`w+b<&#keyZ!G;#}wx)T7josh?6mr+!2Ik@_3;FRFJQ z`Ua`FRbP|x)WfP9d(|$RGE)7N;PzQU9zd)D0!(5slFjysasS-w`FoP>_e4w zIr&mX`oI7GWm&%Pf8YAul0M|4w3?|iVTwC)H2kH)aul_)W+17)b`Y_)SlENY6>-#`Z#r> z>R_2hoyp2P)nT%lx`Dctx|{kA^?fSt%fkfs)QB}`@2BRV z=BE}@9WJG*Gg(PjP34}X3ic#buqUa4JxP`7YoT?ijj1iE?WtW=M@mmB=9MZ*>PK<3 zQ5UY$iskf;5prmc0sM)A_RmVsXYDrcqsE*~<$8zgq zx!ti+mvuZ2j}<%)kCn!(w4}DDcBS^DCQ-3M#tLRSR#I3=4b`a=RUemWR2<>4GE@C{ zZhbtrKAuN-yx<6r7aZI1k{)V9-9X(+-A#RmiX$*y-lso7#Utu?IYWPmdX;*edV_kK z8nGTN{nQ-P{M2I9($oj2)u?r-ji?V(+fg4?O_MlkAL>BraOzlUn(BC&sydPP(22Z< zPLy4&?57^49;f2IIZ;m2U!;CXy+-|o`UlnX8e00O*{S)cMOB}YQdAuCiE_XC$vozh zdCVtsy-ntMpDYhD#d)7B57Ea^am=+1wFN6}sa>c&RHsNHbpR{FRHt$)Q@NF?GM<&m z)ale0s0*m+)Ya4tRIKNzvXy=}^&KkK*i^2uY4W~SrU~XXRZgg%E}v7|Zh-GX?LkeX z4xkRBj-ftDeVRIhibtpEGKYQN)CX)UT;OP;XN2P&2=d ztpupKs0FFf)Uwn{)Ed-!)F!IWN!iUJGk9!g@Yv4ay=DgQH8Z5;7NqT|U8y~(Nz@c- zD)n*I=lMwfJdfcFnW&Xn9C;Q;o+Z;*nMs{TT|!++T}RzS-9g<)JxD!9Jw-iF{ep^D zIJ4wi`k$!3Q~#z$Zbh1vnul7LdLOkswTkL&-q&VJE&2x3W>nnQW()3Xv!u0F=5R)H zIHNgS?Q^)==Ww;p5v=w((vK|%Q%6$YW_=v}B2v(?Y#$a6XJTv^TvUdPVm z$a6XJT*0%$T*0%$T*3WlF7HQkWewYJq;6B4$H#nEsZsF$c$Rp)bm=5v4Mb5+des+cc7GrdK{BlBe}l(dlMQ(%|^{jEuy+m9;7}* zjiI)n;-0%u+S22myHL8&_n;etjCs5hy1sF}B6PXg3j)PmG#YFTO}Y7J^VY7^=s)DF~c)LyEK zq%U<46)SL&j9~hN>H;aZ9a@=+cRdUEj$?t~J>vqwd&UKVcZ&<8Cfn4f;vL5VX-eOU z+L0Pdji>gb4yKNzVr?vtarBd@&r)YoU!pEkeN?tmQ+9}Sm7}VmTQ|wSTcn#zP>nV9 z$E4<4B9BRH)$Y<;HFWDC=k|#H+~-HtIEmbwQST`e_KEbA*HnASdDYM@Ub^fTiI)V` z1XJ(LdT-VfO}&rgc}Jv=)KE>5E~=qhU-|G|k-qY+YCrKF$f)<1C*Kq4FN;-^0x(*pG+h{jkrd{rmqdKn*3Dz5M}keT%Js7t6Tsq3hls5_|ps0XRXsHdpsRsT|u-~(&L(2j0~X1BVLRQqo1eRNOnmfSf@^(E<)Wrd1&^yu<;(C0w&j2JP34-aS5vvk zG4HtQ|9PBH+Eg;1%xKq)*TkCfnpiWz)v#ugP19zQms*5cl3IaUm0FwHklLJz_d(61 zjr!27A)j#?N@uM!6s(7a(w)9HHJLh;I+{8`wU*!&NG-wDgIataT1z57hR5s7T6~>Z zOR{REwv3==)+1b7o}hn<`V4gzbv|_|brp3z74INw%VzqW)VHaJs2@`CnxVFQLVrQ^ zAzr0?h*v2e65JCX65JC*w>nJgFs;LS9r;Fk)e+oJ>j>_rb+}sU$d9c5M*T}QbgL`g zQzCUGNX2ohE4kH&ZuJC@Gxa!HJt?I1dQu{shT2r)*{mkzv|ddrQ)^Q3Uay+er^maM zYSNS*&*{~q6+PZ}SCfwPc-37^V(H_l{Z#)?Z`EWl`<@B+ttOXPxf)VE%hlw1IQ`#` zUrla=dsP>_+NsW0JJkhOR;vrHtX7x5v`uxv)#mEr{RA3R4c%&R{nX&2M-9Oh_!@#M z@HHg2wy7b7s3oZ7sJKVe5ZohbNM%-PQtMNjQt=+ShO|;2y4B>XubR9s)Rc}|uPL$A zcxu0J%PPFeU4@VKRrm_6iVW7Yis0N;k&)q+Rk_Bh$~di5<>OLS!Q)a@u8^u+Ayv7> zs=W7A<>OLSUSY1vE6h~|SC~V$2V_!sDN&=QE>)K$`1N{)PvMx)KjYe-L0gYcl9kL zSG7_~u2b<`UrKJ!-=^YcE2RWKTPY=>r?p9VV=m_>!PQKDgIiBlsf^%Jt z&(7s|#>;UZ%JIHaPQGVLJj#{ho|KdSeoxBDudY2QFMn&LJb#K;Uhq@A@{({C+MkO1 zczNE(%gYc}Mp5xPr#$b`lo zOS-FX1zD$+3jEnw1=&Q8=h+H;JgLCP$qKT=)$4!1^$M~t+_$j2ANF>HB2wg2%Xj;t za^pXwwrw%lectlF`Qq}#g}dv~()i-tl@OJX%l}&cx3;L|m3@~)Kk#+nibx@8^%eBJ zuSN39HR>-^yiU%~=cCX#1^7HwK>pCQ0ADo~Ft3^l@>NqoKBE;B&o?3k*`^?$(+l!B zy&&%e1qJVJ?!Dy_pY{sfvdfyV&mqIU&8X)T`7Xm}m3PBFo7BCQQ4h$8un(FxK52YC zqm5tQ3i~W_GVG(|x$iUDc;(HokCczXK0>|^`%Du2A)|d}sT}qmK7)JYpjJF`jCzWC zo_d|?`!S>M|2O_$DtUB9OQiy}F10l^nffGk8}%dV7pkG#Qn|%SmY*;}5o$@*dvD96 zsjI$BZn-L(ZU4C)3OqZBn?rxVZf8A3Vcf;Lg>aXrf z-ka`9+&z__U6s3g{5SNn?D_5PelJV?-`$m6_f*Q=a<^H1Po?x9?lv>-sSLX9Zd3Ko zyDR@4Etm0kGI}nT$zdO=EteC2WuzIEc7MAoKi^Z?r1xQaTP~eF?#kJFDqAAlZDKOr zU0Eq}@2M2de0Q7Bc2~(vt*?@K)FsrF|JpL6{W@2=N(M*XJ@P79e^2F!sJq*|B1L@e zO6on88~0T1^SgV!d{5=3tFl^pWx2c8YI*OT${kn5o|lk+Rptcl9>=y>BUgfVr)#7H zzVKjfYb4oK359Frx~slcZn!FD7{{)a+paciWox#(x42f~@x=#oTPyQ&xGSY{x+}|F zmCyjwrA97~{*>@>>M^P}H!7{DiPW9cKpxcNsoSWT@}lwx^=ayPYSDbCx1~;}Zc}|u z0{NjusSid&ZHiuW-7{-)N#}$)GgE_)N9nN#n7@8wHR#$6)ZeJN_3JHNr2@4cwUes7#d40ZoMWtDjPG58>etl2srl|hn_ARv)FIS`)Lqo` z)L*DsN}_!UYGZ0o>PYHT>QYsEi{l*QILA27F^+SL;~e8S$2iV0j&qFT9OF30IL|!aXgQ4JdZlQp20Z5d5q(EjN^HX<9UqZd5q(E zjN^HX<9UqZd5q(EjN^HX<9UqZd5pW~Joe%odr7WR9{tJP80t2vw=^no)Q!}vWl)Ky zZlL}~ty>oL71V3g`^%w{L|sPplt-liwK}yGwKsJVbtQEd^(r;00(zCBHl#jE9YlSe zx|aGj^(6IMReMX|91}Rl1kN!*FvkSJ91}Rl1i>5=1anN_91{d{Oc2a5K`_Sz&M`qS z#{|I~6FA2N!5k9=b4=hI69jWi5X><_FvkSJ91{d{Oc2a5K`_Sz!5kAf#{|I~69jWi z5X><_FvkSJ91{d{Oc2a5LELjp#5pE$j!B%Owz*%w86+F1o(JIDQD35-r#7vK z`V8s^)W}Mx#88)0cTi7JuTe8qMw?R9X4D?ksnl1ghpCsTzfrSQL9fcxR@C0q5!C6b z_STPc?8iCw;~e{Oj`~w?U7!6pM{T3C>&H3v6U?!nT-0&;$pclPL#bz|B_2d2p1P3w zF|}qj)Z0*#scF>t)a}%>)E}vZtD}8AY8-V0bvku9^&RRZ>P@Pz26`1&wYUBjC=G1=F3DmjN_0*%(Z>Ulm?Q>DftJ>Q@&U7GW zI*>CR$e9l0Ob2qN+D2zOkTV^~nGWPk2XdwZIn#lh=|IkOAZI#|GaV@7bc+M!EVb@K z@ExgxsZ*$nsc%s)Qh%jJ*FpP6)ZWyw)LGQk)I-!O)Z5gobd<>o%$>F4%OQZ<7B1gr52@@rdFiZpw_20qqd=Tp~g{@ zsDr2@spF|rs57W@sY|GiUfq0XSrr7oeaqP|AmN_~rZfO?dAih68A)YjB4)SlFS)S=X|)TgM^sdK1HsIO38r*5adO?{tw zl6s!{CG~siZ&c}s{q$3FQ43Q`Q7ckwQX5hqrgl)Zw|w$gxROsESD#NlqegVPyJaCM zpp`;WliGqhfI3Vybju}U!ah{VF5kK;Ib>?*jP{{6IpwUYl2w*>xw}m^@jQBWB_J(b zm7w%@ReZA9Rq@O3u1Xdu-!)_8EK)V>ohk9ZDET>DkCIzqA8O;3$GT;V5UNDVHdiG= zg0XkE$s~PUmCUj~TxlhlB;$9V^or2mF`@%!)(UP>`me42%V3}Sc7~C+H;lZ4VdNbR zBkyDwd1u4OyGUesd)bvAH96XMHH`M%3?q*C8s1(d<>7{lDW{tD=s&_R`j0e>e3W72 zqYWb;V;K2Z!^j^ujQk11$j2E*KEW{ZCk-P{GmLzqVdRqxBcE&-`4q#*pEitqnqlP6 z7)JiAVdT>dBY(~?@)?Ga&oqpDmSN_jVdUwCk-uyh`EtX^S4htA`Yx=z(&T8r$}rl$Vi@^q z!^mGXjC_q@R({RoXurWQ+P`iX`9{OY-!P9C1(i1$ z_GiL(m;ZS@Ij8v+xPtPBQcQnGSm^n&jPh~A4V6#0_#-J1Zl7QClZMg$ zV;7%t@h2`mZMeDiKjY%FhVfi}&M>z3seV4q?*Dni$S)Yi_!kW$zhoHsWy4*RKXdWt zhSC2E7hf@q{ryru>6Nj6cz(NT7~A{G#a|o7`TE8%#{1UA-x)^xYlgA^*9~KTzc-BS z|KQ>u4P$#h>1UfV_8-r!KO2r${zW;vvwrYe;D&xWGnd0nm47v?FURDj;Yj7*3}gR) zH;nzeWf=J%hB2Sp`f1jT?bTHN(=htqF^v9yx%h7vi|3#5(B9+X2*cQZCc`*hnO*Gl zR15E44$UJCqkoi(eJ=L9IE!IyFJKts1wA#x+rw+u48~j@(SKPr&+VKaJYHo}&f_qS zS9TZYaB)u0L*e$NwS6wb*nVzLy>O2C<}r*suZ!~;#`g1j8ixDh@veYj^e^b*LWXfX z3LD0FMO<9eFvim#6o$8lV^rKQ9{-~aBQIeXx&B!0uKpzrBiA3$+?DI)?=T}TV;JL? zHH=(;Bol6ryu4xL`eT&4a=q{xX5@NVJ@=6|mn2}dDoJF~c;iAe_O@Fk1 z&@jfUW*E6%Ko5_PTrYNp8F@{^$ZHu!t`{uB?UCzc-Y_HA3%FrMj*GY%>lwLTstq%8 zy-*uwiWK;FqP=F{2CC%ZB(Ph@N#?Qu~dgE1a15o9oOTn@-!!N?yojJ&&H zj6A_G^4^A#CmKfH$1w6Fb395Z_cb}%_cM(4{S6~eHjI3L zVdMi1BTq4me2`(}gAF4eVi@^Q!^npjMn2py@>IjfM;Jyv(lGK-hLMjpjC_n)Psqm_ z_A5VbjwkLfPniB_Kh7}58*do-1jERmG>kmWF!G6pkw0Y^`6R>0CmTjS#W3=x4I`gw z82L2A$e%Hc{8_`uryEB8oMGfM%<)71ykXp5XS$B(EYlzDXB)d7@8b-d)F!Hwz zBj0Zr`8$S@ziSxz0mI1OGmQM8VdRGlBR^~y`TK^EA2G)d&$l1A_^6AInf@5>L&F&F zxMAcc3?u)@F!Gazk$-F$`6e zl~4JS>5ul84P(5|3?u*CF!C=9Bfnx8`Im-~Up0*UE5pdYHjMlm!^poijQl&p$gdej ze%&zg?+qjW!5kmtKN`mI`pFzGJm3E8c{u!f4EZl+JoLX|7~}tH82L@Z$bU18{CC61 zZy84ZhhgNm4I}^4F!DQwk^f~F`QL_-i(a(Ic)f|-V;DJp54_DY8AhJjF#3B9BabwU zJjyU~pJC*F!^pE3MjkMXJZKnsR>R1%8AhJnF!CIRk>@mw9KQkI&Of(d62KVca8IK#-t8%93C9Dn?L?@5!ReVSpkpJ*8QQ-+aGGK_q( zVdPT`BY)a3@~MWA<2lc+$7c*9f7USiPdAMGIm5_j7)JiQVdOInBcEj$`E0|;UoedP zMZ?JF7)CzVF!FhZkN!9=KhU*qhVZc zd&4mDO@@(gj%XWRulTIM7BfEDZ#9hVy=fTvHp9rb8%DmvF!G&-k?%5$e79lbZy83u z$1w7}hLP_xjQnlG$oCsY{*Gbf?;1vaz%cUn3?n~i82KT?$PXJv{=Q-4M+_tXAfjFP zeBgTX(TI*=)~0gI@FnFBBf5n1MwC3}hVfaUORn~xnH=-|+{ItG+JEWFue$gvSNm^Fj%$VA8h%8# z_noW#b(7<>gx?!R`yX8Ge=<3a-_M5e{@@qWexjbQUrpZ8tM9K}{F|%&t%&a7^NarV zGW7~GKHpK_Fn(UzAXD#fj-UTFG>r2XV;Jolxwx^5n`KH0kB6TZH#fZ2aBlVO9nL5C zE)srcnZ91u&lu%b#trNLVZ&JeEi?5G=ed+0F zk#{iLE1}%cFkY{BGJKzMXTxaU#W3!Fj~Xti+|}^?%J@5T_ISh^#{N8J82j7ZF!COT zk;fTE-qSGhUWSp!XYz-)kJsl3CP(|;hS5IJF!DZzktZ2O-q$eleuk0bFYIN^A9=E2 z2#`zj-80&AS84u$RGmPgiHg&$FrF7RKsz~(@cBxf5tHSKWiBIbi>G>GmLzO zVdT#nMn2Op@>%A5;PXba4de0R1=Ak=Uo?#Va||P&YZ&=_!^mGUjC_G%ZWUu+op z62r)s8b-d%F!JSwk*_d}e5GOJs|+LGU>J`lZx}}VO@`4Pf15Jn{*zbvEyHNP$1vLO zHH>_pVdQTcM!w%L@^=g)f7dYb1BQ{mXBhcG!^jUAMt;~Z^7joR|G+TvqlS?mGmQL0 z!^n>tMt;ID@{bH7KWP~G$C-wNk2jugPnjI;KQWB05ycf-hU z8AkqxVdS?BBmdJd@;io+|7{q#epoy_f8-v+$Ri9R&ukdE*D&%(!^ooyBhO+OdB8C8 zpkd@$4I|HH7rVd z%wxj)m#kdUFkS?F}REU>JEv!^k@uM&89R@<$CL?`jx%H^azd z4I{^2tIn7Y@*akf#~DW6(=hU0hLOh`MxJ08d2hqW6AdHpV;FgoVdQ-cBk!NNU3mZT zetLk((SD#|v>##G_kVdT#kM*gf}RW z{~LypZ!(O0vti_03?tua82Ouqk#94Me7j-f`we6N5193g{eREo=zq{K`X4fk{IFr< z?;A#b#4z$xhH?JSxVC@RH^c z<8jUO$9UHbW4!MTBmcoL@*fQ&|H&}&pA94b#W3mU6i45NQ0 z!^krmM(#C?Jkl`oD8tBohLQUXBhO+Oc^<=9Z~48`!uyNkTfpS#U(hi67cz{zuwmpy z3?naU7lsE~-!Sq9hLJyP826_~ywk(y7vDc@Wf<3k zTf4Z8i`#mi5BJCW;dX{`eYw41jMu?1@{Wd)ck<4@YrM{ek#{kS?+-m{80)pGVdUKm zqkpW6AM?(+YkS=dqkj*>=pX0eo-Xd?;&|`;@c6hMmtYv<^>%ThcVW0aj%Odk*qvx10Rm0{$s z7{>WoZ5a8h-ZSC-NB=d3k*_uD1?y*>VXU9^hLOK!82JY8!0`C^`Ty&N@$;&UhVk>) zlip0>_Ih`gj}4boK4lm`U-`r^?$4){^>_QL!(R;0*N=u9E1y*^5I1`XF&E)-cRynTFD ztf=9F%F%|g{gQ_9S*tRJ@mZSkhKK6@JzyAXsj}g}bo&n)Zl?>ZL1fwR{^0xUF^2Kl zs)^ygy1nLxac#V%VZ7FDZCLbpwlj>+mUJ|{RNHqkjL-gbGn`Agdt}A%{?%6QX&9e1 z?;Tksoa6i_y10*vlML%{GQe<8y@L%h{DI~}4dcCis^L;P|51_E!rL#P`!m)szAH4& z@Kzn~NyGRq)>DS@UEe8&@!hFuku}5P*HNBs_zfNJdBgZF+MLLT!tDp>@m&yEFU*+F zV#A5rewpEhdO%i0HVn7N&+}h#@p{8Wb^fm#zN!5;8OF7@t%jRvzTI#!y@Q4$BlZ2bVZ1jz zYp2RQ}d5z8mzN;c?2>3_q!S-EcSM?+w>e z{=x7?yTLyhF0K5t;cI$)elhIP{D$GWdH{bl+*;e;G(1cBH^az(ckwO5^ECg% z#kUQk|DT3GR=#5x{r__D--gj&qW(F5V2_I<3}d`ZhVl9%vthhm@fybKkx0YHqYUHo zPgx9O{R9kS{R9nT{bV(a^^?so)=zfBSU))oWBuebjP;YtFxF3Q!&pCg3}gM|HH`I> z&oI_ce#2Nl1q@%)`4%*c^;5_&)=y!>I3Gm}WBn90jJ%kOiyOxIigs}c!{~pXVXU8$ zhS9&2i%T0u|1vHv>*8{TFvZ80)91VXU7A4P*UO zGmQ09-7wZq4Z~PJH4S6^)H00qQ`<1s&qIc>e(D&;`l)Le-yN-I80)9LVXU79hOg;- z8yd#?i7|}z)5tK+Ph-PaKTQlHZ|dS^hH<`{ySRm6^nche)=x{r=>Ld|TNy_G)-G=2 z;!+__te<{{aen$6 z#_>-!jC_EL2O38E6c-ONjQ)cSWBm*u0>-ta>~r7{>Z}(lFLfnqjP;iH5O$o-&N}Gs!U4&t$_`KT`~2 z{XA_L>u0KA?B6uQSU=Ag#`<~I@HL(9bi-Ib&l$%0nPC{`=Xt}UlxG@7KFh_k4dZ;h z;NlkzqyHSkSU+t}^woS&73v3^z=#`<~1FxJm%!&pDB8pirrV;JjatzoR6b%wEi)*Ht9dCf5PZ-Zg1 zpVtjz{cJRRP3QZDVXU7`hOvG&8^-zBVi@aZt6}7Cx_FymoUiRJ-eDO1cN)g}*<~30 zcf0s4!|1=q#d}@6&oIV&+c4J8e#2NF?-<7VdDk%V1BS7F4jIP!Icyl`=Y7LiKSvB> z{d`~;>*uIpte<0sv3@=@jP-NeFxJlr!&pBb8OHiKX&C$Wv0<#AQ--mAJ~4bv=X=^P z*3TKkSU+bC)WVdUpse8Diz*F_g!GK~J04P*U$W*GfHckvg7(f^8zzjX0c z!x--?!&pCG8^-$h#xT~;w}z2_XBg|}d&5{iKN!aO`Oz@e&rgQ2ettHL_4A8ite+c( z+vs?|8pis$X&CG0H^W#zzZ=H-xn&sp_lIGupWBA9e*QFkP3L>ZFxJmshOvJBHjMKl zzJJ~yWBqsxBad)#Cc`*inO*EPjQ){^v3{ZqqrcC^e#7XW#l-;^2MuGqtcJ0EvKhwu z$ZiC=ISpg|v~Klu$~{S+{a^;6I=)=weBSU-ggWBn8{jP+C0 zFn$+YF~e9t#SLTsq77sHlrW6-bD!aBI^U9pv3^P!#`-C380V*qVXU9BhLM+Zae2cy zUlm+@zhU%$z%bTNMZ@S{$;Fioqkk0_S9S4&hB00>!&pDn4P$-OFpTw6(=hT{hOvI? z__~F!AL6s_bq!Y4UfU-b>+{53F)_0`ZY)>n*Stgl9fvA!A`#`mu8csy)l80)RAVH~e^hOyq-8%Ey2 z#T^af{C0A2XT#{<#W2>}qlVGHtBboCM*mnBKjz}@hB00b!&q-|hOwS{8pe9-Wf*z9 zVXU`A!&py!4C8zy8OD0*YZ&XPpJA-0{)Vxhk_}@$4KR%LG|({CQ;K1%r$L6Xo(3Dn z{tYpV^)%El*3&S<*L1$a4P!l}8lI#)!Z6m;NW(Z^qYPs`jW&#YjElz_#`$~P#ZMSU z|8a(~p2izS{|PRB(lGj`xp<6}gpK2KE=~_7PcIn8dV0|?*3%rrSWj~eWB=wE z#(J7>80+aJ!`F1a3k+jDEi{bvw8${l(_+IoUrP*QJuNkie3^^W4deX1?BeBy(SLmBAZ%5NHeOrI}z7{>1!-EH_AJ^p)r)5HC{X#4$!hiQJmuuuCR@;x7Je_i+Ih~d4; z#|&dVoiJQe`D5SgaDTKv?c#HWgWCRr;jYS;4OdbA!Z7lyzB%FXvHfohKdgMsa1P}k zT>P`)lA8bOn}64MzZ;Iy<8#}$Fr44e`TS-0du5ORpB%qCG_!w6xIK<%l#8>tIIH2t z+CGP2%qO?uT*~rKn-FFXrOnhGR63HjMTqTzsG5 z$22c#80|~BxU`GQ7{=#c${I%haxO0K;tDRl-^CBOxT1?Ixwx{6tGKwTiyw4xH5XTR zaSa#Oba5>g*LLwkF0SL^x-PEg;`%Ob;NpfZj&X4#7dLis6T|rYTvNk1pUn&-Z|>q2 zhSC0E!)V{q#gDkSm5W=uxQ$_q-`2(LT-@Hp9bDYe#hqN-*>H2+UKhi-zdULf`_t9M z-CP{&;>TRv-Nijz9OvSmF7D;xco!$QxVMWF4dZL#d&Attqpv^x?}oXh@&^CmFxS%lZ@AiT@gEE4pK89% z@MYzl{*&Pxzkg@9;Y|8^a-Z2A?(h2zyLa{V5MC1ym#W7y3dKy;{k7vZ}rkr$$pps(SdhAtR(ZD@$0JteR1I ziS-GrH)B0XH4}d`Q)nOb-2&U-yz7-0qjl(~Q_;50OpJ@0N8qL4SK~xrLB?~?N2AX~fit3T-FX|Or`s~ykPW=b11#u(M~W}d>!kG2PUZGOy%I`~HH%)~EY@qC^te}`l4+T~ zTBFD3&QXa;*U$6NKS1@!?3eY5BzJ^%((8uwwVg`E zSM-^Djwr-{M(+^Yd7?`$LQxAs2&+~MnBU) z{}gqSQ;$5W&js{PQ>Qxh7U%Rc2=vc7mB;j9={fotP9^(!y-q@}cO|`fRPHtj%m7{{x#|b>g!JW+_(CeOuvb$%TI4xsCwW0PT%p<>mtk2L#1uL98P64IM47`^H8(AyR7as39#3H=txN&V)> z8U410wuwBg-|F~Szsd25etYAreq-aDeoNzmelz2|ejDSWegor@e(U10e$(PJ{dUFY z`i+V!`Ynnt^qUf2>9-@U={F+2*Ka}mpx=D>M!)Uwt$xGdNBvgAb^Rv8RsHtD@A{2} zKlED$f9f|2B0NJQGkH=YGkZowMta6ZMtR0X`aDlY`aMrYX7Nmk40xtRX7fys%Hw$UL6Kk$FAKBJ+9HM;7qB9$C<{DYB?%Yh)qM_Q=AXU6DmR8-4XNZT2z^M34$^`7>1^PclP z>b>CW>b>mi?ES*m#e3D)!~2b|yZ4$e&ijL}r}t-HFYm9u-rnDR3EtbjzTUrlNnVe? zk2kY_fH%rN(3{0S*qhbg-3!8d+q=&H zqIZLTuJ;Z9eD47QFV!ts1-&^S5VzMbotSaF0ZfWLAqn!`!BGHa6le$TCc+hX+NBYM@`sk=GN{;G70h~|Hs7qw}o2HZK?x<@L zK#zwo9$hVrM^{7L3c70Q-l40i?hCrg>M{kf)Kcv>@bsvdD3MS*|XP>1xOMWT)f&a#dYA)9)SU zlV2U@mp|3*W14wk$oWJszp>_*Te85IUJ-IW$?G`36j8U2>2b&T<&?V1tetb5U%pZ&C9t(0)J3a{k{gcm%U|kZSc}w` zLvVfxs*7hWm*aFbsY_!Ge+)dG4v#+j=n82K&M)_=yG&P39o}w4Nkzx`rM9{l*3LN2 zC%-w)FA=ZkHZ=9i3+mF@ZocDuve@>X7rvXvgW= zRTs^4y5oHElH>f6t}ce@I>-5BljHodLtT70h4abVPR%ce)TM<}IG-GMYJNGbE}iM; zj`PXij?*Lls;1?z&(E#Vcw1{dP#d&gYhf23hg!LJwMKX5fF6yWsLgs$d(cfes43ly!@Jt9$ZKk3nqRPr)0j>=A98+~t}dOm*^cweGIje{TjjV=-^;A6(HdN+9sb9g7eoh577(=^uFYYomXkEu&%t(W8clB8}QYXcnTm!aw|vo_Lkp<48M zY@_%^-L5*nR8SYgS~bV{rM|i})($#OAEnf#v-XMO{PL-~ec>8hs3xyr8)Gl&aaO0# zoa&-ko8h=nErzv4T7wIn!Fbk|YYi?`OJi+~*5LG2i@Nl14K7sM$J!Q6;ry~o-DPz? z`TVl(i@sfplA2$IoKNbii)Ib?H#nc{{aW`WT!Zt;1+7Kv8@ni(|4qpG3-MSL&kmEn<{#t*P@%jcYnexCR$`-cM7PMR!>HhEupu zk7#{Na7Iz*m+jYe6gsTfbf*2j4>_NVahzY$)Lmw}+;Kix>o~t`R2QvpTb+^B`Q-zx z#j}RF!TIHDt)++C!TBY#zGJ)`uEF`Gtk$BpV!R!W^UK@n_U%Ni_m4WcU2w0di>5oK zE^RkzU;Gqu0a@+1puDf{GSjg?hg?8fI4&shaBrdSCUvq0?i1 zW-r=(<+y-sc3eOgm}{7mzxR3rb6M(fSA;C7(MkAg?+uC~vDvW4h_LkPAqE#|34gx|ny+_krI- zE+7$(3rb;i=}gx-E+7*f7nFtSM4ua?q`<9^3&`J2Ei~VFrt>s~3rLFNf-*(jKBoEp z2)TfK@6>{FM_sf&*F?!gP2mC(>$srwSC_`L?d^~YNDjvZrM|k$OpE*(asfH+)PnMh zx|sJca;G~X7m%~s4z-{Z(wZDXy7{k=3&=x`3(Di_;+e+$9dZFF;JBcaRkx4nMaKnX zx#NOzKwb1hRnjB`Yn`atyWJ_=tnLfPN1*F>){H5dcUhBA^e4s9kX(4~e1tg&EGHY`j7m(hL(_^YG<~YW?=D2`-;JBcCsxF;r zrz{~Ckn)ZTN@I0$0)2NoE+BIp7nBw1;+fubTtL23w~w`{fshMGSH}gVue!94Fy21> zU=3VAYC0|`qt!*9L|QOw$OR;ex-`~$IxZm19T$`?>Mk?AHX4ix{B3ZX8K6>kPApQ#|5RTx|mPU_i_D*4xFZr(^OqL)0{a&PG|1ag8CyJJ!+@X z_XWr4W0>RgF-%=N)BE(pGI07>;?#nYlOLebE9)|>k&cqjqiG|@1*N^Zc&+K$a9lv% zaa>T&tJ}x)c;k=@$m5O+%4&7d`O&v|laLEYDaYyKkh(OccN`ax!;TBeHFcMn?rj=! z0U6}DpggTErT|8MvRTOKvykKTxk6n!({qjs$WF%v<*+&_h`wc-hnyZ~#|5RRx_G92 z92bx->h`gAz;OXt;<%u!R~KD~e87$@^Hunq>$tE@lTx;LEkqW7m(*27nCLH;+di^TtI$xT&V9prcGMv zESXk!oHMtg;kl^`$T&@-)dgj`x-_OY92by}9T$`@)Lmv;?~#xTNJYnm(wJfx87W*q zMmjDilhvg&{n&8f)KMcbqB#ERm||VQ={j&~p>=gRoWcdEsoNJ$;Q}(%sRd;o zoc@BJD5=~@N3I5!s4k7}qT>Rx-f{Xot?n|@(VassAWa;nkGAS!s$-Oo92byHj?-6K z>e89c(;v#i1*Em(f|7(E)Ym}Yn~u|GQ^)DEsk(Tk4Id4;fRuHd-s9EnW7@}Y0qLbK zx@N|BZ~G5twvaQZsOaY6Z7-DR!mzGMkGy}#)PEz@eDcFA!8neMotY)}_d z8)=7bA*au3jtfd{b?HoBbDTb(J1!_I)yYHX8xb3F0r}ji1?4Ao@l1PY3a77a9T${N z>h@_ZO13*LAoCm-l-Jco*Fjq7v5*VM&rU5U9$llr8}@T64fpOD%=sZZmvBh(K}8XGdbiHRu*$%9fQY54FV z!&7Bw!tfEP(kEf8R>llX*1nBKNdFYtd%HV1JL+8_pfcv2(zPtgm+LHS)mhJLH|p1Kcv3$-9|fBa zPu6Zanh#>Z!jS{c-t+W8R%L zdceE!v;O+xPVnWnp9dNZ9h#Dyn1EB4wb>}$=)(zv`=sd35 zZNW}XsGH56vDxuy&!o*ydo{Z1(<|4`f4J2C>$|$0eBsQN84-IYYKPgQ%WdGzhbl&?F~d-b#Uad}>Nv1PN{@Y2u9$pKs4F80Z%6a9TV zO#I--)eHLdYoBMw>r3kvwEJ||`m}e!$yIfzsLPAHXFWb5=ZWQ){P~Y(UpVNAdDH8C zIQE58opTSqmFL^4#hlrOM){A2aB|hj zlAQmc{QRtQ4m^^#jXp&r^h;_oJW2008IK%=?V9-yv!DFIp zllOX*>slgP%?-P+Po%^v>p}RNnKdqk0A55tnT`hLp>0ajwP0U*8iTE~M zvnL(T|4pxJH=b$m-RB!mU3~IrdOqij{>Ocq@`=Dv6M!jSqM zF4kOBaa^t8Lv~!;bZ2xP=P-sIiJYaAaco1y|G0LhyffuY^ybexu0671*5co%-zcB7 zXYq5bPJK7@?U({x#`y=l*K^>=;aOS^9+5P>Z-PDx2U~KF8;?xY^^-OHxchXur>jN( zU8;QK!J=E9DSRc^JgRO~gTLQwyl6@LtxHofExmko-omIHp}zmzPwwhJB>ML3=YLE; zTA|V4Nm*k06nNnNZht;IV`0E|v2}Xn=!5MhZI05D**CdgYW6nzET1$yM7kTnjNN$p z^{2N**B$(Lw?5})F5WYvezm_l)OoXzZ^V~*PF#Jf_4zjk#viFUBhaS9zxMn!`q_0G zySMP|+<&`H`TZT+47}F2(9vyO-g;@poC?#=HmLn$<*0UiospVH`#Y~boQm#5wtseF zYUQc5q93UAS@q~FvroUfyUXNZGv;m?Gaz=@;_AyDzP`CnwbNHJ7tYf>IVGvf(3Bww zeg3CG#zimgGvLd7xj#CTRDJKVYF|EeE%x-L&h^%<*w^-_*IT{0ux!^{9TR%@P9D*w z!~ZnI+tI^D*Z<{{`a7yF$}{1kY-cC_6n(76;iOD2e0K2cE0G`9Y|^t>r=;Pdk`t4f z3`t1|y`pM1W<=89RDD*)DK^J;TIT4ji7Wmu&b|UH%BFjNN$HYQ&_`5C=@bF!?lM5h zB_tMELQrWC=`LxIlt#KF#6nO}5DQUM5J3S!4ER6K1}w1ny}$qUU7x<--uIk2Gjryg zGiPQWUpYccLc(lg{^`|?KhN)u^M>w~%W4}qbpErwGY=)G84q`e$sI|r;OXJ8@iQ)0 zxIy??;A7bZ@2kJb6(^eCAk}I!ES@?}S*R$8eC9Ut%nM(YEMWt&>wEo}^P|OgqgTO>43ogMF`J_2JjbZdT{uUy>!f#k z&9{N9lZW$dQ`B6XoJT5H(0kra1lPEMsk5gjZ-yV1M#An^PvsJ)@&d|-9=-3oi3}Ol z^zTt-VZ<7ab?t1{#x)0E`GT1FjQ;b8HNIw%mB^rIzhC-#LCeig{lX6u3|?qY*o~el zI|@+_bbZSgIc1AXYI#T2z@@7|9jZ%xJU0DK5AkDZ7tT&2= z(H?*HbdU8U?*(_ZUpKmXErKVkudN<;Eh1G$xL7&5lA_i>k_P<~>IdA}AHg3X7I7T# zE@4$i(9XQG)OG4P!5wS!MV|jqXjkp*{*pDOHX{0#a4<$1%v@%jBU;|`-@Ek~m%-V1$rXZt7dw@_OF2Tww;03+@Oi=QL`(AGP; z=l0uL8p2+ga^9F%69@ZrjqS>BBaf>dCeWGCF-3bOoAy`yR3pHlfX}f<5C5Wmnd}u7 zc(6h4Ya`iim!a4FY*8s6uERAYnXxk$y{qD-iQ)vv0|vNm4$e*#=?y48Ezk~m-CIrK zZ&*BK&ZM~fQ@Un8>enKKIQbY01JA&M$4j#{t@&~*3Uek*& zBS-Hao2OeCPgE74>R-3#u9b`Z%$1akfuuD#vQvD^jwkEQc*#%PZ1_EsPOR*KKoUa+ zi30iq{0WyNYAR|rY5_PDl*H`IC;d2tM6C7EXv}Ig^Xs42TsfQX`b@qi&il5=ppCG1 zbj9=p4@I;9U~n|Ec~E)3*7M^I4_?`yeRb#UecS!rcUvo0f)5>yi=_tjVDE?o_tJl` zTmYz#7i0)Xus(M(TJi_Pe7Y+W3v4RBd$39~SkW8K-D9Iwv_irS;Yc^oM8k0{Nz_zy zBk;%b=?4|1UoS_EyoAqvHGBBZxr*v{jALK&YUQCJju#wMpbc2JtE@`Sa4X0vtp5hN zt!L3cVhDkT@7;17MP z!K>?S)JJ+XA75tI5O(h-v}YX;_~2qV`O6D=dXX9Jz@g2Zu@%w@O|!laMNP#d0Ts7t zdmi*Gx=H_%s!a-c*cX%Z%R*EZmYC9A-6D~YaFP^lUZ~K2Z4)HsMa(!5cXeRy)_wmr zH{{DiOC8N=U+;uhMt?FVi4q6P_q@37gxNQC8mX8Uu^a${vIRr4@a6q`%^#R`y&y6B z#{Hpsc7C3*g-KEW1#LMMGg<%)2RLMSM2WQm-o`iD-`DZ{sh!;0WV=9nrF5vk~tup={tPp0*F4cAJaK^Rl@{9*VNxND9U#iQYB zhrol6lLlZOg_?}EUDVF!gQWW!qgXTgV@|w};;3r#ud1*My>tT|gQ2Z0v@hXf@dX%! z)Di^iyl42P>iRUy0`nSu9A?<=x0OGhvq(Bl`KtjPBK?P%7ds!<1@w~ho7S1ekRP!$ zA6N#Go-o~IcB8v6R~aYBkrJkUIgACZWlYbYI2?~u@ic&^&HlAt&+8O#iVvM~lvN8l z>h7?-m}L-ce7OfPP0Yv7io>(h?1`O^HwEYv=YM_dm$`l9Pd3TNITB|vrrCz>d#&+n zSqEr{-rh5zQTMdQzs%!v0HW`7$X)(~7NK??H~RO?2gTZG_?fV2$ZI48FwyUI@TJCB zZgd}TmQVaE;O><5<4Z|AR%Aotv&KdXyvG~~*hu|XuX!9?{WSjlORBD-$OA!1iOCI0-g@ zukPxBOGR@R(kqyUYIx50t<>CqdGt8@qV1jB@jQ#yE)>RKnrS<*7>GH?Y;==8yWm!* z=-Gs>&*xs7|5l}&Fhs)gZv=82rtzUeTM>OQska?I4#D1yic|FnSX{L)JoN)MW?qt_7Ld8}Z0XjCTH(pAtl-2wE$VSMC!HJEeP;#*H z0RLkX`eM=*fW_t(eN2J}r&WYmtP&#c;Vj8ex8=_ahWDn~Od%)v+-N|JxLYAT+&yhP zJl)}BD0c!3NOxcCwP?mpOGfXwSrSyDq%U(zFBEcLElz2ycNqG1CHFL z*FbL|AcLcq4dghiYX{YpSs=LfmL#)d15*0US3BqH`wd5)#dG_<;rz5WqJRFG{oM&V z4U}=*L4*_`pyrI%!qfLeZVmqTC6W_E7vvI`nc5AhqgtDEWZ{f)A~YJBCyjT4UjR<6 zwHw~a9eSf>`0y65|8)XVPMV_zYlwVtyJvOA!X9$;8W@9Q1cyS_tvyJo2F|lmpV;g7 z^N`&&x#_))59X+PbiVMWRebBNbcuz3p;BehFofH=!;ucC!-SnAnFlzoMR&$#8u_}- z3!gL}dcU`j`rMsx%-eCLtCei_ou=5j0qy zccZ-<-*;JdZ#rwmOVd12iroN%hLH!t9ZXv7L=gZySJeJtq5YaTUCT4Wc)n?(rlq&@ zusLP&l4%9S?L#%gOd1=W(oQTrzznaVMBB;qM+{eY=fBeRJILk+Bt(z|)IRRxJz)}9 zKtrnmS(+X2Y2*MSbDrPBTR+s^__Z za=(a>h=h=ckeINTkdVkR3k_FC4@WC!w6g(@*!oVCrjce0$gvN_Q%3(uv910UOJ?9L z*}(sXHlI@+x%clU(|(BvMV^1MDZ`Oq-W~3~g*G2py^=^o&p`i&r*W=F@K$^D4;iWV z%F&k$J1Dpgk_i^JbKuZQ3Q1YmI9R#b!!7K3Ww{ZN5$? ziAFIef5jTw@JFeKCk(m%!G&MIbQR$Bk0*OVcy0>(O77OR%;HE~i3oM~Tj-)G*OMku zHM!sjtdoihNr;JASlQb0Z_K#OGNxw$D^fxsO_v5eW?P1J$3KwXG|DZMQQafW|KskZ z_K&8>_q_k6+d<4Jz`5VtE14lF)DiX_p!z8@M=hFa{33&>Dw?bDI@)fQK0^UGVO)J_psf2;o8LWHjamL`Jj1^6*z>II z1dl2?ShUpgI#=38{>;K3jPb`0a;Z~6PI{$ab9cH#yq)R>aMZy@ZND7MxOA3o( z#e|#{4@VccF#abcznM9-dPk@8RRNWo>4L0ed3*6_=CLe)Puw$?WDfXX(3huHll z!P$ymJSJogJpa7#%O9rqsyZUtWTo_L0($HRF}e^F78Mp36Twb}og~fC2S~qtf?XXC z>&uA}MJg4%IenJsd^T_E;m;@EE~@KCGpJ(L1}N!HjQEAk$p`q(3eO01-)JX8T*;Rk zWVvq^NEbi1+J5%7Y4m( zC9F~e_^UX+Pu|=0K=W)$``f5111oKRq?t)ka3q<6t&5{8?oi~aqF~^W!xm&PKym5R#I6U~Pb}u%WV5lI zjrl~zDlwohI5Zy-Eszs%h#nJ`oPWBGM|&!qJ6 zA&$RN`9cZB9>!ZN3MlUi0Kg@^uE<$tC^FGl|DR;9)D z#W%N`CknJg$mH3kbG}rvxu_V|;+p>6;P*F{PIj3Kd5cU*Y9ovcxae)2&bt5vwZ+ON?t7xekG(+^7-5DcSg|) z-$Pgb-q7JTE`6z9oMlZSwM0#0NrT2IZ?&Qzcp9L-;D7p50Ht8Dv%}s$X1ltDc0IT@ zr~W5l_(O1_`MHqGRA}%vdGoment+#QE0Vq-s1jD?*(FA$PDE#Se&_rAHc76I;;|l! z4HP(T8J>J=;Poi%zs`fBnKN9w*06C}B;@4nu3Amb!Q2P&J@o1X?) z2x{$5srdc;ME0TD)7HOkQXXMXoo+kYkZ$ zSB)u2!6c0EOzVOupsDigDpRx@RmvNINwGsgYrZZ{w^vq}8=L$I8?ReZSJGkvJaA2* z&S!DvNWl=Gl71XcD#DZ5o|LM?f89K>vBjS~KrC*L7K3k-S0{SVd z!7C4h*@5u-MvL+^qqs*}{I?z~n$UflljM1H*pd<@#WuwkJ^+No58IwAvRpwrU-)#o ztlKh}BUz=Lx+E2*Fm&m>=wl&nr=u9f+)M%>_yP*iYyc=2T$C>Gh{NinHdM1|Q%Z=#W;RJsTC0-Z% zh7Z=P;hs9-8S@)Kz|wg>>V&GaiKok_4Wtn(toNU&Sza4Gfz)#8UjBk)b3u#mg3|pK z@q2-u_$f|NRnt)~-TV`G*H~KNkA;Vb8{D~C4Ql6l50Iyz#YYd^Hr*8w0O~fTMc1U3 zMk{9SF3Y@DvM}bB?|r>IPIavDFEC|Tn8l1a?51TzC5IQ zPw}vky)0LV>D)85=LfDjHod1o=aKQQx}qS!w~1Xoy7zH{zs=A@pN|yn>B*02GRwQ@ zmQ(y^Vb6@7p_|7nneFm-0p@?-hu@dYlGL*q&F0S;kraDiL;D%&|KsM!ireJ3Wd2RZ zZFuxwOaQRPy`${+5j?G`*}j{T;>aCy*_+cjH1c&{AKf|N5Lqyf)<1;Zy5x$Lf%3;A zB)&DX`_=QmyH!L!9JU;kxeUlDX?IW!sJ;!3xDQhd2H|g z#{#B}G+5*|otH=fk8e9hyrCXGra_X_`ia6*-6tZR%qLsQr*-Jzmwe7ST51#+kFrZV zfotIgR%z9vi>0S2BU4SHd-J@+=EG^443PeIdUuOyUQ=N5Kbs{ksR7>WHoUKy{$O1( z88Djl)2$+C=K7iZ?*>^g?@!+0ay}E-Z1{G8r-2`5qRj%_*!S^zs-5APwtL^bOctN1 z+%}tcq24CZu0n(!)2I&8e!I(1$_1!e1zvxaI#z0PoZMzlI+Ns(gv_~>tgXV&H zWoBBm7(AXXm)Zdiv+tf%D_CE<<&~?RGZvesdAMBUSO8TTC%MqvQnK`ZT3v*PqaCJB za&x~+3xOA;nL2y}h60b(=FX~7-Wd}TOnI?8)3uX);Y*1`Q^`EFKHS~K5eZduY{5YucFvJ`5N$?`eHeUP=UG)K_n@XV}16fi)dlw(+ukKv?xixKWmo zpN4mM;+{ut`VWk3T*!KoM0Rs^(sfp*2kzQ#63Q$9=Z1XmZa(3!$z2Dd4>k15=AA32 zw1{=uEAIW|p}Wz$c2aagix&OY`odbzRpzRcC6{FaIn~mypQ&)wybrDe%I{r`dv0UvFRxGB7W#*pj2exHP7uMKZ$`fY%E*1q8_X!5q+K_A;iR&c=f-;z)(b~QY(}}e zmx81KE(AwsFhU$_^Q>fbiS z%JqQ*dvqdGdb$==?iTee)G1dI#0=VIr8eABLVll3JwD*W05zxQ?C1(#?=Q~YU49Kn z@0U&HJHAHUmGJj(6#ZSqG0Wk59Q&@li<0GHFObLrs38Kp*!w{K$?C|@j?A;i+lhUR z*1Vs|Mz0X(7UnHgF^t4NyAl48Lf;($X73;avR=P?lN6W=i%=g=X8ghMC0X&cLC0g` zr?+O9F6f1LMc-fKncdw$vpFrkE^jjXO<5q;Igc{%4^yPL^GbA6YUh|zh_-%S{Bh3S z)G_+S4_V2~xQ?(9I@6A;Zji(mFy+X3)m3tRR;BFVG__cOufsXrh|iJPw@f6?d;WDb zRK)mf_~D(v3qf+9iYw<;wE{AV1M2NF**HJ%KOyv1XyIPx<76?ZrKYA6=<7R&% zS@K1{tg^zCD4nG&G-%aAjfHtNvfAro``H{i>P?w!oZeT+0Or1aXC_^o8TUFRSTEI9y&m$Y)Y*sjj{BsK#OH z(!P_e>Eu3|u@A9k32z4~+JT3SOOI1Zi(Wdvi~D(Vm5^cgTk}@4HW~D6@#LSnNpk+>4^XpHatQ zs+0%3jjc*7Zs0eCD1&XbQf zo+J1k>*pD$#1ifBi@;m_=TkG!!#~VO^2Hc87Ce560pQe`lP+(a+A~Hk|E`)CFE{xc zuF}u4PbB}u0ArlA&rg5Uc^h7E6&=tab|b9RL(?mNPv{$Fey{5EWy*Ya)GPC!L+s&csQ_yBo;6)O_q~5GVEkOeS$Ya)Bd;76py5J zN%UZzGus}O&QI#}`c_D!H^LpPfCcY7Y{d@)WpAI?69Wu`-gb4|M+pY*p1iR5=b&VK zGNUR*vCf$SRw~q(YQcRrRsU7#R5Jn|cUL;nZpitU|5hQtur_8wCt^$|F=jJ0bWC}H zt?*n0wx(4F?%{y2#ixX7Jz(#ngNIF&mVz6oPEh?glx%Zj^i*4aM9rJiSHDmN(c04P zHiELnE}#I4=xZFCHBg-djK;+}kIy|h9-Fi3-~0k`Px>Ju*!6hJb(_nYw@#4=3e%bx zE1}H`cx1T+{Txtw>i)^^RvUlW-Fu;?6owjSUcYU%X=m%@h(L}halK9EHv6JLgfmZ0St_fP6PuS9zePwZpbS^$G$Szk^yj5WzX`PZ5O z&6+g-U5vpe7lv<#7wisA6lAz}No%6e@lNF9F5HrQ+{*-81&W=oc>$c<4>Wy1W}Jk* zXwObH)w>9P`YNQVpU`L&>0#v7$K{WX%+N8;c7j?ip!LFAqKxm%9)`T$(j!%$Ti*&- z^4okkem&Tl`rYpAl+$Pz87k?=1GfjB_)NVg`xasd>(6K8(_2<+T=0x(YAG?gng`sv z8h)yZ1r?xSynOU&JRY7RU}4&n&&z)JWIc)4Y%M3H38A;Kj%WU@5+N^gSJHe|LpqEf z1|5ZOB}ibcodxtAG_wO-PV5=vuyg3UNs?dd5<|2nBl=GhNuqUV;AbZ`w1t7n2{c@h z9^mma=vJYaa7L$25V$hNr@L>erhckp#>)Q5PlYj?r|EHrUTGya?p2Vz<$9V3VSS!N z8E)-qPwEQykP;ALMc=RyK%cIgARS%pkphrgPKPZjuJf+DR2Ntm4(z?{NGI8ye0Z^j zc$K91QpY#>{L7E{8biMFa3Z22&xr>-AS41GT1{OWxk-Ra1)t; zUxc1qUghF!*BKYTR`ASlO4$f1b;K6>XM8%Xw=1uKfVhg}e%sq$A~9ZL@Id~I83PY# zO0$dBW08B@ZV|J^?-Hkao;=>l`zYiTXVS-TV~y^NZhNH;LBhK!anHit5IW()y(0J6 zl}JtzGLP`?%T-@G5%VEOl-uTf=0Gxu?vK|$tv~JiQv0iU4Q3|B`qYF-sPUq!{6zG5 z+FwDXY@M+S_gwvDKi3M!oX~X<-+%0hq=0~~im?*H9S&X(~kd{WH1Pnc0p`#c9jOZYrfU%XkJ={YTbhqH3k#<^_pNDg&zH%M~)<3T7h;(zd z@_}{;Ko&qj08kyAyl1H?m@$(Gs~V_oWV=#s4FI0c?*tEBk<%|qDJ@|cT#Q`gv|fnS z^y98cqVs&q$#^MN_BtG(4YY2P3BNo0 z=tXrk%Zn_Mg`yt`6#PpEjGZITm|dwY3QXYADcpajy_dT)D6u|_SWtOPR1mo`h*R>f0tfapgS&3d+APDR@iztsSbA>?w$Sw@}cuDsblX+R{az z!l|5_%ig91BNaaxm7V!{g-#elb^pXg)g-?FuSm4N=x6m zm-IJL^7i-VY%Aj=J)~c0-rxXUoCa<2Y)2|ap#jtLh-P; zaZdLQHUpMPZ2|s;gqsX<{F>5LfX<`}d2rYvjj*E`&6oWrrrx%Zuhi8A*~l8tOtW^L z@{P0LTcx!+8Z7+CQ~&S%#WaT8+<6r zK;UYPs=8@tR8Vb1wt+CIcC9q$sf^VZher-{s16$3F(Va!$G*IFw$;kJTJDqPq*I3# z!)&FKK93YJ^Vu8LfjZ4iFF3xe*-mitVkVT1mkrKUJ;?eY|2@Z=_5nOuT&YCS_K*1< zb!A=Wh%)?Q?Q-FOBZs*WZ{>GcvHaq|OP2`2ITkOg*R9VO=FPCG)Kf_0!o(by23*r+ zJs2E(foIZiua?%B8TIvvU1{>R4nl+m^d1a>A@VCie^_6>lwM(RRw3V`_Q*>w`}eEm zY$dwc=9H%jbf*Fm^2Y68w8|7gqthp!3JjMx^<-S|x8`waUoOd6rkbRIQzH7Ocx_@R z?ZmHEw%&m=n`B=(m)R>@Xzxg}ERcA}5ou(KSmHm-XIF1E!jqNfzKi$D-!jMSj`IZx zZ`jk*V~Rc+6xbPC9PMIonjW`FdiwjUj>%%NSWAVr%Urq)Ujx@QE@A#B>~9@{=Np?n ztsKRFC{#82bM6ZFmpeX}F3nNfJ5R-|p+R@(PiO2;iEv~<*v+orE*_}~hvLHBdG|Bh zIU2-;Nc9FAy6^6a0|;d<2p2an>F>^u{gs%2u$X`l zzo>wSxR|hrfW#3SVF^hqTezK+h_LlBYby~uVH+_q8xavnD{;8wF&iskVJS%oF$rOq zGgy`336{seln%m>2v2t#I6qXP0oE6Qh7~4!ObCYX^Z+m9@;f=Y+QLB33kjwvaONru z0bbZ~ar8x1roe2W9hcwD*%Q3x>ulv=hj4d+DY*J5xp~6e(S{mFWGMkq08s388P@*| z?1B)?)zjJ8%GwzYQ*lN81@;E?_+iF|3Q8(Rl~oi?)Q*B%7xaHA3nAz)B|SqG1$}+! zKgBJCEc6U5)WBaDs~AGRk=XVd$!)&@dA6W1l)^jzgD`%C$W90miyaXn_^Cv9q7vOi z1?z(8#ew+(1p4NdfUUDL_)hcHV_(`~mc%gLMYB}Cv2L{{GIm%r>q||G=s zM;mtp5@F{dpbU2duOEZOS3Vl9P{0Hwx6q8ug6?6kT=2c9@pSD0@_V{D%+K~SX|^ot zfLpY&yA^n=$wNTF8mvdLLZOft*i3xwZ&(*4jA6>GOtj{J=FR-iPBd|&vbZpG1A$fA zy|8g5@R~X6t*@5rlH zU=jG?V96qQqZ*qw#M5U)*qL&0SYVIxi_e#n5h!QInJwg5%+&oCIz{l#0Nfo_LWdE~ zX0`A;#I~FF>{Zrh#oBo(d1-f-mihk+n-T)y|f~=|Oom3=jY6 zbT!ng!Oz3NWBrQ?X{SY!R)2B_@5lolrlGALhJZsov=*8~x8aMSj6*LqvSh60auY^( z{|5qn1bAB?I~nC3s4YN(#N}iitMZwU&weiV&87bF9=tqC;EsTBgjovQkk1G6NA8Iu|fOoG4V$@W0S1 zuC{JqL<-7;<_R_P{Q(;%fGx-d(pG9DDuxICCa%~UkoUiMRKaZo%i;b0;xyEgJwx}n z%2jMta+JQD@GjW<;D2#IDJL*hffi&oukk(fCp5!2kkJi@(`)~WD{FjysY-? zly+0*m&87!^JV{=2uwjKL#5Iv?*YShZ+G=~XoE>Cs%tJ&JEIr7=&hRSEHa6g4Xj|Z z0(0vgm@NvAcF$5w+=S@fRMJuHqM1`^W0SJkqo+dtU+B=Yg(Xw96&mX^1k9gL^~7U#`K$_(fTww~`0b=Rs0H**2q?lw6HuzUjzDcrgu93Z9@?*7$stwd^375mZ<`PS z1jRE$^vJ_9q4iU2T3K&dBB0hn_e8EKa^H`C@}Na{dV{(N7C-dSAiq+);)shHr6{^ZuYW#E_F3$M6bN4GPYKGmQsS|5I z-=^K3bpLUR;hpInNIcx|kt8`*fFuOqS9czh_jxd&9nAN*Z#Y}-_Rb_=Xn?t}j}!oR zBbRlD@$1>bPpDyfr$({gvPY>xs=*Hy{4o2!QK9wxGF!L=CQksnv&?>?#H>%Rrpnhw zJxBn*U#IQ?_6d!1D!!8qvm}6d_(|?lo2u4osk$t>PihvwEkWV7Em)&|sk<t%y)H69%H%Ys&;EPG0cU0<+#@@PgvXUwTbJ9D@>s$2w%cfk+>BSul@0aPsFFRYNK zaQdxMW7pEh!{MYKcBDXsNa$f8JSsH@%O!!y57w7l{NAM$_5R4Ik$!r+e_^q+|I!tn zaj5%mYXo&#kK}3AhrD(+73{R!5ex0;3a+jQu-XRJ(#qeR&6q~SB#{l_$Y4|;Ibo!p_MOq!ifeOg!PU>mgKTnt1`DrzE*Q9 z)o(JoeX0Kj>x0=L>@Xa&x%m-VkOIU^bzjXFv_jufFplN$CG5yxY-O(wcLraQ!7}{N zV9bGJm?Udz-ZxyXRwYYL!)Pps-}Y)$Y_2< zt8vDm8m|<3sPq+d2EVbM@89dGgghUi!&hFszUHT#OW%3b?!y57ZQBs6e%5w$0k2rC z+tly!6)n&x9B_If;H8kG7`k?)CFZ@15MBXrM__XQ*k=eBa7ySy?R_7uxUS1%PC#}4 zKY-W+4)hQf+Puzy2*^*qQ#v$cq7?sE;nl$ma-0=LaA&7zW&O`|%+)%q}grClN&uYiN7&J7DFlZPP>n#YK&>JsS@O)Y`n7B3a z`=uL!{{syLgqYij7$T`zca#nq?hwx-_^L{QyxQb&zP}IZUzsRHfeQ_8tFO|L}+sUO~X@(&pitK@NU_G&nquG)QQ_r`2qJ z_Koo=S^Q29h&J(XbOyJn_166s=u!5p|CQ;_vEnkFNKsl($K%&=HVZ`?FoZ<S2`$5SEYruEw>s!up=D;YUhxnlz@YQDrz(8tw`D45;m7_{0y zhTf9@B!uJTtDqeF^<#E)27Y@otaFM4m7D&v!uS1*;i7tJU0Ji=nwQ3g#_$oLhrMY3 zcQBF01=Fb4yZA7ZOg%v*c*&b5QQ+TLLpXR+1-hE+>8!Gb*ORcWeK7jR=Bea~%DOGG zNP(i>ugN$x8%HMp*b|coh9;ol)2V!>cQ^isQciBWh?!g^PJ#m`*u?UHh5q343K*N< zD1I;o(&~F^38uM62X&*Xe|A0CN5J||Nx)fX;{-k*fx2&vsx-r}5gnlngC?VD`9UA% zL+{Cabi4NEp3ttN;81(*=j?Dfan<@dc9=`B71C$ zuhGg#QPj&;$qdUiLui{SIkgM%R>{c1e_QmgT*||00bFc)i6P;R-$N zYii~02%TAC7gH8n$O}j;-yy`+khBJ!n%mzAvlCoa|ASbNHNjB;T1rczy*D8~Cc19~ z>OLowN?$tpC*@N}{0BbptpJR!UU%5%LL{R?B<6wCzg4n3-rxCru#WCOkl=(yLc_z^ z5R1guJEe+44azrt^ma=ptl(q^aHI!wMBw9+*hvK@f5Gy1sDl`ZZu>Dmf|PGlD|hAH zo|hUqt7T!yJ&Qm8gG8v>Y`Bg4#@@$w_i8yLSUbg~$8DYO<-<%h$z_M54gUk#M#$F9 z=|2pSe9OD$8zq{kSYYTkEA2NLkCz1BnJFIcF#EyVWheq76Mt3mQ2(KFRu8>l=<(F0 z|ICS=19Hke1CVHa4VIaRxg)As?JraY%T%=S)8Hh3@rY!n)fNVEy^l_J8G6{R7)wW`cO6C(fIgtB|w zU-kNvZ>3JkbmQdSa3&XSf_oD&TFB}e)vJ*8V=#}U;(-(CR?o{a6O^}hxsc#;fW)9uW4fx%@YQUbqwgKNsPEu|1W&=SX%0&>u6vM7*WyLG ze@OpPs#D-UK+C0UwxdkwN=giX;2RVE7Vw#hB?zuN7{>g(@$;iRu;Slr$Da(t4bLOhKpJa3o=4zJW zhi)XD-S`LQAzY<*(doJ8P8u~O#=An}h$Zpj)-#?sK~JJD;S=ao;hbL5$Kx-06^o}B zDG{%~G5nhVy6dpM<2;bQ{}`I>WK`!22$hsIlZt$qLL>Bt@ltHcGvS%AGbv9|%kcc9 zB|(R0yn4jvE~>D+r#L4HICEnY8CsFuckiLnC0h9syq$mBRj(}whDTH;;@^-a z!li$_hAd}UQj!A8uG>l-w*r*DoEpXnXEw=!&Vp~=bI<~n>i=$srsyuSXMN*!R?6+b zmji2$m{fPr&N>lP`-E996<%_;p+PnzyZZ=PVI$wjWuQV(F%$kz3RFQdhJfeoL>wf8 zAwWN>_WhQ6h<8Y~%TXt_e-fa@N6x%$fS~;Sb*%koo@&NMWIHmRQjz~B6!l^ks9a3* z`x*c4 zihUUxf9kqU0Q`PIkZQVCk!UPWN#o`Z3*}p!M{tt&IIUx;&{Bkw$v%T7d`+$4KzEs{ zQVL5Cchl=X%y>Jd?~Y1Rdac`l3;q{ALpH$HVLrQGLQ<=Sy}Cfc<_!;CG#EarxY~dh zYt}Qh_7B^BKw7==MZ#oX@u+&BnGe^5Qy0$R3D$O@UZ=pf(*>GkUWdBg=;^huDd(kD zcHGfJ2CC<95@DMuAiok61XcBf^_`0~_9er{31N?YGfch_B`N1ypS&O3_Mv^F7n?b- z_5-cK)3wh=pct$oC?u-yvXfd?OqgpTaNzn*=#3-*8c)4SmIUeW($`lqW+57iIZP{t z7w?Z5{BOJ-SU{&?i#Zj=Ow^~7gz?Z>BJw`K<9}g~R&8CQ-g7pq9s9CL5z%GNNicvE zmTRrzaBgug*J!Vz};sA3+=$=;e>cX51k zuoO-Jb?gZ`OgKY7AGM6CNcmdtKRdg(K)dX8rAW*WEsom@^-jSJ8%o%}q61Ghh+vij zgTcBh|! zvMGKbdPt^z@h?J?YX7wL{eD{+jg)VXg3MkB(r;i+I=YIA2y9yqvb-_iwhDt$cP3RV zQfa9MSS%c?pMIgY6^MR7cs&Te=Nq2{t%KlU=IR;CcGdWPxB9NNmR~MN8-%;FBeo() zFkYk)>WWL~gX>nw-nvD#--r+DoD|UUF}mQ4nFi}8F$y83ZLo1F*p&&cqyw5ym2MUL zo%KHV_Az)@1?d5Xv{vp|zbx~C0$4Xm0HfvYkgHLX(W#h@_YIuTIG_vn_JE3U!CFn6 zXpB7DY6>P#37fl72kUt$sGWH%_Cq{}{AVb030-|f3Scu#CawrO@X9mzY#e58{yu#A zBMe3aQ<31QNzfD13}$D0v{q)bM<3w=cSZ={%etVthJpWiG;|dPkiqUfw75ZW*h8b- zl<3{C%~}Qa^?U&(XYdPcuyvZBe^hk9x=3JG0h7q1=>p0bNtxB-Om|*^=?c()aDt{K zp8fxIkNXNVfQu_e3cqj3sOA`k>F}o<;m1K4so-WjL>*R}q5S8hJR^w!f0RyoAfGjN zrd-CR6o~*XqAHgC9juEERxtCFZz3j6EzNHxiA_^9&Bz

+ /// 初始化上传任务 + /// + /// + /// + Task InitTaskAsync(CreateUploadTaskDto dto); + /// + /// 创建分片任务 + /// + /// 文件上传任务ID + /// + /// + Task CreatePartInstructionAsync(Guid taskId, int partNumer); + Task CompleteAsync( + Guid taskId, + List parts + ); + + Task MergeAsync(Guid taskId, string objectName, int totalChunks, List parts); + + Task UploadSmallFileAsync(Stream stream, string fileName, string fileType, long size, string hash); + string GetDownloadUrl(string objectname); + } + public enum UploadMode + { + Proxy, // 本地 / 后端中转 + Direct // 云直传 + } + +} diff --git a/backend/IM_API/Interface/Services/IUploadTaskService.cs b/backend/IM_API/Interface/Services/IUploadTaskService.cs new file mode 100644 index 0000000..9f8c91d --- /dev/null +++ b/backend/IM_API/Interface/Services/IUploadTaskService.cs @@ -0,0 +1,12 @@ +using IM_API.Models.Upload; + +namespace IM_API.Interface.Services +{ + public interface IUploadTaskService + { + Task AddAsync(UploadTask task); + Task GetTaskAsync(Guid taskId); + Task GetTaskAsync(string hash); + Task UpdateStatusAsync(Guid taskId, UploadStatus status); + } +} diff --git a/backend/IM_API/Migrations/20260214101014_add-uploadtask.Designer.cs b/backend/IM_API/Migrations/20260214101014_add-uploadtask.Designer.cs new file mode 100644 index 0000000..cc4f2c0 --- /dev/null +++ b/backend/IM_API/Migrations/20260214101014_add-uploadtask.Designer.cs @@ -0,0 +1,1167 @@ +// +using System; +using IM_API.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace IM_API.Migrations +{ + [DbContext(typeof(ImContext))] + [Migration("20260214101014_add-uploadtask")] + partial class adduploadtask + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasAnnotation("ProductVersion", "8.0.21") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("状态(0:正常,2:封禁) "); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("更新时间 "); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RoleId" }, "RoleId"); + + b.ToTable("admins", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("int(11)"); + + b.Property("LastMessage") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("最后一条最新消息"); + + b.Property("LastMessageTime") + .HasColumnType("datetime") + .HasComment("最后一条消息发送时间"); + + b.Property("LastReadSequenceId") + .HasColumnType("int(11)") + .HasColumnName("lastReadMessageId") + .HasComment("最后一条未读消息ID "); + + b.Property("MessageId") + .HasColumnType("int(11)"); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.Property("TargetId") + .HasColumnType("int(11)") + .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); + + b.Property("UnreadCount") + .HasColumnType("int(11)") + .HasComment("未读消息数 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("MessageId"); + + b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); + + b.HasIndex(new[] { "UserId" }, "Userid"); + + b.ToTable("conversations", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); + + b.Property("LastLogin") + .HasColumnType("datetime") + .HasComment("最后一次登录 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("设备所属用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid") + .HasDatabaseName("Userid1"); + + b.ToTable("devices", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("文件类型 "); + + b.Property("MessageId") + .HasColumnType("int(11)") + .HasComment("关联消息ID "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("文件名 "); + + b.Property("Size") + .HasColumnType("int(11)") + .HasComment("文件大小(单位:KB) "); + + b.Property("Url") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("URL") + .HasComment("文件储存URL "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "MessageId" }, "Messageld"); + + b.ToTable("files", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("好友头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("好友关系创建时间"); + + b.Property("FriendId") + .HasColumnType("int(11)") + .HasComment("用户2ID"); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("好友备注名"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户ID"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID"); + + b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); + + b.HasIndex(new[] { "FriendId" }, "用户2id"); + + b.ToTable("friends", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("申请时间 "); + + b.Property("Description") + .HasColumnType("text") + .HasComment("申请附言 "); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("备注"); + + b.Property("RequestUser") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.Property("ResponseUser") + .HasColumnType("int(11)") + .HasComment("被申请人 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RequestUser" }, "RequestUser"); + + b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); + + b.ToTable("friend_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("AllMembersBanned") + .HasColumnType("tinyint(4)") + .HasComment("全员禁言(0允许发言,2全员禁言)"); + + b.Property("Announcement") + .HasColumnType("text") + .HasComment("群公告"); + + b.Property("Auhority") + .HasColumnType("tinyint(4)") + .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); + + b.Property("Avatar") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("群头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("群聊创建时间"); + + b.Property("GroupMaster") + .HasColumnType("int(11)") + .HasComment("群主"); + + b.Property("LastMessage") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastSenderName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastUpdateTime") + .HasColumnType("datetime(6)"); + + b.Property("MaxSequenceId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("群聊名称"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("群聊状态\r\n(1:正常,2:封禁)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID1"); + + b.ToTable("groups", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("InviteUser") + .HasColumnType("int(11)") + .HasComment("邀请用户"); + + b.Property("InvitedUser") + .HasColumnType("int(11)") + .HasComment("被邀请用户"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId"); + + b.HasIndex(new[] { "InviteUser" }, "InviteUser"); + + b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); + + b.ToTable("group_invite", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("Role") + .HasColumnType("tinyint(4)") + .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户编号"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "Groupld"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID2"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld1"); + + b.ToTable("group_member", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("入群附言"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号\r\n"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("UserId"); + + b.HasIndex(new[] { "GroupId" }, "GroupId") + .HasDatabaseName("GroupId1"); + + b.ToTable("group_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(通Devices/DType) "); + + b.Property("Logined") + .HasColumnType("datetime") + .HasComment("登录时间 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("登录用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld2"); + + b.ToTable("login_log", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("tinyint(4)") + .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); + + b.Property("ClientMsgId") + .HasColumnType("char(36)"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("消息内容 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("发送时间 "); + + b.Property("MsgType") + .HasColumnType("tinyint(4)") + .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); + + b.Property("Recipient") + .HasColumnType("int(11)") + .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); + + b.Property("Sender") + .HasColumnType("int(11)") + .HasComment("发送者 "); + + b.Property("SequenceId") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("消息状态(0:已发送,1:已撤回) "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("SequenceId", "StreamKey") + .IsUnique(); + + b.HasIndex(new[] { "Sender" }, "Sender"); + + b.ToTable("messages", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("通知内容"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Ntype") + .HasColumnType("tinyint(4)") + .HasColumnName("NType") + .HasComment("通知类型(0:文本)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("通知标题"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("接收人(为空为全体通知)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld3"); + + b.ToTable("notifications", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Code") + .HasColumnType("int(11)") + .HasComment("权限编码 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("权限名称 "); + + b.Property("Ptype") + .HasColumnType("int(11)") + .HasColumnName("PType") + .HasComment("权限类型(0:增,1:删,2:改,3:查) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("permissions", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.Property("Id") + .HasColumnType("int(11)") + .HasColumnName("ID"); + + b.Property("PermissionId") + .HasColumnType("int(11)") + .HasComment("权限 "); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "PermissionId" }, "Permissionld"); + + b.HasIndex(new[] { "RoleId" }, "Roleld"); + + b.ToTable("permissionarole", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("角色描述 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("角色名称 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("roles", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Upload.UploadTask", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("ChunkSize") + .HasColumnType("int"); + + b.Property("ContentType") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)"); + + b.Property("FileHash") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FileName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("ObjectName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ProviderUploadId") + .HasColumnType("longtext"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("StorageProvider") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("TotalChunks") + .HasColumnType("int"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("UploadTasks"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("用户头像链接"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(4)") + .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); + + b.Property("NickName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户昵称"); + + b.Property("OnlineStatus") + .HasColumnType("tinyint(4)") + .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("Status") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(4)") + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("修改时间"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("唯一用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID3"); + + b.HasIndex(new[] { "Username" }, "Username") + .IsUnique(); + + b.ToTable("users", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Admins") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("admins_ibfk_1"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.HasOne("IM_API.Models.Message", null) + .WithMany("Conversations") + .HasForeignKey("MessageId"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("Conversations") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("conversations_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Devices") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("devices_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.HasOne("IM_API.Models.Message", "Message") + .WithMany("Files") + .HasForeignKey("MessageId") + .IsRequired() + .HasConstraintName("files_ibfk_1"); + + b.Navigation("Message"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.HasOne("IM_API.Models.User", "FriendNavigation") + .WithMany("FriendFriendNavigations") + .HasForeignKey("FriendId") + .IsRequired() + .HasConstraintName("用户2id"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("FriendUsers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("用户id"); + + b.Navigation("FriendNavigation"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.HasOne("IM_API.Models.User", "RequestUserNavigation") + .WithMany("FriendRequestRequestUserNavigations") + .HasForeignKey("RequestUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "ResponseUserNavigation") + .WithMany("FriendRequestResponseUserNavigations") + .HasForeignKey("ResponseUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_2"); + + b.Navigation("RequestUserNavigation"); + + b.Navigation("ResponseUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.HasOne("IM_API.Models.User", "GroupMasterNavigation") + .WithMany("Groups") + .HasForeignKey("GroupMaster") + .IsRequired() + .HasConstraintName("groups_ibfk_1"); + + b.Navigation("GroupMasterNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupInvites") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_invite_ibfk_2"); + + b.HasOne("IM_API.Models.User", "InviteUserNavigation") + .WithMany("GroupInviteInviteUserNavigations") + .HasForeignKey("InviteUser") + .HasConstraintName("group_invite_ibfk_1"); + + b.HasOne("IM_API.Models.User", "InvitedUserNavigation") + .WithMany("GroupInviteInvitedUserNavigations") + .HasForeignKey("InvitedUser") + .HasConstraintName("group_invite_ibfk_3"); + + b.Navigation("Group"); + + b.Navigation("InviteUserNavigation"); + + b.Navigation("InvitedUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupMembers") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_member_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupMembers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_member_ibfk_1"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupRequests") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_request_ibfk_2"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("LoginLogs") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("login_log_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.HasOne("IM_API.Models.User", "SenderNavigation") + .WithMany("Messages") + .HasForeignKey("Sender") + .IsRequired() + .HasConstraintName("messages_ibfk_1"); + + b.Navigation("SenderNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Notifications") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("notifications_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.HasOne("IM_API.Models.Permission", "Permission") + .WithMany("Permissionaroles") + .HasForeignKey("PermissionId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_2"); + + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Permissionaroles") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_1"); + + b.Navigation("Permission"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Navigation("GroupInvites"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Navigation("Conversations"); + + b.Navigation("Files"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Navigation("Admins"); + + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Navigation("Conversations"); + + b.Navigation("Devices"); + + b.Navigation("FriendFriendNavigations"); + + b.Navigation("FriendRequestRequestUserNavigations"); + + b.Navigation("FriendRequestResponseUserNavigations"); + + b.Navigation("FriendUsers"); + + b.Navigation("GroupInviteInviteUserNavigations"); + + b.Navigation("GroupInviteInvitedUserNavigations"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + + b.Navigation("Groups"); + + b.Navigation("LoginLogs"); + + b.Navigation("Messages"); + + b.Navigation("Notifications"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/IM_API/Migrations/20260214101014_add-uploadtask.cs b/backend/IM_API/Migrations/20260214101014_add-uploadtask.cs new file mode 100644 index 0000000..8529d88 --- /dev/null +++ b/backend/IM_API/Migrations/20260214101014_add-uploadtask.cs @@ -0,0 +1,52 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IM_API.Migrations +{ + /// + public partial class adduploadtask : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "UploadTasks", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + FileName = table.Column(type: "longtext", nullable: false, collation: "latin1_swedish_ci") + .Annotation("MySql:CharSet", "latin1"), + FileSize = table.Column(type: "bigint", nullable: false), + FileHash = table.Column(type: "longtext", nullable: false, collation: "latin1_swedish_ci") + .Annotation("MySql:CharSet", "latin1"), + ContentType = table.Column(type: "longtext", nullable: false, collation: "latin1_swedish_ci") + .Annotation("MySql:CharSet", "latin1"), + ChunkSize = table.Column(type: "int", nullable: false), + TotalChunks = table.Column(type: "int", nullable: false), + Status = table.Column(type: "int", nullable: false), + StorageProvider = table.Column(type: "longtext", nullable: false, collation: "latin1_swedish_ci") + .Annotation("MySql:CharSet", "latin1"), + ObjectName = table.Column(type: "longtext", nullable: false, collation: "latin1_swedish_ci") + .Annotation("MySql:CharSet", "latin1"), + ProviderUploadId = table.Column(type: "longtext", nullable: true, collation: "latin1_swedish_ci") + .Annotation("MySql:CharSet", "latin1"), + CreatedAt = table.Column(type: "datetime(6)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PRIMARY", x => x.Id); + }) + .Annotation("MySql:CharSet", "latin1") + .Annotation("Relational:Collation", "latin1_swedish_ci"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "UploadTasks"); + } + } +} diff --git a/backend/IM_API/Migrations/20260214131542_update-uploadtask.Designer.cs b/backend/IM_API/Migrations/20260214131542_update-uploadtask.Designer.cs new file mode 100644 index 0000000..91a065d --- /dev/null +++ b/backend/IM_API/Migrations/20260214131542_update-uploadtask.Designer.cs @@ -0,0 +1,1170 @@ +// +using System; +using IM_API.Models; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace IM_API.Migrations +{ + [DbContext(typeof(ImContext))] + [Migration("20260214131542_update-uploadtask")] + partial class updateuploadtask + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .UseCollation("latin1_swedish_ci") + .HasAnnotation("ProductVersion", "8.0.21") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.HasCharSet(modelBuilder, "latin1"); + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("状态(0:正常,2:封禁) "); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("更新时间 "); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RoleId" }, "RoleId"); + + b.ToTable("admins", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("int(11)"); + + b.Property("LastMessage") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("最后一条最新消息"); + + b.Property("LastMessageTime") + .HasColumnType("datetime") + .HasComment("最后一条消息发送时间"); + + b.Property("LastReadSequenceId") + .HasColumnType("int(11)") + .HasColumnName("lastReadMessageId") + .HasComment("最后一条未读消息ID "); + + b.Property("MessageId") + .HasColumnType("int(11)"); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.Property("TargetId") + .HasColumnType("int(11)") + .HasComment("对方ID(群聊为群聊ID,单聊为单聊ID) "); + + b.Property("UnreadCount") + .HasColumnType("int(11)") + .HasComment("未读消息数 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("MessageId"); + + b.HasIndex(new[] { "LastReadSequenceId" }, "LastReadSequenceId"); + + b.HasIndex(new[] { "UserId" }, "Userid"); + + b.ToTable("conversations", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(\r\n0:Android,1:Ios,2:PC,3:Pad,4:未知)"); + + b.Property("LastLogin") + .HasColumnType("datetime") + .HasComment("最后一次登录 "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("设备所属用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userid") + .HasDatabaseName("Userid1"); + + b.ToTable("devices", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("文件类型 "); + + b.Property("MessageId") + .HasColumnType("int(11)") + .HasComment("关联消息ID "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("文件名 "); + + b.Property("Size") + .HasColumnType("int(11)") + .HasComment("文件大小(单位:KB) "); + + b.Property("Url") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnName("URL") + .HasComment("文件储存URL "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "MessageId" }, "Messageld"); + + b.ToTable("files", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("好友头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("好友关系创建时间"); + + b.Property("FriendId") + .HasColumnType("int(11)") + .HasComment("用户2ID"); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("好友备注名"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("当前好友关系状态\r\n(0:待通过,1:已添加,2:已拒绝,3:已拉黑)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户ID"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID"); + + b.HasIndex(new[] { "UserId", "FriendId" }, "Userld"); + + b.HasIndex(new[] { "FriendId" }, "用户2id"); + + b.ToTable("friends", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("申请时间 "); + + b.Property("Description") + .HasColumnType("text") + .HasComment("申请附言 "); + + b.Property("RemarkName") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("备注"); + + b.Property("RequestUser") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.Property("ResponseUser") + .HasColumnType("int(11)") + .HasComment("被申请人 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待通过,1:拒绝,2:同意,3:拉黑) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "RequestUser" }, "RequestUser"); + + b.HasIndex(new[] { "ResponseUser" }, "ResponseUser"); + + b.ToTable("friend_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("AllMembersBanned") + .HasColumnType("tinyint(4)") + .HasComment("全员禁言(0允许发言,2全员禁言)"); + + b.Property("Announcement") + .HasColumnType("text") + .HasComment("群公告"); + + b.Property("Auhority") + .HasColumnType("tinyint(4)") + .HasComment("群权限\r\n(0:需管理员同意,1:任意人可加群,2:不允许任何人加入)"); + + b.Property("Avatar") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("群头像"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("群聊创建时间"); + + b.Property("GroupMaster") + .HasColumnType("int(11)") + .HasComment("群主"); + + b.Property("LastMessage") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastSenderName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("LastUpdateTime") + .HasColumnType("datetime(6)"); + + b.Property("MaxSequenceId") + .HasColumnType("bigint"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("群聊名称"); + + b.Property("Status") + .HasColumnType("tinyint(4)") + .HasComment("群聊状态\r\n(1:正常,2:封禁)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupMaster" }, "GroupMaster"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID1"); + + b.ToTable("groups", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("InviteUser") + .HasColumnType("int(11)") + .HasComment("邀请用户"); + + b.Property("InvitedUser") + .HasColumnType("int(11)") + .HasComment("被邀请用户"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("当前状态(0:待被邀请人同意\r\n1:被邀请人已同意)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "GroupId"); + + b.HasIndex(new[] { "InviteUser" }, "InviteUser"); + + b.HasIndex(new[] { "InvitedUser" }, "InvitedUser"); + + b.ToTable("group_invite", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("加入群聊时间"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号"); + + b.Property("Role") + .HasColumnType("tinyint(4)") + .HasComment("成员角色(0:普通成员,1:管理员,2:群主)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("用户编号"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "GroupId" }, "Groupld"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID2"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld1"); + + b.ToTable("group_member", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("入群附言"); + + b.Property("GroupId") + .HasColumnType("int(11)") + .HasComment("群聊编号\r\n"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("申请状态(0:待管理员同意,1:已拒绝,2:已同意)"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("申请人 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("UserId"); + + b.HasIndex(new[] { "GroupId" }, "GroupId") + .HasDatabaseName("GroupId1"); + + b.ToTable("group_request", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Dtype") + .HasColumnType("tinyint(4)") + .HasColumnName("DType") + .HasComment("设备类型(通Devices/DType) "); + + b.Property("Logined") + .HasColumnType("datetime") + .HasComment("登录时间 "); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("登录状态(0:登陆成功,1:未验证,2:已被拒绝) "); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("登录用户 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld2"); + + b.ToTable("login_log", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ChatType") + .HasColumnType("tinyint(4)") + .HasComment("聊天类型\r\n(0:私聊,1:群聊)"); + + b.Property("ClientMsgId") + .HasColumnType("char(36)"); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("消息内容 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("发送时间 "); + + b.Property("MsgType") + .HasColumnType("tinyint(4)") + .HasComment("消息类型\r\n(0:文本,1:图片,2:语音,3:视频,4:文件,5:语音聊天,6:视频聊天)"); + + b.Property("Recipient") + .HasColumnType("int(11)") + .HasComment("接收者(私聊为用户ID,群聊为群聊ID) "); + + b.Property("Sender") + .HasColumnType("int(11)") + .HasComment("发送者 "); + + b.Property("SequenceId") + .HasColumnType("bigint"); + + b.Property("State") + .HasColumnType("tinyint(4)") + .HasComment("消息状态(0:已发送,1:已撤回) "); + + b.Property("StreamKey") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("消息推送唯一标识符"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex("SequenceId", "StreamKey") + .IsUnique(); + + b.HasIndex(new[] { "Sender" }, "Sender"); + + b.ToTable("messages", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Content") + .IsRequired() + .HasColumnType("text") + .HasComment("通知内容"); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间"); + + b.Property("Ntype") + .HasColumnType("tinyint(4)") + .HasColumnName("NType") + .HasComment("通知类型(0:文本)"); + + b.Property("Title") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("通知标题"); + + b.Property("UserId") + .HasColumnType("int(11)") + .HasComment("接收人(为空为全体通知)"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "UserId" }, "Userld") + .HasDatabaseName("Userld3"); + + b.ToTable("notifications", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Code") + .HasColumnType("int(11)") + .HasComment("权限编码 "); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("权限名称 "); + + b.Property("Ptype") + .HasColumnType("int(11)") + .HasColumnName("PType") + .HasComment("权限类型(0:增,1:删,2:改,3:查) "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("permissions", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.Property("Id") + .HasColumnType("int(11)") + .HasColumnName("ID"); + + b.Property("PermissionId") + .HasColumnType("int(11)") + .HasComment("权限 "); + + b.Property("RoleId") + .HasColumnType("int(11)") + .HasComment("角色 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "PermissionId" }, "Permissionld"); + + b.HasIndex(new[] { "RoleId" }, "Roleld"); + + b.ToTable("permissionarole", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Created") + .HasColumnType("datetime") + .HasComment("创建时间 "); + + b.Property("Description") + .IsRequired() + .HasColumnType("text") + .HasComment("角色描述 "); + + b.Property("Name") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("角色名称 "); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("roles", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Upload.UploadTask", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("ChunkSize") + .HasColumnType("int"); + + b.Property("ContentType") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)"); + + b.Property("FileHash") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FileName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("ObjectName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ProviderUploadId") + .HasColumnType("longtext"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("StorageProvider") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("TotalChunks") + .HasColumnType("int"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("upload_tasks", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int(11)") + .HasColumnName("ID"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Avatar") + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("用户头像链接"); + + b.Property("Created") + .ValueGeneratedOnAdd() + .HasColumnType("datetime") + .HasDefaultValueSql("'1970-01-01 00:00:00'") + .HasComment("创建时间"); + + b.Property("IsDeleted") + .HasColumnType("tinyint(4)") + .HasComment("软删除标识\r\n0:账号正常\r\n1:账号已删除"); + + b.Property("NickName") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("用户昵称"); + + b.Property("OnlineStatus") + .HasColumnType("tinyint(4)") + .HasComment("用户在线状态\r\n0(默认):不在线\r\n1:在线"); + + b.Property("Password") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("密码"); + + b.Property("Status") + .ValueGeneratedOnAdd() + .HasColumnType("tinyint(4)") + .HasDefaultValueSql("'1'") + .HasComment("账户状态\r\n(0:未激活,1:正常,2:封禁)"); + + b.Property("Updated") + .HasColumnType("datetime") + .HasComment("修改时间"); + + b.Property("Username") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("唯一用户名"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.HasIndex(new[] { "Id" }, "ID") + .HasDatabaseName("ID3"); + + b.HasIndex(new[] { "Username" }, "Username") + .IsUnique(); + + b.ToTable("users", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + + modelBuilder.Entity("IM_API.Models.Admin", b => + { + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Admins") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("admins_ibfk_1"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Conversation", b => + { + b.HasOne("IM_API.Models.Message", null) + .WithMany("Conversations") + .HasForeignKey("MessageId"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("Conversations") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("conversations_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Device", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Devices") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("devices_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.File", b => + { + b.HasOne("IM_API.Models.Message", "Message") + .WithMany("Files") + .HasForeignKey("MessageId") + .IsRequired() + .HasConstraintName("files_ibfk_1"); + + b.Navigation("Message"); + }); + + modelBuilder.Entity("IM_API.Models.Friend", b => + { + b.HasOne("IM_API.Models.User", "FriendNavigation") + .WithMany("FriendFriendNavigations") + .HasForeignKey("FriendId") + .IsRequired() + .HasConstraintName("用户2id"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("FriendUsers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("用户id"); + + b.Navigation("FriendNavigation"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.FriendRequest", b => + { + b.HasOne("IM_API.Models.User", "RequestUserNavigation") + .WithMany("FriendRequestRequestUserNavigations") + .HasForeignKey("RequestUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "ResponseUserNavigation") + .WithMany("FriendRequestResponseUserNavigations") + .HasForeignKey("ResponseUser") + .IsRequired() + .HasConstraintName("friend_request_ibfk_2"); + + b.Navigation("RequestUserNavigation"); + + b.Navigation("ResponseUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.HasOne("IM_API.Models.User", "GroupMasterNavigation") + .WithMany("Groups") + .HasForeignKey("GroupMaster") + .IsRequired() + .HasConstraintName("groups_ibfk_1"); + + b.Navigation("GroupMasterNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupInvite", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupInvites") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_invite_ibfk_2"); + + b.HasOne("IM_API.Models.User", "InviteUserNavigation") + .WithMany("GroupInviteInviteUserNavigations") + .HasForeignKey("InviteUser") + .HasConstraintName("group_invite_ibfk_1"); + + b.HasOne("IM_API.Models.User", "InvitedUserNavigation") + .WithMany("GroupInviteInvitedUserNavigations") + .HasForeignKey("InvitedUser") + .HasConstraintName("group_invite_ibfk_3"); + + b.Navigation("Group"); + + b.Navigation("InviteUserNavigation"); + + b.Navigation("InvitedUserNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.GroupMember", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupMembers") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_member_ibfk_2"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupMembers") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_member_ibfk_1"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.GroupRequest", b => + { + b.HasOne("IM_API.Models.Group", "Group") + .WithMany("GroupRequests") + .HasForeignKey("GroupId") + .IsRequired() + .HasConstraintName("group_request_ibfk_1"); + + b.HasOne("IM_API.Models.User", "User") + .WithMany("GroupRequests") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("group_request_ibfk_2"); + + b.Navigation("Group"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.LoginLog", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("LoginLogs") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("login_log_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.HasOne("IM_API.Models.User", "SenderNavigation") + .WithMany("Messages") + .HasForeignKey("Sender") + .IsRequired() + .HasConstraintName("messages_ibfk_1"); + + b.Navigation("SenderNavigation"); + }); + + modelBuilder.Entity("IM_API.Models.Notification", b => + { + b.HasOne("IM_API.Models.User", "User") + .WithMany("Notifications") + .HasForeignKey("UserId") + .IsRequired() + .HasConstraintName("notifications_ibfk_1"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("IM_API.Models.Permissionarole", b => + { + b.HasOne("IM_API.Models.Permission", "Permission") + .WithMany("Permissionaroles") + .HasForeignKey("PermissionId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_2"); + + b.HasOne("IM_API.Models.Role", "Role") + .WithMany("Permissionaroles") + .HasForeignKey("RoleId") + .IsRequired() + .HasConstraintName("permissionarole_ibfk_1"); + + b.Navigation("Permission"); + + b.Navigation("Role"); + }); + + modelBuilder.Entity("IM_API.Models.Group", b => + { + b.Navigation("GroupInvites"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + }); + + modelBuilder.Entity("IM_API.Models.Message", b => + { + b.Navigation("Conversations"); + + b.Navigation("Files"); + }); + + modelBuilder.Entity("IM_API.Models.Permission", b => + { + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.Role", b => + { + b.Navigation("Admins"); + + b.Navigation("Permissionaroles"); + }); + + modelBuilder.Entity("IM_API.Models.User", b => + { + b.Navigation("Conversations"); + + b.Navigation("Devices"); + + b.Navigation("FriendFriendNavigations"); + + b.Navigation("FriendRequestRequestUserNavigations"); + + b.Navigation("FriendRequestResponseUserNavigations"); + + b.Navigation("FriendUsers"); + + b.Navigation("GroupInviteInviteUserNavigations"); + + b.Navigation("GroupInviteInvitedUserNavigations"); + + b.Navigation("GroupMembers"); + + b.Navigation("GroupRequests"); + + b.Navigation("Groups"); + + b.Navigation("LoginLogs"); + + b.Navigation("Messages"); + + b.Navigation("Notifications"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/backend/IM_API/Migrations/20260214131542_update-uploadtask.cs b/backend/IM_API/Migrations/20260214131542_update-uploadtask.cs new file mode 100644 index 0000000..034f306 --- /dev/null +++ b/backend/IM_API/Migrations/20260214131542_update-uploadtask.cs @@ -0,0 +1,186 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace IM_API.Migrations +{ + /// + public partial class updateuploadtask : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.RenameTable( + name: "UploadTasks", + newName: "upload_tasks"); + + migrationBuilder.AlterTable( + name: "upload_tasks") + .Annotation("MySql:CharSet", "utf8mb4") + .Annotation("Relational:Collation", "utf8mb4_general_ci") + .OldAnnotation("MySql:CharSet", "latin1") + .OldAnnotation("Relational:Collation", "latin1_swedish_ci"); + + migrationBuilder.AlterColumn( + name: "StorageProvider", + table: "upload_tasks", + type: "longtext", + nullable: false, + collation: "utf8mb4_general_ci", + oldClrType: typeof(string), + oldType: "longtext") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "latin1") + .OldAnnotation("Relational:Collation", "latin1_swedish_ci"); + + migrationBuilder.AlterColumn( + name: "ProviderUploadId", + table: "upload_tasks", + type: "longtext", + nullable: true, + collation: "utf8mb4_general_ci", + oldClrType: typeof(string), + oldType: "longtext", + oldNullable: true) + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "latin1") + .OldAnnotation("Relational:Collation", "latin1_swedish_ci"); + + migrationBuilder.AlterColumn( + name: "ObjectName", + table: "upload_tasks", + type: "longtext", + nullable: false, + collation: "utf8mb4_general_ci", + oldClrType: typeof(string), + oldType: "longtext") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "latin1") + .OldAnnotation("Relational:Collation", "latin1_swedish_ci"); + + migrationBuilder.AlterColumn( + name: "FileName", + table: "upload_tasks", + type: "longtext", + nullable: false, + collation: "utf8mb4_general_ci", + oldClrType: typeof(string), + oldType: "longtext") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "latin1") + .OldAnnotation("Relational:Collation", "latin1_swedish_ci"); + + migrationBuilder.AlterColumn( + name: "FileHash", + table: "upload_tasks", + type: "longtext", + nullable: false, + collation: "utf8mb4_general_ci", + oldClrType: typeof(string), + oldType: "longtext") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "latin1") + .OldAnnotation("Relational:Collation", "latin1_swedish_ci"); + + migrationBuilder.AlterColumn( + name: "ContentType", + table: "upload_tasks", + type: "longtext", + nullable: false, + collation: "utf8mb4_general_ci", + oldClrType: typeof(string), + oldType: "longtext") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "latin1") + .OldAnnotation("Relational:Collation", "latin1_swedish_ci"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.RenameTable( + name: "upload_tasks", + newName: "UploadTasks"); + + migrationBuilder.AlterTable( + name: "UploadTasks") + .Annotation("MySql:CharSet", "latin1") + .Annotation("Relational:Collation", "latin1_swedish_ci") + .OldAnnotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("Relational:Collation", "utf8mb4_general_ci"); + + migrationBuilder.AlterColumn( + name: "StorageProvider", + table: "UploadTasks", + type: "longtext", + nullable: false, + collation: "latin1_swedish_ci", + oldClrType: typeof(string), + oldType: "longtext") + .Annotation("MySql:CharSet", "latin1") + .OldAnnotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("Relational:Collation", "utf8mb4_general_ci"); + + migrationBuilder.AlterColumn( + name: "ProviderUploadId", + table: "UploadTasks", + type: "longtext", + nullable: true, + collation: "latin1_swedish_ci", + oldClrType: typeof(string), + oldType: "longtext", + oldNullable: true) + .Annotation("MySql:CharSet", "latin1") + .OldAnnotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("Relational:Collation", "utf8mb4_general_ci"); + + migrationBuilder.AlterColumn( + name: "ObjectName", + table: "UploadTasks", + type: "longtext", + nullable: false, + collation: "latin1_swedish_ci", + oldClrType: typeof(string), + oldType: "longtext") + .Annotation("MySql:CharSet", "latin1") + .OldAnnotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("Relational:Collation", "utf8mb4_general_ci"); + + migrationBuilder.AlterColumn( + name: "FileName", + table: "UploadTasks", + type: "longtext", + nullable: false, + collation: "latin1_swedish_ci", + oldClrType: typeof(string), + oldType: "longtext") + .Annotation("MySql:CharSet", "latin1") + .OldAnnotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("Relational:Collation", "utf8mb4_general_ci"); + + migrationBuilder.AlterColumn( + name: "FileHash", + table: "UploadTasks", + type: "longtext", + nullable: false, + collation: "latin1_swedish_ci", + oldClrType: typeof(string), + oldType: "longtext") + .Annotation("MySql:CharSet", "latin1") + .OldAnnotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("Relational:Collation", "utf8mb4_general_ci"); + + migrationBuilder.AlterColumn( + name: "ContentType", + table: "UploadTasks", + type: "longtext", + nullable: false, + collation: "latin1_swedish_ci", + oldClrType: typeof(string), + oldType: "longtext") + .Annotation("MySql:CharSet", "latin1") + .OldAnnotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("Relational:Collation", "utf8mb4_general_ci"); + } + } +} diff --git a/backend/IM_API/Migrations/ImContextModelSnapshot.cs b/backend/IM_API/Migrations/ImContextModelSnapshot.cs index 8159df8..6b71e71 100644 --- a/backend/IM_API/Migrations/ImContextModelSnapshot.cs +++ b/backend/IM_API/Migrations/ImContextModelSnapshot.cs @@ -768,6 +768,59 @@ namespace IM_API.Migrations MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); }); + modelBuilder.Entity("IM_API.Models.Upload.UploadTask", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("ChunkSize") + .HasColumnType("int"); + + b.Property("ContentType") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)"); + + b.Property("FileHash") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FileName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("FileSize") + .HasColumnType("bigint"); + + b.Property("ObjectName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ProviderUploadId") + .HasColumnType("longtext"); + + b.Property("Status") + .HasColumnType("int"); + + b.Property("StorageProvider") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("TotalChunks") + .HasColumnType("int"); + + b.HasKey("Id") + .HasName("PRIMARY"); + + b.ToTable("upload_tasks", (string)null); + + MySqlEntityTypeBuilderExtensions.HasCharSet(b, "utf8mb4"); + MySqlEntityTypeBuilderExtensions.UseCollation(b, "utf8mb4_general_ci"); + }); + modelBuilder.Entity("IM_API.Models.User", b => { b.Property("Id") diff --git a/backend/IM_API/Models/ImContext.cs b/backend/IM_API/Models/ImContext.cs index e09154c..59599b4 100644 --- a/backend/IM_API/Models/ImContext.cs +++ b/backend/IM_API/Models/ImContext.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using IM_API.Models.Upload; using Microsoft.EntityFrameworkCore; namespace IM_API.Models; @@ -18,6 +19,7 @@ public partial class ImContext : DbContext public virtual DbSet Devices { get; set; } public virtual DbSet Files { get; set; } + public virtual DbSet UploadTasks { get; set; } public virtual DbSet Friends { get; set; } @@ -208,6 +210,17 @@ public partial class ImContext : DbContext .HasConstraintName("files_ibfk_1"); }); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PRIMARY"); + + entity + .ToTable("upload_tasks") + .HasCharSet("utf8mb4") + .UseCollation("utf8mb4_general_ci"); + + }); + modelBuilder.Entity(entity => { entity.HasKey(e => e.Id).HasName("PRIMARY"); diff --git a/backend/IM_API/Models/Upload/UploadStatus.cs b/backend/IM_API/Models/Upload/UploadStatus.cs new file mode 100644 index 0000000..ddca6c4 --- /dev/null +++ b/backend/IM_API/Models/Upload/UploadStatus.cs @@ -0,0 +1,10 @@ +namespace IM_API.Models.Upload +{ + public enum UploadStatus + { + Created, + Uploading, + Completed, + Aborted + } +} diff --git a/backend/IM_API/Models/Upload/UploadTask.cs b/backend/IM_API/Models/Upload/UploadTask.cs new file mode 100644 index 0000000..087b83b --- /dev/null +++ b/backend/IM_API/Models/Upload/UploadTask.cs @@ -0,0 +1,24 @@ +namespace IM_API.Models.Upload +{ + public class UploadTask + { + public Guid Id { get; set; } + + public string FileName { get; set; } = default!; + public long FileSize { get; set; } + public string FileHash { get; set; } + public string ContentType { get; set; } = default!; + + public int ChunkSize { get; set; } + public int TotalChunks { get; set; } + + public UploadStatus Status { get; set; } + + public string StorageProvider { get; set; } = default!; + public string ObjectName { get; set; } = default!; + + public string? ProviderUploadId { get; set; } // OSS/S3 UploadId + + public DateTimeOffset CreatedAt { get; set; } + } +} diff --git a/backend/IM_API/Program.cs b/backend/IM_API/Program.cs index c006058..a595b8a 100644 --- a/backend/IM_API/Program.cs +++ b/backend/IM_API/Program.cs @@ -7,6 +7,7 @@ using IM_API.Models; using IM_API.Tools; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.FileProviders; using Microsoft.IdentityModel.Tokens; using StackExchange.Redis; using System.Text; @@ -42,7 +43,9 @@ namespace IM_API }); builder.Services.AddRabbitMQ(configuration.GetSection("RabbitMqOptions").Get()); - + + builder.Services.AddHttpContextAccessor(); + builder.Services.AddAllService(configuration); builder.Services.AddSignalR().AddJsonProtocol(options => @@ -134,6 +137,23 @@ namespace IM_API var app = builder.Build(); + string uploadPath = Path.Combine(Directory.GetCurrentDirectory(), "Uploads","files"); + + // 2. ļв򴴽ֹ + if (!Directory.Exists(uploadPath)) + { + Directory.CreateDirectory(uploadPath); + } + + // 3. þ̬ļӳ + app.UseStaticFiles(new StaticFileOptions + { + // ָ· + FileProvider = new PhysicalFileProvider(uploadPath), + // ָʵǰ׺磺http://localhost:5000/files/1.jpg + RequestPath = "/uploads/files" + }); + app.UseCors(); // Configure the HTTP request pipeline. diff --git a/backend/IM_API/Services/LocalStorageService.cs b/backend/IM_API/Services/LocalStorageService.cs new file mode 100644 index 0000000..3947f37 --- /dev/null +++ b/backend/IM_API/Services/LocalStorageService.cs @@ -0,0 +1,236 @@ +using AutoMapper; +using IM_API.Configs.Options; +using IM_API.Domain.Events; +using IM_API.Dtos; +using IM_API.Exceptions; +using IM_API.Interface.Services; +using IM_API.Models.Upload; +using IM_API.Tools; +using IM_API.VOs; +using MassTransit; +using Microsoft.EntityFrameworkCore.Storage; +using StackExchange.Redis; +using System.Security.AccessControl; +using System.Security.Claims; +using System.Threading.Tasks; +using IDatabase = StackExchange.Redis.IDatabase; + +namespace IM_API.Services +{ + public class LocalStorageService : IStorageService + { + private readonly IMapper _mapper; + private readonly IHttpContextAccessor _httpContext; + private FileUploadOptions _options; + private readonly IUploadTaskService _uploadTaskService; + private readonly IDatabase _redis; + private readonly IHostEnvironment _env; + private readonly ILogger _logger; + private readonly IPublishEndpoint _endpoint; + public LocalStorageService(IMapper mapper, IHttpContextAccessor httpContextAccessor, + IConfiguration configuration, IUploadTaskService uploadTaskService, + IConnectionMultiplexer connectionMultiplexer, IHostEnvironment hostEnvironment + , ILogger logger, IPublishEndpoint publishEndpoint) + { + _mapper = mapper; + _httpContext = httpContextAccessor; + _options = configuration.GetSection("FileUploadOptions").Get()!; + _uploadTaskService = uploadTaskService; + _redis = connectionMultiplexer.GetDatabase(); + _env = hostEnvironment; + _logger = logger; + _endpoint = publishEndpoint; + } + + public UploadMode Mode => UploadMode.Proxy; + public string ProviderName => "Local"; + + public async Task CompleteAsync(Guid taskId, List parts) + { + var task = await _uploadTaskService.GetTaskAsync(taskId); + + if(task is null) + throw new BaseException(CodeDefine.CHUNKE_NOT_FOUND); + + var partsToCheck = Enumerable.Range(1, task.TotalChunks) + .Select(i => (RedisValue)i).ToArray(); + + var results = await _redis.SetContainsAsync(RedisKeys.GetUploadPartKey(taskId), partsToCheck); + // 3. 快速判断是否全部存在 + bool isAllUploaded = results.All(exists => exists); + if (!isAllUploaded) throw new BaseException(CodeDefine.CHUNKE_NOT_FOUND); + + await _endpoint.Publish(new UploadMergeEvent + { + AggregateId = taskId.ToString(), + OccurredAt = DateTime.UtcNow, + EventId = Guid.NewGuid(), + OperatorId = 0, + Parts = parts, + TaskId = taskId, + ChunckCount = task.TotalChunks, + ObjectName = task.ObjectName + + }); + return taskId; + } + + public async Task MergeAsync(Guid taskId, string objectName, int totalChunks, List parts) + { + var baseDir = Path.Combine(_env.ContentRootPath, "uploads"); + var tempPath = Path.Combine(baseDir, "temp", taskId.ToString()); // 项目根目录下 uploads // 最终文件存储路径(这里可以用你之前 ObjectNameGenerator 生成的名字) + var finalPath = Path.Combine(baseDir, "files", objectName); + var finalDir = Path.GetDirectoryName(finalPath); + Directory.CreateDirectory(finalDir); + try + { + using (var finalStream = new FileStream(finalPath, FileMode.Create)) + { + for (var i = 1; i <= totalChunks; i++) + { + var progress = (i * 100.0 / totalChunks); + if (i % 5 == 0 || i == totalChunks) + { + await _redis.HashSetAsync(RedisKeys.MergeStatus(taskId), new HashEntry[] + { + new("status", "processing"), + new("progress", progress.ToString("F2")) + }); + } + var chunkPath = Path.Combine(tempPath, $"{i}.part.tmp"); + if (!File.Exists(chunkPath)) + throw new BaseException(CodeDefine.CHUNKE_NOT_FOUND); + using (var chunkStream = new FileStream(chunkPath, FileMode.Open)) + { + await chunkStream.CopyToAsync(finalStream); + } + } + Directory.Delete(tempPath, true); + await _redis.KeyDeleteAsync(RedisKeys.GetUploadPartKey(taskId)); + await _uploadTaskService.UpdateStatusAsync(taskId, UploadStatus.Completed); + await _redis.HashSetAsync(RedisKeys.MergeStatus(taskId), new HashEntry[] + { + new("status", "Completed"), + new("progress", "100"), + new("url", objectName) + }); + } + + } + catch (Exception e) when (e is not BaseException) + { + _logger.LogError(e, e.Message); + throw new BaseException(CodeDefine.CHUNKE_COMBINE_FAIL); + + } + } + + public async Task CreatePartInstructionAsync(Guid taskId, int partNumer) + { + if (await _redis.SetContainsAsync(RedisKeys.GetUploadPartKey(taskId), partNumer)){ + return new UploadPartInstructionVo + { + PartNumber = partNumer, + Skip = true, + Headers = new Dictionary() + }; + } + var request = _httpContext.HttpContext!.Request; + + var scheme = request.Scheme; // http 或 https + var host = request.Host.Value; // localhost:5000 或域名 + + var baseUrl = $"{scheme}://{host}/api/upload/local/{taskId}/parts/{partNumer}"; + var headers = new Dictionary(); + headers.Add("Content-Type", "multipart/form-data"); + return new UploadPartInstructionVo + { + Method = "POST", + PartNumber = partNumer, + Skip = false, + Url = baseUrl, + Headers = headers + }; + + + } + + public async Task UploadSmallFileAsync(Stream stream, string fileName, string fileType, long size, string hash) + { + var taskOld = await _uploadTaskService.GetTaskAsync(hash); + + if (taskOld is not null) return taskOld; + + var userId = _httpContext.HttpContext?.User.FindFirstValue(ClaimTypes.NameIdentifier); + var objectname = ObjectNameGenerator.Generate(new ObjectNameContext + { + ContentType = fileType, + FileName = fileName, + UserId = int.Parse(userId) + }); + var path = GetDownloadUrl(objectname); + // 4. 将 Stream 写入本地文件 + using (var fileStream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None)) + { + await stream.CopyToAsync(fileStream); + } + var task = new UploadTask + { + CreatedAt = DateTime.UtcNow, + ChunkSize = (int)size, + ContentType = fileType, + FileHash = hash, + FileName = fileName, + FileSize = size, + Id = Guid.NewGuid(), + ObjectName = objectname, + ProviderUploadId = Guid.NewGuid().ToString(), + Status = UploadStatus.Completed, + StorageProvider = ProviderName, + TotalChunks = 1 + }; + await _uploadTaskService.AddAsync(task); + return task; + + } + + public string GetDownloadUrl(string objectname) + { + var baseDir = Path.Combine(_env.ContentRootPath, "uploads"); // 最终文件存储路径(这里可以用你之前 ObjectNameGenerator 生成的名字) + var finalPath = Path.Combine(baseDir, "files", objectname); + var finalDir = Path.GetDirectoryName(finalPath); + Directory.CreateDirectory(finalDir); + return finalPath; + } + + public async Task InitTaskAsync(CreateUploadTaskDto dto) + { + var userId = _httpContext.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier); + UploadTask task = _mapper.Map(dto); + var taskOld = await _uploadTaskService.GetTaskAsync(dto.FileHash); + if(taskOld != null) + { + var t = _mapper.Map(taskOld); + t.Skip = false; + if (taskOld.Status == UploadStatus.Completed) + { + t.Skip = true; + } + return t; + task = taskOld; + } + task.ObjectName = ObjectNameGenerator.Generate(new ObjectNameContext + { + ContentType = task.ContentType, + FileName = task.FileName, + UserId = int.Parse(userId) + }); + task.StorageProvider = ProviderName; + task.ProviderUploadId = Guid.NewGuid().ToString(); + task.ChunkSize = _options.ChunkSize; + task.TotalChunks = (int)Math.Ceiling((double)task.FileSize / _options.ChunkSize); + await _uploadTaskService.AddAsync(task); + return _mapper.Map(task); + } + } +} diff --git a/backend/IM_API/Services/MessageService.cs b/backend/IM_API/Services/MessageService.cs index 07b0528..24b2e53 100644 --- a/backend/IM_API/Services/MessageService.cs +++ b/backend/IM_API/Services/MessageService.cs @@ -10,9 +10,11 @@ using IM_API.Tools; using IM_API.VOs.Message; using MassTransit; using Microsoft.EntityFrameworkCore; +using Newtonsoft.Json; using StackExchange.Redis; using System.Text.Json; using System.Text.RegularExpressions; +using System.Threading.Tasks; using static MassTransit.Monitoring.Performance.BuiltInCounters; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; @@ -28,10 +30,13 @@ namespace IM_API.Services private readonly IPublishEndpoint _endpoint; private readonly ISequenceIdService _sequenceIdService; private readonly IUserService _userService; + private readonly IUploadTaskService _uploadService; + private readonly IHttpContextAccessor _httpContextAccessor; public MessageService( ImContext context, ILogger logger, IMapper mapper, IPublishEndpoint publishEndpoint, ISequenceIdService sequenceIdService, - IUserService userService + IUserService userService, IUploadTaskService uploadTaskService, + IHttpContextAccessor httpContextAccessor ) { _context = context; @@ -41,6 +46,8 @@ namespace IM_API.Services _endpoint = publishEndpoint; _sequenceIdService = sequenceIdService; _userService = userService; + _uploadService = uploadTaskService; + _httpContextAccessor = httpContextAccessor; } public async Task> GetMessagesAsync(int userId,MessageQueryDto dto) @@ -91,6 +98,12 @@ namespace IM_API.Services foreach (var item in messages) { + if(item.Type != MessageMsgType.Text) + { + var request = _httpContextAccessor.HttpContext?.Request; + var baseUrl = $"{request.Scheme}://{request.Host}"; + item.Content = UrlTools.ProcessMessageUrl(item.Content, baseUrl); + } if(userDict.TryGetValue(item.SenderId, out var user)) { item.SenderName = user.NickName; @@ -143,7 +156,10 @@ namespace IM_API.Services var message = _mapper.Map(dto); message.StreamKey = StreamKeyBuilder.Group(groupId); message.SequenceId = await _sequenceIdService.GetNextSquenceIdAsync(message.StreamKey); - await _endpoint.Publish(_mapper.Map(message)); + var publishData = _mapper.Map(message); + var request = _httpContextAccessor.HttpContext?.Request; + publishData.BaseUrl = $"{request.Scheme}://{request.Host}"; + await _endpoint.Publish(publishData); return _mapper.Map(message); } @@ -156,9 +172,40 @@ namespace IM_API.Services var message = _mapper.Map(dto); message.StreamKey = StreamKeyBuilder.Private(senderId, receiverId); message.SequenceId = await _sequenceIdService.GetNextSquenceIdAsync(message.StreamKey); - await _endpoint.Publish(_mapper.Map(message)); + var publishData = _mapper.Map(message); + var request = _httpContextAccessor.HttpContext?.Request; + publishData.BaseUrl = $"{request.Scheme}://{request.Host}"; + await _endpoint.Publish(publishData); return _mapper.Map(message); } #endregion + + public async Task HandleFileMessageContentAsync(MessageBaseDto dto) + { + if(dto.Type == MessageMsgType.Text) + { + return dto; + } + + var dic = JsonConvert.DeserializeObject>(dto.Content); + + if (dic == null || !dic.TryGetValue("fileId", out var fileIdObj)) + throw new BaseException(CodeDefine.PARAMETER_ERROR); + + var fileInfo = await _uploadService.GetTaskAsync(new Guid(fileIdObj.ToString())); + + if (fileInfo is null) + throw new BaseException(CodeDefine.FILE_NOT_FOUND); + + + + dic["url"] = fileInfo.ObjectName; + dic["provider"] = fileInfo.StorageProvider; + dic["size"] = fileInfo.FileSize; + + dto.Content = JsonConvert.SerializeObject(dic); + + return dto; + } } } diff --git a/backend/IM_API/Services/UploadTaskService.cs b/backend/IM_API/Services/UploadTaskService.cs new file mode 100644 index 0000000..5007e6e --- /dev/null +++ b/backend/IM_API/Services/UploadTaskService.cs @@ -0,0 +1,43 @@ +using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Models.Upload; +using Microsoft.EntityFrameworkCore; + +namespace IM_API.Services +{ + public class UploadTaskService : IUploadTaskService + { + private readonly ImContext _context; + public UploadTaskService(ImContext context) + { + _context = context; + } + + public async Task AddAsync(UploadTask task) + { + _context.UploadTasks.Add(task); + await _context.SaveChangesAsync(); + } + + public async Task GetTaskAsync(Guid taskId) + { + return await _context.UploadTasks.FirstOrDefaultAsync(x => x.Id == taskId); + } + + public async Task GetTaskAsync(string hash) + { + return await _context.UploadTasks.FirstOrDefaultAsync(x => x.FileHash == hash); + } + + public async Task UpdateStatusAsync(Guid taskId, UploadStatus status) + { + var task = await _context.UploadTasks.FirstOrDefaultAsync(x => x.Id == taskId); + if (task != null) + { + task.Status = status; + _context.UploadTasks.Update(task); + await _context.SaveChangesAsync(); + } + } + } +} diff --git a/backend/IM_API/Tools/CodeDefine.cs b/backend/IM_API/Tools/CodeDefine.cs index e62989e..eec8d8b 100644 --- a/backend/IM_API/Tools/CodeDefine.cs +++ b/backend/IM_API/Tools/CodeDefine.cs @@ -105,5 +105,11 @@ // 3.9 会话相关错误(3100 ~ 3199) /// 发送时异常 public static CodeDefine CONVERSATION_NOT_FOUND = new CodeDefine(3100, "会话不存在"); + + // 3.9 文件相关错误(3200 ~ 3299) + /// 分片不存在异常 + public static CodeDefine CHUNKE_NOT_FOUND = new CodeDefine(3201, "分片不存在"); + /// 分片合并异常 + public static CodeDefine CHUNKE_COMBINE_FAIL = new CodeDefine(3202, "分片合并失败"); } } diff --git a/backend/IM_API/Tools/ObjectNameGenerator.cs b/backend/IM_API/Tools/ObjectNameGenerator.cs new file mode 100644 index 0000000..606e68b --- /dev/null +++ b/backend/IM_API/Tools/ObjectNameGenerator.cs @@ -0,0 +1,51 @@ +namespace IM_API.Tools +{ + public static class ObjectNameGenerator + { + public static string Generate(ObjectNameContext ctx) + { + var ext = GetExtension(ctx.FileName, ctx.ContentType); + var shortId = Guid.NewGuid().ToString("N")[..12]; + + var parts = new List + { + ctx.Biz, + ctx.Now.Year.ToString(), + ctx.Now.Month.ToString("D2") + }; + + if (ctx.UserId.HasValue) + { + parts.Add(ctx.UserId.Value.ToString()); + } + + parts.Add($"{shortId}{ext}"); + + return string.Join("/", parts); + } + + private static string GetExtension(string fileName, string contentType) + { + var ext = Path.GetExtension(fileName); + if (!string.IsNullOrWhiteSpace(ext)) + return ext.ToLowerInvariant(); + + return contentType switch + { + "image/jpeg" => ".jpg", + "image/png" => ".png", + "video/mp4" => ".mp4", + _ => ".bin" + }; + } + } + public class ObjectNameContext + { + public string Biz { get; init; } = "IM"; + public long? UserId { get; init; } + public string FileName { get; init; } = default!; + public string ContentType { get; init; } = default!; + public DateTimeOffset Now { get; init; } = DateTimeOffset.UtcNow; + } + +} diff --git a/backend/IM_API/Tools/RedisKeys.cs b/backend/IM_API/Tools/RedisKeys.cs index d7949be..0a808df 100644 --- a/backend/IM_API/Tools/RedisKeys.cs +++ b/backend/IM_API/Tools/RedisKeys.cs @@ -2,10 +2,13 @@ { public static class RedisKeys { - public static string GetUserinfoKey(string userId) => $"user::uinfo::{userId}"; - public static string GetUserinfoKeyByUsername(string username) => $"user::uinfobyid::{username}"; - public static string GetSequenceIdKey(string streamKey) => $"chat::seq::{streamKey}"; - public static string GetSequenceIdLockKey(string streamKey) => $"lock::seq::{streamKey}"; - public static string GetConnectionIdKey(string userId) => $"signalr::user::con::{userId}"; + public static string GetUserinfoKey(string userId) => $"user:uinfo:{userId}"; + public static string GetUserinfoKeyByUsername(string username) => $"user:uinfobyid:{username}"; + public static string GetSequenceIdKey(string streamKey) => $"chat:seq:{streamKey}"; + public static string GetSequenceIdLockKey(string streamKey) => $"lock:seq:{streamKey}"; + public static string GetConnectionIdKey(string userId) => $"signalr:user:con:{userId}"; + + public static string GetUploadPartKey(Guid taskId) => $"upload:task:{taskId}:parts"; + public static string MergeStatus(Guid taskId) => $"upload:task:{taskId}:merge"; } } diff --git a/backend/IM_API/Tools/UrlTools.cs b/backend/IM_API/Tools/UrlTools.cs new file mode 100644 index 0000000..58b8057 --- /dev/null +++ b/backend/IM_API/Tools/UrlTools.cs @@ -0,0 +1,64 @@ +using SixLabors.ImageSharp; +using System.Text.Json; +using System.Text.Json.Nodes; + +namespace IM_API.Tools +{ + public static class UrlTools + { + public static string GetFullUrl(string objectName, string provider, string? baseUrl) + { + return provider switch + { + "Local" => $"{baseUrl}/uploads/files/{objectName}", + _ => "http://baidu.com", + }; + } + + public static async Task<(int width, int height)> GetImageWH(string url) + { + using var httpClient = new HttpClient(); + var stream = await httpClient.GetStreamAsync(url); + var info = await Image.IdentifyAsync(stream); + return (info.Width, info.Height); + } + + public static string ProcessMessageUrl(string contentJson, string? localBaseUrl) + { + // 1. 解析 JSON 文档(比反序列化快得多) + using var doc = JsonDocument.Parse(contentJson); + var root = doc.RootElement; + + // 2. 获取 Provider 字段 + string provider = root.GetProperty("provider").GetString(); + + // 3. 根据 Provider 决定前缀 + string prefix = GetFullUrl("", provider, localBaseUrl); + + // 4. 重新组装(如果只是为了给前端看,建议直接返回带前缀的对象或字符串) + // 这里推荐用 JsonNode 方便修改并返回字符串 + var node = JsonNode.Parse(contentJson); + node["url"] = $"{prefix}{node["url"]}"; + node["thumb"] = $"{prefix}{node["thumb"]}"; + + return node.ToJsonString(); + } + public static Stream Base64ToStream(string base64String) + { + if (string.IsNullOrEmpty(base64String)) + throw new ArgumentNullException(nameof(base64String)); + + // 1. 自动处理可能存在的 Base64 Data URL 前缀 + string base64Data = base64String.Contains(",") + ? base64String.Split(',')[1] + : base64String; + + // 2. 解码为字节数组 + byte[] bytes = Convert.FromBase64String(base64Data); + + // 3. 包装进 MemoryStream + // 注意:这里直接把 Position 设为 0,符合“方法a”产生即用的原则 + return new MemoryStream(bytes); + } + } +} diff --git a/backend/IM_API/VOs/CreateUploadTaskVo.cs b/backend/IM_API/VOs/CreateUploadTaskVo.cs new file mode 100644 index 0000000..4288a06 --- /dev/null +++ b/backend/IM_API/VOs/CreateUploadTaskVo.cs @@ -0,0 +1,16 @@ +using IM_API.Interface.Services; + +namespace IM_API.VOs +{ + public class CreateUploadTaskVo + { + public Guid TaskId { get; set; } + + public int ChunkSize { get; set; } + public int TotalChunks { get; set; } + + public int Concurrency { get; set; } = 4; + public string? Url { get; set; } + public bool Skip { get; set; } + } +} diff --git a/backend/IM_API/VOs/UploadPartInstuctionVo.cs b/backend/IM_API/VOs/UploadPartInstuctionVo.cs new file mode 100644 index 0000000..3f19505 --- /dev/null +++ b/backend/IM_API/VOs/UploadPartInstuctionVo.cs @@ -0,0 +1,14 @@ +namespace IM_API.VOs +{ + public class UploadPartInstructionVo + { + public bool Skip { get; set; } + public int PartNumber { get; set; } + + public string Method { get; set; } = "PUT"; + public string Url { get; set; } = default!; + + public Dictionary Headers { get; set; } = new(); + } + +} diff --git a/backend/IM_API/appsettings.json b/backend/IM_API/appsettings.json index fc895fb..3211965 100644 --- a/backend/IM_API/appsettings.json +++ b/backend/IM_API/appsettings.json @@ -14,7 +14,7 @@ "RefreshTokenDays": 30 }, "ConnectionStrings": { - "DefaultConnection": "Server=frp-era.com;Port=26582;Database=IM;User=product;Password=12345678;", + "DefaultConnection": "Server=192.168.5.100;Port=3306;Database=IM;User=product;Password=12345678;", "Redis": "192.168.5.100:6379" }, "RabbitMQOptions": { @@ -22,5 +22,9 @@ "Port": 5672, "Username": "test", "Password": "123456" + }, + "FileUploadOptions": { + "DefaultStorage": "Local", + "ChunkSize": 5000000, } } diff --git a/frontend/app/android/build.gradle.kts b/frontend/app/android/build.gradle.kts index 224f8a9..febd977 100644 --- a/frontend/app/android/build.gradle.kts +++ b/frontend/app/android/build.gradle.kts @@ -1,12 +1,21 @@ -allprojects { - repositories { - maven { url = uri("https://maven.aliyun.com/repository/google") } - maven { url = uri("https://maven.aliyun.com/repository/public") } - google() - mavenCentral() - - } -} +//buildscript { +// repositories { +// // 将 google() 和 mavenCentral() 替换或放在后面 +// maven { url = uri("https://maven.aliyun.com/repository/google") } +// maven { url = uri("https://maven.aliyun.com/repository/public") } +// google() +// mavenCentral() +// } +//} +// +//allprojects { +// repositories { +// maven { url = uri("https://maven.aliyun.com/repository/google") } +// maven { url = uri("https://maven.aliyun.com/repository/public") } +// google() +// mavenCentral() +// } +//} val newBuildDir: Directory = rootProject.layout.buildDirectory diff --git a/frontend/app/android/build/reports/problems/problems-report.html b/frontend/app/android/build/reports/problems/problems-report.html new file mode 100644 index 0000000..39e604e --- /dev/null +++ b/frontend/app/android/build/reports/problems/problems-report.html @@ -0,0 +1,663 @@ + + + + + + + + + + + + + Gradle Configuration Cache + + + +
+ +
+ Loading... +
+ + + + + + diff --git a/frontend/app/android/gradle.properties b/frontend/app/android/gradle.properties index fbee1d8..13e0135 100644 --- a/frontend/app/android/gradle.properties +++ b/frontend/app/android/gradle.properties @@ -1,2 +1,12 @@ org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true +# ?? HTTP ?? +systemProp.http.proxyHost=127.0.0.1 +systemProp.http.proxyPort=10808 + +# ?? HTTPS ??????????????? +systemProp.https.proxyHost=127.0.0.1 +systemProp.https.proxyPort=10808 + +# ???????????????????????? +systemProp.http.nonProxyHosts=localhost|127.0.0.1|*.aliyun.com|mirrors.* \ No newline at end of file diff --git a/frontend/app/android/settings.gradle.kts b/frontend/app/android/settings.gradle.kts index d36178c..2507983 100644 --- a/frontend/app/android/settings.gradle.kts +++ b/frontend/app/android/settings.gradle.kts @@ -1,28 +1,38 @@ pluginManagement { - val flutterSdkPath = - run { - val properties = java.util.Properties() - file("local.properties").inputStream().use { properties.load(it) } - val flutterSdkPath = properties.getProperty("flutter.sdk") - require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } - flutterSdkPath - } + val flutterSdkPath = run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") repositories { maven { url = uri("https://maven.aliyun.com/repository/google") } maven { url = uri("https://maven.aliyun.com/repository/public") } - google() - mavenCentral() gradlePluginPortal() + //google() + mavenCentral() + } +} + +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + repositories { + maven { url = uri("https://maven.aliyun.com/repository/google") } + maven { url = uri("https://maven.aliyun.com/repository/public") } + gradlePluginPortal() + //google() + mavenCentral() } } plugins { id("dev.flutter.flutter-plugin-loader") version "1.0.0" - id("com.android.application") version "8.11.1" apply false - id("org.jetbrains.kotlin.android") version "2.2.20" apply false + id("com.android.application") version "8.1.1" apply false + id("org.jetbrains.kotlin.android") version "1.8.22" apply false } -include(":app") +include(":app") \ No newline at end of file diff --git a/frontend/app/pubspec.lock b/frontend/app/pubspec.lock index 8b91c6e..7d348ac 100644 --- a/frontend/app/pubspec.lock +++ b/frontend/app/pubspec.lock @@ -6,7 +6,7 @@ packages: description: name: async sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.13.0" boolean_selector: @@ -14,23 +14,23 @@ packages: description: name: boolean_selector sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.1.2" characters: dependency: transitive description: name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 - url: "https://pub.flutter-io.cn" + sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b + url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" clock: dependency: transitive description: name: clock sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.1.2" collection: @@ -38,7 +38,7 @@ packages: description: name: collection sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.19.1" cupertino_icons: @@ -46,7 +46,7 @@ packages: description: name: cupertino_icons sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.0.8" fake_async: @@ -54,7 +54,7 @@ packages: description: name: fake_async sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.3.3" flutter: @@ -67,7 +67,7 @@ packages: description: name: flutter_lints sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "6.0.0" flutter_test: @@ -84,16 +84,16 @@ packages: dependency: "direct main" description: name: go_router - sha256: eff94d2a6fc79fa8b811dde79c7549808c2346037ee107a1121b4a644c745f2a - url: "https://pub.flutter-io.cn" + sha256: "7974313e217a7771557add6ff2238acb63f635317c35fa590d348fb238f00896" + url: "https://pub.dev" source: hosted - version: "17.0.1" + version: "17.1.0" leak_tracker: dependency: transitive description: name: leak_tracker sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "11.0.2" leak_tracker_flutter_testing: @@ -101,7 +101,7 @@ packages: description: name: leak_tracker_flutter_testing sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.0.10" leak_tracker_testing: @@ -109,47 +109,47 @@ packages: description: name: leak_tracker_testing sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "3.0.2" lints: dependency: transitive description: name: lints - sha256: a5e2b223cb7c9c8efdc663ef484fdd95bb243bff242ef5b13e26883547fce9a0 - url: "https://pub.flutter-io.cn" + sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" + url: "https://pub.dev" source: hosted - version: "6.0.0" + version: "6.1.0" logging: dependency: transitive description: name: logging sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.3.0" matcher: dependency: transitive description: name: matcher - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 - url: "https://pub.flutter-io.cn" + sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6" + url: "https://pub.dev" source: hosted - version: "0.12.17" + version: "0.12.18" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec - url: "https://pub.flutter-io.cn" + sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" + url: "https://pub.dev" source: hosted - version: "0.11.1" + version: "0.13.0" meta: dependency: transitive description: name: meta sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.17.0" path: @@ -157,7 +157,7 @@ packages: description: name: path sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.9.1" sky_engine: @@ -169,16 +169,16 @@ packages: dependency: transitive description: name: source_span - sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" - url: "https://pub.flutter-io.cn" + sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" + url: "https://pub.dev" source: hosted - version: "1.10.1" + version: "1.10.2" stack_trace: dependency: transitive description: name: stack_trace sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.12.1" stream_channel: @@ -186,7 +186,7 @@ packages: description: name: stream_channel sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.1.4" string_scanner: @@ -194,7 +194,7 @@ packages: description: name: string_scanner sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.4.1" term_glyph: @@ -202,23 +202,23 @@ packages: description: name: term_glyph sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "1.2.2" test_api: dependency: transitive description: name: test_api - sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 - url: "https://pub.flutter-io.cn" + sha256: "19a78f63e83d3a61f00826d09bc2f60e191bf3504183c001262be6ac75589fb8" + url: "https://pub.dev" source: hosted - version: "0.7.7" + version: "0.7.8" vector_math: dependency: transitive description: name: vector_math sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "2.2.0" vm_service: @@ -226,7 +226,7 @@ packages: description: name: vm_service sha256: "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60" - url: "https://pub.flutter-io.cn" + url: "https://pub.dev" source: hosted version: "15.0.2" sdks: diff --git a/frontend/web/package-lock.json b/frontend/web/package-lock.json index 4499a81..d561854 100644 --- a/frontend/web/package-lock.json +++ b/frontend/web/package-lock.json @@ -8,6 +8,7 @@ "name": "web", "version": "0.0.0", "dependencies": { + "@cloudgeek/vue3-video-player": "^0.3.10", "@microsoft/signalr": "^10.0.0", "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", @@ -15,6 +16,7 @@ "feather-icons": "^4.29.2", "idb": "^8.0.3", "pinia": "^3.0.3", + "spark-md5": "^3.0.2", "vee-validate": "^4.15.1", "vue": "^3.5.22", "vue-router": "^4.5.1", @@ -29,6 +31,7 @@ "eslint": "^9.33.0", "eslint-plugin-vue": "~10.4.0", "globals": "^16.3.0", + "hevue-img-preview": "^7.1.3", "jsdom": "^27.0.0", "prettier": "3.6.2", "vite": "^7.1.7", @@ -105,7 +108,6 @@ "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -570,6 +572,20 @@ "node": ">=6.9.0" } }, + "node_modules/@cloudgeek/vue3-video-player": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/@cloudgeek/vue3-video-player/-/vue3-video-player-0.3.10.tgz", + "integrity": "sha512-QMpQK20fpUp1WcyIf+PxxW+0OwAx8TR/cGJg/axcVhMtcZvLmP+BPxdMQd5NKZwJ+DqY7ZHEgkfc+9Ng7Vjxuw==", + "license": "MIT", + "dependencies": { + "@multiavatar/multiavatar": "^1.0.5", + "core-js": "^3.6.5", + "event-emitter": "^0.3.5", + "ismobilejs": "^1.1.1", + "load-script": "^1.0.0", + "vue": "^3.0.0" + } + }, "node_modules/@csstools/color-helpers": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", @@ -658,7 +674,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" }, @@ -705,7 +720,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=18" } @@ -1497,6 +1511,12 @@ } } }, + "node_modules/@multiavatar/multiavatar": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@multiavatar/multiavatar/-/multiavatar-1.0.7.tgz", + "integrity": "sha512-Yg9Uw57bmlErsWL0CSv4d6D4ZqVBE00OZmYr9MRgygoXZdboNtsEI6FbBRw1AY8l88Sm1ARcyojtlm2uwUn0Zg==", + "license": "SEE LICENSE IN LICENSE" + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -2670,7 +2690,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2874,7 +2893,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.9", "caniuse-lite": "^1.0.30001746", @@ -3165,6 +3183,19 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "license": "MIT" }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, "node_modules/data-urls": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz", @@ -3418,6 +3449,46 @@ "node": ">= 0.4" } }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, "node_modules/esbuild": { "version": "0.25.10", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", @@ -3489,7 +3560,6 @@ "integrity": "sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -3551,7 +3621,6 @@ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", - "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -3688,6 +3757,21 @@ "node": "*" } }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/espree": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", @@ -3771,6 +3855,16 @@ "node": ">=0.10.0" } }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, "node_modules/event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", @@ -3826,6 +3920,15 @@ "node": ">=12.0.0" } }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4258,6 +4361,16 @@ "node": ">= 0.4" } }, + "node_modules/hevue-img-preview": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/hevue-img-preview/-/hevue-img-preview-7.1.3.tgz", + "integrity": "sha512-nLB1eyPUqP2UysJpEJaboHMGKPY8zgsyqaPSUHjxr04jDc2PIg61KFFS/UHc0aa2xpbf5UaeCNoVOHFYdWVOTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "vue": "^3.5.17" + } + }, "node_modules/hookable": { "version": "5.5.3", "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", @@ -4537,6 +4650,12 @@ "dev": true, "license": "ISC" }, + "node_modules/ismobilejs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz", + "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==", + "license": "MIT" + }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -4733,6 +4852,12 @@ "node": ">= 0.8.0" } }, + "node_modules/load-script": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", + "integrity": "sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==", + "license": "MIT" + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -4917,6 +5042,12 @@ "dev": true, "license": "MIT" }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "license": "ISC" + }, "node_modules/node-fetch": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", @@ -5273,7 +5404,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -5313,7 +5443,6 @@ "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -5655,6 +5784,12 @@ "node": ">=0.10.0" } }, + "node_modules/spark-md5": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.2.tgz", + "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==", + "license": "(WTFPL OR MIT)" + }, "node_modules/speakingurl": { "version": "14.0.1", "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", @@ -5937,7 +6072,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -6063,6 +6197,12 @@ "typescript": ">=4.8.4" } }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "license": "ISC" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -6232,7 +6372,6 @@ "integrity": "sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", @@ -6494,7 +6633,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -6508,7 +6646,6 @@ "integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/chai": "^5.2.2", "@vitest/expect": "3.2.4", @@ -6594,7 +6731,6 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.22.tgz", "integrity": "sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==", "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.22", "@vue/compiler-sfc": "3.5.22", @@ -6624,6 +6760,7 @@ "integrity": "sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "debug": "^4.4.0", "eslint-scope": "^8.2.0", @@ -6648,6 +6785,7 @@ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, diff --git a/frontend/web/package.json b/frontend/web/package.json index 4e58dd6..aac94a6 100644 --- a/frontend/web/package.json +++ b/frontend/web/package.json @@ -15,6 +15,7 @@ "format": "prettier --write src/" }, "dependencies": { + "@cloudgeek/vue3-video-player": "^0.3.10", "@microsoft/signalr": "^10.0.0", "@vuelidate/core": "^2.0.3", "@vuelidate/validators": "^2.0.4", @@ -22,6 +23,7 @@ "feather-icons": "^4.29.2", "idb": "^8.0.3", "pinia": "^3.0.3", + "spark-md5": "^3.0.2", "vee-validate": "^4.15.1", "vue": "^3.5.22", "vue-router": "^4.5.1", @@ -36,6 +38,7 @@ "eslint": "^9.33.0", "eslint-plugin-vue": "~10.4.0", "globals": "^16.3.0", + "hevue-img-preview": "^7.1.3", "jsdom": "^27.0.0", "prettier": "3.6.2", "vite": "^7.1.7", diff --git a/frontend/web/src/components/messages/VideoMsg.vue b/frontend/web/src/components/messages/VideoMsg.vue new file mode 100644 index 0000000..b8223f5 --- /dev/null +++ b/frontend/web/src/components/messages/VideoMsg.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/frontend/web/src/components/messages/VideoPreView.vue b/frontend/web/src/components/messages/VideoPreView.vue new file mode 100644 index 0000000..f58a0e4 --- /dev/null +++ b/frontend/web/src/components/messages/VideoPreView.vue @@ -0,0 +1,30 @@ + + + diff --git a/frontend/web/src/components/messages/VoiceMsg.vue b/frontend/web/src/components/messages/VoiceMsg.vue new file mode 100644 index 0000000..5398558 --- /dev/null +++ b/frontend/web/src/components/messages/VoiceMsg.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/frontend/web/src/constants/fileTypeDefine.js b/frontend/web/src/constants/fileTypeDefine.js new file mode 100644 index 0000000..3eed4ab --- /dev/null +++ b/frontend/web/src/constants/fileTypeDefine.js @@ -0,0 +1,40 @@ +export const getMessageType = (fileType) => { + if (!fileType) return FILE_TYPE.File; // 兜底处理 + + // 处理图片 + if (fileType.startsWith('image/')) { + return FILE_TYPE.Image; + } + + // 处理音频(录音消息) + if (fileType.startsWith('audio/')) { + return FILE_TYPE.Voice; + } + + // 处理视频 + if (fileType.startsWith('video/')) { + return FILE_TYPE.Video; + } + + // 常见文档类型的特殊处理(可选) + const documentTypes = [ + 'application/pdf', + 'application/msword', + 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'text/plain' + ]; + + if (documentTypes.includes(fileType)) { + return FILE_TYPE.File; + } + + // 其他所有情况统一归类为文件 + return FILE_TYPE.File; +}; + +export const FILE_TYPE = Object.freeze({ + Image: 'Image', + Video: 'Video', + Voice: 'Voice', + File: 'File' +}); diff --git a/frontend/web/src/constants/fileTypeInfo.js b/frontend/web/src/constants/fileTypeInfo.js new file mode 100644 index 0000000..989213e --- /dev/null +++ b/frontend/web/src/constants/fileTypeInfo.js @@ -0,0 +1,29 @@ +export class MessageBaseInfo { + constructor(format, text) { + this.format = format; + this.text = text; + } +} + +export class ImageInfo extends MessageBaseInfo { + constructor(format, text, w, h, Thumb) { + super(format, text); + this.w = w; + this.h = h; + this.thumb = Thumb; + } +} + +export class VideoInfo extends ImageInfo { + constructor(format, text, w, h, Thumb, duration) { + super(format, text, w, h, Thumb); + this.duration = duration; + } +} + +export class VoiceInfo extends MessageBaseInfo { + constructor(format, text, duration) { + super(format, text); + this.duration = duration; + } +} diff --git a/frontend/web/src/constants/uploadStatus.js b/frontend/web/src/constants/uploadStatus.js new file mode 100644 index 0000000..5600fef --- /dev/null +++ b/frontend/web/src/constants/uploadStatus.js @@ -0,0 +1,7 @@ + +export const UPLOAD_STATUS = Object.freeze({ + UPLOADING: 'uploading', + UPLOADED: 'uploaded', + MERGING: 'merging', + COMPLETE: 'complete' +}) diff --git a/frontend/web/src/main.js b/frontend/web/src/main.js index bd4463c..1481415 100644 --- a/frontend/web/src/main.js +++ b/frontend/web/src/main.js @@ -7,10 +7,16 @@ import router from './router' import MyButton from './components/MyButton.vue' import IconInput from './components/IconInput.vue' +import Vue3VideoPlayer from '@cloudgeek/vue3-video-player' +import '@cloudgeek/vue3-video-player/dist/vue3-video-player.css' + const app = createApp(App) app.use(createPinia()) app.use(router) +app.use(Vue3VideoPlayer, { + lang: 'zh-CN' // 可选,语言包 +}) app.component('MyButton', MyButton) app.component('IconInput', IconInput) diff --git a/frontend/web/src/services/api.js b/frontend/web/src/services/api.js index ea2eb94..fd327b4 100644 --- a/frontend/web/src/services/api.js +++ b/frontend/web/src/services/api.js @@ -5,99 +5,100 @@ import { useAuthStore } from '@/stores/auth'; import { authService } from './auth'; const message = useMessage(); -const authStore = useAuthStore(); let waitqueue = []; let isRefreshing = false; const authURL = ['/auth/login', '/auth/register', '/auth/refresh']; const api = axios.create({ - baseURL: import.meta.env.VITE_API_BASE_URL || 'http://localhost:3000/api', // 从环境变量中读取基础 URL - timeout: 10000, - headers: { - 'Content-Type': 'application/json', - } + baseURL: import.meta.env.VITE_API_BASE_URL || 'http://localhost:3000/api', // 从环境变量中读取基础 URL + timeout: 10000, + headers: { + + } }) api.interceptors.request.use( - config => { - const token = authStore.token; - if (token) { - config.headers.Authorization = `Bearer ${token}`; - } - return config; - }, - err => { - return Promise.reject(err); + config => { + const authStore = useAuthStore(); + const token = authStore.token; + if (token) { + config.headers.Authorization = `Bearer ${token}`; } + return config; + }, + err => { + return Promise.reject(err); + } ) api.interceptors.response.use( - response => { - return response.data; - }, - async err => { - const { config, response } = err; - if (response) { - switch (response.status) { - case 401: - if (authURL.some(x => config.url.includes(x))) { - authStore.logout(); - message.error('未登录,请登录后操作。'); - router.push('/auth/login') - break; - } - if (config._retry) { - break; - } + response => { + return response.data; + }, + async err => { + const authStore = useAuthStore(); + const { config, response } = err; + if (response) { + switch (response.status) { + case 401: + if (authURL.some(x => config.url.includes(x))) { + authStore.logout(); + message.error('未登录,请登录后操作。'); + router.push('/auth/login') + break; + } + if (config._retry) { + break; + } - config._retry = true; - // 已经在刷新 → 排队 - if (isRefreshing) { - return new Promise(resolve => { - waitqueue.push(token => { - config.headers.Authorization = `Bearer ${token}` - resolve(api(config)) - }) - }) - } - - isRefreshing = true; - const refreshToken = authStore.refreshToken; - if (refreshToken != null && refreshToken != '') { - const res = await authService.refresh(refreshToken) - authStore.setLoginInfo(res.data.token, res.data.refreshToken, res.data.userInfo) - waitqueue.forEach(cb => cb(authStore.token)); - waitqueue = []; - config.headers.Authorization = `Bearer ${authStore.token}` - return api(config) - } - authStore.logout(); - message.error('未登录,请登录后操作。'); - router.push('/auth/login') - break; - case 400: - if (response.data && response.data.code == 1003) { - message.error(response.data.message); - break; - } - default: - message.error('请求错误,请检查网络。'); - break; - } - return Promise.reject(err); - } else { - message.error('请求错误,请检查网络。'); - return Promise.reject(err); - } + config._retry = true; + // 已经在刷新 → 排队 + if (isRefreshing) { + return new Promise(resolve => { + waitqueue.push(token => { + config.headers.Authorization = `Bearer ${token}` + resolve(api(config)) + }) + }) + } + isRefreshing = true; + const refreshToken = authStore.refreshToken; + if (refreshToken != null && refreshToken != '') { + const res = await authService.refresh(refreshToken) + authStore.setLoginInfo(res.data.token, res.data.refreshToken, res.data.userInfo) + waitqueue.forEach(cb => cb(authStore.token)); + waitqueue = []; + config.headers.Authorization = `Bearer ${authStore.token}` + return api(config) + } + authStore.logout(); + message.error('未登录,请登录后操作。'); + router.push('/auth/login') + break; + case 400: + if (response.data && response.data.code == 1003) { + message.error(response.data.message); + break; + } + default: + message.error('请求错误,请检查网络。'); + break; + } + return Promise.reject(err); + } else { + message.error('请求错误,请检查网络。'); + return Promise.reject(err); } + + } ) export const request = { - get: (url, config) => api.get(url, config), - post: (url, data, config) => api.post(url, data, config), - put: (url, data, config) => api.put(url, data, config), - delete: (url, config) => api.delete(url, config), - instance: api, -}; \ No newline at end of file + get: (url, config) => api.get(url, config), + post: (url, data, config) => api.post(url, data, config), + put: (url, data, config) => api.put(url, data, config), + delete: (url, config) => api.delete(url, config), + instance: api, +}; diff --git a/frontend/web/src/services/upload/uploadService.js b/frontend/web/src/services/upload/uploadService.js new file mode 100644 index 0000000..d1fcc15 --- /dev/null +++ b/frontend/web/src/services/upload/uploadService.js @@ -0,0 +1,52 @@ +import { request } from "../api"; + +export const uploadService = { + /** + * 创建文件上传任务 + * @param {*} fileName 文件名 + * @param {*} fileSize 文件大小 + * @param {*} contentType 文件类型 + * @param {*} fileHash 文件哈希 + * @returns + */ + createUploadTask: (fileName, fileSize, contentType, fileHash) => request.post('/Upload/CreateTask', { + fileName: fileName, + fileSize: fileSize, + contentType: contentType, + fileHash: fileHash + }), + /** + * 创建分段任务 + * @param {*} taskId 任务ID + * @param {*} partNum 分段序号 + * @returns + */ + createPartTask: (taskId, partNum) => request.post(`/Upload/CreatePart?taskId=${taskId}&partNum=${partNum}`), + + completeTask: (taskId, data) => request.post(`/Upload/CompleteTask?taskId=${taskId}`, data), + + uploadPart: (uploadUrl, headers, file, onProgress) => { + const formData = new FormData() + formData.append('file', file) + + return request.post( + uploadUrl, + formData, + { + baseURL: '', + headers, // 不要包含 Content-Type + onUploadProgress: e => { + if (onProgress && e.total) { + onProgress(e.loaded / e.total) + } + } + } + ) + }, + + uploadSmallFile: (file, hash) => { + const formData = new FormData() + formData.append('file', file) + return request.post(`/Upload/upload/${hash}`, formData); + } +} diff --git a/frontend/web/src/services/upload/uploader.js b/frontend/web/src/services/upload/uploader.js new file mode 100644 index 0000000..33f2406 --- /dev/null +++ b/frontend/web/src/services/upload/uploader.js @@ -0,0 +1,122 @@ +import { reactive } from "vue"; +import { uploadService } from "./uploadService"; +import { getFileHash, sliceFile } from "@/utils/uploadTools"; +import { request } from "../api"; +import { UPLOAD_STATUS } from "@/constants/uploadStatus"; + + +export const uploadFile = async (file, { + onProgress, + onPartComplete +} = {}) => { + + const fileHash = await getFileHash(file); + const { taskId, chunkSize, concurrency, skip, url } = (await uploadService.createUploadTask(file.name, file.size, file.type, fileHash)).data; + + if (skip) { + const uploadStatus = { + status: UPLOAD_STATUS.COMPLETE, + progress: 100, + taskId: taskId, + url: url + } + onProgress?.(uploadStatus) + return; + } + + const chunks = sliceFile(file, chunkSize); + + const comleteData = []; + + let chunkProgress = reactive(new Array(chunks.length).fill(0)) + + const tasks = chunks.map((chunk, index) => { + return async () => { + const partNum = index + 1; + const { skip, method, url, headers, partNumber } = (await uploadService.createPartTask(taskId, partNum)).data; + if (!skip) { + const { data } = await uploadService.uploadPart(url, headers, chunks[index], p => { + chunkProgress[index] = p; + // 第三步:计算总进度 + // 把账本上所有的百分比加起来 + const sum = chunkProgress.reduce((acc, cur) => acc + cur, 0); + const total = (sum / chunks.length) * 100; + const displayTotal = total.toFixed(2); + const uploadStatus = { + status: displayTotal == 100 ? UPLOAD_STATUS.UPLOADED : UPLOAD_STATUS.UPLOADING, + progress: displayTotal, + taskId: taskId, + url: null + } + onProgress?.(uploadStatus) + }); + onPartComplete?.(partNum) + return data; + } else { + return { skip, partNumber }; + } + } + }); + const results = await concurrentUpload(tasks, concurrency); + + const errors = results.filter(r => r.status === 'rejected'); + + if (errors.length > 0) return; + + await uploadService.completeTask(taskId, comleteData); + + const evtSource = new EventSource(`${request.instance.defaults.baseURL}/upload/events/${taskId}`); + + evtSource.onmessage = (event) => { + const data = JSON.parse(event.data); + const uploadStatus = { + status: data.progress == 100 ? UPLOAD_STATUS.COMPLETE : UPLOAD_STATUS.MERGING, + taskId: taskId, + progress: data.progress, + url: data.url + } + onProgress?.(uploadStatus) + + if (data.status === "Completed") { + evtSource.close(); + } + }; + + evtSource.onerror = (err) => { + console.error("SSE 连接异常", err); + }; +} + + +const concurrentUpload = async (tasks, limit = 3, maxRetries = 3) => { + const results = []; + const executing = []; + for (const task of tasks) { + const retryTask = async (task) => { + let attempt = 0; + while (attempt <= maxRetries) { + try { + return await task(); + } catch (e) { + attempt++; + if (attempt > maxRetries) { + throw e; + } + } + } + } + const p = Promise.resolve().then(() => retryTask(task)); + results.push(p); + + if (limit <= tasks.length) { + const e = p.finally(() => executing.splice(executing.indexOf(e), 1)); + executing.push(e); + + if (executing.length >= limit) { + await Promise.race(executing); + } + } + } + + return Promise.allSettled(results); +} diff --git a/frontend/web/src/stores/chat.js b/frontend/web/src/stores/chat.js index 8cd9039..49f9414 100644 --- a/frontend/web/src/stores/chat.js +++ b/frontend/web/src/stores/chat.js @@ -4,115 +4,118 @@ import { messageService } from "@/services/message"; import { useConversationStore } from "./conversation"; export const useChatStore = defineStore('chat', { - state: () => ({ - activeConversationId: null, - activeSessionId: null, - maxSequenceId: null, - isEnded: false, - messages: [], - pageSize: 20 - }), - actions: { - // 抽取统一的排序去重方法 - async pushAndSortMessagesAsync(newMsgs, sessionId, shouldSaveToDb = true) { - if (shouldSaveToDb) { - for (const m of newMsgs) { - await messagesDb.save({ ...m, sessionId }); - } - } - - if (sessionId == this.activeSessionId) { - const combined = [...this.messages, ...newMsgs]; - // 1. 根据 msgId 或唯一 key 去重 - const uniqueMap = new Map(); - combined.forEach(m => uniqueMap.set(m.msgId || m.sequenceId, m)); - - // 2. 转换为数组并按sequenceId升序排序 (旧的在前,新的在后) - this.messages = Array.from(uniqueMap.values()).sort((a, b) => { - return a.sequenceId - b.sequenceId; - }); - this.maxSequenceId = this.messages.reduce((max, m) => - m.sequenceId > max ? m.sequenceId : max, - null // 初始值 - ); - } - }, - /** - * 切换会话加载当前会话消息列表 - * @param {*} sessionId - */ - async swtichSession(sessionId, conversationId) { - this.activeSessionId = sessionId; - this.activeConversationId = conversationId; - this.messages = []; - this.isEnded = false; - //先从浏览器缓存加载一部分消息列表 - const localHistory = await messagesDb.getLatestMessages(sessionId, this.pageSize); - console.log(localHistory) - if (localHistory.length > 0) { - this.messages = localHistory; - this.maxSequenceId = this.messages.reduce((max, m) => - m.sequenceId > max ? m.sequenceId : max, - null // 初始值 - ); - } - }, - /** - * 从服务器加载新消息 - * @param {*} sessionId - * @returns - */ - async fetchNewMsgFromServier(conversationId, sequenceId) { - const newMsg = (await messageService.getMessages(conversationId, sequenceId, sequenceId ? 1 : 0, this.pageSize)).data; - if (newMsg.length > 0) { - return newMsg; - } else { - return []; - } - }, - /** - * 从服务器加载历史消息 - * @param {*} sessionId - * @param {*} msgId - * @returns - */ - async fetchHistoryFromServer(conversationId, sequenceId) { - const res = (await messageService.getMessages(conversationId, sequenceId, 0, this.pageSize)).data; - - if (res.length > 0) { - const sessionId = this.activeSessionId; - return res; - } else { - return []; - } - }, - /** - * 加载更多历史消息 - */ - async loadMoreMessages() { - let minSequenceId = 0; - if (!this.messages || this.messages.length === 0) return; - minSequenceId = this.messages.reduce((min, m) => - (m.sequenceId < min ? m.sequenceId : min), - this.messages[0].sequenceId // 使用第一项作为初始参考值 - ); - const dbCacheList = await messagesDb.getPageMessages(this.activeSessionId, minSequenceId, this.pageSize) - const dbMaxSequenceId = dbCacheList.reduce((max, m) => - m.sequenceId > max ? m.sequenceId : max, - null // 初始值 - ); - if (dbCacheList.length < this.pageSize) { - const newList = await this.fetchHistoryFromServer(this.activeConversationId, minSequenceId) - if (newList.length === 0) this.isEnded = true; - await this.pushAndSortMessagesAsync(newList, this.activeSessionId, true); - } else if (dbMaxSequenceId < minSequenceId - 1) { - const newList = await this.fetchHistoryFromServer(this.activeConversationId, minSequenceId) - if (newList.length === 0) this.isEnded = true; - await this.pushAndSortMessagesAsync(newList, this.activeSessionId, true); - } - else { - await this.pushAndSortMessagesAsync(dbCacheList, this.activeSessionId, false); - } + state: () => ({ + activeConversationId: null, + activeSessionId: null, + maxSequenceId: null, + isEnded: false, + messages: [], + pageSize: 20 + }), + actions: { + // 抽取统一的排序去重方法 + async pushAndSortMessagesAsync(newMsgs, sessionId, shouldSaveToDb = true) { + if (shouldSaveToDb) { + for (const m of newMsgs) { + if (m.type != 'Text' && !m.isLoading && !m.isError && !m.isImgLoading) { + m.content = JSON.parse(m.content); + } + await messagesDb.save({ ...m, sessionId }); } + } + + if (sessionId == this.activeSessionId) { + const combined = [...this.messages, ...newMsgs]; + // 1. 根据 msgId 或唯一 key 去重 + const uniqueMap = new Map(); + combined.forEach(m => uniqueMap.set(m.msgId || m.sequenceId, m)); + + // 2. 转换为数组并按sequenceId升序排序 (旧的在前,新的在后) + this.messages = Array.from(uniqueMap.values()).sort((a, b) => { + return a.sequenceId - b.sequenceId; + }); + this.maxSequenceId = this.messages.reduce((max, m) => + m.sequenceId > max ? m.sequenceId : max, + null // 初始值 + ); + } + }, + /** + * 切换会话加载当前会话消息列表 + * @param {*} sessionId + */ + async swtichSession(sessionId, conversationId) { + this.activeSessionId = sessionId; + this.activeConversationId = conversationId; + this.messages = []; + this.isEnded = false; + //先从浏览器缓存加载一部分消息列表 + const localHistory = await messagesDb.getLatestMessages(sessionId, this.pageSize); + console.log(localHistory) + if (localHistory.length > 0) { + this.messages = localHistory; + this.maxSequenceId = this.messages.reduce((max, m) => + m.sequenceId > max ? m.sequenceId : max, + null // 初始值 + ); + } + }, + /** + * 从服务器加载新消息 + * @param {*} sessionId + * @returns + */ + async fetchNewMsgFromServier(conversationId, sequenceId) { + const newMsg = (await messageService.getMessages(conversationId, sequenceId, sequenceId ? 1 : 0, this.pageSize)).data; + if (newMsg.length > 0) { + return newMsg; + } else { + return []; + } + }, + /** + * 从服务器加载历史消息 + * @param {*} sessionId + * @param {*} msgId + * @returns + */ + async fetchHistoryFromServer(conversationId, sequenceId) { + const res = (await messageService.getMessages(conversationId, sequenceId, 0, this.pageSize)).data; + + if (res.length > 0) { + const sessionId = this.activeSessionId; + return res; + } else { + return []; + } + }, + /** + * 加载更多历史消息 + */ + async loadMoreMessages() { + let minSequenceId = 0; + if (!this.messages || this.messages.length === 0) return; + minSequenceId = this.messages.reduce((min, m) => + (m.sequenceId < min ? m.sequenceId : min), + this.messages[0].sequenceId // 使用第一项作为初始参考值 + ); + const dbCacheList = await messagesDb.getPageMessages(this.activeSessionId, minSequenceId, this.pageSize) + const dbMaxSequenceId = dbCacheList.reduce((max, m) => + m.sequenceId > max ? m.sequenceId : max, + null // 初始值 + ); + if (dbCacheList.length < this.pageSize) { + const newList = await this.fetchHistoryFromServer(this.activeConversationId, minSequenceId) + if (newList.length === 0) this.isEnded = true; + await this.pushAndSortMessagesAsync(newList, this.activeSessionId, true); + } else if (dbMaxSequenceId < minSequenceId - 1) { + const newList = await this.fetchHistoryFromServer(this.activeConversationId, minSequenceId) + if (newList.length === 0) this.isEnded = true; + await this.pushAndSortMessagesAsync(newList, this.activeSessionId, true); + } + else { + await this.pushAndSortMessagesAsync(dbCacheList, this.activeSessionId, false); + } } -}) \ No newline at end of file + } +}) diff --git a/frontend/web/src/utils/imageTools.js b/frontend/web/src/utils/imageTools.js new file mode 100644 index 0000000..eaad104 --- /dev/null +++ b/frontend/web/src/utils/imageTools.js @@ -0,0 +1,119 @@ +export const loadImage = (url) => { + return new Promise((resolve, reject) => { + const img = new Image(); + img.onload = () => resolve(img); // 成功时返回 img 对象 + img.onerror = (err) => reject(err); // 失败时报错 + img.src = url; + }); +}; +/** +* 生成图片缩略图 (返回 Blob 文件) +*/ +export function generateImageThumbnailBlob(img, maxWidth = 200) { + return new Promise((resolve) => { + const canvas = document.createElement('canvas'); + const ctx = canvas.getContext('2d'); + const scale = maxWidth / img.width; + canvas.width = maxWidth; + canvas.height = img.height * scale; + + ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + + // 关键:导出为 Blob + canvas.toBlob((blob) => { + resolve(blob); + }, 'image/jpeg', 0.8); + }); +} + + +/** + * 获取视频缩略图 (返回 Blob 文件) + * 报错或无法渲染画面时自动生成全黑占位图 + */ +export function getVideoThumbnailBlob(file, seekTime = 1) { + return new Promise((resolve) => { + const video = document.createElement('video'); + const url = URL.createObjectURL(file); + video.muted = true; + video.src = url; + + // 统一定义一个生成黑色背景的方法 + const resolveBlackThumbnail = () => { + const canvas = document.createElement('canvas'); + // 如果视频元数据拿不到宽高,给一个默认的 16:9 尺寸 + canvas.width = video.videoWidth || 320; + canvas.height = video.videoHeight || 180; + const ctx = canvas.getContext('2d'); + ctx.fillStyle = '#000000'; // 全黑 + ctx.fillRect(0, 0, canvas.width, canvas.height); + + canvas.toBlob((blob) => { + URL.revokeObjectURL(url); + resolve(blob); + }, 'image/jpeg', 0.8); + }; + + video.onloadedmetadata = () => { + // 检查:如果元数据加载了但没有画面尺寸(只有音频的视频常现) + if (video.videoWidth === 0) { + resolveBlackThumbnail(); + } else { + video.currentTime = seekTime; + } + }; + + video.onseeked = () => { + try { + const canvas = document.createElement('canvas'); + canvas.width = video.videoWidth; + canvas.height = video.videoHeight; + const ctx = canvas.getContext('2d'); + + // 尝试绘制,如果解码失败这里可能抛出异常 + ctx.drawImage(video, 0, 0, canvas.width, canvas.height); + + canvas.toBlob((blob) => { + URL.revokeObjectURL(url); + // 如果导出的 blob 大小极小(可能是空的),可以在这里进一步检查 + resolve(blob); + }, 'image/jpeg', 0.8); + } catch (e) { + resolveBlackThumbnail(); + } + }; + + // 报错处理:不再 reject,而是给一张黑图 + video.onerror = () => { + console.warn("视频封面截取失败,已生成全黑占位图"); + resolveBlackThumbnail(); + }; + }); +} + +/** + * 获取视频时长 + * @param {File} file - 视频文件对象 + * @returns {Promise} - 返回秒数 (float) + */ +export function getVideoDuration(file) { + return new Promise((resolve, reject) => { + const video = document.createElement('video'); + const url = URL.createObjectURL(file); + + video.preload = 'metadata'; // 关键:只加载元数据 + video.src = url; + + // 当元数据加载完成后触发 + video.onloadedmetadata = () => { + const duration = video.duration; + URL.revokeObjectURL(url); // 释放内存 + resolve(duration); + }; + + video.onerror = () => { + URL.revokeObjectURL(url); + reject("无法解析视频元数据"); + }; + }); +} diff --git a/frontend/web/src/utils/uploadTools.js b/frontend/web/src/utils/uploadTools.js new file mode 100644 index 0000000..aaa88d9 --- /dev/null +++ b/frontend/web/src/utils/uploadTools.js @@ -0,0 +1,55 @@ +import SparkMD5 from "spark-md5"; + +export const getFileHash = (file) => { + return new Promise((resolve, reject) => { + const blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice; + const chunkSize = 2 * 1024 * 1024; // 每次读取 2MB + const chunks = Math.ceil(file.size / chunkSize); + let currentChunk = 0; + const spark = new SparkMD5.ArrayBuffer(); + const fileReader = new FileReader(); + + fileReader.onload = (e) => { + spark.append(e.target.result); // 将二进制数据添加到计算器 + currentChunk++; + + if (currentChunk < chunks) { + loadNext(); + } else { + resolve(spark.end()); // 完成计算,返回最终结果 + } + }; + + fileReader.onerror = () => { + reject('文件读取出错'); + }; + + function loadNext() { + const start = currentChunk * chunkSize; + const end = start + chunkSize >= file.size ? file.size : start + chunkSize; + fileReader.readAsArrayBuffer(blobSlice.call(file, start, end)); + } + + loadNext(); + }); +} + +/** + * 文件分片 + * @param {*} file 文件 + * @param {*} chunkSize 分片大小 + * @returns + */ +export const sliceFile = (file, chunkSize) => { + const chuncks = []; + let index = 0; + + while (index < file.size) { + chuncks.push(file.slice(index, index + chunkSize)); + index += chunkSize; + } + + return chuncks; +} + + diff --git a/frontend/web/src/views/Test.vue b/frontend/web/src/views/Test.vue index f5eb261..f60e362 100644 --- a/frontend/web/src/views/Test.vue +++ b/frontend/web/src/views/Test.vue @@ -7,38 +7,18 @@ - - -
- - -
-
- 未找到该用户,请检查输入是否正确 -
-

Syg~;{-YYI8{;LukFG5 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 z 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 z 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 AfdBvi diff --git a/backend/IMTest/bin/Debug/net8.0/appsettings.json b/backend/IMTest/bin/Debug/net8.0/appsettings.json index fc895fb..f1d60df 100644 --- a/backend/IMTest/bin/Debug/net8.0/appsettings.json +++ b/backend/IMTest/bin/Debug/net8.0/appsettings.json @@ -22,5 +22,9 @@ "Port": 5672, "Username": "test", "Password": "123456" + }, + "FileUploadOptions": { + "DefaultStorage": "Local", + "ChunkSize": 10, } } diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfo.cs b/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfo.cs index 2a2b83e..758c389 100644 --- a/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfo.cs +++ b/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("IMTest")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+dc6ecf224df4e8714171e8b5d23afaa90b3a1f81")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+d42956051108811cdd7be6a07af6b11e1d7f0d15")] [assembly: System.Reflection.AssemblyProductAttribute("IMTest")] [assembly: System.Reflection.AssemblyTitleAttribute("IMTest")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfoInputs.cache b/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfoInputs.cache index 3735720..4919883 100644 --- a/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfoInputs.cache +++ b/backend/IMTest/obj/Debug/net8.0/IMTest.AssemblyInfoInputs.cache @@ -1 +1 @@ -1b9e709aa84e0b4f6260cd10cf25bfc3a30c60e75a3966fc7d4cdf489eae898b +fa24b386648cc4dba48ae5e3f91e5303b0dfd0971bba62bc27ca1580a5064337 diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.assets.cache b/backend/IMTest/obj/Debug/net8.0/IMTest.assets.cache index b61f83e3daabab48c224bf0157f7724d98549918..f6caa4dd87b44e8f4829291ed38db84bbe71f695 100644 GIT binary patch delta 14604 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 Haq9km&%ZMg diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.AssemblyReference.cache b/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.AssemblyReference.cache index 278b1a786b288cfeaea67d744fcd32014102ffaf..30142a39c0ec99a58ccab7ea156864e0d64b5bbb 100644 GIT binary patch delta 420 zcmbPmnrX*;CT2E9>xs;PY(M+0O(qvij5;$pwL)OCqhw$aWBg>pc7?R!%!-`Er2L{{ zz0BOi^wi>v#G-;2V?9GXL!+3S%%qsS)Dkm2gP7pV3Ll6vPmr=;kTSiLoE%0*1|aBH z{4z!C9tR^MqX;&IjLee@vsD?>CkxKjw8CPaKEytKpnduf`}DCHGdWRNv!2oY*}wF( z!nij%|E|f))t=p-S<+=^8k7F=#{HYYYgWs~F={XNRyJr%`+H38;RQ?Hc(WTK%Q$7P zY<)ZLR+QTMb2n9vHE-F!W%D&}*0!Z}|K~Gp{NZP_;qFz5y<*cpo$x)qvu?-km?VqLMF;W+O>hEUDvR#r7|?QsIH> z2!8d8+(_S@wK*%iKO!U*S(VQKHmqi%JQ$M|o{cOfS^UF*H+;n_^B2v18h#56-+(p1 z%zGtNt<>$uX|QZuNJ*SH$(~kZASY!}WlyTIv&vqO~;8E|hDnusP(0uRY;>wHGprUikE)CunDP!?)S-(Z+WZ z_#Kkt@Xf#@FBj$ama^f8-*ow5r0s#>R>Lj*UKK0IyW?i|SG5AwY=_* zC6@tmO5rkRbB@xHbcC6bmatQYPw-2?d4}J5-Me`^cqdj6Al5%>D_L1x!*`f2TT;Hd ze0yNzkDd3KHV`Roy4TMM(m8f~DWmYJ>NwvE9dfqNA|KX~$7E6DYbc@uXaTbwYVLM; z-R-fB^V;3t{`&LY3x8YV+*KyN$O&m@Wo_}uZSDk}@cYB<@a|}vtyqI!k4&u|hz^@B z!P&R=+Xhj#0*SRF!l`OP;UrZ6Bw?|XL{5yWU$kGNJ zfUWob&7a+(OKZYD8GB~8nGorWEb$VE$P2v4h9yY`WD9kshQ}g@-n0C#4%>Fuf$Q(S z7&w0EQL9(`P$$}_ndM(oJ3`X5QiC&Lb#2UBiAZ_-WdR}FZrd%@It`fE#*Y#k#FsK9 zk%`A5f>vSL*wUWAhZ;&a3(m?Dim*&lpjyJ{!N7FyN!tXVh3|(m&3@>8(0*&BRnQ(h z1V*i!WPR=+E@|jF+p13mAVP( zpeBtzQWl|;-s&{>d(c$YQ>cDpxpA+ygxaZIqItc@Ljx7xt;o2Ok{4;|8K?x!hBE@% zutjtrsFUVxxX-{}a-HzswDTt4r$)#uogH&%Mr zHxflF>9iqz)YGykB%O`Es~Y9FN>_$-cB8Sgwb-JV>X@O1Gbv|r7F1Pkh#Z>mM4%zK z);I+Fw%H5xYwDBtFC-33S!wPdr?e}+6G7{<&n%$fmK-oGA8U%3Al3|$h}jA$ z3BR4|vGxClBct(;XWzb5@c+iSUd}K^Q?h(CCu`k{``HjX6dD>lhz=TTbUcBF%Wx)R dDzK?vjEjlG?&;lduF<{DF?*HuFSGyo{s-LS0aE|~ diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.CoreCompileInputs.cache b/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.CoreCompileInputs.cache index c05b415..d84992b 100644 --- a/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.CoreCompileInputs.cache +++ b/backend/IMTest/obj/Debug/net8.0/IMTest.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -6e6df2b3d9fe8d3830882bef146134864f65ca58bc5ea4bac684eaec55cfd628 +b2b545acb4173028f4d41b8d8c0aea03ecbcecb4eeabe997ca466c2e265beff6 diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.dll b/backend/IMTest/obj/Debug/net8.0/IMTest.dll index a0cda451d694d4817c2e18d6b5bc96d87896a846..20b497b9cf3d22b22413756cce0e2138aa3fc9d0 100644 GIT binary patch delta 245 zcmZp8!PM}AX+j6f5!KL!jXf$81-?hPe4AMy>~I6;^xfTC#IPt85*VVFD-1f6*J8 zCofqQAaHj=>8-<2hTi)&s{Ng@`>_0Emes)uP(f{&AW*fj-AWz}vzFwuZtH`y#TInBt( zBqhxx)xzA+#L(O@)gs9>#mG1@Eiuv3AjvqMnGu7kOE|x07Wbq%oz-UEJH92;wLef0%eUDj2RMvY7&9alEDBd S3gR0AMJyN$HwUj@%K`ua6HxvD diff --git a/backend/IMTest/obj/Debug/net8.0/IMTest.pdb b/backend/IMTest/obj/Debug/net8.0/IMTest.pdb index f9575cb588d2903cee52a899df39729d98feb674..66950217faf49eebeca3a0ad780078fd24d4011f 100644 GIT binary patch delta 13310 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 diff --git a/backend/IMTest/obj/Debug/net8.0/ref/IMTest.dll b/backend/IMTest/obj/Debug/net8.0/ref/IMTest.dll index 9f9bfd6f5c96c086d905c0d5a55ab32804d543c7..56782668bb28453ae252996c09b6d61dc8f618d8 100644 GIT binary patch delta 194 zcmZqZVQlDOoY2AIUjOC6#-0*p0eO`J&#U*$@t(Ym-CD+eqT^;kmiLUC|Fb^T#+3SE z*uto8Vq|G*W?*V)XkcMsXqcRmVxE+0mS|v}m}Zt_Xqal4VxDG@VraT~zHvIQuL*+@ zgC&D0gBgPXkTe8B0|pBq1hJACQh?B$A&DUsD4z(FF$a=qKz0&XJ{3rUqfHQ^uMD@8dTMvb<;9{GauyHm1}U z!xl#MWV6)dG$SLElr)o63v)vgLvzDaizL$&Bjd!h#6(MjB;!QGGz-Jc^NrJaeUll? z7*ZLM8PXVxfY5{?1;{c1idZn1GZ+F{hF}`RPhv0y${H~kGb94lBm$u&g8@(!#5V+r NSTGoF4t8A20szxTJgfi! diff --git a/backend/IMTest/obj/Debug/net8.0/refint/IMTest.dll b/backend/IMTest/obj/Debug/net8.0/refint/IMTest.dll index 9f9bfd6f5c96c086d905c0d5a55ab32804d543c7..56782668bb28453ae252996c09b6d61dc8f618d8 100644 GIT binary patch delta 194 zcmZqZVQlDOoY2AIUjOC6#-0*p0eO`J&#U*$@t(Ym-CD+eqT^;kmiLUC|Fb^T#+3SE z*uto8Vq|G*W?*V)XkcMsXqcRmVxE+0mS|v}m}Zt_Xqal4VxDG@VraT~zHvIQuL*+@ zgC&D0gBgPXkTe8B0|pBq1hJACQh?B$A&DUsD4z(FF$a=qKz0&XJ{3rUqfHQ^uMD@8dTMvb<;9{GauyHm1}U z!xl#MWV6)dG$SLElr)o63v)vgLvzDaizL$&Bjd!h#6(MjB;!QGGz-Jc^NrJaeUll? z7*ZLM8PXVxfY5{?1;{c1idZn1GZ+F{hF}`RPhv0y${H~kGb94lBm$u&g8@(!#5V+r NSTGoF4t8A20szxTJgfi! diff --git a/backend/IMTest/obj/IMTest.csproj.nuget.dgspec.json b/backend/IMTest/obj/IMTest.csproj.nuget.dgspec.json index 7422270..038561f 100644 --- a/backend/IMTest/obj/IMTest.csproj.nuget.dgspec.json +++ b/backend/IMTest/obj/IMTest.csproj.nuget.dgspec.json @@ -96,7 +96,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.311/PortableRuntimeIdentifierGraph.json" } } }, @@ -199,6 +199,10 @@ "target": "Package", "version": "[2.3.2, )" }, + "SixLabors.ImageSharp": { + "target": "Package", + "version": "[3.1.12, )" + }, "StackExchange.Redis": { "target": "Package", "version": "[2.9.32, )" @@ -231,7 +235,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.311/PortableRuntimeIdentifierGraph.json" } } } diff --git a/backend/IMTest/obj/IMTest.csproj.nuget.g.props b/backend/IMTest/obj/IMTest.csproj.nuget.g.props index a72789c..831aa67 100644 --- a/backend/IMTest/obj/IMTest.csproj.nuget.g.props +++ b/backend/IMTest/obj/IMTest.csproj.nuget.g.props @@ -7,7 +7,7 @@ $(UserProfile)\.nuget\packages\ C:\Users\nanxun\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages PackageReference - 6.14.1 + 6.14.2 diff --git a/backend/IMTest/obj/project.assets.json b/backend/IMTest/obj/project.assets.json index 4e1d539..de30454 100644 --- a/backend/IMTest/obj/project.assets.json +++ b/backend/IMTest/obj/project.assets.json @@ -1679,6 +1679,22 @@ } } }, + "SixLabors.ImageSharp/3.1.12": { + "type": "package", + "compile": { + "lib/net6.0/SixLabors.ImageSharp.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net6.0/SixLabors.ImageSharp.dll": { + "related": ".xml" + } + }, + "build": { + "build/_._": {} + } + }, "StackExchange.Redis/2.9.32": { "type": "package", "dependencies": { @@ -3027,6 +3043,7 @@ "Newtonsoft.Json": "13.0.4", "Pomelo.EntityFrameworkCore.MySql": "8.0.3", "RedLock.net": "2.3.2", + "SixLabors.ImageSharp": "3.1.12", "StackExchange.Redis": "2.9.32", "Swashbuckle.AspNetCore": "6.6.2", "System.IdentityModel.Tokens.Jwt": "8.14.0" @@ -5363,6 +5380,22 @@ "runtimes/ubuntu.16.10-x64/native/System.Security.Cryptography.Native.OpenSsl.so" ] }, + "SixLabors.ImageSharp/3.1.12": { + "sha512": "iAg6zifihXEFS/t7fiHhZBGAdCp3FavsF4i2ZIDp0JfeYeDVzvmlbY1CNhhIKimaIzrzSi5M/NBFcWvZT2rB/A==", + "type": "package", + "path": "sixlabors.imagesharp/3.1.12", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE", + "build/SixLabors.ImageSharp.props", + "lib/net6.0/SixLabors.ImageSharp.dll", + "lib/net6.0/SixLabors.ImageSharp.xml", + "sixlabors.imagesharp.128.png", + "sixlabors.imagesharp.3.1.12.nupkg.sha512", + "sixlabors.imagesharp.nuspec" + ] + }, "StackExchange.Redis/2.9.32": { "sha512": "j5Rjbf7gWz5izrn0UWQy9RlQY4cQDPkwJfVqATnVsOa/+zzJrps12LOgacMsDl/Vit2f01cDiDkG/Rst8v2iGw==", "type": "package", @@ -8962,7 +8995,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.304/PortableRuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.311/PortableRuntimeIdentifierGraph.json" } } } diff --git a/backend/IMTest/obj/project.nuget.cache b/backend/IMTest/obj/project.nuget.cache index e5a6826..0841100 100644 --- a/backend/IMTest/obj/project.nuget.cache +++ b/backend/IMTest/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "ueA0djhC8vQ=", + "dgSpecHash": "E2DnflEnEuk=", "success": true, "projectFilePath": "C:\\Users\\nanxun\\Documents\\IM\\backend\\IMTest\\IMTest.csproj", "expectedPackageFiles": [ @@ -97,6 +97,7 @@ "C:\\Users\\nanxun\\.nuget\\packages\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", "C:\\Users\\nanxun\\.nuget\\packages\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", "C:\\Users\\nanxun\\.nuget\\packages\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.0\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512", + "C:\\Users\\nanxun\\.nuget\\packages\\sixlabors.imagesharp\\3.1.12\\sixlabors.imagesharp.3.1.12.nupkg.sha512", "C:\\Users\\nanxun\\.nuget\\packages\\stackexchange.redis\\2.9.32\\stackexchange.redis.2.9.32.nupkg.sha512", "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore\\6.6.2\\swashbuckle.aspnetcore.6.6.2.nupkg.sha512", "C:\\Users\\nanxun\\.nuget\\packages\\swashbuckle.aspnetcore.swagger\\6.6.2\\swashbuckle.aspnetcore.swagger.6.6.2.nupkg.sha512", diff --git a/backend/IM_API/.gitignore b/backend/IM_API/.gitignore index 3e16852..8914895 100644 --- a/backend/IM_API/.gitignore +++ b/backend/IM_API/.gitignore @@ -1,3 +1,4 @@ bin/ obj/ -.vs/ \ No newline at end of file +.vs/ +uploads/ \ No newline at end of file diff --git a/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/SignalREventHandler.cs b/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/SignalREventHandler.cs index 8166f2f..cfbb2af 100644 --- a/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/SignalREventHandler.cs +++ b/backend/IM_API/Application/EventHandlers/MessageCreatedHandler/SignalREventHandler.cs @@ -17,11 +17,13 @@ namespace IM_API.Application.EventHandlers.MessageCreatedHandler private readonly IHubContext _hub; private readonly IMapper _mapper; private readonly IUserService _userService; - public SignalREventHandler(IHubContext hub, IMapper mapper,IUserService userService) + public SignalREventHandler(IHubContext hub, IMapper mapper, + IUserService userService) { _hub = hub; _mapper = mapper; _userService = userService; + } public async Task Consume(ConsumeContext context) @@ -35,6 +37,10 @@ namespace IM_API.Application.EventHandlers.MessageCreatedHandler var senderinfo = await _userService.GetUserInfoAsync(@event.MsgSenderId); messageBaseVo.SenderName = senderinfo.NickName; messageBaseVo.SenderAvatar = senderinfo.Avatar ?? ""; + if (messageBaseVo.Type != MessageMsgType.Text) + { + messageBaseVo.Content = UrlTools.ProcessMessageUrl(messageBaseVo.Content, @event.BaseUrl); + } await _hub.Clients.Group(@event.StreamKey).SendAsync("ReceiveMessage", new HubResponse("Event", messageBaseVo)); } catch (Exception ex) diff --git a/backend/IM_API/Application/EventHandlers/UploadEventHandler/MergeEventHandler.cs b/backend/IM_API/Application/EventHandlers/UploadEventHandler/MergeEventHandler.cs new file mode 100644 index 0000000..72539bd --- /dev/null +++ b/backend/IM_API/Application/EventHandlers/UploadEventHandler/MergeEventHandler.cs @@ -0,0 +1,21 @@ +using IM_API.Domain.Events; +using IM_API.Interface.Services; +using MassTransit; + +namespace IM_API.Application.EventHandlers.UploadEventHandler +{ + public class MergeEventHandler : IConsumer + { + private readonly IStorageService _storage; + public MergeEventHandler(IStorageService storage) + { + _storage = storage; + } + + public async Task Consume(ConsumeContext context) + { + var @event = context.Message; + await _storage.MergeAsync(@event.TaskId, @event.ObjectName, @event.ChunckCount, @event.Parts); + } + } +} diff --git a/backend/IM_API/Configs/MQConfig.cs b/backend/IM_API/Configs/MQConfig.cs index bcac5d6..745e2b0 100644 --- a/backend/IM_API/Configs/MQConfig.cs +++ b/backend/IM_API/Configs/MQConfig.cs @@ -7,6 +7,7 @@ using IM_API.Application.EventHandlers.GroupRequestHandler; using IM_API.Application.EventHandlers.GroupRequestUpdateHandler; using IM_API.Application.EventHandlers.MessageCreatedHandler; using IM_API.Application.EventHandlers.RequestFriendHandler; +using IM_API.Application.EventHandlers.UploadEventHandler; using IM_API.Configs.Options; using IM_API.Domain.Events; using MassTransit; @@ -37,6 +38,7 @@ namespace IM_API.Configs x.AddConsumer(); x.AddConsumer(); x.AddConsumer(); + x.AddConsumer(); x.UsingRabbitMq((ctx,cfg) => { cfg.Host(options.Host, "/", h => diff --git a/backend/IM_API/Configs/MapperConfig.cs b/backend/IM_API/Configs/MapperConfig.cs index 9ba80cc..4ba8095 100644 --- a/backend/IM_API/Configs/MapperConfig.cs +++ b/backend/IM_API/Configs/MapperConfig.cs @@ -4,9 +4,12 @@ using IM_API.Dtos; using IM_API.Dtos.Auth; using IM_API.Dtos.Friend; using IM_API.Dtos.Group; +using IM_API.Dtos.Message; using IM_API.Dtos.User; using IM_API.Models; +using IM_API.Models.Upload; using IM_API.Tools; +using IM_API.VOs; using IM_API.VOs.Conversation; using IM_API.VOs.Message; @@ -171,6 +174,35 @@ namespace IM_API.Configs .ForMember(dest => dest.AuhorityEnum, opt => opt.MapFrom(src => GroupAuhority.REQUIRE_CONSENT)) .ForMember(dest => dest.StatusEnum, opt => opt.MapFrom(src => GroupStatus.Normal)) ; + + //上传任务模型转换 + CreateMap() + .ForMember(dest => dest.FileName, opt => opt.MapFrom(src => src.FileName)) + .ForMember(dest => dest.Status, opt => opt.MapFrom(src => UploadStatus.Created)) + .ForMember(dest => dest.Id, opt => opt.MapFrom(src => Guid.NewGuid())) + .ForMember(dest => dest.FileSize, opt => opt.MapFrom(src => src.FileSize)) + .ForMember(dest => dest.FileHash, opt => opt.MapFrom(src => src.FileHash)) + .ForMember(dest => dest.ContentType, opt => opt.MapFrom(src => src.ContentType)) + .ForMember(dest => dest.CreatedAt, opt => opt.MapFrom(src => DateTime.UtcNow)) + ; + + CreateMap() + .ForMember(dest => dest.TaskId, opt => opt.MapFrom(src => src.Id)) + .ForMember(dest => dest.ChunkSize, opt => opt.MapFrom(src => src.ChunkSize)) + .ForMember(dest => dest.TotalChunks, opt => opt.MapFrom(src => src.TotalChunks)) + .ForMember(dest => dest.Concurrency, opt => opt.MapFrom(src => 5)) + .ForMember(dest => dest.Skip, opt => opt.MapFrom(src => false)) + .ForMember(dest => dest.Url, opt => opt.MapFrom(src => src.ObjectName)) + ; + + CreateMap() + .ForMember(dest => dest.Url, opt => opt.MapFrom(src => src.ObjectName)) + .ForMember(dest => dest.FileId, opt => opt.MapFrom(src => src.Id)) + .ForMember(dest => dest.Provider, opt => opt.MapFrom(src => src.StorageProvider)) + .ForMember(dest => dest.Format, opt => opt.MapFrom(src => src.ContentType)) + .ForMember(dest => dest.Size, opt => opt.MapFrom(src => src.FileSize)); + + CreateMap(); } } } diff --git a/backend/IM_API/Configs/Options/FileUploadOptions.cs b/backend/IM_API/Configs/Options/FileUploadOptions.cs new file mode 100644 index 0000000..65554b1 --- /dev/null +++ b/backend/IM_API/Configs/Options/FileUploadOptions.cs @@ -0,0 +1,8 @@ +namespace IM_API.Configs.Options +{ + public class FileUploadOptions + { + public string DefaultStorage { get; set; } + public int ChunkSize { get; set; } + } +} diff --git a/backend/IM_API/Configs/ServiceCollectionExtensions.cs b/backend/IM_API/Configs/ServiceCollectionExtensions.cs index 4823103..57c6753 100644 --- a/backend/IM_API/Configs/ServiceCollectionExtensions.cs +++ b/backend/IM_API/Configs/ServiceCollectionExtensions.cs @@ -29,7 +29,8 @@ namespace IM_API.Configs services.AddScoped(); services.AddScoped(); services.AddScoped(); - services.AddScoped(); + services.AddScoped(); + services.AddScoped(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(sp => diff --git a/backend/IM_API/Controllers/MessageController.cs b/backend/IM_API/Controllers/MessageController.cs index be09207..05501a8 100644 --- a/backend/IM_API/Controllers/MessageController.cs +++ b/backend/IM_API/Controllers/MessageController.cs @@ -3,6 +3,8 @@ using IM_API.Domain.Events; using IM_API.Dtos; using IM_API.Dtos.Message; using IM_API.Interface.Services; +using IM_API.Models; +using IM_API.Tools; using IM_API.VOs.Message; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; @@ -19,12 +21,12 @@ namespace IM_API.Controllers { private readonly IMessageSevice _messageService; private readonly ILogger _logger; - private readonly IEventBus _eventBus; - public MessageController(IMessageSevice messageService, ILogger logger, IEventBus eventBus) + public MessageController(IMessageSevice messageService, + ILogger logger) { _messageService = messageService; _logger = logger; - _eventBus = eventBus; + } [HttpPost] [ProducesResponseType(typeof(BaseResponse), StatusCodes.Status200OK)] @@ -32,15 +34,23 @@ namespace IM_API.Controllers { var userIdstr = User.FindFirstValue(ClaimTypes.NameIdentifier); MessageBaseVo messageBaseVo = new MessageBaseVo(); + var handledMessage = await _messageService.HandleFileMessageContentAsync(dto); if(dto.ChatType == Models.ChatType.PRIVATE) { - messageBaseVo = await _messageService.SendPrivateMessageAsync(int.Parse(userIdstr), dto.ReceiverId, dto); + messageBaseVo = await _messageService.SendPrivateMessageAsync(int.Parse(userIdstr), dto.ReceiverId, handledMessage); } else { - messageBaseVo = await _messageService.SendGroupMessageAsync(int.Parse(userIdstr), dto.ReceiverId, dto); + messageBaseVo = await _messageService.SendGroupMessageAsync(int.Parse(userIdstr), dto.ReceiverId, handledMessage); } - return Ok(new BaseResponse(messageBaseVo)); + + if (messageBaseVo.Type != MessageMsgType.Text) + { + var request = HttpContext?.Request; + var baseUrl = $"{request.Scheme}://{request.Host}"; + messageBaseVo.Content = UrlTools.ProcessMessageUrl(messageBaseVo.Content, baseUrl); + } + return Ok(new BaseResponse(messageBaseVo)); } [HttpGet] [ProducesResponseType(typeof(BaseResponse>), StatusCodes.Status200OK)] diff --git a/backend/IM_API/Controllers/UploadController.cs b/backend/IM_API/Controllers/UploadController.cs new file mode 100644 index 0000000..887866c --- /dev/null +++ b/backend/IM_API/Controllers/UploadController.cs @@ -0,0 +1,124 @@ +using IM_API.Dtos; +using IM_API.Interface.Services; +using IM_API.Models.Upload; +using IM_API.Tools; +using IM_API.VOs; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore.Storage; +using StackExchange.Redis; +using System.Text; +using System.Text.Json; +using IDatabase = StackExchange.Redis.IDatabase; + +namespace IM_API.Controllers +{ + [Authorize] + [Route("api/[controller]")] + [ApiController] + public class UploadController : ControllerBase + { + private readonly IWebHostEnvironment _env; + private readonly IStorageService _storage; + private readonly IDatabase _redis; + public UploadController(IWebHostEnvironment env, IStorageService storage, IConnectionMultiplexer connectionMultiplexer) + { + _env = env; + _storage = storage; + _redis = connectionMultiplexer.GetDatabase(); + } + [HttpPost("local/{taskId}/parts/{partNumber}")] + [ProducesResponseType(typeof(BaseResponse), StatusCodes.Status200OK)] + public async Task LocalUpload(Guid taskId, int partNumber, IFormFile file) + { + var baseDir = Path.Combine(_env.ContentRootPath, "uploads"); // 项目根目录下 uploads + Directory.CreateDirectory(baseDir); + + var path = Path.Combine(baseDir, "temp", taskId.ToString(), $"{partNumber}.part.tmp"); + Directory.CreateDirectory(Path.GetDirectoryName(path)!); + + using var stream = System.IO.File.Create(path); + await file.CopyToAsync(stream); + + await _redis.SetAddAsync(RedisKeys.GetUploadPartKey(taskId), partNumber); + + return Ok(new BaseResponse()); + } + + [HttpPost("CreateTask")] + [ProducesResponseType(typeof(BaseResponse), StatusCodes.Status200OK)] + public async Task CreateUpload(CreateUploadTaskDto dto) + { + var vo = await _storage.InitTaskAsync(dto); + return Ok(new BaseResponse(vo)); + } + + [HttpPost("CreatePart")] + public async Task CreatePart(Guid taskId, int partNum) + { + var vo = await _storage.CreatePartInstructionAsync(taskId, partNum); + return Ok(new BaseResponse(vo)); + } + + [HttpPost("CompleteTask")] + public async Task CompleteTask([FromQuery]Guid taskId, [FromBody]List dtos) + { + var taskIdRes = await _storage.CompleteAsync(taskId, dtos); + return Ok(new BaseResponse(data: taskIdRes.ToString())); + } + + [HttpGet("events/{taskId}")] + [AllowAnonymous] + public async Task Events(Guid taskId) + { + Response.Headers.Add("Content-Type", "text/event-stream"); + Response.Headers.Add("Cache-Control", "no-cache"); + Response.Headers.Add("Connection", "keep-alive"); + var lastProgress = -1; + + while (!HttpContext.RequestAborted.IsCancellationRequested) + { + var hash = await _redis.HashGetAllAsync(RedisKeys.MergeStatus(taskId)); + if (hash.Length == 0) + { + await Task.Delay(1000); + continue; + } + var status = hash.FirstOrDefault(x => x.Name == "status").Value; + var progress = hash.FirstOrDefault(x => x.Name == "progress").Value; + var url = hash.FirstOrDefault(x => x.Name == "url").Value; + + // 避免重复发送 + if (progress != lastProgress) + { + var data = new + { + status = status.ToString(), + progress = progress.ToString(), + url = (string)url + }; + + await Response.WriteAsync($"data: {JsonSerializer.Serialize(data)}\n\n"); + await Response.Body.FlushAsync(); + + // 完成后关闭 SSE + if (status == "Completed") + break; + + await Task.Delay(1000); // 每秒检查一次 + } + } + } + + [HttpPost("upload/{hash}")] + public async Task UploadSmallFile(IFormFile file,string hash) + { + using var stream = file.OpenReadStream(); + var res = await _storage.UploadSmallFileAsync(stream, file.FileName, file.ContentType, file.Length, hash); + return Ok(new BaseResponse(res)); + } + + + } +} diff --git a/backend/IM_API/Domain/Events/MessageCreatedEvent.cs b/backend/IM_API/Domain/Events/MessageCreatedEvent.cs index b35e1c0..4484a89 100644 --- a/backend/IM_API/Domain/Events/MessageCreatedEvent.cs +++ b/backend/IM_API/Domain/Events/MessageCreatedEvent.cs @@ -16,6 +16,7 @@ namespace IM_API.Domain.Events public DateTimeOffset MessageCreated { get; set; } public string StreamKey { get; set; } public Guid ClientMsgId { get; set; } + public string BaseUrl { get; set; } diff --git a/backend/IM_API/Domain/Events/UploadMergeEvent.cs b/backend/IM_API/Domain/Events/UploadMergeEvent.cs new file mode 100644 index 0000000..109ecd5 --- /dev/null +++ b/backend/IM_API/Domain/Events/UploadMergeEvent.cs @@ -0,0 +1,13 @@ +using IM_API.Dtos; + +namespace IM_API.Domain.Events +{ + public record UploadMergeEvent : DomainEvent + { + public override string EventType => "IM.FILES_UPLOAD_MERGE"; + public Guid TaskId { get; init; } + public List Parts { get; init; } + public int ChunckCount { get; set; } + public string ObjectName { get; set; } + } +} diff --git a/backend/IM_API/Dtos/CreateUploadTaskDto.cs b/backend/IM_API/Dtos/CreateUploadTaskDto.cs new file mode 100644 index 0000000..ba9790b --- /dev/null +++ b/backend/IM_API/Dtos/CreateUploadTaskDto.cs @@ -0,0 +1,10 @@ +namespace IM_API.Dtos +{ + public class CreateUploadTaskDto + { + public string FileName { get; set; } = default!; + public long FileSize { get; set; } + public string ContentType { get; set; } = default!; + public string FileHash { get; set; } = default!; + } +} diff --git a/backend/IM_API/Dtos/Message/MessagTypeDto.cs b/backend/IM_API/Dtos/Message/MessagTypeDto.cs new file mode 100644 index 0000000..f3c6632 --- /dev/null +++ b/backend/IM_API/Dtos/Message/MessagTypeDto.cs @@ -0,0 +1,26 @@ +namespace IM_API.Dtos.Message +{ + public class RequestMessageType + { + public Guid FileId { get; set; } + public long Size { get; set; } + } + public class BaseMessageType: RequestMessageType + { + public string Url { get; set; } + public string Provider { get; set; } + public string Format { get; set; } + public string Text { get; set; } + } + public class ImageDto() : BaseMessageType + { + public string Thumb { get; set; } + public int W { get; set; } + public int H { get; set; } + } + + public class VideoDto() : ImageDto + { + public int Duration { get; set; } + } +} diff --git a/backend/IM_API/Dtos/MessageDto.cs b/backend/IM_API/Dtos/MessageDto.cs index 3606c48..163a464 100644 --- a/backend/IM_API/Dtos/MessageDto.cs +++ b/backend/IM_API/Dtos/MessageDto.cs @@ -10,7 +10,7 @@ namespace IM_API.Dtos public Guid MsgId { get; init; } public int SenderId { get; init; } public int ReceiverId { get; init; } - public string Content { get; init; } = default!; + public string Content { get; set; } = default!; public DateTimeOffset TimeStamp { get; init; } public MessageBaseDto() { } } diff --git a/backend/IM_API/Dtos/UploadPartDto.cs b/backend/IM_API/Dtos/UploadPartDto.cs new file mode 100644 index 0000000..be4b5c7 --- /dev/null +++ b/backend/IM_API/Dtos/UploadPartDto.cs @@ -0,0 +1,8 @@ +namespace IM_API.Dtos +{ + public class UploadPartDto + { + public int PartNumber { get; set; } + public string? ETag { get; set; } + } +} diff --git a/backend/IM_API/IM_API.csproj b/backend/IM_API/IM_API.csproj index 6361cdc..d8c87cc 100644 --- a/backend/IM_API/IM_API.csproj +++ b/backend/IM_API/IM_API.csproj @@ -28,6 +28,7 @@ + diff --git a/backend/IM_API/Interface/Services/IMessageSevice.cs b/backend/IM_API/Interface/Services/IMessageSevice.cs index 3f82049..2ce3cf7 100644 --- a/backend/IM_API/Interface/Services/IMessageSevice.cs +++ b/backend/IM_API/Interface/Services/IMessageSevice.cs @@ -48,6 +48,6 @@ namespace IM_API.Interface.Services Task MarkConversationAsReadAsync(int userId,int? userBId,int? groupId); Task RecallMessageAsync(int userId,int messageId); - + Task HandleFileMessageContentAsync(MessageBaseDto dto); } } diff --git a/backend/IM_API/Interface/Services/IStorageService.cs b/backend/IM_API/Interface/Services/IStorageService.cs new file mode 100644 index 0000000..c31f143 --- /dev/null +++ b/backend/IM_API/Interface/Services/IStorageService.cs @@ -0,0 +1,40 @@ +using IM_API.Dtos; +using IM_API.Models.Upload; +using IM_API.VOs; + +namespace IM_API.Interface.Services +{ + public interface IStorageService + { + string ProviderName { get; } + UploadMode Mode { get; } + ///