From 4523fb52d68d027b31ba1c3b8dd9f1ab1a889c36 Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Mon, 9 Jun 2025 17:50:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9EESS=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=97=AE=E5=8D=B7=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Lib/Tiobon.Core.dll | Bin 84992 -> 88064 bytes Lib/Tiobon.Core.xml | 193 ++++++++++++++++++ .../Attribute/CachingAttribute.cs | 14 -- .../Attribute/EnumAttachedAttribute.cs | 25 --- .../Attribute/ExportDatatAttribute.cs | 42 ---- .../Attribute/UseTranAttribute.cs | 15 -- Tiobon.Core.Common/Caches/Caching.cs | 2 +- Tiobon.Core.Common/Const/CacheConst.cs | 87 -------- Tiobon.Core.Common/Const/SqlSugarConst.cs | 9 - Tiobon.Core.Common/DB/Propagation.cs | 19 -- Tiobon.Core.Common/Seed/DBSeed.cs | 2 +- Tiobon.Core.Extensions/AOP/BlogTranAOP.cs | 3 +- .../ServiceExtensions/SqlsugarSetup.cs | 3 +- Tiobon.Core.Services/PasswordLibServices.cs | 2 +- 14 files changed, 198 insertions(+), 218 deletions(-) delete mode 100644 Tiobon.Core.Common/Attribute/CachingAttribute.cs delete mode 100644 Tiobon.Core.Common/Attribute/EnumAttachedAttribute.cs delete mode 100644 Tiobon.Core.Common/Attribute/ExportDatatAttribute.cs delete mode 100644 Tiobon.Core.Common/Attribute/UseTranAttribute.cs delete mode 100644 Tiobon.Core.Common/Const/CacheConst.cs delete mode 100644 Tiobon.Core.Common/Const/SqlSugarConst.cs delete mode 100644 Tiobon.Core.Common/DB/Propagation.cs diff --git a/Lib/Tiobon.Core.dll b/Lib/Tiobon.Core.dll index b22a158df1b46a6700b5ae4262b31f7727a05451..f5d6e3ff08dad204ce6c2e9040cacc2d97248407 100644 GIT binary patch literal 88064 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 literal 84992 zcmeFacX$=$);9h;Gdr_O+TI}~p(UXtO!iJ8K!8v~C!vW_MFauqvLV3&m`D=^QN)6Z zdIYT4P!tghilWB?3LYEELGWP1Ua%W}_gb?i*-WdWIj&jvz1Gv~%sjIh zeEOBjR7!d9-|^#0J&G&+m9hM5u?Xg*tjChn!~Q+ZAJv2QG#@@~dR6wE%IMU}v(Cw$ zbk^+I(RtYu&(5wqcXsyl+1Y)Do|b)1bn@ASiHU($67?y4l^Uc?HR`s+Yu(fisTSGs zx{XqOv{IJCzCQ_iHuOcfDivhiaPmzA<)8nah8;ZpnQFqtco)j^0!2#VW%n;FiabjX&D~dOP4r14wrDIu@Lck!YvH5niUY#hD@*m0^uBj6%dHQ zAy}DVEKCGZ5N}j9L_*aB94b5n(K4(`BTIAn8S;3>!JK3>&Fic6*3`VIw)KAkpBm=EU2G%t}j$q+346x| zfuof^IsgaCVzeo6+n1d{;f)SyMw@~4eCvet@_TRudz0K%{_i$ttitB~j-qA>}ij$tELR=Kv~xugv|V(kGc-yiZw z(R}0+C`bu;d`>NdJYHAvyGk9y6%j@1fiT+9R7+7#r2MDlq@tjl)X|Mv%f_V&RKUhE z;51-7XD%TvF%pi=U%Wrx=W}!D^+z$@0#0W9>7x_<-e_kKZTI+2%uk%U5cxseA+x}$ z#1NW;NGWZn?{QL+n`jqAkY3yp)%WL(;G_r_s%P_$Ygc??GSZ+;oT^4XFu#S|B)R>$ z=KnlJ>Jv_EJn35b?W}ljijkS_wYws-DMls6*c=<}58WvjmxAWxNQx0f^nqL}CLn}VqzBTY(Tq+%<9ov zc`T!P3|$tothLUDt!g03VWVUb8h(*5hmTX|;tDcUHBG{grGRnOIc+4d=9SV&>*VQx^z&ss?F$9wHl!8>{IsLjX& z@)R<8WarlngwsG9ykcaW?m2z5qmHJ@-n22CtT7p5)5pZ8m}yPy;c!hc~}7?E@Au~a9tEQk9UmFR18I1Z-6_4~Q* z$OZOuWps(NG5&c!hxOhW9IRlpV5xTqRzM(PhhSx$Js4HB2y3XPhD2(ug|28-oq^paY%DAm=ie zE|oSW94n{5%uNl`1RrtK=y)o1X1a~0h+rKy)dQ$~?5sjnmE7h=^)v*xD-bxpH^-6R ztEL=%bWP*ILC&3z>Ou01kgP#2ON_5~kRcC`(fC5ua>?vfete?754I1^DK}v4DznNxZIzi>c=ccIIh7`gI(*`0Eo?+$`_;U@9>p|6LM5j`Mh^qCb#^T!Z@K?#)-kNqcZC zxeC>Yy%BO8sC*UG7O0v7)wJhAR#igeSkWrFq($e^B|UmBF46NyU`h$tnA$9i6OO@j z5Vuo7UEJx&c7BG9eq>dCO^syFr_c)^0te#{nz;uRXFP0C8#`^FRErkM#B8i-j9?%u zG*GB&A%!_PCd#L`2RSKq$DQ|3fB(d(5RuB2r4R&7H_3!yBhJ@ zH4vtK5u{-+B7)R|0dKx#*^8kb2y>ndtjgIoEo;a-?nW`nEZPYCnNnCqb-svF<9>m; ziSLKf0!D$67B*^@z+4zKc+Zle?4^LYmQzR6@3QOt^BakG=mhV4!wQ=mH|kL#wNTm& zL~f?d_SCw3+rS@vGDP9{FJSyZ8W$rBrBUa_Y0--E_rsdukw$)klWk|y?sSEN zhJ6n87mTbq_Hs(7r7*|p7<60q@oVu3r(r!gF*Xyo%=xKOJ(3P@I>PDbFH~0Qa~N15 znu#!$^&ge=5-DlTrBEbX?*Ag3iB)YCHrP#U3@$4lD@U@jS0FAMV+tLY#v(?P!bl0h zvJ#enRoMXLie3gitq8Sj@q&r%kEw5#j^Dp}iW04uRdIP-6;kGB#FqqEZUhAQ5hcrY$EHSwVGQyaMBe#Q(H zhaROVKj>jJo2co2OS@2ZMb*i5no|Q?y~P zBXlDK&ui{FgSDV8o!^gnPN#0nW5=SfMG9d)$U_AtKXK%n2V?9nCMmWsPA)_GKjBW&*?=|gP$%;8FHEbHu+W_p_ z$zm8`GkOPU&5U#VqVn<+O-Hfsq!74yy^F8WO}G@mnImjrM(+krTNf}a8`HlPZ>C>P zYjaMTccXm|g^=i4ntP{%x68meNroIt)xBU=k}DuG5n!M#vM2Ti3t}Sq;1)t8%)VlYHAnJVP`NSrTc;nJF^H zII%YH*386qsbD}hJv^*D2jNrqVv;tv+8bSd4p&5as=XC?+nAG{=4u%(XFmdqy$xa! z#l+Dqd=!v1ujRIG2wjQVdt-DvjG?&n(GB84aUstY(|dF}e*8Gy3-CRD_)TZMqz71$ z{9L2vF}U-#_;Dz;))SCbC^MqOD7?0-~Ku zu;K>Am^69+P5D1*myXTaK=dBjtz&|Y{D!{ros zbF21%T42AzuKrNm-*d&pMSF`eD06d^IpcDgcyrP!yBKN?;;$^Hs}X$_u?FJtFu%y_ zTbF40c{0k+v>JH)JpEwgdD222)=LYi=;9KrfavNHtbjmAck;nXXCu9uGF0CS zySsK)5TJ)kumYmYC0GH`(0sEAt#%xz_XuAumYmL zORxfBfJ?9fqTD4|iHW?zHLwz6z*uooWd%_TatT&I40Z`tKn!sSRzM7O306Ry;u5UH zq&Cbouo7c9)itn!C{A+;RzM7Q306Ria0ym68dblb-&Iq1qbgBDrI1F|E>g**zQISj zAz49Gqg;X&5Tjj!6%ZImPBpOt;&hi_0%23JnZW>a#b=wX+hFy~(bD z6~uJ5ORxfBic7EpVya890%Dp=umWPbORxfBhD)#lVx~*50%Dd+umS?R5T`;}0WsSp zSOF1r306SNaS2vH%ykJ?KvcQ}Daj{FV0%EyKuma)|mtY0Nr7pn=h!rlu3W$|1!3v1WT!NJfgC8PPQ-t+> zdX?+L3Ibj360Cr@!X;RV>Gi8!11s>n(j`~{vBo7>0dbW}uma+0mtY0NH7>ylh-+Pf z6%cD(f)x`ag$510^(+uUqkc+4eO0r9v?uma)R?0G7#?q zSc%EuZr8v{g;DhyMM3HLwz6c*`}gf+*g0306StcL`QNyyFtAfOyv>SOIasC0GIR zZk_Ph_|7F*0ddSFSOM|9ORxgs2bW-F3U;d$yOF(qxmMK_Z~dV7 z(RF17VSjQ7RzUph60F2z{TJ833Os*x306S-<`S&L1g&)qtibcQORxe0kItNN#R>@R z60CqQT!Ix4rc1B_!s8OGfQWMmRzO%T!AeX9y{>^3c=}v|6%cr%;$)B&5CNB91w_0{ zumU2%C0GH0doL#rRzM`V1S=qtU4oUE3mtX}%mP@b# zBHJZc0fDzXPAaU#6tcN%UGso6?hi71S=p4U4j)5MJ~aLd*@H#<<6f%$_+QU)K3gp zz5=||vVy3vd^rRwAh3Kn1S=r0Y&irgAh29H1S=r0TsZ_Q{A@C$@Gcn7-O>$tyV%6C zv4{o2x#@Vbz}g9ZX}|MJbNyylVX+J3m{BZofgDd13mcAxMzNd)!si*;*j1=%DvjLj zP`2yKi`NWJ$6*C|?dTG$fav5BtbizW307uT?Kkjv+lanSm-OgsbV-fAiA(rIn;G33 zV{>yx=}OKhf%=?b^>r$Z6{L&R*CAK|fz{U`SV1de^$k>$yHWKKlBy<0X>f9>kGq>& z1Xd7Lcb8xVL=Tr>C8jrGL3a{m1)f;Y9fB1QSkN7U6%bg^9fB1QSkN7U6|}R#?+RO@ zKN$QxznbF0`b9A~xvs*Rk2iivo+#G(fEC38A26fuqm+&w7d=v^d!ipgH=^c8R~XiZ0m-<8{Vq^uQSO;S=c@L_6>5MYwV9Ykp#k!D*UfNUG)> zG#9_$ngylSnokFrusI6kEFz2DlwN~Ta+Y0-s;$B{2`?b)D~x0EMzJNrt7SfW;Jo*5 zjWSnVh{)(n=^VsVg-uc*-s9xu6t5?WJyIaQKNReV0#WRP0yvXa?Iv$GL&7z)Pt4o` zvSNdT%#p>;q)uQ$g!x+vdim2IJkQ0fIOh=7qYcoYvF%(CZ`UH8RS|fg-%;Piw+K!L z8 z2jPuk7ZoV@7oYp_M!f(BEIu!0s7b2$8t2@Pd!8hZ>XNDt2Zy*R({R3k$~2Whflnh=f3HPqX2OvE7MM(^ip(|zmap6SmTsKA~-u6mqQTKbHUGJZSx|T!T2)C0$sj@!} z<*U4rLPe&X6y&R?{vyZ*4pMSbkiSgjP7Y$=n+AMNWn-fr;DyaSpPsBL?}G%t@8U~^T{TglK-=mOwV7|n-f9qUqp~s7r~!Y?1(ytzmr$2 zL4TUps=Ao|uvVPBM*bp##eXM)g1?C1^1l-SChb2h!vE0AoFWweMFh9}ogB2I2+#-P z)N0Ht#ps6FA7gC~SXo_9kM}|(__8uiPc-~9#^TeikjFpc^f5l@aiWLfd|;Mqz-fuBz>KyjDIR+RFEfpDd0!a`@nJ}z`Q%Ci9G7r>l?Ca2uZ$ilD`1=0X*P$KXMEFjg(Ka!Zm{X7{#Y*5}g%ZW1 zax+?}u^bl(`EiybgaacPq40(>h{}@BdvA_U$qob)82C)(!%#h=hDSfeI71G<);*s zLg7OqJi!PQc)d0rTm*8xRXMms@rZ&pqstIQ6`oE6?B-a+YpM{IcgpzE6FcQ4WW}Qj zY(~jKUs6VFtXYu+Ulh+L0%^rfd^T>4BGCvCXP3JapH>Z93n^oj-%?I!QM4Ce*TNqe zgbx}vo;n2Zg|Jn`RoB` zb{vC__gXlsbilBCfk$L?zW5r%Rf4!o=Of|tG11;I*7SiWY;4-N$#eiVV^z43#`lB} zL2XJOl$<#^pyN{=>G+i2$ylo2^xGIW0jJBCBNvedCvZ-=>yA-9doZ5Q`d5`B&;t1u zMX5_KRq^PgeAXCwRUMGu6xA%l*|jRWf|9_EG4jY6w{e3UNl}&QXk2Iis$%w{*aJ!% z+7-wVeMQY9k_T0yi+E^p9XazwN2>4WK%^9)BijLdPg9pazrX&x_G-k9eR`;B5V_ie zA)`YeYA$d`;`uxhFQJh*6o#BdWU;YribPKVj*oQnMu$O3uup~bMNfmQ8V(U10YOL8 zM&f!f9Vh8Lm90@koJt!7#>VYyK9Wq7OlxOf0%Ne~^S;;t97kqGuC{-s}k% zR!t#&Dn#AwOW65Vl#lCHO(XO4SaYVyhZyVJyW`vt>}DGMK7f^rzD(yJF?Q&@Yp7}_ zY_!(Q!qxG_p&{sKZak+5R7D|d1adw$re7049PTpO0Vj@NH*Hi&1ewL1qO}O!lb^Gt zqV(Z3Gqu(Xw>9~R5Pw`+7Z~}l)EeXi^H`{A3fHBl`gDZGaWhEdU@FxjhMe;adb*t1 z#NjhCFC^FK9HhU|#_e#V2IIk5 zam2=wSYO+@CXTkjwC==wW0h1rkZ&{UL5-vrdikqQJnBoPFUJi2)Ypt+7h$dAqVqPu zj9MUyQ)11PQ!#Wm8vG@(^L2kq{6GVSkn>$J4!S{gKj)i1RoAU#Zfe>14#6f(L7k zv)8quC%ZPDYI#cK9M@IfW5@ue12i(`0;iCuVhlr1#_6N83hZ+cGjAsNo8Y=&=qGe$ z`D|S24`=nL5LgBR`Gts)kip;latk0vjI7_qNM2#_KFKe=E^V%4_AIQ5qJJ#HaIEjp z_!{FpM59fkl`z>LUo7 z^dV6b8Zm`c7f{j|UG+)#Gou&6-FaBN3nix)HSv~>CsmRBmQH|p zZ}egW$xrb{m*ZN12ca7gHFbnE{O?R>+Qk_}$`B>$WEuJBby`I)tuSHWF9H9Z*S@e# zVY@c%im}it{36FJ$l=&9w5(C;Xv(`YP&<3r2=^*7qcw2 zf9u{reON};$@amBrKaT_EwR+UY?4>9ypLs=`N6Dz!|_B094WR`ChM=YJyIM{_gmfl zmb#hc@I11viRO`qTyHb9d4IzDW?vdgYHMsMU z;xx6h{E~vk>ZbDB3NqCxB?Tod)ZGJ*bjnrJy6=SN{T(QVJw+s!$C323B>5h4g0wnP zY;Pg;uzEO-;xF(WDGsa8T6ZYRRlk<(EXh>s5oe+5(0)#7Th%-7!9HR23#=W~@&0YW zB-ju3X`!C)cBE5h^+DWyk?zVfG~BC~y0UB1!0zhP;&3lZeTn!jbW2X$}7p$;8XZo9VNGf|4u)rvur`{b(Qy>^!5s^+bzHfAF1 znJT-_&XP0L%Fe`83_emkQC-!gpk#_lwrcxMQNP8JTnT-K`mA$7$!v8)?*i1rr_d|a z-pofk%vO(P5_2odRTTv#=cx(ZYa&VNNiNZsZ7832aND&;PAoNr`3EXU|F$E^x48a$ zbSHgwJjt)xlN`mKHT{khFHmQ8n%rf9daozRTe?i{5>`vQbSPV(egIRWPVIf9Qwz1X z;z*|&^+nfhy;`Wrt&enCqPF(liL%V#QZz;>mZ);*OH?73?gO^2=vUj~={5Ew#|19DdO4eS{s%<$A4<+HS)T zl5;z4@{Lrt#8JB>K)2L`*(667lRSfEX*bgQvHUrc^e6kVEG798%crZ|rGtwB!o)a>1+U6~hXt6!TkBDSUm7(x6v;d?abEqPv}E z`X9j*#Rxs=Czmw!++tMtuc?G?OwkgGT>3M1~9-iEa7AeJ({`N{E+>+)LE*(2& zit`ipY|2Qfmpd)bEyZ_)y*b>{K7?AT(Tr9PBGg*YlYmTepexu_G+ElfE0>= z=nn#AD-sy7(jz-X9ypHT~rOl!8pJt!UhQY}2B-eAI>M*{quuHwMhR^x&OPcVqk(LDQ~kzBaX#O| zVney!#3>wAtr?v%n8JOdIx(tZ+mEU*BR`kn7d41cLr$SqoyMpw+q`-TqrJ^2mY|-` z=+O#7sd@>cUYvS!eKVsXE>XUIn9(SUJlp6e88t5_)Iq<>s5FjHXZ;SNk9>r>>BEes za=0@6F{6}j&AOo%=x+_`btVvg4^VqeD(!!|-i5w9KsRLcx}c_v9v9Tnq!I9J`}Ms_ zRkU2GY5grBtjn&f_{hQHvJ%dpI^FgVasAt8*dA6R- zwtuqcG+oKI98P_@o@Xva&S-~Gs%Gl*W5UfM1RFL?u+7mIGQ#aL&|F;;<5{T}v8@Z+ z=INy|w)6GHY;$rwUth||$>##S5_NrF)6SMw*ED%8UaQX=cD5|*Ctqi40PgBsn_lQ448`z>nq$VE3auhnU)gRh&FruIchI{Zr!3OhR^At9tDHLTUe zYEw}Np(YNdP@M)+Dz70%xpDaDZcQi#8W>#BzR zpJM+t*pZ_?+4|?Pl_G{Kin~Gnme>n&dwd1t&+#*ndhdoqpEk><#_{-@5Yv)l zxH~Bd{~GQI-Iyt5|IR_;Z)EO-!#OA{!zgB(vbhk7KLJXbRF zO$N12kaND9(>=;H*@)ZXCeF_;_FTZJbYcC@42u65j`?t-^AW?Tsnj}KIEVj9AnVQC z`ja>|&3&VqDzadM?ZV zR1XyY0|HsP3T~GtMCWrJ7IDvs zhw{=cQ)jIbf@y~RAIZD${+A3DACnsn;hl{`;o2T70Z+c$C8#@uI|ettL47=E4= zCvu!OHKY>tX+qNJGbh#tmF2H%9bIAKe;m)3Bvc4n25)V)|+ zVi`AGniFDEbo_tdI&tQu54b-&Y5i|QIkVYmjVbk~IL;z&k)w_8K)RpuILd2sA9Ra# zCzaUzIHij%^`GUioNL&rd8bc0ZFe`fzSDwEdo|-4bLN@N+`AU?obYFJ;}eakwpTW$ z7N5yuY9z-nHE~=V+OY}A-}_8Wq}Hs8KNF$4Crp8KX5II=1+V88{Gfd!6VjGjT6Y~7l-K+*Gr|iXq2I};(S0MM7zXo}r{7uMn zOA-<~s50M5Jj3`#Ex{A;GT%C^gJ-BU8h1n4bMf5Z`d(OV)xF_yab$fbAx+)uT>}4a zz3(O9nMVJQAg{+dZmC;~uoF-@y}kr10Hl3DQFUZcX#eL&l zf;!~~fgThzuh;BEpV}>GQLpoW4hf3(zbMhKJ{ELA|4V_s7PPGFs>Fc$NzgTA>wt{r z3V+LeL)#YNS1JR7Cbo?OY9NTpkf53fqB10?R)T^RJ3NUhUr=_%STj+T2#PkpH8Dwb z6I9duE}&727W;BL-Jh7OE)Z1G=^>zHf^I`TaqrcFa<NZAe)%V4F6B{V!=f$2^M^S^RY8*X|Q_EFFw*!f(YMG#iN^9|aZdNPD*1%8b zS3yk%y`R`nEz5Ci%`D%@w-$<1f_Szy}9~a(5J{tV|7f>52Zn%T0zfc*QzGU!s{7oqgS(oK*@q` zM!2RbUC>D)2NRvCE?@^tK&6jAd8_36|rsZjkOXiQOgQjto+>o5v8 zX<(_pjml<3wKOEDSaoxdZ%g-DJTK@g=-KW;pdo^GciG`7Q6mK%?K0LZQR4+IK)4QS zs-Q~{t^k!3Mr(b?nvDVahajCf4(JX+qdJaB>ZI-ybXLc4K#vO= zSvE1LRJ|tXjq<5L`vu)sJ`3oOpz$Shfj$y+$H4P}Jap@)*82S2s(}(5q%P^a6zBy( zGc#8ubyXkNp{tX+smy#1r)Fl}l+;6YWwb_B^}Ic)m%3MM^CAx<^;WwDRrR~n=&gPg zG_w1pMjw@r_j6S9^D8bj`l{0yIsLPr8q3J3rG9Fv?Z zzrU&$^v}Z0W`A`lBZ@PK-{pU!4n3Jvu8uHTt6uH2E2%=Yp-14z%d4GUN*bun5Y#zb z>K~-85wyGIn@NM!5kc<)4OO2Dx({fW`d-iupwrZGK}Uf`C|?n!;FM^TN@cWG^)3H* z(kRuZ4!xf=TFnu(v*6>T)75%GM+eXIj8zBf(C0~Ks2~o#Qm#MB-=@!0xq`lL^KH_2 zb!MII$D|2rj-X~kzfGE`Rtb8cs5WVm+Es_*k|(S01+D6ooIFLP($N^Cu&Ps&x_9FHQ~6GcVIGt_QDSGFGRnWfs}=o8tlY~4Hg95q>xUHolQR9z|Px=w|@ zIqC&L-?jSGGgm!|BQO;1K*gt?DplUWL0@&)rq5Nw1g+~ZIQcwvi6C$BnB?=-)pcl6 z@&)RaI&@C*e05J9%FqkcLv?6=@3(34mZE>>R%dJSvp#p(w^&o-~cDsf!U>v#sVT>0n-Ij{CwU7~^x@>K@<{R;l_98e%P)bN3p!R%tFBUc zf;@#mptgec_-gUQxU-;ld_kbzg6>3m*QkMl9!7fCsNsSVk>0iH3_(qi-nHs%L2n_w zwdx!}9~K0G&J*+y(z{O82znanU5EL$zWuHz6@SksTJbwP^(ZxdtXYq!mTqty;Yqc0 zgIX(b?)DeqsrNqwz2%Psx>L|SEo#+`YO|n6TLgg~6?A8(T6L3pTF}-`L7*1}o!71w z&(8M=TGTEG^p2qF;$M>gq23pCS@H4YTkw{MGUv?Y>(#en+dI$`T(5o+^xnWkAP zP-`AWCJyH5ciOcs+rhUIV=x+7A zAZnv~)GLChjqXuz392p*2k%wy3A(Jf2t zbIlupHVN8btO;&a4+?tBxDn_vL6oyc)H8x8XOF0t1yRnnsecKgoNZGF9K<<$R0Z)K zfNHRR=^epGRfeF`N*@4f?jZKuuJXio31;E#s#wq(%);AMXF*qlYt>__m!O-&L7;(x zj$tSMxH?Uc#t3*^ogru_`sWjBvY^w^Kc7(N2(mlWswdUCf=W6BfocR*x35(@)N(<~ z+XsPG3u-fXhvzAEouICR$C^*6^$y|^J*_s2?NGZl!Kc+WL0`4I5$Nd{&z;gJPP~$GO>P0nLP`FDF=qy36AkLT6bU}v^=S!+m(8ajNds!_IbWLUu zXsMuX*^dWztIGscWbXpHM$iLDZ;!f3&<>=xN8K*SX!m&V6?LDW)ONdo9ud@c(Br{Z z)eb=;2kip-r=Xv*YSmu#svsZk`1Y!|1$D;rf_>_cpgwqBuupv==q}7suc@yEZNV({ zn)+GLR;yP1OBpzbM{V@96$FYGG${V@;OnY^ppo&rfSL+wiL$?;S_x`{vcI7U1g+0{ zJou(65wtmL7f^RWThK;tseXcHA+xQ={rCZ1U-;ftM;pDf?miA z0?ifFrlMB8qvi`Ls|W%u5oDrm-&HFGrJ!x!RaXmIjeWrZb)%r0urD~EZWHtZ`scsZ zy@K|mfBsu-71RRta!@@fs0j6PP(3f`b2H>VwL?nu9f{F9&>Z!NvKE^};Gd4oU!LC3qj68w)!5tP#XZJ;KCdWU~W zKB8I*nh-t?lrQLPjOhLx)m{6V1G z1&zh5_^G;2&@9Y~pQ=Y3#3_8Hc8HDUv(MD?f@nVbOuZ_I=CjY$TY_jl`&=CoMDy7f z>SIAPpM9ae7DV&em+B`$G@pH`jGhXA%Y8JTeWe0|Xg>Q&H4sGe+1ILxAezsil zeD;mX7ew>fH>yO?+bF}gs+*t>P=;?+KS4B~eW!*9qWSDQHA)c8XUEidK{THoQ_}>| zeD=MXBZ%g+@6~)k-LQ`RpcV_N!2I%qS}BO;vmez}f@nVbQQauW!2I%)x>Zmr=9iz; zy@L7P4n4r>LWok zpZ%u35=3(raw>@CtXideIpJuoJFfhKXs$c1QUtX`*_CcAs15R>bW1_&kx#87f;MO2 zZMtqRXbalN&|L*Rhc+^FUqLjVnR>7wn$Ju(zqxV(w|EuNTxB;nMVaL7fpUO>Yv^9jT}52L%m5>goD1LE8~7Lq8+v zRfNmXFAF*o;Tq|G37U;?jr0KrajqNdBVyZ$8f>gT6SNyO*jOJEG$DRpaufZVpsDfi z0MWmvMt!il_&>p>I!VxF#h(DB3!;0jW;#m{-E%e5^ba0UIJ)P`)NKUOJy)hK6-4)3 zS-Phny64K$6@uuVD_fr`i0-+v^;kjg`}ZX`*OLT&?tcepmV>yoE%ZFG&G+p~ZlNy} zw9NMo(8V#HE%oJM`_1?&*iv6BDB1iT=pTaU4yBd8LlE7ew9=aeJ!<|I%+cEf?K90# zj(%EDb2AXi)h`I@U)y0fu$rXaerv2|+) zv1gtx65B7u>7hK`QIM}~bD**q&#*pCYy)vOAJ$_9jl;c6SWgzz5q&qJX9=o6-;HSc z*B7WYi_x0-x>`^-v}V3uF6c7M1qJ#FLDyq0DA3mlT8Y*y)VBz_0j*i6?-G=RrvOFz z0YOdh6rf0N7j&So2q(vO3i`A#4(KI8KVpt7)~^XN2L^%O6|^7od|Uk=K_6kBZ>v9Z z5Z75d{hinjwaX8+)4vM(s$B=5xPDw(_H3^c9pqEEA8W503d+F!SbLo*Xc^v}mFQeS ztMTrvL>CEaj5V%YW;cDmAeu3|>1~2uK)rO=PYK$Odg-oT5EN`*q^w!M; z{am;&xsT2f6exNJs8GJEY)9`FuO4?(ow?Wg+-qWx|^eTsv)hxFH@#YS^$ ze?37E&8_|QbU`$?4$yN2(cC&fFAzk}`O5VYLG+xjTwf-L=GF>*wIG^XEA&l*Xl@;- zZxcjw>p*>8*ljZXKj|2%@=luzp?;&8>s=tAc259irb7M04v9eaJyv+M)Vm zv2{dU57l1@>W#V{s(%vnakvQYKlK2ojgE!mfC7T5i%WvTbc&$Min{HEKh)R2!ZZC*Rdz$Vhh-zuL?kk9DX}BKZAkOs&Jxy#s=KYd9LeCN8!`;#d zJzvm`*ddM7iv`__9nwg>QV`YID1DV6s5w3*-7|F~K~%eE>K1}1XXABP5an#VZYO9HR+0(2i=aoa zl1$Kj1W_M6OAiu6eef(jLeTrT|C^}C3HluOe-rf-LDWMg>Dhv)hfLDvJBVvyvc5=c zR1=f+C4#6XChIE&QB9n!uNOo$akk#zdZH$#=uLvCCZ^~uf~Y2@>c<38O-$9#3Zj~r zre79BH8D-UE{JMkx;`L?YGS(nKoHf$4E?zvs)-r;dqGqaGj**Xs)?D}Tj8`A%?z`2 zvLKonX6XzEaZQ|~v&9zd@l)bCn*I?;TBn=!&`Ia$VnOYYv)Q^-P!Hs6w(ce9YuKW? zLeO#8qWUyJ*Y)oinxn@G+SI=sXtIMi^|^YM*ltBT%+>P*Z9zNC)zyNg4LCJasV^3E z-hk0SR|x8ZHLgmp6*L@cT$R2>5cSr1`c6UAM)ULof~bwo)sG6IHab`D6hw2#dHO{` zG>4q0UlT-g*7^D!K{RKbum2;6=Bx|!r-EqCxnZ;Hw&Vt6-)FTf@sIGRNpU%b}UQvHbJzzSf-y6M7xV+`UOFi1MyZ??-jHJJGqPX zenIqQ{zlL`tW}rjUjz*)$9q_94suF+dO6<1>I4UI4X)6s zVxxB&D|Ayq^iE@i&Jjd!R95N&LG(strS2ez?g}o`-38HI!DYI?AbM}HN)Hu8?=4p8 z(GKF&FV~C3c5443b-7+4Xk7m|psNJE&~Jz53cXIy>;1->SLj;>HOJG6)%qSm1$bJq zT0bo43)JV8`Uye5p+2wF&k550d~=Q7BPie>h*N!U3MwkkH?PtM1$9P;yGnn|XstTb zZ+z%#9XFWjlhBONH99Eh_Q3eiT3t|wW`wTO9qT*?SU2d?7&&h(Z_;xe5XDD@eFs9zFSZNp5boN4+$EFd%U~#*Xmy*tK-mt`dgvF{qxt}&AS_YjnOX0rk}wK z_L!#B=v)HTL_MOi*CQ%>9g3r}*P%ow1veHaFD`O&EhvskTNf^l%2$u51|N6x5=S*y zhZ3m@n@w;xVvtX03YDDmyk7YKT%{}-XB^jCsr_4qNgQ>Tt_JTLBX zJoJoiBj^>_p4GzzeFobuJ%^DqYdohf5Zk)eR?2hwj*(6*-{u$kp4b1ZL)-K}^+$rL zVS7RQMme6ml1bvCT9MGHV&^G;V zy;snPmQ7L)>X~CH1*hiU(^V&+3mNTFBO_Y9r|)u*zNqzB^F93-qYr_!I;3|qTB|p6nfWS9EC z(vQ}mPAOmOV}b?;zVLmklh1Tw={@8N-!a`tP>VL3%^!4gK|8`<_5hJJld`3q`OYv^yYUML}#d!LSAu*nQW2AUaQMYQpab}DyU`!F) z%O1QPFfI_Z+dELj8;`|!CK%6%t$}Z`nPBW?TI1uBRXdDsGt=_9uqH$EvuU?NQ z$@n40Guin8CACxyHWsHO8#hm)nsCY&GHz$IRK4kWKQUx%jQm1!LX4KG&1!92hS8Lf}xfZN#%e ztxIWS^b+LvY)ENrR0z5fsEKiEOt_}T>0JUSv9&Npi|s-?qIyBca)5q^n9Ey4Y@#uqF9 zcjU+x!JwhO%%s>J?diy1Q1hu9eCLRCwYnYY8ftiZ(jDfnQ@_3!`7iEI{{MnB@YM|E z{PphmiFAB5L;O2s#BTy)GUH*Z%hRb8hyNpn;?(M8+#ivo+`itOO5y7o4B~g~5cYqn zpJ!T;e_|&2Z|XoXBxX{mb)6la^clIN6Jv^Xdq46dre2<$*2{&&EG;2L|xo+!Yh|ROBCt%mC72QY2O7!`5Co`Y@?f$&5cAi)_y5$2$pL@= zuT%MN{Qs?i|JJ~NYv8{%@PE4o%Cl(pCTXZ_zpJ0fe9@1r9Kb_s?tDT6M&&=)IUXJdxdo1r* zUqKBR_^O>kIZP#&(P13<8P`&*+|GU2k?-M4KRh}4oh;$~-bRi&kMol|gghxlts?%A zIt6z~r{G)U391a|2>al?r(e-G$05i#d{0bzbI1UGS)abk#IG4a_GDSkau~}oEYD&& z9WqYMht&AeiR64uaxu#lEN@^rm!J5|WuF9=sUj^rlTKB8irYcHiC;8ps)%W-h6M)V zSBOb(#d@AG1ZQDVSuZvyZ~3gZ=XlyH`fY)({F?(^@g@FB==8**53IMSQX`ssJLIPo zPvZ+=`u&0Sik?IaVrzoxU3d@-J&hR7%o)r)2wkfO)%7iZRCD=z@KR&I;CP*949(1d z{2FJECbNI3F>FAwPT*1`aGvv7ZijW8-mX&d_H4WA8h^H?*yiZN>Z0t0kZpP{)${nb z5#}M!>!8!KlM6Y{VTO0WHa*NpAMk`;qdSLp>U_>mQ1#s<8vTWj1Ve9@3?hF?!DdlA;6R<9WIjWavHXe{Q|Sz%Ome$)5_ z-y$C|Za@ydGWO$3-$R~89RFc;MJt?lGSAC=2H)u(&3VCdSlu&Z59IE) zJ3Nck%GPf{<_$Oireo#~lKp=*$p1f{a+Aij>|Q( z7nSaxVJhh-1A=kW%`L4P#mzUbENvOLTWx853gof@}DR>+y-h(<{W9Ae*8|T-%Dt5Y-ecu!`Zbk& zO~0m+uj$uR+Oua@O~0VhRnsr1bmjQFYWfA0u88v@cv5Wnn%)BDZ<7- zmtXt4ZLzfH;~|e)eh=lm)JQ4c0sR}iqv?aN163bvgYwNA%p3b1wnCmg#UH`HXRj}; zL9pJU9)$FIwddH76z_IUtC6Rm-PLNl9^I~mw>f(bXU{WqgQ1hWll9l#7J6stpAqLg zefnUMx8(i9yI;RL;8yQWc;4;3P}AI7?CCvlhvyT18h;_j{2ljU>U;n8qTjZBAM&IA zUwKRQa=eSBS>{)4UC zp#RF_s~F>Jv5DDqknJnhtNYJKZ$FCn5hS;18Z{-pQqPdc!x*8HF$Q~jereg>DEAEP zpP|b=l|v@@hIzPGd%E|W>RZNTU&XT2SRGmJyGGNRau(P2bPhG$v!(U@zWJWHc<=C& z-VoX9TZ|Z<@U8G1!#U{{%&+j!TZy^gpM&SI)_Wm|*#PEk-zHBwPCaa5&rQrv_lzER z2r&#S)M~n?`;d=((>))w-fT|yJcG9e<(}*C)W6)*q~|ZtiO)0E^z-|BdghlV`SXld z2Za1LA~%LC*&AjOVesh4ieJ zF9r^)V*d_LNN;IH^Imd?7d-hKbG||I&raP1CqQWM9^Ysb$b7us)gj zX{sfdS;~%2!tZ+)KwhbOL9SQ*AsI&$es5OwEgE8>U z56Pb(Q}F#rBj|CO^hD?>_#%O1Lr9ffW%WRg- zS@vXk7RyB}7qeW?@@baOYRdT`*8ju0GAK6FAU>P*GL}7A_A#o!PhkBlmXp|X5$lUt zu4lP{E|mtE}^W&Xc)h(l+g+l#6X4BOo^!I&Golp0qQa4s?2( zDFp;4r8L^*oo~b3Nyf$H;B+BC$lAA(n}=#0qhasQeP9 zMGO6*LATN@a$Y;pQ z+#K>~FmneCR+$Jv)OT-ys znK(=Q-11xDYmWTqBk4nAk;(5^Z9UI76HzR)}*%bqqrwhKXIo2r){G z5p80DSR|H+GsH4+mRKRq5!JB_pV&o=5TnEx(Iys%MPi9KL!2d6h;u}B9K$4riCx49 zF-nXPZDN5~B$kLX#4>S~SRu|4)vFjjv5OcXMu{<^O)L^i#2I3lI7_S$=ZI=0!z6}@ zUBn16N{kV0Vu4sBmWVUNGI5qTN3>Q+$X&z;F-nXPZDNsFBF+%Y#93m6I7fVD)jJTH zTFulFJ64M%Ox{I|5TnEx(Iys%MdA#xOq?ZFh;u}BJi{l3iCx49F-nXPZDN5~BF+%Y z#93m6I7hTjkdVW~E@FfjCECOSu}CZtXNYCuEU`kIBdRb{OAHgch!J9x7$e%m0b42xOhDi()yND5Dlo%u0!~(HM zED>jjW#TNcLR2R*WMY`uMT`)m#2C>g7KlY+i8wViz$&j1pr+ zn^+(gi6!C;u}qvLR)}*%buz;zhKXIo2r){G5p80DSR|H+GsH4+mRKRq5!GuLJ~2$} zB1VW&VvJ}L3&bL^M4Ta(iL=BCagL}?Vfe%_v5OcXMu{<^O)L4_rwS>Ml29Z#4@o$RO{)U7$L@p1!9RqI6G; z5M#swu|zBrD@3)4?uij%j94I+h-G4hs5a9*F+z+H3&aw!Oso)9FWnO(#2B$aEDNV=k2<3wa;(Dby?@DlkqClGpq~o?w5=3u9l1O{*(ybTN1@CiBi{Zdm<#?)%ybQ z4QC0z;I&@`-nQwRz&G~)3-IfaIpF@aHJ2w{@(d(5bUg>`-}vvq`{*Xr{}TAh^CX0B zVqcf=htCyU*@5j7yo*uzzn(84+)CbhydUz!2Ei*M_)G@Anb8US(ZJEbsk2uCKX_>u zaQ%g+R3%^OJ`?;GCrCK|%ryTCez>dH*z-M(1xWhLMJiYr(z~8>+ma2T( zcN_SpwV>B_@3}`Hc_(vV=5&d-mFamsV?XyCk^JR)!N{Q8W6OF8;kN6Sx=dyU!Q?6eaIEUikK~$UjT@vFn6ixlM3!SZueljy=qL`&^qy zu3RLx>*?!bCkX!%Lq7UkDXFiXCT@B!5j>i)lvpl5=6$WB-v-2Gzu4NW2|1R_Ijn){4sk!h-1zV0fcR>b10r{GK=_s01RHa}+`Gw# z^~|4-oggm1#8NOhFwT4Vukt~By}VZN0R4LNVf1v7dvm~Bvd5hww*SNuzleM{OZ+?J zS@Lf(_a+ueiQLokFmR#T`$C7fx!Etc-1j)p)XDGqJ`29X_eJ1eYbg;^KNqk4I=Ic6 zxt(cC1qtkp)VEIwVdrB~v{D>}g&qjCR9=AqF`FR(tFxc>XT`SOyr&MFTBIDSXRN()KoLo1@wLykkue^1oy+a0+cd z$=;;VrI8yq#=ZE}I2r512*ig!%~6Pjkw`0e8@^p+;nxoC$Ed`@uLC@w7J)CqpT-xz zmw+$9pH@MPUo8BVf-l49Mb5Z(f`?Gx_*xtOG)6Zoz*pc;V@z`l_%ZmyQ(hR=Soj?W z{wj=YG=8grr(slMVYG4r_!$`4;7k`#W6W|QxSW*G7`L1Zz6PiuyMyc8#M$ z0|ybd#>nboxW5vp@m1O=_*FoSlPH_P-wxF3uMjrA-Urk;o6-+{2T
    ;O1UeuBRf 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 diff --git a/Lib/Tiobon.Core.xml b/Lib/Tiobon.Core.xml index 41c324e9..71f1c350 100644 --- a/Lib/Tiobon.Core.xml +++ b/Lib/Tiobon.Core.xml @@ -79,6 +79,179 @@ TOptions + + + 这个Attribute就是使用时候的验证,把它添加到要缓存数据的方法中,即可完成缓存的操作。 + + + + + 缓存绝对过期时间(分钟) + + + + + + + + + + 标签类型 样式 + + + + + 中文描述 + + + + + 图标 + + + + + 图标颜色 + + + + + 视图类属性是字典值时根据属性值获取字典值 + + + + + 数据源字段名 + + + + + 数据源的model类型 + + + + + 数据类型,(1)序列 (2)嵌套model (3)数据项 + + + + + 动态数据的字段名和类型 + + 数据源字段名 + 数据源的类型(typeof(类名)) + + + + 标识 + + (1)序列 (2)嵌套model (3)数据项 + + + + 这个Attribute就是使用时候的验证,把它添加到需要执行事务的方法中,即可完成事务的操作。 + + + + + 事务传播方式 + + + + + 缓存相关常量 + + + + + 用户缓存 + + + + + 用户部门缓存 + + + + + 菜单缓存 + + + + + 菜单 + + + + + 权限缓存 + + + + + 接口路由 + + + + + 系统配置 + + + + + 查询过滤器缓存 + + + + + 机构Id集合缓存 + + + + + 最大角色数据范围缓存 + + + + + 验证码缓存 + + + + + 所有缓存关键字集合 + + + + + 定时任务缓存 + + + + + 在线用户缓存 + + + + + 常量下拉框 + + + + + swagger登录缓存 + + + + + + + + + + 默认Log数据库标识 + + 内部只用于初始化使用 @@ -96,6 +269,26 @@ 配置对象 + + + + + + + + 默认:如果当前没有事务,就新建一个事务,如果已存在一个事务中,加入到这个事务中。 + + + + + 使用当前事务,如果没有当前事务,就抛出异常 + + + + + 以嵌套事务方式执行 + + 获取项目程序集,排除所有的系统程序集(Microsoft.***、System.***等)、Nuget下载包 diff --git a/Tiobon.Core.Common/Attribute/CachingAttribute.cs b/Tiobon.Core.Common/Attribute/CachingAttribute.cs deleted file mode 100644 index fb244d1d..00000000 --- a/Tiobon.Core.Common/Attribute/CachingAttribute.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Tiobon.Core.Common; - -/// -/// 这个Attribute就是使用时候的验证,把它添加到要缓存数据的方法中,即可完成缓存的操作。 -/// -[AttributeUsage(AttributeTargets.Method, Inherited = true)] -public class CachingAttribute : Attribute -{ - /// - /// 缓存绝对过期时间(分钟) - /// - public int AbsoluteExpiration { get; set; } = 30; - -} diff --git a/Tiobon.Core.Common/Attribute/EnumAttachedAttribute.cs b/Tiobon.Core.Common/Attribute/EnumAttachedAttribute.cs deleted file mode 100644 index ef456cd8..00000000 --- a/Tiobon.Core.Common/Attribute/EnumAttachedAttribute.cs +++ /dev/null @@ -1,25 +0,0 @@ -namespace Tiobon.Core.Common; - - -[AttributeUsage(AttributeTargets.Field, Inherited = true)] -public class EnumAttachedAttribute : Attribute -{ - /// - /// 标签类型 样式 - /// - public string TagType { get; set; } - /// - /// 中文描述 - /// - public string Description { get; set; } - - /// - /// 图标 - /// - public string Icon { get; set; } - - /// - /// 图标颜色 - /// - public string IconColor { get; set; } -} diff --git a/Tiobon.Core.Common/Attribute/ExportDatatAttribute.cs b/Tiobon.Core.Common/Attribute/ExportDatatAttribute.cs deleted file mode 100644 index 6090b510..00000000 --- a/Tiobon.Core.Common/Attribute/ExportDatatAttribute.cs +++ /dev/null @@ -1,42 +0,0 @@ -namespace Tiobon.Core.Common; -/// -/// 视图类属性是字典值时根据属性值获取字典值 -/// -[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = false, AllowMultiple = false)] -public sealed class ExportDatatAttribute : Attribute -{ - /// - /// 数据源字段名 - /// - public string ExportDataName { get; } - - /// - /// 数据源的model类型 - /// - public Type ExportDataType { get; } - - /// - /// 数据类型,(1)序列 (2)嵌套model (3)数据项 - /// - public string ExportDataFlag { get; } - - /// - /// 动态数据的字段名和类型 - /// - /// 数据源字段名 - /// 数据源的类型(typeof(类名)) - public ExportDatatAttribute(string name, Type type) - { - ExportDataName = name; - ExportDataType = type; - } - - /// - /// 标识 - /// - /// (1)序列 (2)嵌套model (3)数据项 - public ExportDatatAttribute(string flag) - { - ExportDataFlag = flag; - } -} \ No newline at end of file diff --git a/Tiobon.Core.Common/Attribute/UseTranAttribute.cs b/Tiobon.Core.Common/Attribute/UseTranAttribute.cs deleted file mode 100644 index 63a9d53d..00000000 --- a/Tiobon.Core.Common/Attribute/UseTranAttribute.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Tiobon.Core.Common.DB; - -namespace Tiobon.Core.Common; - -/// -/// 这个Attribute就是使用时候的验证,把它添加到需要执行事务的方法中,即可完成事务的操作。 -/// -[AttributeUsage(AttributeTargets.Method, Inherited = true)] -public class UseTranAttribute : Attribute -{ - /// - /// 事务传播方式 - /// - public Propagation Propagation { get; set; } = Propagation.Required; -} \ No newline at end of file diff --git a/Tiobon.Core.Common/Caches/Caching.cs b/Tiobon.Core.Common/Caches/Caching.cs index 4635e7db..5cca5033 100644 --- a/Tiobon.Core.Common/Caches/Caching.cs +++ b/Tiobon.Core.Common/Caches/Caching.cs @@ -1,7 +1,7 @@ using Microsoft.Extensions.Caching.Distributed; using Newtonsoft.Json; using System.Text; -using Tiobon.Core.Common.Const; +using Tiobon.Core.Const; namespace Tiobon.Core.Common.Caches; diff --git a/Tiobon.Core.Common/Const/CacheConst.cs b/Tiobon.Core.Common/Const/CacheConst.cs deleted file mode 100644 index 71c7ab4b..00000000 --- a/Tiobon.Core.Common/Const/CacheConst.cs +++ /dev/null @@ -1,87 +0,0 @@ -namespace Tiobon.Core.Common.Const; - -/// -/// 缓存相关常量 -/// -public class CacheConst -{ - /// - /// 用户缓存 - /// - public const string KeyUser = "user:"; - - /// - /// 用户部门缓存 - /// - public const string KeyUserDepart = "userDepart:"; - - /// - /// 菜单缓存 - /// - public const string KeyMenu = "menu:"; - - /// - /// 菜单 - /// - public const string KeyPermissions = "permissions"; - - /// - /// 权限缓存 - /// - public const string KeyPermission = "permission:"; - - /// - /// 接口路由 - /// - public const string KeyModules = "modules"; - - /// - /// 系统配置 - /// - public const string KeySystemConfig = "sysConfig"; - - /// - /// 查询过滤器缓存 - /// - public const string KeyQueryFilter = "queryFilter:"; - - /// - /// 机构Id集合缓存 - /// - public const string KeyOrgIdList = "org:"; - - /// - /// 最大角色数据范围缓存 - /// - public const string KeyMaxDataScopeType = "maxDataScopeType:"; - - /// - /// 验证码缓存 - /// - public const string KeyVerCode = "verCode:"; - - /// - /// 所有缓存关键字集合 - /// - public const string KeyAll = "keys"; - - /// - /// 定时任务缓存 - /// - public const string KeyTimer = "timer:"; - - /// - /// 在线用户缓存 - /// - public const string KeyOnlineUser = "onlineuser:"; - - /// - /// 常量下拉框 - /// - public const string KeyConstSelector = "selector:"; - - /// - /// swagger登录缓存 - /// - public const string SwaggerLogin = "swaggerLogin:"; -} \ No newline at end of file diff --git a/Tiobon.Core.Common/Const/SqlSugarConst.cs b/Tiobon.Core.Common/Const/SqlSugarConst.cs deleted file mode 100644 index 7475cfbd..00000000 --- a/Tiobon.Core.Common/Const/SqlSugarConst.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Tiobon.Core.Common.Const; - -public class SqlSugarConst -{ - /// - /// 默认Log数据库标识 - /// - public const string LogConfigId = "Log"; -} \ No newline at end of file diff --git a/Tiobon.Core.Common/DB/Propagation.cs b/Tiobon.Core.Common/DB/Propagation.cs deleted file mode 100644 index ce435571..00000000 --- a/Tiobon.Core.Common/DB/Propagation.cs +++ /dev/null @@ -1,19 +0,0 @@ -namespace Tiobon.Core.Common.DB; - -public enum Propagation -{ - /// - /// 默认:如果当前没有事务,就新建一个事务,如果已存在一个事务中,加入到这个事务中。 - /// - Required = 0, - - /// - /// 使用当前事务,如果没有当前事务,就抛出异常 - /// - Mandatory = 1, - - /// - /// 以嵌套事务方式执行 - /// - Nested = 2, -} \ No newline at end of file diff --git a/Tiobon.Core.Common/Seed/DBSeed.cs b/Tiobon.Core.Common/Seed/DBSeed.cs index c6cc06d3..e01ac4be 100644 --- a/Tiobon.Core.Common/Seed/DBSeed.cs +++ b/Tiobon.Core.Common/Seed/DBSeed.cs @@ -8,7 +8,7 @@ using SqlSugar; using System.Diagnostics; using System.Reflection; using System.Text; -using Tiobon.Core.Common.Const; +using Tiobon.Core.Const; using Tiobon.Core.Helper; namespace Tiobon.Core.Common.Seed; diff --git a/Tiobon.Core.Extensions/AOP/BlogTranAOP.cs b/Tiobon.Core.Extensions/AOP/BlogTranAOP.cs index cf71db0d..aa682d01 100644 --- a/Tiobon.Core.Extensions/AOP/BlogTranAOP.cs +++ b/Tiobon.Core.Extensions/AOP/BlogTranAOP.cs @@ -1,8 +1,7 @@ using Castle.DynamicProxy; using Microsoft.Extensions.Logging; using System.Reflection; -using Tiobon.Core.Common; -using Tiobon.Core.Common.DB; +using Tiobon.Core.DB; using Tiobon.Core.Repository.UnitOfWorks; namespace Tiobon.Core.AOP; diff --git a/Tiobon.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs b/Tiobon.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs index edbfce14..2f99bc4b 100644 --- a/Tiobon.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs +++ b/Tiobon.Core.Extensions/ServiceExtensions/SqlsugarSetup.cs @@ -2,11 +2,10 @@ using Microsoft.Extensions.DependencyInjection; using SqlSugar; using System.Text.RegularExpressions; -using Tiobon.Core.Common; using Tiobon.Core.Common.Caches; -using Tiobon.Core.Common.Const; using Tiobon.Core.Common.DB; using Tiobon.Core.Common.DB.Aop; +using Tiobon.Core.Const; namespace Tiobon.Core.Extensions; diff --git a/Tiobon.Core.Services/PasswordLibServices.cs b/Tiobon.Core.Services/PasswordLibServices.cs index 9715903e..cf860381 100644 --- a/Tiobon.Core.Services/PasswordLibServices.cs +++ b/Tiobon.Core.Services/PasswordLibServices.cs @@ -1,4 +1,4 @@ -using Tiobon.Core.Common.DB; +using Tiobon.Core.DB; namespace Tiobon.Core.Services;