/* Ċ Ġ* Ġ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 . stream . service Ċ Ċ import Ġcom . tencent . devops . common . api . pojo . Page Ċ import Ġcom . tencent . devops . common . api . util . Page Util Ċ import Ġcom . tencent . devops . stream . dao . Stream Pipeline Branch Dao Ċ import Ġcom . tencent . devops . stream . pojo . enums . Stream Branches Order Ċ import Ġcom . tencent . devops . stream . pojo . enums . Stream Sort Asc Or Desc Ċ import Ġorg . jooq . DSL Context Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Service Ċ Ċ @ Service Ċ class ĠStream Pipeline Branch Service Ġ@ Autowired Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġd sl Context : ĠDSL Context , ĊĠĠĠ Ġprivate Ġval Ġstream Pipeline Branch Dao : ĠStream Pipeline Branch Dao Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġsave OrUpdate ( ĊĠĠĠĠĠĠĠ Ġgit ProjectId : ĠLong , ĊĠĠĠĠĠĠĠ Ġpipeline Id : ĠString , ĊĠĠĠĠĠĠĠ Ġbranch : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstream Pipeline Branch Dao . save OrUpdate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġd sl Context , Ġgit ProjectId Ġ= Ġgit ProjectId , Ġpipeline Id Ġ= Ġpipeline Id , Ġbranch Ġ= Ġbranch ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Branch ( ĊĠĠĠĠĠĠĠ Ġgit ProjectId : ĠLong , ĊĠĠĠĠĠĠĠ Ġpipeline Id : ĠString , ĊĠĠĠĠĠĠĠ Ġbranch : ĠString ? ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( branch . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstream Pipeline Branch Dao . delete Pipeline ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġd sl Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgit ProjectId Ġ= Ġgit ProjectId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Id Ġ= Ġpipeline Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstream Pipeline Branch Dao . delete Branch ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġd sl Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgit ProjectId Ġ= Ġgit ProjectId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Id Ġ= Ġpipeline Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbranch Ġ= Ġbranch ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Branch Exist ( ĊĠĠĠĠĠĠĠ Ġgit ProjectId : ĠLong , ĊĠĠĠĠĠĠĠ Ġpipeline Id : ĠString ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstream Pipeline Branch Dao . pipeline Branch Count ( dsl Context , Ġgit ProjectId , Ġpipeline Id ) Ġ> Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Branch P ipelines ( ĊĠĠĠĠĠĠĠ Ġgit ProjectId : ĠLong , ĊĠĠĠĠĠĠĠ Ġbranch : ĠString ĊĠĠĠ Ġ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstream Pipeline Branch Dao . get Branch P ipelines ( dsl Context , Ġgit ProjectId , Ġbranch ). map Ġ{ Ġit . pipeline Id Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Project Branches ( ĊĠĠĠĠĠĠĠ Ġgit ProjectId : ĠLong , ĊĠĠĠĠĠĠĠ Ġpipeline Id : ĠString , ĊĠĠĠĠĠĠĠ Ġsearch : ĠString ?, ĊĠĠĠĠĠĠĠ Ġpage : ĠInt , ĊĠĠĠĠĠĠĠ ĠpageSize : ĠInt , ĊĠĠĠĠĠĠĠ ĠorderBy : ĠStream Branches Order , ĊĠĠĠĠĠĠĠ Ġsort : ĠStream Sort Asc Or Desc ĊĠĠĠ Ġ): ĠPage < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlimit Ġ= ĠPage Util . convert PageSize To SQL Limit ( page , ĠpageSize ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġstream Pipeline Branch Dao . getProject Pipeline Count ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context , Ġgit ProjectId , Ġpipeline Id , Ġsearch , Ġlimit , ĠorderBy , Ġsort ĊĠĠĠĠĠĠĠ Ġ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPage ( 0 , Ġ 0 , Ġ 0 , Ġempty List ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġstream Pipeline Branch Dao . getProject Pipeline ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context , Ġgit ProjectId , Ġpipeline Id , Ġsearch , Ġlimit , ĠorderBy , Ġsort ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn ĠPage ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Ġ= Ġpage , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠpageSize Ġ= ĠpageSize , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ= Ġcount . to Long (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecords Ġ= Ġresult . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . branch ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ