From 4d64662f1681c74b6dc2306ebbd996cf12bbad96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=BE=D0=BB=D0=BE=D0=B4=D1=8F?= Date: Sat, 7 Dec 2024 15:49:28 +0400 Subject: [PATCH] feat: add interfaces of repositories for all models --- app/.gitignore | 1 + app/data.mv.db | Bin 32768 -> 49152 bytes .../repositories/AchievementRepository.java | 19 ++++++++++++++++++ .../app/repositories/BenefitRepository.java | 14 +++++++++++++ .../app/repositories/ExamRepository.java | 11 ++++++++++ .../repositories/ExamResultRepository.java | 13 ++++++++++++ .../app/repositories/OrderRepository.java | 18 +++++++++++++++++ .../repositories/TrainingExamRepository.java | 16 +++++++++++++++ .../app/repositories/TrainingRepository.java | 13 ++++++++++++ .../app/repositories/UserRepository.java | 15 ++++++++++++++ 10 files changed, 120 insertions(+) create mode 100644 app/src/main/java/putBit/app/repositories/AchievementRepository.java create mode 100644 app/src/main/java/putBit/app/repositories/BenefitRepository.java create mode 100644 app/src/main/java/putBit/app/repositories/ExamRepository.java create mode 100644 app/src/main/java/putBit/app/repositories/ExamResultRepository.java create mode 100644 app/src/main/java/putBit/app/repositories/OrderRepository.java create mode 100644 app/src/main/java/putBit/app/repositories/TrainingExamRepository.java create mode 100644 app/src/main/java/putBit/app/repositories/TrainingRepository.java create mode 100644 app/src/main/java/putBit/app/repositories/UserRepository.java diff --git a/app/.gitignore b/app/.gitignore index 549e00a..f990c01 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -1,4 +1,5 @@ HELP.md +data.mv.db target/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/**/target/ diff --git a/app/data.mv.db b/app/data.mv.db index 1add6d422c4d230c17769ea31afad0419f047b69..32ca0edbe93080167e3cd142e0638d9cb0b47933 100644 GIT binary patch literal 49152 zcmeHQOKc-YdL}uPMjmIz$*#TYUGLg7J>!wQ9Bo(io8ASMPm$tF;zJU>K!hgQZ4a!G zCK`=*#?B_2*D1FoKmZ2_@&IfkL6TDr0TSepOL7RZ2@K?M$RWu!$N~X!&fitl&F*Fw z)tbi|c1j0TH`(>qUtj%I^;dQM9~(tnm>iu<-z`pPI=KD5T||;36{hdpKYq7}aAA66 zTgOFIn4a3!nLR5aQ??}CkQ6*EI47rfth1tAc+Wn)cl!h$!v*KaKAXN{pB80PaVDmt zUP*~Rfq+0jARrJB2nYlO0s;YnfIvVXAP^7;2n0Sw1R7%f|0$v`iWUe61Ox&C0fB%( zKp-Fx5C{ka1Ofs9fxwRk0s4~PE*#m%MWt}pdfUENvl@`L_$l_JgycQ8+u97UhYGa!>3J4iK!iR{uSfc`>zy z)R}5Y$X=5b$#67NT~ka;a}+~cQzZ+@Q|zp%h9pm92d$~_6`WOo3)`An$h6>Mf(^rP z)--EoXy$CXX23%eq@XopVwlnl$>ah-P00m(hRKCvnhw2~Y2+)=0+CN98ggv+tBIyg zK%jeJ>hOtUVHHct+ElY-ZK|tlHj-t1;!M_TYhp`SSJoUw(Iv$+3MZ#;Z@z;!@4R>K z?BvwmJbSRYM~_t4vpwtRzCC<+*S=o2rts~<8b>hg5=C4SMpO3ys}C$ zyO``GMi6au8ZFS&vfKAUwPy}+{Ut_5#nYT;SQ&bS~1d zNsnls9KZb(JHy&D%(5Jo6Tq>RU!WW-^;Y(kB@he|_>1$tqIrVDp^@Blen5*<_rD5%`JZiS9IV|IRE`Rlx z)AZBaXi)3tn)O__H_X)znuFmWmmie!xk0Ht%-x)5hN({RY+~BFV<7uxu2C8^ayNC; zu~c&=VM$etsi|QbrZe4=Cys??CZ5e?8CyCsu_|Fro8gHrJJT7Kw25LW$^_(;s-0#x z`-NQY>aTmMR7#abt(qH_%I#V%zcVVgo0a@#9zJc>_G+D4cR0weUvX#ce6yO*HM_&w z7AWs(-W|2u1^U%a555?1zaBP+?OHxpX_We<$`G>emHOjmcWYghHhfW6HnLyLy?V97 zFxu%iJMdJlRT~HNVxJzur-xY2=X%}1mtmz{eK)et=Wbm6KEMivF0CVAQ_WR+-NCS5 zg1Q8x&Oan22J~7dMF1w%+Cd;gM91t4fcITiD-PV{TDMkjCW1OCmR|xa8;P+rBT&v2 zqA-3LVEkS@jQ*pEAcTT0hM<|xz6bz*e2&4^4oaQFer+&nCqnTYgC)|I*t^?-597WE zBmN2i-%boX^r?^yhwDMX|0;n0K|J`O#}hRG6nL=)sOGaTK?B@bZo#f1Nk)pK=KD23 zv6dJ`IR-`0hQjxCfbWbC9}HVb`aTqKG2G;Q_GQ5B{pGk3O9~HMbV%iz7#nhfc{rw+ zO0E6gihXJ2TI!YDtNGWi-+2Az`oL%6p!pP!^_&A*kc!Npo z_uSd9)*W@$Z;~naW+8Xeh4SWto`Y_)4FNa;rHR4MQa#e7Jn%&B9VM-mf%+C0ru2*|aqk`Hsqpt6v zF5Vqtd`PC>LvXM{<7lvZz(Bx;9oJ z8;?}U>X@S7Z7zvMy=+ys*cTexw2pHwWOL<+LsM|pzf6!c1tGzINV+b-2RY* zn>PR~8B>?&^C*~|U%Bi}!0Z<^Q)CgT^{}v%7TY-YxA2D z!m^@jx?vVm*;~2S{N>A_22(`0!dssn!uPOt9+vvU+6(>qVUE1Y*!~F{IfOh{0gGo|_+?Me40#-B24t zeY`tr_WJwV2l${|J&@}M`>Zw384w9F?vg2Ftuk2a-!JLg{*sPA2QSeqpR4!!wdPjW z-9=c>dnzp2>Jl0A+VyMoTHm!p*sbw5N=Os2l?H5Oz-CINl~tAliMK0VZ1!Ngrn1xA z(+7G(?ispXn->*wWr*7T(l+n5Ch@OBK&np!NSYm>5rnxqMi3^taggQ8nAbBFSy!gFvhqiP;!;S>2ItAB^AnZYujG0RKy=s+*(9H_k{6Gnk#3HMlA52+^9K!3$QT(PtxDhh};|e$~&O=8xlncL7jRK%M#Uw%8tF z{jytt=O25kQ4XL!7Rktm$ZkVx{M9)-lAbn6b|uTDL9=qW(=LIV$bBEiMy>N6tJVgUxV=DG zTHJ<&&BeG!gD=>;{mp)_9`|URRJI&n+>Q*&g-+T6``AuwA62MTXnYL-OiiQB@1yf) z6Iq2@*2Sy>a%4MDpPyy*NxJ3HEjN|!Xeg<@T6wEEHn)vxt6%B12W-%du8-ywSU>Tp<5b%eS#qogVg zZEJhC?Rk~U5ZfVE9D-~IAmi;zCWDNt5Faw4M;vBcS#!*G0kfaGpq16IRw*faQqLF+ zyY1cxmC-h;D%BldEWc~TZLakJv_E<*JL77^2aUhM#uesQFFSzE4sWc9*~{@-`jAYW z33fe(AkTZ#xJ2F{fv6FH`5PQC&-E?pEgA2&jZwKf+*U^oMcHYXnraT4%?8)?OYX(( zfvvsEY;DmYHv5Lu(i)?!opEc>HtM6+ZVT`4w-JM#>sI+_FYN5>0~Y`A=vZ(yieM2` zV6hw4TU5fS_;q2A(Z7Xj5%A`VcljCl=X0VUlrx=ecuz`Vx=Q|{nOxnHX9 z?lk2_eXn%T8&~&h+v@JTs8~0`2h)dU!8*SSfc^`|I{jQ!H18w#0@u9wC}w zn#eR!Xrj_Yqlr!vgC-_TESgMcGNs9kCN@nRQZOw5OXM?5OU3L%S}LZcVk!hvA(#rm zR0w@grb1*YM5aPy_MJjXQ^|jg{MX5UgZwx3V+&5JpIMV5dlMOq#*Q7XhC}b~+7FA~ zN$tXW)=|+rD;~^;J^H()`RLK|P(CF=dF-@$D4(7nA3Mq(%qIhHAED{Hpq}z0)=vg{ z!1K!UPV7@XZy(R>2b;1QpAU}Uy9e$`J9vlXL-{zkKtA`xK0lwyEzdpI&&{WBa5=9$ zMdp=9LIb$vshswM@*D^|;OFDC!^9v_3jBN=`;4pKD(Odu!RAmkUNuQ11;1EMH;gMb zSf0j*$BoqyN&H>jk(9 zY#v@Ei8mgH?)1=|8N5?a=uQsasZ!_;hwhZnoff(?f_GX-iXPHM59wlrbTL9QjgU-J z`Uz57hSIa%4Z!bT1IVOTY({$p%}U1trkm$YP`&9LX4B(AuoK3(>Q~S3^Fsw%AiRGO*3egL3Rc?87yTm%3z$q zPDYk8GRnv}Bg+|CNtn*M z+wa*sBwEo8QhZR9Er?chKkUFwIBpRuZrq|Zh42U#x2Rbb(hB#F@85ITjA;}jy(^u0 ze$&j4YcxqfBZg?f!pU@c|E_gBeOPpykC=uQ(-0F45z|mv&=4W;%@#ByA(JuIE~1o#1#vYc2^izqssIsrW;=VPWP<97zCW;fOo^Yzpfo}MbxbLs*L(U-vW?CYr* ziS?WiJrPzXAw_?iDLP|-&O(5q1wf%$7xAQ#s-(pwY|fN`f_7pBXGB2-+H2n65=x_I zX$b5@m!>kib_+4sHJVHf6;@+ENToI)h$#J?RQfM|g{E$h5!{m?BS=Y*5u^}g1kZmb z_3Yihrm4GjgL_!JL7GZkd%jOn@lPNi5coVI5RSipkCEuxa}IsWnyIsyF?FNzp8Vex zT0Vl26eb04@j{Sb$E`Y0?tXO*Ya39qW&)I4)}wQN8k~3e- zyL3!NHpGC>`A7~LOeAmYc>(esr-sWFAmabSBqZ_74kG?v#Q*cpJ0(3vB;xsg zrHKD`kCO2YJbK}IoU^Fj3vga`?pan5{|_GiGT@V%uZaKm!hAR;8Vu$L9+?gt+ZFNu zK0(cADgHmQ{`MSPSWElAqK9WLv5)LL$>p>s%Ul1$?&=}|;4HF~P{>^T`8r=b^u@}eKF)#FaQb$ zK%hAk41i&_F-ooK09+Rgfbe4hxtQp45`vl_ z@?08Q83 z?0u0@z&pJWhb&hHb0&dPGP&`7nhb!S2nImG0Jx0dFu55E2EaMrZ(t)^FaUCYnn^GK z3I@PsKiwr50No#13$phJ20+08nCzEu&Zo!|41mq9OC+3h^F%NJCgRBpajp5p%HANh zz(bxD41j_G@Z6uu5Db8>C-9UQ0RNXV0K!4GXCKmoY*#<%hZq2VBp3h%10Z3JQsbBd zqqJSI%!rE&hk^m{s2ImoC>Q`282N&%ZEBRYjhUNZ0CZ_e1q0wcpd&2$jC_It@QE=1 zekd3KUFrv)^-nMWK5+)X^hf4@K9gEatx+Z(Brz%;dnpyq?=s#Kh<%(KolM^?YUdEM zxCBKW?@5^Sghy2rXr$&uM~cj@UD_stU8BiNVmx(kK&T7w(53%! zg{E#O4BV4Y7)VJd45SbW1Dq+aviO+_P2ClS%TxCO<)^#${0{~HpCtJIz$nC@KtLdn z7y%al@5SHy^A8Hd|J(Ky!$|)4LG+6fy!ihxc`fDtgWm`XF^MUJp4Od60<^E%oRkaL zUNg%=!-7)*KP$k9)qui*kiP+UL%^#5wqN}Da($qGzR|xBmBOVg>C;akm^yRGmHZS0 zi}-&L{}1#SPr3;+ q41iCF0Z_#M!y5B56#viG|K9rBUx(qq`rok;#tM4$#WO$WmHz`RYpzQG delta 3348 zcmb7`X^a#_6vwN2c8(o(U2YL{Pm!w`x~jT+y4!2fFGx^C4hfiGO-~OX%gi3LT#4?8 zSB!}qW&Fk(zy+c)x|xKS@P!0SNIVk!0BYh_Nz@oIDls8ybyfFF&+dYVM-Qf*7g?yIi z#6#)vfkSOaDy>JSr{@Jr-0`QKiS?%1=M^2K_S5a&kfW=+=|0CM8n^up#_C|HRCbWX z-O(^Nu3Fx?+jGpEp3SR!yuqQJrJ`f1MQ>l(A!@ngI<}#+@oj6=GytF*90U+T0AK|G zJXcsa_Vj`UalU${06_f9cnrb??AK$jCB!?zE{(Rgh+8VIx#|z2H)3<=6e-`f)bABH z4ASBdb<2F?A+}`fBK!VCJH+hfiS{(%8+@MJtndZ@96P~&KJ@`Re|jD3+T1Y@W+8<+ z?$Yn6qcIQ%NfFzO!HQ?@Yd!{Lqz!g_^PCY|?c2G>ds>9U5aA%Ysfm|Q^4MUr9vpFO zD~OTq$B1e)k7bN7LOER>E)EZQ`IY5OL9C2g)C>_WOtZFHa^2y6T6Fh2p0-Lu5KWU2 z*RXAoX-KTh?`<=<_y5Ze3wi-q@`|*6bon!nF1G+E^IF*TW$o3&2OfgFvu|2y&%BYq)-!`dW>}CJ#6F~5BXVyY)ssQ2(2qcY zLas7i1;a9BCJ33722}G83CDD-MY5n#h|+QuD`#uLZ3nhoFD=iCZH;oZ_3{MxLg#-Q zzVM}+O!z|0Y~$iv#l_dLOguZ=rq=IWLe;~?d}&Q-dxk9@`)oeM(1s?oAb|!KtfW%BuY@PKm+wFX zlq5(IU9$?NZKQOYng!i5Q--CH94Vlb!QW6Vi&9pBVgqY>%A+|?!&yC5(DkgQ+ZIEE z_p=qe_$jgRWNMqO|l| zSNg5J;w0o90TU`~>oI{i4RaAorC1&>E_uu8rZv=-FXAP>XnO&8I}q>9!{Yf)t37q8hU-i?MhI0?F(Ee^R5!#x~sQZ2q_3Fh$u*hu7V5& znF`9nJoLi(M|o=L^C^%FVTA)&k-+Lcv_{?wpcM|LVX?^(F-i>|V*4C_8VIS;fVKaG zhBMWWw6e&@(6HzxAVd;`91lDs!RV|vaE-7J&-9GYu-%B6VCvQ+(Z%UnK=z~=fz+Ik zlPzyq(HS9oGH^n#&F@jTj_|0}=qlr6^KRJ~CqBvux*EX@Df%bMne_%*cWla7MMEV= zEX(wSmm_kZ)Uy6GDZrM^<=op%lRj|Y6+nQMn6#7WB!HYecR^YoARN#fAlw3wPJb<| be;Ge;w#g@TNZv4^MxE5IPwL3H3Df@qC$j7z diff --git a/app/src/main/java/putBit/app/repositories/AchievementRepository.java b/app/src/main/java/putBit/app/repositories/AchievementRepository.java new file mode 100644 index 0000000..6482c40 --- /dev/null +++ b/app/src/main/java/putBit/app/repositories/AchievementRepository.java @@ -0,0 +1,19 @@ +package putBit.app.repositories; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import putBit.app.models.Achievement; +import putBit.app.models.Benefit; +import putBit.app.models.ExamResult; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public interface AchievementRepository extends JpaRepository { + + Optional> findAchievementsByUserId(int userId); + + Optional> findAchievementsByUserIdNot(int userId); +} diff --git a/app/src/main/java/putBit/app/repositories/BenefitRepository.java b/app/src/main/java/putBit/app/repositories/BenefitRepository.java new file mode 100644 index 0000000..c6a759e --- /dev/null +++ b/app/src/main/java/putBit/app/repositories/BenefitRepository.java @@ -0,0 +1,14 @@ +package putBit.app.repositories; + +import org.springframework.data.jpa.repository.JpaRepository; +import putBit.app.models.Benefit; + +import java.util.List; +import java.util.Optional; + +public interface BenefitRepository extends JpaRepository { + Optional> findBenefitsByUserId(int userId); + + Optional> findBenefitsByUserIdNot(int userId); + +} diff --git a/app/src/main/java/putBit/app/repositories/ExamRepository.java b/app/src/main/java/putBit/app/repositories/ExamRepository.java new file mode 100644 index 0000000..e5e42b1 --- /dev/null +++ b/app/src/main/java/putBit/app/repositories/ExamRepository.java @@ -0,0 +1,11 @@ +package putBit.app.repositories; + +import org.springframework.data.jpa.repository.JpaRepository; +import putBit.app.models.Exam; +import putBit.app.models.User; + +import java.util.Optional; + +public interface ExamRepository extends JpaRepository { + +} diff --git a/app/src/main/java/putBit/app/repositories/ExamResultRepository.java b/app/src/main/java/putBit/app/repositories/ExamResultRepository.java new file mode 100644 index 0000000..2b6ee74 --- /dev/null +++ b/app/src/main/java/putBit/app/repositories/ExamResultRepository.java @@ -0,0 +1,13 @@ +package putBit.app.repositories; + +import org.springframework.data.jpa.repository.JpaRepository; +import putBit.app.models.Exam; +import putBit.app.models.ExamResult; +import putBit.app.models.User; + +import java.util.List; +import java.util.Optional; + +public interface ExamResultRepository extends JpaRepository { + Optional> findByUser(User user); +} diff --git a/app/src/main/java/putBit/app/repositories/OrderRepository.java b/app/src/main/java/putBit/app/repositories/OrderRepository.java new file mode 100644 index 0000000..271f94b --- /dev/null +++ b/app/src/main/java/putBit/app/repositories/OrderRepository.java @@ -0,0 +1,18 @@ +package putBit.app.repositories; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import putBit.app.models.Order; +import putBit.app.models.Training; + +import java.util.List; +import java.util.Optional; + +public interface OrderRepository extends JpaRepository { + @Query(value = "select o.* from orders where " + + "o.user_id = (select u.id from users u where " + + "u.name LIKE %:name% or u.snils like %:snils%) " , nativeQuery = true) + Optional> findByUserInfo(@Param("snils")String snils, @Param("name")String name); + +} diff --git a/app/src/main/java/putBit/app/repositories/TrainingExamRepository.java b/app/src/main/java/putBit/app/repositories/TrainingExamRepository.java new file mode 100644 index 0000000..3376040 --- /dev/null +++ b/app/src/main/java/putBit/app/repositories/TrainingExamRepository.java @@ -0,0 +1,16 @@ +package putBit.app.repositories; + +import org.springframework.data.jpa.repository.JpaRepository; +import putBit.app.models.Benefit; +import putBit.app.models.Order; +import putBit.app.models.TrainingExam; + +import java.util.List; +import java.util.Optional; + +public interface TrainingExamRepository extends JpaRepository { + + Optional> findExamsByTrainingId(int userId); + + Optional> findExamsByTrainingIdNot(int userId); +} diff --git a/app/src/main/java/putBit/app/repositories/TrainingRepository.java b/app/src/main/java/putBit/app/repositories/TrainingRepository.java new file mode 100644 index 0000000..20db99e --- /dev/null +++ b/app/src/main/java/putBit/app/repositories/TrainingRepository.java @@ -0,0 +1,13 @@ +package putBit.app.repositories; + +import org.springframework.data.jpa.repository.JpaRepository; +import putBit.app.models.Training; +import putBit.app.models.User; + +import java.util.List; +import java.util.Optional; + +public interface TrainingRepository extends JpaRepository { + + Optional> findByNumContainingOrTitleContaining(String num, String title); +} diff --git a/app/src/main/java/putBit/app/repositories/UserRepository.java b/app/src/main/java/putBit/app/repositories/UserRepository.java new file mode 100644 index 0000000..a3b6798 --- /dev/null +++ b/app/src/main/java/putBit/app/repositories/UserRepository.java @@ -0,0 +1,15 @@ +package putBit.app.repositories; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import putBit.app.models.User; + +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public interface UserRepository extends JpaRepository { + + Optional findByEmailAndPassword(String email, String password); +}