package Ġcom . my world . s we alth . web . service Ċ Ċ import Ġcom . my world . s we alth . common . Api Result Ċ import Ġcom . my world . s we alth . common . Result Util Ċ import Ġcom . my world . s we alth . data . entity . Text Ċ import Ġcom . my world . s we alth . data . model . Text Outline Ċ import Ġcom . my world . s we alth . data . repository . Text Repository Ċ import Ġcom . my world . s we alth . data . repository . Word cloud Repository Ċ import Ġorg . apache . commons . io . IO Utils Ċ import Ġorg . apache . logging . log 4 j . Log Manager Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . data . domain . Page Request Ċ import Ġorg . springframework . data . domain . Page able Ċ import Ġorg . springframework . data . domain . Sort Ċ import Ġorg . springframework . jdbc . core . Bean Property Row Mapper Ċ import Ġorg . springframework . jdbc . core . Jdbc Template Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . io . ByteArray InputStream Ċ import Ġjava . io . IOException Ċ import Ġjavax . servlet . http . HttpServletResponse Ċ Ċ @ Service Ċ class ĠText ServiceImpl Ġ: ĠText Service Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLog Manager . getRoot Logger () ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtext Repository : ĠText Repository ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġword cloud Repository : ĠWord cloud Repository ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġjdbc Template : ĠJdbc Template ĊĊĠĠĠ Ġoverride Ġfun Ġdetail ( id : ĠString ): ĠApi Result < Any ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġtext Repository . findById ( id ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( text . isPresent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult Util . success ( data Ġ= Ġtext ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult Util . failure ( code Ġ= Ġ- 2 , Ġmsg Ġ= Ġ" æ²¡æľī æī¾åĪ° æķ°æį® ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġword cloud ( id : ĠString , Ġresponse : ĠHttpServletResponse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġword cloud Repository . findById ( id ) ĊĠĠĠĠĠĠĠ Ġif Ġ( file . isPresent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIO Utils . copy ( ByteArray InputStream ( file . get (). image ), Ġresponse . output Stream ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . contentType Ġ= Ġ" image / png " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġ ä½ľä¸º text Category çļĦ è¡¥ åħħ ï¼Į ä½¿çĶ¨ jdbc Template æŁ¥è¯¢ ĊĠĠĠ Ġoverride Ġfun Ġtext More ( bank Name : ĠString ?, ĠpageSize : ĠInt , Ġpage Index : ĠInt ): ĠApi Result < *> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġpage Index Ġ* ĠpageSize ĊĠĠĠĠĠĠĠ Ġval Ġsql Count Ġ= Ġif Ġ( bank Name . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" SELECT Ġcount (*) ĠFROM Ġtext ĠWHERE Ġ( type _ main Ġ= Ġ' åħ¬ åĳĬ ') ĠAND Ġ( NOT Ġtype _ next ĠLIKE Ġ'% æĭ Ľ èģ ĺ % ') ĠAND Ġ( NOT Ġtype _ next ĠLIKE Ġ'% éĩĩ è´Ń % ')" ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" SELECT Ġcount (*) ĠFROM Ġtext ĠWHERE Ġ( bank _ name Ġ= Ġ'$ bank Name ') ĠAND Ġ( type _ main Ġ= Ġ' åħ¬ åĳĬ ') ĠAND Ġ( NOT Ġtype _ next ĠLIKE Ġ'% æĭ Ľ èģ ĺ % ') ĠAND Ġ( NOT Ġtype _ next ĠLIKE Ġ'% éĩĩ è´Ń % ')" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġtotal Count Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ( page Index Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Count Ġ= Ġjdbc Template . query For Object ( sql Count , ĠInteger :: class . java ) Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( total Count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResult Util . failure (- 2 , Ġ" æ²¡æľī æķ°æį® ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsql Ġ= Ġif Ġ( bank Name . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" SELECT Ġ* ĠFROM Ġtext ĠWHERE Ġ( type _ main Ġ= Ġ' åħ¬ åĳĬ ') ĠAND Ġ( NOT Ġtype _ next ĠLIKE Ġ'% æĭ Ľ èģ ĺ % ') ĠAND Ġ( NOT Ġtype _ next ĠLIKE Ġ'% éĩĩ è´Ń % ') ĠORDER ĠBY Ġcreate _ time ĠDESC Ġlimit Ġ$ start ,$ pageSize " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" SELECT Ġ* ĠFROM Ġtext ĠWHERE Ġ( bank _ name Ġ= Ġ'$ bank Name ') ĠAND Ġ( type _ main Ġ= Ġ' åħ¬ åĳĬ ') ĠAND Ġ( NOT Ġtype _ next ĠLIKE Ġ'% æĭ Ľ èģ ĺ % ') ĠAND Ġ( NOT Ġtype _ next ĠLIKE Ġ'% éĩĩ è´Ń % ') ĠORDER ĠBY Ġcreate _ time ĠDESC Ġlimit Ġ$ start ,$ pageSize " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtext Important Paged : ĠMutable List < Text > Ġ= Ġjdbc Template . query ( sql , ĠBean Property Row Mapper ( Text :: class . java )) ĊĊĠĠĠĠĠĠĠ Ġval Ġtexts List Ġ= Ġtext sTo Text Out lines ( text Important Paged ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResult Util . success ( num Ġ= Ġtotal Count . to Long (), Ġdata Ġ= Ġtexts List ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtext Category ( bank Name : ĠString ?, Ġkey one : ĠString , Ġkey two : ĠString ?, ĠpageSize : ĠInt , Ġpage Index : ĠInt ): ĠApi Result < *> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( key one Ġ== Ġ" åħ¬ åĳĬ " Ġ&& Ġkey two Ġ== Ġ" åħ¶ä»ĸ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtext More ( bank Name Ġ= Ġbank Name , Ġpage Index Ġ= Ġpage Index , ĠpageSize Ġ= ĠpageSize ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpage able : ĠPage able Ġ= ĠPage Request . of ( page Index , ĠpageSize , ĠSort . Direction . DESC , Ġ" create Time ") ĊĠĠĠĠĠĠĠ Ġif Ġ( key two . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Paged Ġ= Ġif Ġ( bank Name . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Repository . findBy Type Main ( type Main Ġ= Ġkey one , Ġpage able Ġ= Ġpage able ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Repository . findBy Bank Name And Type Main ( bank Name Ġ= Ġbank Name , Ġtype Main Ġ= Ġkey one , Ġpage able Ġ= Ġpage able ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtexts List Ġ= Ġtext sTo Text Out lines ( text Paged . content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResult Util . success ( num Ġ= Ġtext Paged . total Elements , Ġdata Ġ= Ġtexts List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtext Paged Ġ= Ġif Ġ( bank Name . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Repository . findBy Type Main And Type Next Containing ( type Main Ġ= Ġkey one , Ġtype Next Ġ= Ġkey two , Ġpage able Ġ= Ġpage able ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Repository . findBy Bank Name And Type Main And Type Next Containing ( bank Name Ġ= Ġbank Name , Ġtype Main Ġ= Ġkey one , Ġtype Next Ġ= Ġkey two , Ġpage able Ġ= Ġpage able ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtexts List Ġ= Ġtext sTo Text Out lines ( text Paged . content ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResult Util . success ( num Ġ= Ġtext Paged . total Elements , Ġdata Ġ= Ġtexts List ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtext Finance ( bank Name : ĠString ?, Ġkey one : ĠString , Ġkey two : ĠString , ĠpageSize : ĠInt , Ġpage Index : ĠInt ): ĠApi Result < *> ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpage able : ĠPage able Ġ= ĠPage Request . of ( page Index , ĠpageSize , ĠSort . Direction . DESC , Ġ" create Time ") ĊĠĠĠĠĠĠĠ Ġval Ġtext Paged Ġ= Ġif Ġ( bank Name . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Repository . findBy Type Main And Type Next And Type One ( type Main Ġ= Ġ" ä¸ļåĬ¡ ", Ġtype Next Ġ= Ġkey one , Ġtype One Ġ= Ġkey two , Ġpage able Ġ= Ġpage able ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Repository . findBy Bank Name And Type Main And Type Next And Type One ( bank Name Ġ= Ġbank Name , Ġtype Main Ġ= Ġ" ä¸ļåĬ¡ ", Ġtype Next Ġ= Ġkey one , Ġtype One Ġ= Ġkey two , Ġpage able Ġ= Ġpage able ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġreturn ĠResult Util . failure (- 2 , Ġ" æ²¡æľī æķ°æį® ") ĊĠĠĠĠĠĠĠ Ġval Ġtexts List Ġ= Ġtext sTo Text Out lines ( text Paged . content ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResult Util . success ( num Ġ= Ġtext Paged . total Elements , Ġdata Ġ= Ġtexts List ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġtext sTo Text Out lines ( texts : ĠList < Text >): ĠMutable List < Text Outline > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Outline List : ĠMutable List < Text Outline > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( text Ġin Ġtexts ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Outline Ġ= ĠText Outline ( id Ġ= Ġtext . id , Ġname Ġ= Ġtext . name , Ġbank Name Ġ= Ġtext . bank Name , Ġdate Ġ= Ġtext . date , Ġtype Main Ġ= Ġtext . type Main , Ġtype Next Ġ= Ġtext . type Next , Ġphotos Ġ= Ġtext . photos ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Outline List . add ( text Outline ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtext Outline List ĊĠĠĠ Ġ} Ċ } Ċ