From fcdf0e776d860404abedcdc99dff6471e6184fdf Mon Sep 17 00:00:00 2001 From: localhorst Date: Sat, 23 May 2020 10:45:14 +0200 Subject: [PATCH] set default img if article is added to listed articles --- .../intern/InternArticleController.java | 41 +++++++++++++++++- .../ecommerce/repos/shop/ImageRepository.java | 20 +++++++++ .../resources/static/img/no_product_img.jpg | Bin 10261 -> 0 bytes 3 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 prototype/src/main/java/org/hso/ecommerce/repos/shop/ImageRepository.java delete mode 100644 prototype/src/main/resources/static/img/no_product_img.jpg diff --git a/prototype/src/main/java/org/hso/ecommerce/controller/intern/InternArticleController.java b/prototype/src/main/java/org/hso/ecommerce/controller/intern/InternArticleController.java index 7a7e7fe..f47f6ca 100644 --- a/prototype/src/main/java/org/hso/ecommerce/controller/intern/InternArticleController.java +++ b/prototype/src/main/java/org/hso/ecommerce/controller/intern/InternArticleController.java @@ -1,13 +1,21 @@ package org.hso.ecommerce.controller.intern; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.List; +import java.util.Optional; + +import javax.imageio.ImageIO; import org.hso.ecommerce.entities.shop.Article; import org.hso.ecommerce.entities.shop.Category; +import org.hso.ecommerce.entities.shop.Image; import org.hso.ecommerce.entities.supplier.ArticleOffer; import org.hso.ecommerce.repos.shop.ArticleRepository; import org.hso.ecommerce.repos.shop.CategoryRepository; +import org.hso.ecommerce.repos.shop.ImageRepository; import org.hso.ecommerce.repos.shop.OffersRepository; import org.hso.ecommerce.repos.warehouse.WarehouseBookingPositionSlotEntryRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -31,6 +39,9 @@ public class InternArticleController { @Autowired private final OffersRepository offersRepository = null; + @Autowired + private final ImageRepository imageRepository = null; + @GetMapping("/") public String internListedArticles(Model model) { @@ -114,15 +125,41 @@ public class InternArticleController { tmpArticle.shouldReorder = false; tmpArticle.title = offeredArticle.title; tmpArticle.warehouseUnitsPerSlot = 1; - tmpArticle.image = articleRepository.findAll().get(0).image; // TODO set any static default image + setDefaultImage(tmpArticle); tmpArticle.related = offeredArticle; - articleRepository.save(tmpArticle); // save new article // return to edit article page return new RedirectView("../" + articleRepository.findArticleIDByRelatedID(offeredArticleID).get()); } + private void setDefaultImage(Article tmpArticle) { + String defaultImagePath = "./data/img/no_product_img.jpg"; // path + name of default img + Optional imageID = imageRepository.findImageByPath(defaultImagePath); // get default img + + if (imageID.isPresent()) { + // default img is in DB + tmpArticle.image = imageRepository.findImageById(imageID.get()); // set default img to new article + } else { + //default img is not in DB + File tmpFile = new File(defaultImagePath); + //test if default img file exits + if (!tmpFile.exists()) { + //fallback if the file not exists + BufferedImage bufferedImage = new BufferedImage(422, 428, BufferedImage.TYPE_INT_RGB); //create new file + try { + ImageIO.write(bufferedImage, "jpg", new File(defaultImagePath)); //save new file on disk + } catch (IOException e) { + e.printStackTrace(); + } + } + Image defaultImage = new Image(); + defaultImage.path = defaultImagePath; //set new file to default img + imageRepository.save(defaultImage); //save default img + tmpArticle.image = defaultImage; //set default img to new article + } + } + public static class UImodelArticles { public String imgPath; diff --git a/prototype/src/main/java/org/hso/ecommerce/repos/shop/ImageRepository.java b/prototype/src/main/java/org/hso/ecommerce/repos/shop/ImageRepository.java new file mode 100644 index 0000000..bcef6be --- /dev/null +++ b/prototype/src/main/java/org/hso/ecommerce/repos/shop/ImageRepository.java @@ -0,0 +1,20 @@ +package org.hso.ecommerce.repos.shop; + +import org.hso.ecommerce.entities.shop.Image; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface ImageRepository extends JpaRepository { + + @Query("SELECT i.id FROM Image i WHERE i.path = :path") + Optional findImageByPath(@Param("path") String path); + + @Query("SELECT i FROM Image i WHERE i.id = :imageId") + Image findImageById(@Param("imageId") long imageId); + +} diff --git a/prototype/src/main/resources/static/img/no_product_img.jpg b/prototype/src/main/resources/static/img/no_product_img.jpg deleted file mode 100644 index f898b51fd31f83c3457a480dc88abd647cdf0368..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10261 zcmeHNXIxZEvOg1 z0cj93gS9_c++*N-Jh33o0*e@^h@$Ift)pi|z)4F;NlHj5f|8Qbl7}Sa4oS=4B$W=y zC?1lM1-T)4-^ZcIQ3$jO@?GmL_zm&{Q`AC1i(nKM5W{|0hXlVOf59w2Foh2S{jLW| zk^O-KX($RPqfq|Hzs8877vv^BNGGjeoh|l z{hVA}IJ|@qj!%rAi%VERL`+gjR#uirNa={8^kE4ZS!s$A2pWy1rJ-e~qhpum<>Hn8 zUlX|*z@k8lc3}`c0E&gcun=+^zysQepv)))?D|d+C=8B3QlZe)G$6x$3?))9C>(}B zz~LbG1+X80V-bwJQff#hV|yw-UuNkDQa*}by|RVHWMCODX=QEW=;Z9;>gMi2^bZIO3O*MS6@BqiOl(|yYFhf0 zjH}l&vkD4}ic4;mmX%jk*W7?M5No!ks$J5TP?iYhY!!KXG9vPkb?cMbInc2Ay z^DC=s>z_9^zie$&{DOd!`jh@!zp$WRP&gb0r=s`;fd+vEhJ_<|rI3tj##HvcOnlN2 zC}wq1eq{@qU&dsa#ldfYniVfQC9pzqZO^lR&9TV;lV^W*?03IL0a_RYoIDs7Pysf# zg$u%||1AG@4ES@LYcCf2=-;&sD4!VhU3@#;SNqD9=lPAYu+F2WTDRg;`@S8XA_G1I z=$p4%enlN)NqL`HZgjiF5E*#a@~v=dXrR8`DQT9v z6unyt^(fzzs80->l<2Tcn|S=iOeE->;sjm&)`ePbBlT*I`>_VR+UBC&pZqlgE^%wIK`hZnp zfEdv-;WrvO7pgkpU#n8Ays*he>d8Q|-s6wg!$fZfc}qPsxPG3^IPzvAf5Mw0sYhq1v0cygHu9)G zgsn{Gn(ls-U{bc$uM}Br=}8Gm)_-*`ZmPzN2Qsc!2hk0ps2I1242wu6<&YbJ!Nj zdRBPZ?RS$&08v_*SR=ujd|dQ3C_NERtUr%zp?cc`NsP?Rd8J?dY{UYM0Pk*W>tWoh~~n zifI!q3+efdc@ZmJ`w#GSp3D?lH9Yrr?bGMk;!_RvZZ~)@Y8ZZn%n3t>b(EQFuMACH zK~pW4`{{*wHhJcl#U5R@E2uEy>$%y*_w{8gX^Q~0(qFSV&^h98TygW3T$;n?L66Ee z(S)K;L7&%I4hLCc-d3=w>4w$!s4@(>rlO1s&K5N>aNIifk(15wA`Cyg|J1i5@5sQN zs4Y%8Q-zVFw@sG&8i`pzQw4{HNGCsEM(Jq6+e+tx)q95m+U@e7@xuRdpdg-TCyLL6G}KWEKCym7^aCaBug(Ipez! z6G`osU+9XeVL}^zT`irY+rr`FW+D@K5*7P8>ltd`y ztzI*$m83}sjLmk<&qIJVCc8Zzc{}a$H-_PzyZcgXi-+Psg)FxFi6a_44;K(NV{N$4wm7G=Kou04jhF5U_V7 z`lt~IhCdIze_wCBq@3RYU{IW*>+k#jX$zf`Gtm(|EaN~fRYxB`Fuj4C2C;mQzYhgp z12MCso4pf=D?lvf2O0?C*OYdL?|6ZNUH330YXX@4%uF;u-ze!4&h;1U@C$Zy^E(Uj z$bvk0r?Xz5eyG)V>_oxmDfp~s0BGADQ9Pt|_A)mGYdl!E03ARNFaihw4sZYh0C&I> zOwGi>+6!zU0w!R;`ah88+>vu_e05Nbfa4 zXw?A#F-|702><|98UTDvA(MCV$>gsEV170R0L@;%%X{YmfZ}JcJ>~Z{d@cYmL<7Ks zw%^+vt^z=93;?i?_}Kf|?~OxA<)AKL>bZIo0O+g%fT5Eo2@C?JLqBuEec;01OP(m9_)cI#2!ldUU}DAmd!qQWll&ts!N4%!68>uPv;EKd zKNkTwM*k2+n;GjQV39`OOaa)Wc6*NtRE!+p&IYNQO-nCd83ZtC_i&&<9E~dzKVITA z2xus$BV*T5?bacCe7#u?+3A)%dea)D$;W(Gs2rqj%5+3m97>^4f0W_c^}gXc$Wf>?qVd>n=h*=jYSQ@B;9+vN<_NgxL{eN=KyzNUFm@&C%^t8 zS#8fjEcJ_ZiVP%EwwWW%kecZO*JIu*PaUL6WbmmXUh3i~p=wfdgLFFyGr;^lU)L>O zV`_TCE}S9*(&3!&qp&%uG;rK=M_^N+DzIg*=imJ}pewL42YobW2oxUtgD%>x5~}74 zqDe*X`eg*K{jnQMJKz^|AQ>@$xr^sA;>eURobovNw>E)Ny^Kk&>S_yB6qw~mnYv#I zoXf<4f}^?m)n%u_NM_1*fFb=GLI(GfsEPS*I)~B{SMtG`e3nKN{x=+de)<0z0S54e zDuDqY;Pn~;1_$re_6Sb7VMAaUnPf1`;8h?_j=;jp$B$R_Ny!6WwJ7if3_(E2fbXLP zx#z8hq^bZu@g<=b_7dC$fx%z-GPb7Q$u35)uak;1zTl6I2?Xl43bX~Z##MFaX_=}| zPS9pmuE(r>RXDWIF=9=y&<|UV&A{+>=e9*(`O;>Q|;b-rc-B)I%dg0%zr>5;(JNxDOQ|R zg=-t4Bl2;dWLs_1v#CaHC~?0@80+5ed+B}Ccn53cEiK;l%^sNe4c}@1<1=vql1hRh z7fNe-9gR7YZ7XUOWQWekB%ciwQ&)W|#1nZ|}L#c*)37xMPN!;=u}kUm25Z;46D^_JzVXC%$leVQV(;J$qs| zzV6^hs*buL)%)*a4z+F9dDq?t9%6MGAd6kmY=`zafCjdFtC}lr4t2EyLzAo$!GBbV z@%;v|SZP3;B-wKRI`(b^b0&5ENJ)UvzV_VtF!wiN6`;ocH&k>tphD)gD3;Ir+pRit z%h;Fe^|uqQAM=knDvvh=8Q8=(HY8p7-}ss7h?NvqZ*Li2ppI?IF6-~kHphl=nC=E! zhcKsJjq>ej8#&3Wu3M$n9^F}T-jEDrjDhyLJziT#aMWZ+WTnDA_v(0qVE zt8qsAt&H|YN$#6#^C~{K0?9yY*C%EVClTp7>0*0Is6F`mO20n2{Y|H}i)m{f@6UVL z1aZeRhA^7tdjAy4$RgRa?X!Gg-0o*Rc+@krsh-d-cnd~3B48nZ*l_pu)-8CZP=QD< z{Syx8UpeF`y8?nhBA{@p@5(6mo{TUIuT%t1&Dh@8kBLuGI-d~9FGDI&Rd)dQM$3=Q zfm8uEhg1_8xVZGi&V-?CDuwUZpgW9PU8^37S(r-#Sb1oWss%N?XbzIDB?|u z8?G;&8gXsct9e=;vy~NfNh{2_%iN6K+04juJmNQ_e%oXFo;^v`x$XzgJUpCJ-dC`^ z@O4aG`nQkj3Rk{d(%iGW%47Kn5h$TKOtI_=9RjHcBg)s zH_bdVbLJAl#{FXtLd)KD$K0ahH^nD_6H_vf{jPr2uU+X8^-WEnOWkcs!QJPRkwr*} zRMWigbkuVR1^OWguFCpg;YoAK@cT~3#->tGGx%!I(Ksx@`4!@F&JjWc zom#%Zg%-j_uc+9F;S9kWUH{} z`?10qE@Ng#`+6^7Fm7WNpDiw67S)0)zSz0wSrb~~YX-lZZ{%vEz1tST5$26^cyDGu zfbKiZdQCbi+iAhrGNUl&McxX`El99pY3Fj^Q-;F$Q|imJ=k*!xIHtCanR}ntzn#=_ z?CV?*uS=_ew)5%Tkb`t1&Ou`Y$ol2^%;;B^r0k~TO`7_HJzK}TV{+x(V*KX4hE8to ztJ&5WlelHhFL0%`PJU5q!nfggk-1*{B`JR=Z7nV7iD7%!<;QGqg-y_FUaDBC8!tE= zw50;fu9d!HvuNS>7mRX+ol9Q#1edosh|WM$I@MXYU(PxhzQ{ z3{0(1Ug$p;EkuQvvS@$%iaYp8mG&V2smN&C$lxwjQEOIbMWh(GN5TZ4-hk$ z-)lvC+8K^G*7pU4<+e2#0ivK?*rle(Vd(fliIH%)_tTHLNJr(L?co=pNRUF9i9cpa<;^mo`+hevxG~! zsn9Q{VDCJPOLKlS)jboV=sh=YI)9LNKp?9BNmX-OePoG^IyWO<*LAiudDHddIGd5q zJC>cWldcVq`y7VxQ$=di#-osYIh7(Xa^c-X!+j{$6bw^t{?*eO#Bh#Al%3~=R=)l` zdlVFd6phkQnxso&3t4{sh~v>w*M^!i^T=q~15|34+NYmoK)rdJnOr388OoU6j(S!* zth#i&vK+%c?#%f_29At3F&s~63GzchgPLI@u@;&sM|Q3%hXjY;>p;^mdivaK2=6%G zH1TMhN9OIQnW(TIW;I0X?kqQ!lqxq)Z=vGidA6=jD*|mxS%* z3MTEJD3fs5gZ&w!93N>Vu9jxOBl=^x^71dEw!|Yg6vZqbC0#-Rd__t!!RPye+^f3v z@`m)=pATR|P;f%<4eUkLAwfT@fGB>p^6<&K{Ta{EpBCkPS-jcS7< z+M(dJ>M>m>^o*iJIQKnp?fC#10Cz5oMyI@^oBJNZOIp2?X>jM9x+LLax@g{nT+Oc-0$j{pp@-s-UIvb=T0$h&4CldSsv6zw)2sfm=_ zyJdY=GsP@7#%A*YgQN!>@#yn6=@%rGccMtMqb}`}&EfN0BA?%1Tne2Ey1T;KxEK+g zF3KFvNXw$cPzqRyR0e~=nfkEGZnxRQ2Ht#QR3T%fRZsFXPkl-?Fz42RqpIcnqf$!= zhZFg3azgu%2WlC60Mw=TS~*nhQYl9}ApBk`1JyrM)V=f`ld6aR^Z5@)KzA>sXv!y} zF7RD>3gl;;(fIJ6F^>fAOH}bGx^PB4e2Us0gDM=O2Sn-t;d;18Jv{jAiQ`gGK&l!p zRSll{oegXUHKXy7ssKjscZGXApa>3B_!~duR4KV)IjPC=f;V}R{<&T5n zpnq(kIQvI!dhp0!V)A#r{~<^I&XPX|`aeZL<)55cDW_V@|9GnX&LNHgb2l*8gG0f8 zy4X7zfcI{^7%9qumXyDYi>Pc-B}jtDf`OH(pQ)Y-=G)4|0mvp#xxQSsA@R)?KU+~a zzty0(B~4a^775+RquQQodfX)Kv!t}($H(~yVubz@;hRZ;aC3lIHNWO)W<|g6(X<5o zrTb52%4Gbz7k3x3jNx`hbuUg^d^j?5{ewJ7W^5Yi?RB2s)C>5MmjG@)A$=N=L$*l;X8=Mk+c;A>BB?9?vK zh!yR)gH#r3*E=2OVC}@^cIHm3rQ)?Rdm%jUnXfA0XLJNDo$n$L#53N*ZaMj#;^AHD zuT^Oy@2;QRx`O6||@_S*l7p zc%CcGVBpyoa+x_$!Am#&KSYbBqpMWr!+>4w*;_1KRGW+y0=WH8CB6tBXj8BdNfmpQ zQj>Y5a}}4zsGBNSlV{+NAavlZr0L~!682)>|6tpA~k0obn(dX>+dL}%>-Xt z$Yoa~(L5LWh*TzS_YL#8IQRiu*$i!GBS526uO_+7?zW`F#a#D(+^mAF``E!s6LIL4 zhaA0zbL=BheAexn<4OS@ON9Yh!v)J~7roeyln&Ar8daZp>E;xCagrg+J>OF^Bb!Y; zJ36ATj5(IW=gkq(AbG3=G3hGtu1o_si)QyT9S!VU+g)lF>a)8=ly%bubs7j)!@ZEx z3O93=dfRoDe5EUoKGUtJqzc13loUhP&n6L!;wPJOO;}Cn+hJ+RTT(MJg8KU@pR!wmkpP4 SwceM70g6f$Jd-2jk^cgCe6ub9