/* Ċ Ġ* Ġ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 . process . dao Ċ Ċ import Ġcom . tencent . devops . common . notify . enums . Notify Type Ċ import Ġcom . tencent . devops . model . process . tables . TP ipeline Setting Version Ċ import Ġcom . tencent . devops . model . process . tables . records . TP ipeline Setting Version Record Ċ import Ġcom . tencent . devops . process . pojo . setting . Pipeline Setting Ċ import Ġcom . tencent . devops . process . util . Notify Template Utils Ċ import Ġcom . tencent . devops . process . utils . PIPELINE _ START _ USER _ NAME Ċ import Ġorg . jooq . DSL Context Ċ import Ġorg . springframework . stereotype . Repository Ċ Ċ @ Suppress (" Long Parameter List ") Ċ @ Repository Ċ class ĠPipeline Setting Version Dao Ġ{ ĊĊĠĠĠ Ġ// Ġ æĸ° æµģ æ°´ çº¿ åĪĽå»º çļĦæĹ¶åĢĻ ï¼Į è®¾ç½® é»ĺè®¤ çļĦ éĢļçŁ¥ éħįç½® ãĢĤ ĊĠĠĠ Ġfun Ġinsert New Setting ( ĊĠĠĠĠĠĠĠ Ġd sl Context : ĠDSL Context , ĊĠĠĠĠĠĠĠ ĠprojectId : ĠString , ĊĠĠĠĠĠĠĠ Ġpipeline Id : ĠString , ĊĠĠĠĠĠĠĠ Ġversion : ĠInt Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġis Template : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġsuccess Notify Types : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġfail Notify Types : ĠString Ġ= Ġ"${ Notify Type . EMAIL . name }, ${ Notify Type . RTX . name }", ĊĠĠĠĠĠĠĠ Ġid : ĠLong ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( TP ipeline Setting Version . T _ PIPELINE _ SETTING _ VERSION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġd sl Context . insert Into ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPI PE LINE _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSUCCESS _ RECE IVER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFAIL _ RECE IVER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSUCCESS _ GROUP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFAIL _ GROUP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSUCCESS _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFAIL _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSUCCESS _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFAIL _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIS _ TEMPLATE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVERSION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpipeline Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ ${ $ PIPELINE _ START _ USER _ NAME }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ ${ $ PIPELINE _ START _ USER _ NAME }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess Notify Types , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail Notify Types , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotify Template Utils . COMMON _ SHUT DOWN _ SUCCESS _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotify Template Utils . COMMON _ SHUT DOWN _ FAILURE _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Template , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave Setting ( ĊĠĠĠĠĠĠĠ Ġd sl Context : ĠDSL Context , ĊĠĠĠĠĠĠĠ Ġsetting : ĠPipeline Setting , ĊĠĠĠĠĠĠĠ Ġversion : ĠInt , ĊĠĠĠĠĠĠĠ Ġis Template : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġid : ĠLong ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( TP ipeline Setting Version . T _ PIPELINE _ SETTING _ VERSION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġd sl Context . insert Into ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPROJECT _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPI PE LINE _ ID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSUCCESS _ RECE IVER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFAIL _ RECE IVER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSUCCESS _ GROUP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFAIL _ GROUP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSUCCESS _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFAIL _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFAIL _ WE CHAT _ GROUP _ FLAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFAIL _ WE CHAT _ GROUP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSUCCESS _ WE CHAT _ GROUP _ FLAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSUCCESS _ WE CHAT _ GROUP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSUCCESS _ DETAIL _ FLAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFAIL _ DETAIL _ FLAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSUCCESS _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFAIL _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIS _ TEMPLATE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVERSION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. values ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . projectId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . pipeline Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . success Subscription . users , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . fail Subscription . users , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . success Subscription . groups . join ToString ("," ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . fail Subscription . groups . join ToString ("," ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . success Subscription . types . join ToString (",") Ġ{ Ġit . name Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . fail Subscription . types . join ToString (",") Ġ{ Ġit . name Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . fail Subscription . wechat Group Flag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . fail Subscription . wechat Group , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . success Subscription . wechat Group Flag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . success Subscription . wechat Group , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . success Subscription . detail Flag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . fail Subscription . detail Flag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . success Subscription . content , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . fail Subscription . content , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Template , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Setting ( dsl Context : ĠDSL Context , Ġpipeline Id : ĠString , Ġversion : ĠInt ): ĠT Pipeline Setting Version Record ? Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( TP ipeline Setting Version . T _ PIPELINE _ SETTING _ VERSION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġd sl Context . select From ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( PIPELINE _ ID . eq ( pipeline Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. and ( VERSION . eq ( version )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fetch One () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete All Version ( dsl Context : ĠDSL Context , Ġpipeline Id : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( TP ipeline Setting Version . T _ PIPELINE _ SETTING _ VERSION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġd sl Context . delete From ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( PIPELINE _ ID . eq ( pipeline Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete By Ver ( dsl Context : ĠDSL Context , Ġpipeline Id : ĠString , Ġversion : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( TP ipeline Setting Version . T _ PIPELINE _ SETTING _ VERSION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġd sl Context . delete From ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( PIPELINE _ ID . eq ( pipeline Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. and ( VERSION . eq ( version )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Early Version ( ĊĠĠĠĠĠĠĠ Ġd sl Context : ĠDSL Context , ĊĠĠĠĠĠĠĠ Ġpipeline Id : ĠString , ĊĠĠĠĠĠĠĠ Ġcurrent Version : ĠInt , ĊĠĠĠĠĠĠĠ Ġmax Pipeline Res Num : ĠInt ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith ( TP ipeline Setting Version . T _ PIPELINE _ SETTING _ VERSION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context . delete From ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. where ( PIPELINE _ ID . eq ( pipeline Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. and ( VERSION . le ( current Version Ġ- Ġmax Pipeline Res Num )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ