/* Ċ Ġ* ĠTencent Ġis Ġplease d Ġto Ġsupport Ġthe Ġopen Ġsource Ġcommunity Ġby Ġmaking ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġavailable . Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠTH L ĠA 2 9 ĠLimited , Ġa ĠTencent Ġcompany . Ġ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠB K - CI Ġ èĵĿ é² ¸ æĮģ ç»Ń éĽĨ æĪĲ å¹³åı° Ġis Ġlicensed Ġunder Ġthe ĠMIT Ġlicense . Ċ Ġ* Ċ Ġ* ĠA Ġcopy Ġof Ġthe ĠMIT ĠLicense Ġis Ġincluded Ġin Ġthis Ġfile . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠTerms Ġof Ġthe ĠMIT ĠLicense : Ċ Ġ* Ġ------------------------------------------------ --- Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ċ Ġ* Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ġto Ġuse , Ġcopy , Ċ Ġ* Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe Ċ Ġ* ĠSoftware Ġis Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT Ċ Ġ* ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN Ċ Ġ* ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , Ċ Ġ* ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE Ċ Ġ* ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . tencent . devops . store . service . common . impl Ċ Ċ import Ġcom . tencent . devops . common . api . constant . Common Message Code Ċ import Ġcom . tencent . devops . common . api . pojo . Result Ċ import Ġcom . tencent . devops . common . api . util . UUID Util Ċ import Ġcom . tencent . devops . common . api . util . timestamp milli Ċ import Ġcom . tencent . devops . common . service . utils . Message Code Util Ċ import Ġcom . tencent . devops . store . constant . Store Message Code Ċ import Ġcom . tencent . devops . store . dao . common . Label Dao Ċ import Ġcom . tencent . devops . store . pojo . common . KEY _ CREATE _ TIME Ċ import Ġcom . tencent . devops . store . pojo . common . KEY _ LABEL _ CODE Ċ import Ġcom . tencent . devops . store . pojo . common . KEY _ LABEL _ ID Ċ import Ġcom . tencent . devops . store . pojo . common . KEY _ LABEL _ NAME Ċ import Ġcom . tencent . devops . store . pojo . common . KEY _ LABEL _ TYPE Ċ import Ġcom . tencent . devops . store . pojo . common . KEY _ UPDATE _ TIME Ċ import Ġcom . tencent . devops . store . pojo . common . Label Ċ import Ġcom . tencent . devops . store . pojo . common . Label Request Ċ import Ġcom . tencent . devops . store . pojo . common . enums . Store TypeEnum Ċ import Ġcom . tencent . devops . store . service . common . Label Service Ċ import Ġorg . jooq . DSL Context Ċ import Ġorg . jooq . Record Ċ import Ġorg . jooq . impl . DSL Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . time . LocalDateTime Ċ Ċ /** Ċ Ġ* Ġ æłĩçŃ¾ ä¸ļåĬ¡ éĢ»è¾ĳ ç±» Ċ Ġ* Ċ Ġ* Ġsince : Ġ 2 0 1 9 - 0 3 - 2 2 Ċ Ġ*/ Ċ @ Service Ċ class ĠLabel ServiceImpl Ġ@ Autowired Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġd sl Context : ĠDSL Context , ĊĠĠĠ Ġprivate Ġval Ġlabel Dao : ĠLabel Dao Ċ ) Ġ: ĠLabel Service Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( Label ServiceImpl :: class . java ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ æīĢæľī æłĩçŃ¾ ä¿¡æģ¯ ĊĠĠĠĠ Ġ* Ġ@ param Ġtype Ġ 0 : æıĴä»¶ Ġ 1 ï¼ļ æ¨¡æĿ¿ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠgetAll Label ( type : ĠByte ): ĠResult < List < Label > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġatom Label List Ġ= Ġlabel Dao . getAll Label ( dsl Context , Ġtype )?. map Ġ{ Ġlabel Dao . convert ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġatom Label List ?. sortBy Ġ{ Ġit . label Name Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( atom Label List ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® id èİ·åıĸ æłĩçŃ¾ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġget Label ( id : ĠString ): ĠResult < Label ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlabel Record Ġ= Ġlabel Dao . getLabel ( dsl Context , Ġid ) ĊĠĠĠĠĠĠĠ Ġlogger . info (" the Ġpipeline Container Record Ġis Ġ: {}", Ġlabel Record ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( label Record Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Dao . convert ( label Record ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ä¿ĿåŃĺ æłĩçŃ¾ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġsave Label ( label Request : ĠLabel Request , Ġtype : ĠByte ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" the Ġsave ĠLabel Request Ġis :$ label Request , type Ġis :$ type ") ĊĠĠĠĠĠĠĠ Ġval Ġlabel Code Ġ= Ġlabel Request . label Code ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ æłĩçŃ¾ ä»£çłģ æĺ¯åĲ¦ åŃĺåľ¨ ĊĠĠĠĠĠĠĠ Ġval Ġcode Count Ġ= Ġlabel Dao . count By Code ( dsl Context , Ġlabel Code , Ġtype ) ĊĠĠĠĠĠĠĠ Ġif Ġ( code Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĬ Ľ åĩº éĶĻè¯¯ æıĲç¤º ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Message Code . PARAMETER _ IS _ EXIST , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( label Code ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlabel Name Ġ= Ġlabel Request . label Name ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ æłĩçŃ¾ åĲįç§° æĺ¯åĲ¦ åŃĺåľ¨ ĊĠĠĠĠĠĠĠ Ġval Ġname Count Ġ= Ġlabel Dao . count ByName ( dsl Context , Ġlabel Name , Ġtype ) ĊĠĠĠĠĠĠĠ Ġif Ġ( name Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĬ Ľ åĩº éĶĻè¯¯ æıĲç¤º ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Message Code . PARAMETER _ IS _ EXIST , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( label Name ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= ĠUUID Util . generate () ĊĠĠĠĠĠĠĠ Ġlabel Dao . add ( dsl Context , Ġid , Ġlabel Request , Ġtype ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæĽ´æĸ° æłĩçŃ¾ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġupdate Label ( id : ĠString , Ġlabel Request : ĠLabel Request , Ġtype : ĠByte ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" the Ġupdate Ġid Ġis Ġ: $ id , the Ġupdate Ġlabel Request Ġis :$ label Request , type Ġis :$ type ") ĊĠĠĠĠĠĠĠ Ġval Ġlabel Code Ġ= Ġlabel Request . label Code ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ æłĩçŃ¾ æĺ¯åĲ¦ åŃĺåľ¨ ĊĠĠĠĠĠĠĠ Ġval Ġcode Count Ġ= Ġlabel Dao . count By Code ( dsl Context , Ġlabel Code , Ġtype ) ĊĠĠĠĠĠĠĠ Ġif Ġ( code Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ æĽ´æĸ° æłĩçŃ¾ åĲįç§° æĺ¯åĲ¦ å±ŀ äºİ èĩª å·² ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= Ġlabel Dao . getLabel ( dsl Context , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġlabel Ġ&& Ġlabel Code Ġ!= Ġlabel . label Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĬ Ľ åĩº éĶĻè¯¯ æıĲç¤º ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Message Code . PARAMETER _ IS _ EXIST , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( label Code ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlabel Name Ġ= Ġlabel Request . label Name ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ ç±»åŀĭ æłĩçŃ¾ æĺ¯åĲ¦ åŃĺåľ¨ ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġlabel Dao . count ByName ( dsl Context , Ġlabel Name , Ġtype ) ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ æĽ´æĸ° çļĦ æłĩçŃ¾ åĲįç§° æĺ¯åĲ¦ å±ŀ äºİ èĩª å·² ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= Ġlabel Dao . getLabel ( dsl Context , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġlabel Ġ&& Ġlabel Name Ġ!= Ġlabel . label Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĬ Ľ åĩº éĶĻè¯¯ æıĲç¤º ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Message Code . PARAMETER _ IS _ EXIST , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( label Name ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlabel Dao . update ( dsl Context , Ġid , Ġlabel Request ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® id åĪłéĻ¤ æłĩçŃ¾ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġdelete Label ( id : ĠString ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" the Ġdelete Ġid Ġis Ġ: $ id ") ĊĠĠĠĠĠĠĠ Ġd sl Context . transaction Ġ{ Ġt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠDSL . using ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Dao . delete ( context , Ġid ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġä¸º æłĩçŃ¾ éĽĨåĲĪ æ·»åĬł æłĩçŃ¾ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġadd Label To Label List ( it : ĠRecord , Ġlabel List : ĠMutable List < Label >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlabel Code Ġ= Ġit [ KEY _ LABEL _ CODE ] Ġas ĠString ĊĠĠĠĠĠĠĠ Ġval Ġlabel Name Ġ= Ġit [ KEY _ LABEL _ NAME ] Ġas ĠString ĊĠĠĠĠĠĠĠ Ġval Ġlabel Lan Name Ġ= ĠMessage Code Util . getCode Lan Message ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Code Ġ= Ġ"${ Store Message Code . MSG _ CODE _ STORE _ LABEL _ PREFIX }$ label Code ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdefault Message Ġ= Ġlabel Name ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġlabel List . add ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġit [ KEY _ LABEL _ ID ] Ġas ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Code Ġ= Ġlabel Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Name Ġ= Ġlabel Lan Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Type Ġ= ĠStore TypeEnum . get Store Type (( it [ KEY _ LABEL _ TYPE ] Ġas ĠByte ). toInt ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcreateTime Ġ= Ġ( it [ KEY _ CREATE _ TIME ] Ġas ĠLocalDateTime ). timestamp milli (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Time Ġ= Ġ( it [ KEY _ UPDATE _ TIME ] Ġas ĠLocalDateTime ). timestamp milli () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ