/* Ċ Ġ* Ġ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 . image Ċ Ċ import Ġcom . fasterxml . jackson . core . type . Type Reference Ċ import Ġcom . tencent . devops . common . api . constant . Common Message Code Ċ import Ġcom . tencent . devops . common . api . constant . LATE ST Ċ import Ġcom . tencent . devops . common . api . exception . Data Consistency Exception Ċ import Ġcom . tencent . devops . common . api . exception . Invalid Param Exception Ċ import Ġcom . tencent . devops . common . api . exception . Param Blank Exception Ċ import Ġcom . tencent . devops . common . api . pojo . Result Ċ import Ġcom . tencent . devops . common . api . util . DH Util Ċ import Ġcom . tencent . devops . common . api . util . Json Util Ċ import Ġcom . tencent . devops . common . api . util . UUID Util Ċ import Ġcom . tencent . devops . common . client . Client Ċ import Ġcom . tencent . devops . common . pipeline . enums . Channel Code Ċ import Ġcom . tencent . devops . common . pipeline . pojo . Check Image Init Pipeline Req Ċ import Ġcom . tencent . devops . common . pipeline . type . docker . ImageType Ċ import Ġcom . tencent . devops . common . service . utils . Message Code Util Ċ import Ġcom . tencent . devops . image . api . Service Image Resource Ċ import Ġcom . tencent . devops . model . store . tables . records . T Image Record Ċ import Ġcom . tencent . devops . process . api . service . Service Build Resource Ċ import Ġcom . tencent . devops . process . api . service . Service Pipeline Init Resource Ċ import Ġcom . tencent . devops . project . api . service . Service Project Resource Ċ import Ġcom . tencent . devops . store . constant . Store Message Code Ċ import Ġcom . tencent . devops . store . dao . common . Store Member Dao Ċ import Ġcom . tencent . devops . store . dao . common . Store Pipeline Build Rel Dao Ċ import Ġcom . tencent . devops . store . dao . common . Store Pipeline Rel Dao Ċ import Ġcom . tencent . devops . store . dao . common . Store Project Rel Dao Ċ import Ġcom . tencent . devops . store . dao . common . Store Release Dao Ċ import Ġcom . tencent . devops . store . dao . image . Image Agent Type Dao Ċ import Ġcom . tencent . devops . store . dao . image . Image Category Rel Dao Ċ import Ġcom . tencent . devops . store . dao . image . Image Dao Ċ import Ġcom . tencent . devops . store . dao . image . Image Feature Dao Ċ import Ġcom . tencent . devops . store . dao . image . Image Label Rel Dao Ċ import Ġcom . tencent . devops . store . dao . image . Market Image Dao Ċ import Ġcom . tencent . devops . store . dao . image . Market Image Feature Dao Ċ import Ġcom . tencent . devops . store . dao . image . Market Image Version Log Dao Ċ import Ġcom . tencent . devops . store . pojo . common . OPEN Ċ import Ġcom . tencent . devops . store . pojo . common . CLOSE Ċ import Ġcom . tencent . devops . store . pojo . common . PASS Ċ import Ġcom . tencent . devops . store . pojo . common . RE JECT Ċ import Ġcom . tencent . devops . store . pojo . common . Release Process Item Ċ import Ġcom . tencent . devops . store . pojo . common . Store Process Info Ċ import Ġcom . tencent . devops . store . pojo . common . Store Release CreateRequest Ċ import Ġcom . tencent . devops . store . pojo . common . enums . Audit TypeEnum Ċ import Ġcom . tencent . devops . store . pojo . common . enums . Release TypeEnum Ċ import Ġcom . tencent . devops . store . pojo . common . enums . Store Member TypeEnum Ċ import Ġcom . tencent . devops . store . pojo . common . enums . Store Project TypeEnum Ċ import Ġcom . tencent . devops . store . pojo . common . enums . Store TypeEnum Ċ import Ġcom . tencent . devops . store . pojo . image . enums . Image Agent TypeEnum Ċ import Ġcom . tencent . devops . store . pojo . image . enums . Image RD TypeEnum Ċ import Ġcom . tencent . devops . store . pojo . image . enums . Image Status Enum Ċ import Ġcom . tencent . devops . store . pojo . image . request . Approve Image Req Ċ import Ġcom . tencent . devops . store . pojo . image . request . Image Feature CreateRequest Ċ import Ġcom . tencent . devops . store . pojo . image . request . Image Status Info Update Request Ċ import Ġcom . tencent . devops . store . pojo . image . request . Market Image Rel Request Ċ import Ġcom . tencent . devops . store . pojo . image . request . Market Image Update Request Ċ import Ġcom . tencent . devops . store . service . common . Store Common Service Ċ import Ġcom . tencent . devops . ticket . api . Service Credential Resource Ċ import Ġorg . jooq . DSL Context Ċ import Ġorg . jooq . impl . DSL Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . beans . factory . annotation . Value Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġorg . springframework . util . StringUtils Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . util . Base 6 4 Ċ Ċ @ Service Ċ abstract Ġclass ĠImage Release Service Ġ{ ĊĊĠĠĠ Ġfinal Ġval ĠC ATEG ORY _ PIPELINE _ JOB Ġ= Ġ" PIPELINE _ JOB " ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġd sl Context : ĠDSL Context ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġstore Project Rel Dao : ĠStore Project Rel Dao ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġimage Dao : ĠImage Dao ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġmarket Image Dao : ĠMarket Image Dao ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġimage Category Rel Dao : ĠImage Category Rel Dao ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġmarket Image Feature Dao : ĠMarket Image Feature Dao ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġmarket Image Version Log Dao : ĠMarket Image Version Log Dao ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġimage Label Rel Dao : ĠImage Label Rel Dao ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġstore Member Dao : ĠStore Member Dao ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġstore Pipeline Rel Dao : ĠStore Pipeline Rel Dao ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġstore Pipeline Build Rel Dao : ĠStore Pipeline Build Rel Dao ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġstore Release Dao : ĠStore Release Dao ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġimage Agent Type Dao : ĠImage Agent Type Dao ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġimage Feature Dao : ĠImage Feature Dao ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġstore Common Service : ĠStore Common Service ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġimage Notify Service : ĠImage Notify Service ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġsupport Service : ĠSupport Service ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġclient : ĠClient ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( Image Release Service :: class . java ) ĊĊĠĠĠ Ġ@ Value ("\ ${ store . image Approve Switch }") ĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġimage Approve Switch : ĠString ĊĊĠĠĠ Ġfun Ġadd Market Image ( ĊĠĠĠĠĠĠĠ ĠaccessToken : ĠString , ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġimage Code : ĠString , ĊĠĠĠĠĠĠĠ Ġmarket Image Rel Request : ĠMarket Image Rel Request , ĊĠĠĠĠĠĠĠ Ġneed Auth : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġ): ĠResult < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" add Market Image ĠaccessToken Ġis Ġ: $ accessToken , ĠuserId Ġis Ġ: $ userId ") ĊĠĠĠĠĠĠĠ Ġlogger . info (" add Market Image Ġimage Code Ġis Ġ: $ image Code , Ġmarket Image Rel Request Ġis Ġ: $ market Image Rel Request ") ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ éķľ åĥı ä»£çłģ æĺ¯åĲ¦ åŃĺåľ¨ ĊĠĠĠĠĠĠĠ Ġval Ġcode Count Ġ= Ġimage Dao . count By Code ( dsl Context , Ġimage Code ) ĊĠĠĠĠĠĠĠ Ġif Ġ( code Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĬ Ľ åĩº éĶĻè¯¯ æıĲç¤º ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Message Code . PARAMETER _ IS _ EXIST , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( image Code ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġimage Name Ġ= Ġmarket Image Rel Request . image Name ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ éķľ åĥı åĲįç§° æĺ¯åĲ¦ åŃĺåľ¨ ĊĠĠĠĠĠĠĠ Ġval Ġname Count Ġ= Ġimage Dao . count ByName ( dsl Context , Ġimage Name ) ĊĠĠĠĠĠĠĠ Ġif Ġ( name Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĬ Ľ åĩº éĶĻè¯¯ æıĲç¤º ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Message Code . PARAMETER _ IS _ EXIST , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( image Name ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( need Auth ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalidate Flag : ĠBoolean ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ çĶ¨æĪ· æĺ¯åĲ¦ é¡¹çĽ® çļĦ æĪĲåĳĺ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Flag Ġ= Ġclient . get ( Service Project Resource :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. verify User Project Permission ( accessToken , Ġmarket Image Rel Request . project Code , ĠuserId ). data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" verify User Project Permission Ġerror Ġis Ġ: $ e ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( Common Message Code . SYSTEM _ ERROR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" the Ġvalidate Flag Ġis Ġ: $ validate Flag ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġvalidate Flag Ġ|| Ġ! validate Flag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĬ Ľ åĩº éĶĻè¯¯ æıĲç¤º ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( Common Message Code . PERMISSION _ DEN IED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġimage Id Ġ= Ġadd Market Image To DB ( accessToken , ĠuserId , Ġimage Code , Ġmarket Image Rel Request ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( null Ġ!= Ġimage Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult ( image Id ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult ("") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Market Image To DB ( ĊĠĠĠĠĠĠĠ ĠaccessToken : ĠString , ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġimage Code : ĠString , ĊĠĠĠĠĠĠĠ Ġmarket Image Rel Request : ĠMarket Image Rel Request ĊĠĠĠ Ġ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimage Id Ġ= ĠUUID Util . generate () ĊĠĠĠĠĠĠĠ Ġd sl Context . transaction Ġ{ Ġt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠDSL . using ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . add Market Image ( context , ĠuserId , Ġimage Id , Ġimage Code , Ġmarket Image Rel Request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæ·»åĬł éķľ åĥı ä¸İ é¡¹çĽ® åħ³èģĶ åħ³ç³» ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore Project Rel Dao . add Store Project Rel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Code Ġ= Ġimage Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Code Ġ= Ġmarket Image Rel Request . project Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠStore Project TypeEnum . INIT . type . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Type Ġ= ĠStore TypeEnum . IMAGE . type . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore Project Rel Dao . add Store Project Rel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Code Ġ= Ġimage Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Code Ġ= Ġmarket Image Rel Request . project Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠStore Project TypeEnum . TEST . type . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Type Ġ= ĠStore TypeEnum . IMAGE . type . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġé»ĺè®¤ ç»Ļ åħ³èģĶ éķľ åĥı çļĦäºº èµĭ äºĪ ç®¡çĲĨåĳĺ æĿĥéĻĲ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore Member Dao . add Store Member ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Code Ġ= Ġimage Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserName Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠStore Member TypeEnum . ADMIN . type . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Type Ġ= ĠStore TypeEnum . IMAGE . type . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæ·»åĬł éķľ åĥı çī¹æĢ§ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Feature Dao . add Image Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Feature CreateRequest Ġ= ĠImage Feature CreateRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Code Ġ= Ġimage Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġimage Id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Market Image ( ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġmarket Image Update Request : ĠMarket Image Update Request , ĊĠĠĠĠĠĠĠ Ġcheck Latest : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġsend Check Result Notify : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġrun Check Pipeline : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġ): ĠResult < String ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" update Market Image ĠuserId Ġis Ġ: $ userId , Ġmarket Image Update Request Ġis Ġ: $ market Image Update Request ") ĊĠĠĠĠĠĠĠ Ġif Ġ( market Image Update Request . category . equals ( CATEGORY _ PIPELINE _ JOB ) Ġ&& Ġmarket Image Update Request . agent Type Scope . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInvalid Param Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" agent Type Scope Ġcannot Ġbe Ġempty ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams Ġ= ĠarrayOf (" agent Type Scope =[] ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġimage Code Ġ= Ġmarket Image Update Request . image Code ĊĠĠĠĠĠĠĠ Ġval Ġimage Tag Ġ= Ġmarket Image Update Request . image Tag ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ éķľ åĥı tag æĺ¯åĲ¦ ä¸º latest ĊĠĠĠĠĠĠĠ Ġif Ġ( check Latest Ġ&& Ġimage Tag Ġ== ĠL ATE ST ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( Common Message Code . PARAMETER _ IS _ INVALID , ĠarrayOf ( image Tag )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġimage Records Ġ= Ġmarket Image Dao . get Images By Image Code ( dsl Context , Ġimage Code ) ĊĠĠĠĠĠĠĠ Ġlogger . info (" the Ġimage Records Ġis Ġ: $ image Records ") ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġimage Records Ġ|| Ġimage Records . size Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Message Code . PARAMETER _ IS _ INVALID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( image Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġimage Name Ġ= Ġmarket Image Update Request . image Name ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ æĽ´æĸ° çļĦ åĲįç§° æĺ¯åĲ¦ å·² åŃĺåľ¨ ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġimage Dao . count ByName ( dsl Context , Ġimage Name ) ĊĠĠĠĠĠĠĠ Ġif Ġ( validate Name Is Exist ( count , Ġimage Records , Ġimage Name )) Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Message Code . PARAMETER _ IS _ EXIST , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( image Name ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġimage Record Ġ= Ġimage Records [ 0 ] ĊĠĠĠĠĠĠĠ Ġval Ġimage Source Type Ġ= Ġmarket Image Update Request . image Source Type ĊĠĠĠĠĠĠĠ Ġval Ġimage Repo Name Ġ= Ġmarket Image Update Request . image Repo Name ĊĠĠĠĠĠĠĠ Ġif Ġ( image Source Type Ġ== ĠImage Type . BK DEV OPS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ çĶ¨æĪ· åıĳå¸ĥ çļĦ éķľ åĥı æĺ¯åĲ¦ æĺ¯ èĩª å·² åĲį ä¸ĭ æľī æĿĥéĻĲ æĵįä½ľ çļĦ éķľ åĥı ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject Code Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Project Rel Dao . getUser Store Test Project Code ( dsl Context , ĠuserId , Ġimage Code , ĠStore TypeEnum . IMAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠData Consistency Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Data Ġ= Ġ"( IMAGE ,$ userId ,$ image Code )", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Data Ġ= Ġ" Test Project Code ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" Cannot Ġfind Ġtest project Ġrecord " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Project Images Result Ġ= Ġclient . get ( Service Image Resource :: class ). list All Project Images ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= Ġproject Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Key Ġ= Ġimage Repo Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" the Ġlist Project Images Result Ġis Ġ: $ list Project Images Result ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list Project Images Result . isNot Ok ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResult ( list Project Images Result . status , Ġlist Project Images Result . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject ImageList Resp Ġ= Ġlist Project Images Result . data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( null Ġ== Ġproject ImageList Resp Ġ|| Ġproject ImageList Resp . image List . map Ġ{ Ġit . repo Ġ}. contains ( image Repo Name ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæŁ¥è¯¢ æĺ¯åĲ¦ ä¸Ĭ æŀ¶ çļĦæĺ¯ åħ¬ åħ± éķľ åĥı ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Public Images Result Ġ= Ġclient . get ( Service Image Resource :: class ). list All Public Images ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Key Ġ= Ġimage Repo Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" the Ġlist Public Images Result Ġis Ġ: $ list Public Images Result ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list Public Images Result . isNot Ok ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResult ( list Public Images Result . status , Ġlist Public Images Result . message , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpublic ImageList Resp Ġ= Ġlist Public Images Result . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( null Ġ== Ġpublic ImageList Resp Ġ|| Ġpublic ImageList Resp . image List . map Ġ{ Ġit . repo Ġ}. contains ( image Repo Name ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( Common Message Code . PERMISSION _ DEN IED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ éķľ åĥı çļĦ tag æĺ¯åĲ¦ è¢« åħ³èģĶ è¿ĩ ĊĠĠĠĠĠĠĠ Ġval Ġrel Flag Ġ= Ġimage Dao . count Release Image By Tag ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġd sl Context , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Code Ġ= Ġimage Code , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Repo Url Ġ= Ġmarket Image Update Request . image Repo Url , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Repo Name Ġ= Ġimage Repo Name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Tag Ġ= Ġimage Tag ĊĠĠĠĠĠĠĠ Ġ) Ġ== Ġ 0 ĊĠĠĠĠĠĠĠ Ġif Ġ(! rel Flag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Message Code . PARAMETER _ IS _ EXIST , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( image Tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ æł¡éªĮ åīįç«¯ ä¼ł çļĦ çīĪæľ¬ åı· æĺ¯åĲ¦ æŃ£ç¡® ĊĠĠĠĠĠĠĠ Ġval Ġrelease Type Ġ= Ġmarket Image Update Request . release Type ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġmarket Image Update Request . version ĊĠĠĠĠĠĠĠ Ġval Ġdb Version Ġ= Ġimage Record . version ĊĠĠĠĠĠĠĠ Ġ// Ġ æľĢè¿ĳ çļĦ çīĪæľ¬ å¤Ħ äºİ ä¸Ĭ æŀ¶ ä¸Ń æŃ¢ çĬ¶æĢģ ï¼Į éĩįæĸ° åįĩçº§ çīĪæľ¬ åı· ä¸į åıĺ ĊĠĠĠĠĠĠĠ Ġval Ġcancel Flag Ġ= Ġimage Record . image Status Ġ== ĠImage Status Enum . GROUND ING _ SUS P ENSION . status . to Byte () ĊĠĠĠĠĠĠĠ Ġval Ġrequire Version Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cancel Flag Ġ&& Ġrelease Type Ġ== ĠRelease TypeEnum . CANCEL _ RE _ RELEASE ) Ġdb Version Ġelse Ġstore Common Service . get Require Version ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb Version , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( version Ġ!= Ġrequire Version ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStore Message Code . USER _ IMAGE _ VERSION _ IS _ INVALID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( version , Ġrequire Version ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ æľĢè¿ĳ ä¸Ģä¸ª éķľ åĥı çīĪæľ¬ çļĦ çĬ¶æĢģ ï¼Į å¦Ĥæŀľ ä¸įæĺ¯ é¦ĸ æ¬¡ åıĳå¸ĥ ï¼Į åĪĻ åıªæľī å¤Ħ äºİ å®¡æł¸ é© ³ åĽŀ ãĢģ å·² åıĳå¸ĥ ãĢģ ä¸Ĭ æŀ¶ ä¸Ń æŃ¢ åĴĮ å·² ä¸ĭ æŀ¶ çļĦ æıĴä»¶ çĬ¶æĢģ æīį åħģè®¸ æ·»åĬł æĸ°çļĦ çīĪæľ¬ ĊĠĠĠĠĠĠĠ Ġval Ġimage Final Status List Ġ= Ġmutable ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . AUDIT _ RE JECT . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . RELEASE D . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . GROUND ING _ SUS P ENSION . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . UNDER CAR RI AG ED . status . to Byte () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( image Records . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġå¦Ĥæŀľ æĺ¯ é¦ĸ æ¬¡ åıĳå¸ĥ ï¼Į å¤Ħ äºİ åĪĿå§ĭåĮĸ çļĦ éķľ åĥı çĬ¶æĢģ ä¹Ł åħģè®¸ æ·»åĬł æĸ°çļĦ çīĪæľ¬ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Final Status List . add ( Image Status Enum . INIT . status . to Byte ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! image Final Status List . contains ( image Record . image Status )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStore Message Code . USER _ IMAGE _ VERSION _ IS _ NOT _ FIN ISH , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( image Record . image Name , Ġimage Record . version ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġimage Id Ġ= ĠUUID Util . generate () ĊĠĠĠĠĠĠĠ Ġd sl Context . transaction Ġ{ Ġt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠDSL . using ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . isEmpty ( image Record . version ) Ġ|| Ġ( cancel Flag Ġ&& Ġrelease Type Ġ== ĠRelease TypeEnum . CANCEL _ RE _ RELEASE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ é¦ĸ æ¬¡ åĪĽå»º çīĪæľ¬ æĪĸèĢħ åıĸæ¶Ī åıĳå¸ĥ åĲİ ä¸į åıĺ æĽ´ çīĪæľ¬ åı· éĩįæĸ° ä¸Ĭ æŀ¶ ï¼Į åĪĻ åľ¨ è¯¥ çīĪæľ¬ çļĦ è®°å½ķ ä¸Ĭ åģļ æĽ´æĸ° æĵįä½ľ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Record . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfinal Release Type Ġ= Ġif Ġ( release Type Ġ== ĠRelease TypeEnum . CANCEL _ RE _ RELEASE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Version Ġ= Ġmarket Image Version Log Dao . getImage Version ( context , Ġimage Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Version . release Type ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Type . release Type . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Market Image ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Size Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Type Ġ= Ġfinal Release Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Update Request Ġ= Ġmarket Image Update Request ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åįĩçº§ éķľ åĥı ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupgrade Market Image ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Size Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Record Ġ= Ġimage Record , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Update Request Ġ= Ġmarket Image Update Request ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĽ´æĸ° æłĩçŃ¾ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Label Rel Dao . delete By Image Id ( context , Ġimage Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlabel IdList Ġ= Ġmarket Image Update Request . label IdList ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġlabel IdList Ġ&& Ġlabel IdList . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Label Rel Dao . batch Add ( context , ĠuserId , Ġimage Id , Ġlabel IdList ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( run Check Pipeline ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è¿Ĳè¡Į æ£ĢæŁ¥ éķľ åĥı åĲĪ æ³ķ æĢ§ çļĦ æµģ æ°´ çº¿ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Check Image Pipeline ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Check Result Notify Ġ= Ġsend Check Result Notify ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ çĽ´æİ¥ ç½® ä¸º æµĭè¯ķ ä¸Ń çĬ¶æĢģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . update Image Status ById ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ= ĠImage Status Enum . TEST ING . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Ġ= Ġ" no Ġcheck " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( image Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġre check ( ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġimage Id : ĠString , ĊĠĠĠĠĠĠĠ Ġvalidate User Flag : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" re check ĠuserId Ġis :$ userId , image Id Ġis :$ image Id , Ġvalidate User Flag :$ validate User Flag ") ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ æĺ¯åĲ¦ åı¯ä»¥ éĩįæĸ° éªĮè¯ģ éķľ åĥı ĊĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠImage Status Enum . CHECK ING . status . to Byte () ĊĠĠĠĠĠĠĠ Ġval Ġ( check Result , Ġcode , Ġparams ) Ġ= Ġcheck Image Version Opt Right ( userId , Ġimage Id , Ġstatus , Ġvalidate User Flag ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! check Result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( code !! , Ġparams , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrun Check Image Pipeline ( dsl Context , ĠuserId , Ġimage Id ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġget Pass Test Status ( is Normal Upgrade : ĠBoolean ): ĠByte ĊĊĠĠĠ Ġfun Ġpass Test ( ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġimage Id : ĠString , ĊĠĠĠĠĠĠĠ Ġvalidate User Flag : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" pass Test , ĠuserId :$ userId , Ġimage Id :$ image Id , Ġvalidate User Flag :$ validate User Flag ") ĊĠĠĠĠĠĠĠ Ġval Ġimage Record Ġ= Ġimage Dao . getImage ( dsl Context , Ġimage Id ) ĊĠĠĠĠĠĠĠ Ġlogger . info (" pass Test Ġimage Record Ġis :$ image Record ") ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġimage Record ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Message Code . PARAMETER _ IS _ INVALID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( image Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠæŁ¥ çľĭ å½ĵåīį çīĪæľ¬ ä¹ĭåīį çļĦ çīĪæľ¬ æĺ¯åĲ¦ æľī å·² åıĳå¸ĥ çļĦ ï¼Į å¦Ĥæŀľ æľī å·² åıĳå¸ĥ çļĦ çīĪæľ¬ åĪĻ åıªæĺ¯ æĻ®éĢļ çļĦ åįĩçº§ æĵįä½ľ èĢĮ ä¸įéľĢè¦ģ å®¡æł¸ ĊĠĠĠĠĠĠĠ Ġval Ġimage Code Ġ= Ġimage Record . image Code ĊĠĠĠĠĠĠĠ Ġval Ġis Normal Upgrade Ġ= Ġget Normal Upgrade Flag ( image Code , Ġimage Record . image Status . toInt ()) ĊĠĠĠĠĠĠĠ Ġlogger . info (" pass Test Ġis Normal Upgrade Ġis :$ is Normal Upgrade ") ĊĠĠĠĠĠĠĠ Ġval Ġimage Status Ġ= Ġget Pass Test Status ( is Normal Upgrade ) ĊĠĠĠĠĠĠĠ Ġval Ġ( check Result , Ġcode , Ġparams ) Ġ= Ġcheck Image Version Opt Right ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġimage Status , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate User Flag Ġ= Ġvalidate User Flag , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Normal Upgrade Ġ= Ġis Normal Upgrade ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! check Result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( code !! , Ġparams , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( is Normal Upgrade ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Feature Ġ= Ġimage Feature Dao . getImage Feature ( dsl Context , Ġimage Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ èĩªåĬ¨ éĢļè¿ĩ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapprove Image ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapprove Image Req Ġ= ĠAppro ve Image Req ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Code Ġ= Ġimage Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Flag Ġ= Ġimage Feature . public Flag Ġ?: Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecommend Flag Ġ= Ġimage Feature . recommend Flag Ġ?: Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcert ification Flag Ġ= Ġimage Feature . cert ification Flag Ġ?: Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrd Type Ġ= ĠImage RD TypeEnum . getImage RD Type ( image Feature . image Type . toInt ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweight Ġ= Ġimage Feature . weight Ġ?: Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= ĠPASS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" ok " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( image Approve Switch Ġ== ĠOPEN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . update Image Status ById ( dsl Context , Ġimage Id , Ġimage Status , ĠuserId , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ èĩªåĬ¨ éĢļè¿ĩ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapprove Image ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapprove Image Req Ġ= ĠAppro ve Image Req ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Code Ġ= Ġimage Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Flag Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecommend Flag Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcert ification Flag Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrd Type Ġ= ĠImage RD TypeEnum . TH IRD _ PAR TY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweight Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= ĠPASS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" ok " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġre check Without Validate ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠDSL Context , ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġimage Id : ĠString , ĊĠĠĠĠĠĠĠ Ġsend Check Result Notify : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Check Image Pipeline ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Check Result Notify Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrun Check Image Pipeline ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠDSL Context , ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġimage Id : ĠString , ĊĠĠĠĠĠĠĠ Ġsend Check Result Notify : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" run Check Image Pipeline ĠuserId Ġis :$ userId , image Id Ġis :$ image Id ") ĊĠĠĠĠĠĠĠ Ġval Ġimage Record Ġ= Ġimage Dao . getImage ( context , Ġimage Id ) !! ĊĠĠĠĠĠĠĠ Ġval Ġimage Code Ġ= Ġimage Record . image Code ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġimage Record . version ĊĠĠĠĠĠĠĠ Ġval Ġimage Pipeline Rel Record Ġ= Ġstore Pipeline Rel Dao . get Store Pipeline Rel ( context , Ġimage Code , ĠStore TypeEnum . IMAGE ) ĊĠĠĠĠĠĠĠ Ġval Ġproject Code Ġ= Ġstore Project Rel Dao . get Init Project Code By Store Code ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Code , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStore TypeEnum . IMAGE . type . to Byte () ĊĠĠĠĠĠĠĠ Ġ) Ġ// ĠæŁ¥ æī¾ æĸ°å¢ŀ éķľ åĥı æĹ¶ åħ³èģĶ çļĦ é¡¹çĽ® ĊĠĠĠĠĠĠĠ Ġlogger . info (" run Check Image Pipeline Ġimage Pipeline Rel Record Ġis :$ image Pipeline Rel Record , project Code Ġis :$ project Code ") ĊĠĠĠĠĠĠĠ Ġval Ġticket Id Ġ= Ġimage Record . ticket Id ĊĠĠĠĠĠĠĠ Ġvar ĠuserName : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġpassword : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ(! ticket Id . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpair Ġ= ĠDH Util . init Key () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġencoder Ġ= ĠBase 6 4 . get Encoder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecoder Ġ= ĠBase 6 4 . get Decoder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcredential Result Ġ= Ġclient . get ( Service Credential Resource :: class ). get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject Code !! , Ġticket Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencoder . encode ToString ( pair . publicKey ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( credential Result . isNot Ok () Ġ|| Ġcredential Result . data Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠParam Blank Exception (" Fail Ġto Ġget Ġthe Ġcredential ($ ticket Id ) Ġof Ġproject ($ project Code )") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcredential Ġ= Ġcredential Result . data !! ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserName Ġ= ĠString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDH Util . decrypt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . decode ( credential . v 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . decode ( credential . publicKey ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpair . privateKey ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( credential . v 2 Ġ!= Ġnull Ġ&& Ġcredential . v 2 !!. isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= ĠString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDH Util . decrypt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . decode ( credential . v 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecoder . decode ( credential . publicKey ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpair . privateKey ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlogger . info (" run Check Image Pipeline :$ image Id , username =$ userName , password =$ password ") ĊĠĠĠĠĠĠĠ Ġval Ġdocker Image Name Ġ= Ġif Ġ( image Record . image Repo Url . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ image Record . image Repo Name }:${ image Record . image Tag }" ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ image Record . image Repo Url }/${ image Record . image Repo Name }:${ image Record . image Tag }" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġimage Source Type Ġ= Ġimage Record . image Source Type ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġimage Pipeline Rel Record ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcheck Image Init Pipeline Req Ġ= ĠCheck Image Init Pipeline Req ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Code Ġ= Ġimage Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Name Ġ= Ġdocker Image Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġversion , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Type Ġ= Ġimage Source Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregistry User Ġ= ĠuserName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregistry Pwd Ġ= Ġpassword , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Notify Ġ= Ġsend Check Result Notify ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcheck Image Init Pipeline Resp Ġ= Ġclient . get ( Service Pipeline Init Resource :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. init Check Image Pipeline ( userId , Ġproject Code !! , Ġcheck Image Init Pipeline Req ). data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" the Ġcheck Image Init Pipeline Resp Ġis :$ check Image Init Pipeline Resp ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġcheck Image Init Pipeline Resp ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Pipeline Rel Dao . add ( context , Ġimage Code , ĠStore TypeEnum . IMAGE , Ġcheck Image Init Pipeline Resp . pipeline Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . update Image Status ById ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Image Init Pipeline Resp . image Check Status . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Id Ġ= Ġcheck Image Init Pipeline Resp . build Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġbuild Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Pipeline Build Rel Dao . add ( context , Ġimage Id , Ġcheck Image Init Pipeline Resp . pipeline Id , Ġbuild Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è§¦åıĳ æī§è¡Į æµģ æ°´ çº¿ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Params Ġ= Ġmutable Map Of < String , ĠString >() Ġ// Ġ åĲ¯åĬ¨ åıĤæķ° ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Params [" image Code "] Ġ= Ġimage Code ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Params [" image Name "] Ġ= Ġdocker Image Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Params [" version "] Ġ= Ġversion ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġimage Source Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Params [" image Type "] Ġ= Ġimage Source Type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= ĠuserName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Params [" registry User "] Ġ= ĠuserName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġpassword ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Params [" registry Pwd "] Ġ= Ġpassword ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuild Id Obj Ġ= Ġclient . get ( Service Build Resource :: class ). manual Startup ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId , Ġproject Code !! , Ġimage Pipeline Rel Record . pipeline Id , Ġstart Params , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChannel Code . AM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). data ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" the Ġbuild Id Obj Ġis :$ build Id Obj ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġbuild Id Obj ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Pipeline Build Rel Dao . add ( context , Ġimage Id , Ġimage Pipeline Rel Record . pipeline Id , Ġbuild Id Obj . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . update Image Status ById ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . CHECK ING . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ// Ġ éªĮè¯ģ ä¸Ń ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . update Image Status ById ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . CHECK _ FAIL . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ// Ġ éªĮè¯ģ å¤±è´¥ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Market Image ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠDSL Context , ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġimage Id : ĠString , ĊĠĠĠĠĠĠĠ Ġimage Size : ĠString , ĊĠĠĠĠĠĠĠ Ġrelease Type : ĠByte , ĊĠĠĠĠĠĠĠ Ġmarket Image Update Request : ĠMarket Image Update Request ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogo Url Ġ= Ġmarket Image Update Request . logo Url ĊĠĠĠĠĠĠĠ Ġvar Ġicon Data : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ(! logo Url . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Data Ġ= Ġsupport Service . get Icon Data By Logo Url ( logo Url !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmarket Image Dao . update Market Image ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Size Ġ= Ġimage Size , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Data Ġ= Ġicon Data , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Update Request Ġ= Ġmarket Image Update Request ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġimage Category Rel Dao . update Category ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Code Ġ= Ġmarket Image Update Request . category ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmarket Image Version Log Dao . add Market Image Version ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Type Ġ= Ġrelease Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Content Ġ= Ġmarket Image Update Request . version Content ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupgrade Market Image ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠDSL Context , ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġimage Id : ĠString , ĊĠĠĠĠĠĠĠ Ġimage Size : ĠString , ĊĠĠĠĠĠĠĠ Ġimage Record : ĠT Image Record , ĊĠĠĠĠĠĠĠ Ġmarket Image Update Request : ĠMarket Image Update Request ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlogo Url Ġ= Ġmarket Image Update Request . logo Url ĊĠĠĠĠĠĠĠ Ġvar Ġicon Data : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ(! logo Url . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Data Ġ= Ġsupport Service . get Icon Data By Logo Url ( logo Url !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmarket Image Dao . upgrade Market Image ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Size Ġ= Ġimage Size , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon Data Ġ= Ġicon Data , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Record Ġ= Ġimage Record , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Update Request Ġ= Ġmarket Image Update Request ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġimage Category Rel Dao . update Category ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Code Ġ= Ġmarket Image Update Request . category ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġmarket Image Version Log Dao . add Market Image Version ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Type Ġ= Ġmarket Image Update Request . release Type . release Type . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Content Ġ= Ġmarket Image Update Request . version Content ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ åıĳå¸ĥ è¿Ľ åº¦ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Process Info ( userId : ĠString , Ġimage Id : ĠString ): ĠResult < Store Process Info > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" get Process Info Ġimage Id : Ġ$ image Id ") ĊĠĠĠĠĠĠĠ Ġval Ġrecord Ġ= Ġimage Dao . getImage ( dsl Context , Ġimage Id ) ĊĠĠĠĠĠĠĠ Ġlogger . info (" get Process Info Ġrecord : Ġ$ record ") ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġrecord ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( Common Message Code . PARAMETER _ IS _ INVALID , ĠarrayOf ( image Id )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġrecord . image Status . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Code Ġ= Ġrecord . image Code ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Normal Upgrade : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( image Approve Switch Ġ== ĠCLOSE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Normal Upgrade Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæŁ¥ çľĭ å½ĵåīį çīĪæľ¬ ä¹ĭåīį çļĦ çīĪæľ¬ æĺ¯åĲ¦ æľī å·² åıĳå¸ĥ çļĦ ï¼Į å¦Ĥæŀľ æľī å·² åıĳå¸ĥ çļĦ çīĪæľ¬ åĪĻ åıªæĺ¯ æĻ®éĢļ çļĦ åįĩçº§ æĵįä½ľ èĢĮ ä¸įéľĢè¦ģ å®¡æł¸ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Normal Upgrade Ġ= Ġget Normal Upgrade Flag ( image Code , Ġstatus ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" get Process Info Ġis Normal Upgrade : Ġ$ is Normal Upgrade ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprocess Info Ġ= Ġhandle Process Info ( is Normal Upgrade , Ġstatus ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Process Info Ġ= Ġstore Common Service . generate Store Process Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Code Ġ= Ġimage Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Type Ġ= ĠStore TypeEnum . IMAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreator Ġ= Ġrecord . creator , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Info Ġ= Ġprocess Info ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" get Process Info Ġstore Process Info : Ġ$ store Process Info ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResult ( store Process Info ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġhandle Process Info ( is Normal Upgrade : ĠBoolean , Ġstatus : ĠInt ): ĠList < Release Process Item > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åıĸæ¶Ī åıĳå¸ĥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcancel Release ( userId : ĠString , Ġimage Id : ĠString ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" cancel Release ĠuserId Ġis :$ userId , Ġimage Id Ġis :$ image Id ") ĊĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= ĠImage Status Enum . GROUND ING _ SUS P ENSION . status . to Byte () ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ çĶ¨æĪ· æĺ¯åĲ¦ æľī æĿĥéĻĲ ĊĠĠĠĠĠĠĠ Ġval Ġ( check Result , Ġcode , Ġparams ) Ġ= Ġcheck Image Version Opt Right ( userId , Ġimage Id , Ġstatus ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! check Result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( code !! , Ġparams , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmarket Image Dao . update Image Status ById ( dsl Context , Ġimage Id , Ġstatus , ĠuserId , Ġ" cancel Ġrelease ") ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ£Ģ æŁ¥ çīĪæľ¬ åıĳå¸ĥ è¿ĩç¨ĭ ä¸ŃçļĦ æĵįä½ľ æĿĥéĻĲ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġfun Ġcheck Image Version Opt Right ( ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġimage Id : ĠString , ĊĠĠĠĠĠĠĠ Ġstatus : ĠByte , ĊĠĠĠĠĠĠĠ Ġvalidate User Flag : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġis Normal Upgrade : ĠBoolean ? Ġ= Ġnull ĊĠĠĠ Ġ): ĠTrip le < Boolean , ĠString ?, ĠArray < String > ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" check Image Version Opt Right ĠuserId Ġis :$ userId , Ġimage Id Ġis :$ image Id , Ġstatus Ġis :$ status ") ĊĠĠĠĠĠĠĠ Ġlogger . info (" check Image Version Opt Right Ġvalidate User Flag Ġis :$ validate User Flag , Ġis Normal Upgrade Ġis :$ is Normal Upgrade ") ĊĠĠĠĠĠĠĠ Ġval Ġimage Record Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Dao . getImage ( dsl Context , Ġimage Id ) Ġ?: Ġreturn ĠTrip le ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Message Code . PARAMETER _ IS _ INVALID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( image Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġimage Code Ġ= Ġimage Record . image Code ĊĠĠĠĠĠĠĠ Ġval Ġcreator Ġ= Ġimage Record . creator ĊĠĠĠĠĠĠĠ Ġval Ġimage Status Ġ= Ġimage Record . image Status ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ çĶ¨æĪ· æĺ¯åĲ¦ æľī æĿĥéĻĲ ( å½ĵåīį çīĪæľ¬ çļĦ åĪĽå»º èĢħ åĴĮ ç®¡çĲĨåĳĺ åı¯ä»¥ æĵįä½ľ ) ĊĠĠĠĠĠĠĠ Ġif Ġ(!( store Member Dao . is Store Admin ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStore TypeEnum . IMAGE . type . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ|| Ġcreator Ġ== ĠuserId Ġ|| Ġ! validate User Flag ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTrip le ( false , ĠCommon Message Code . PERMISSION _ DEN IED , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlogger . info (" image Record Ġstatus =$ image Status , Ġstatus =$ status ") ĊĠĠĠĠĠĠĠ Ġval Ġallow Release Status Ġ= Ġif Ġ( is Normal Upgrade Ġ!= Ġnull Ġ&& Ġis Normal Upgrade ) ĠImage Status Enum . TEST ING ĊĠĠĠĠĠĠĠ Ġelse ĠImage Status Enum . AUDIT ING ĊĠĠĠĠĠĠĠ Ġvar Ġvalidate Flag Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== ĠImage Status Enum . COMMIT TING . status . to Byte () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ!= ĠImage Status Enum . INIT . status . to Byte () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( status Ġ== ĠImage Status Enum . CHECK ING . status . to Byte () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ! in Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . COMMIT TING . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . CHECK _ FAIL . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . TEST ING . status . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( status Ġ== ĠImage Status Enum . CHECK _ FAIL . status . to Byte () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ! in Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . COMMIT TING . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . CHECK ING . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . CHECK _ FAIL . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . TEST ING . status . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( status Ġ== ĠImage Status Enum . TEST ING . status . to Byte () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ!= ĠImage Status Enum . CHECK ING . status . to Byte () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( status Ġ== ĠImage Status Enum . AUDIT ING . status . to Byte () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ!= ĠImage Status Enum . TEST ING . status . to Byte () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( status Ġ== ĠImage Status Enum . AUDIT _ RE JECT . status . to Byte () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ!= ĠImage Status Enum . AUDIT ING . status . to Byte () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( status Ġ== ĠImage Status Enum . RELEASE D . status . to Byte () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ!= Ġallow Release Status . status . to Byte () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( status Ġ== ĠImage Status Enum . GROUND ING _ SUS P ENSION . status . to Byte () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ== ĠImage Status Enum . RELEASE D . status . to Byte () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( status Ġ== ĠImage Status Enum . UNDER CAR RI AGING . status . to Byte () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ== ĠImage Status Enum . RELEASE D . status . to Byte () ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( status Ġ== ĠImage Status Enum . UNDER CAR RI AG ED . status . to Byte () Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ! in Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . UNDER CAR RI AGING . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . RELEASE D . status . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( validate Flag ) ĠTrip le ( true , Ġnull , Ġnull ) Ġelse ĠTrip le ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStore Message Code . USER _ IMAGE _ RELEASE _ STEPS _ ERROR , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalidate Name Is Exist ( ĊĠĠĠĠĠĠĠ Ġcount : ĠInt , ĊĠĠĠĠĠĠĠ Ġimage Records : Ġorg . jooq . Result < T Image Record >, ĊĠĠĠĠĠĠĠ Ġimage Name : ĠString ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġflag Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġimage Records ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( image Name Ġ== Ġitem . image Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflag Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! flag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Normal Upgrade Flag ( image Code : ĠString , Ġstatus : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ éķľ åĥı æĺ¯ é¦ĸ æ¬¡ ä¸Ĭ æŀ¶ è¿ĺæĺ¯ æĻ®éĢļ åįĩçº§ ĊĠĠĠĠĠĠĠ Ġval Ġrelease Total Num Ġ= Ġmarket Image Dao . count Release Image By Code ( dsl Context , Ġimage Code ) ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Num Ġ= Ġif Ġ( status Ġ== ĠImage Status Enum . RELEASE D . status ) Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġreturn Ġrelease Total Num Ġ> Ġcurrent Num ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġä¸ĭ æŀ¶ éķľ åĥı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġoffline Market Image ( ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġimage Code : ĠString , ĊĠĠĠĠĠĠĠ Ġversion : ĠString ?, ĊĠĠĠĠĠĠĠ Ġreason : ĠString ?, ĊĠĠĠĠĠĠĠ Ġvalidate User Flag : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġinterface Name : ĠString ? Ġ= Ġ" An on Ġinterface " ĊĠĠĠ Ġ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info ("$ interface Name : offline Market Image : Input : ($ userId ,$ image Code ,$ version ,$ reason )") ĊĠĠĠĠĠĠĠ Ġ// ĠåıĤæķ° æł¡éªĮ ĊĠĠĠĠĠĠĠ Ġval Ġvalid UserId Ġ= ĠuserId . trim () ĊĠĠĠĠĠĠĠ Ġval Ġvalid Image Code Ġ= Ġimage Code . trim () ĊĠĠĠĠĠĠĠ Ġval Ġvalid Version Ġ= Ġversion ?. trim () ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ çĶ¨æĪ· æĺ¯åĲ¦ æľī æĿĥéĻĲ ä¸ĭ æŀ¶ éķľ åĥı ĊĠĠĠĠĠĠĠ Ġif Ġ(!( store Member Dao . is Store Admin ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġd sl Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġvalid UserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Code Ġ= Ġvalid Image Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Type Ġ= ĠStore TypeEnum . IMAGE . type . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ|| Ġ! validate User Flag ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( Common Message Code . PERMISSION _ DEN IED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! version . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Record Ġ= Ġimage Dao . getImage ( dsl Context , Ġvalid Image Code , Ġvalid Version !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Code Ġ= ĠCommon Message Code . PARAMETER _ IS _ INVALID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams Ġ= ĠarrayOf ( valid Image Code , Ġvalid Version ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("$ interface Name : offline Market Image : Inner : image Record = (${ image Record . image Code }, ${ image Record . version }) ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Image Status Enum . RELEASE D . status . to Byte () Ġ!= Ġimage Record . image Status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMessage Code Util . generate Response DataObject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Code Ġ= ĠCommon Message Code . PARAMETER _ IS _ INVALID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams Ġ= ĠarrayOf ( valid Image Code , Ġvalid Version ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context . transaction Ġ{ Ġt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠDSL . using ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrelease Image Records Ġ= Ġmarket Image Dao . get Release Images By Code ( context , Ġvalid Image Code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("$ interface Name : offline Market Image : Inner : release Image Records . size =${ release Image Records ?. size }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġrelease Image Records Ġ&& Ġrelease Image Records . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . update Image Status Info ById ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Record . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġvalid UserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Info Update Request Ġ= ĠImage Status Info Update Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ= ĠImage Status Enum . UNDER CAR RI AG ED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Msg Ġ= Ġreason , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Flag Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnewest Release Image Record Ġ= Ġrelease Image Records [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new est Release Image Record . id Ġ== Ġimage Record . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( release Image Records . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnewest Under car ri aged Image Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . getNew est Under car ri aged Image By Code ( context , Ġvalid Image Code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("$ interface Name : offline Market Image : Inner : new est Under car ri aged Image = (${ new est Under car ri aged Image ?. image Code }, ${ new est Under car ri aged Image ?. version }) ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġnewest Under car ri aged Image ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . update Image Status Info ById ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġnewest Under car ri aged Image . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġvalid UserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Info Update Request Ġ= ĠImage Status Info Update Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Flag Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĬ Ĭ åīį ä¸Ģä¸ª åıĳå¸ĥ çļĦ çīĪæľ¬ çļĦ latest Flag ç½® ä¸º true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtmp Image Record Ġ= Ġrelease Image Records [ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("$ interface Name : offline Market Image : Inner : last Released Image = (${ tmp Image Record ?. image Code }, ${ tmp Image Record ?. version }) ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . update Image Status Info ById ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġtmp Image Record . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġvalid UserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Info Update Request Ġ= ĠImage Status Info Update Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Flag Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĬ Ĭ éķľ åĥı æīĢæľī å·² åıĳå¸ĥ çļĦ çīĪæľ¬ åħ¨éĥ¨ ä¸ĭ æŀ¶ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("$ interface Name : offline Market Image : Inner : under car riage Ġall Ġimages ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context . transaction Ġ{ Ġt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠDSL . using ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . update Image Status By Code ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , Ġvalid Image Code , Ġfalse , ĠImage Status Enum . RELEASE D . status . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . UNDER CAR RI AG ED . status . to Byte (), Ġvalid UserId , Ġ" under car riage " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnewest Under car ri aged Image Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . getNew est Under car ri aged Image By Code ( context , Ġvalid Image Code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info ("$ interface Name : offline Market Image : Inner : new est Under car ri aged Image = (${ new est Under car ri aged Image ?. image Code }, ${ new est Under car ri aged Image ?. version }) ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġnewest Under car ri aged Image ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠæĬ Ĭ åıĳå¸ĥ æĹ¶éĹ´ æľĢ æĻ ļ çļĦ ä¸ĭ æŀ¶ çīĪæľ¬ latest Flag ç½® ä¸º true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . update Image Latest Flag ById ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġnewest Under car ri aged Image . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= Ġvalid UserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Flag Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlogger . info ("$ interface Name : offline Market Image : Output : true ") ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å®¡æł¸ éķľ åĥı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġapprove Image Without Notify ( userId : ĠString , Ġimage Id : ĠString , Ġapprove Image Req : ĠAppro ve Image Req , Ġcheck Current Status : ĠBoolean Ġ= Ġtrue ): ĠAudit TypeEnum Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠåıĤæķ° æł¡éªĮ ĊĠĠĠĠĠĠĠ Ġ// ĠåĪ¤æĸŃ éķľ åĥı æĺ¯åĲ¦ åŃĺåľ¨ ĊĠĠĠĠĠĠĠ Ġval Ġimage Ġ= Ġimage Dao . getImage ( dsl Context , Ġimage Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠInvalid Param Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" image Id =$ image Id Ġis Ġnot Ġvalid ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams Ġ= ĠarrayOf ( image Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġold Status Ġ= Ġimage . image Status ĊĠĠĠĠĠĠĠ Ġval Ġstandard Status Ġ= Ġif Ġ( image Approve Switch Ġ== ĠOPEN ) ĠImage Status Enum . AUDIT ING . status . to Byte () Ġelse ĠImage Status Enum . TEST ING . status . to Byte () ĊĠĠĠĠĠĠĠ Ġ// Ġ éĿŀ å¾ħ å®¡æł¸ çĬ¶æĢģ çĽ´æİ¥ è¿ĶåĽŀ ĊĠĠĠĠĠĠĠ Ġif Ġ( check Current Status Ġ&& Ġold Status Ġ!= Ġstandard Status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInvalid Param Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" image Id =$ image Id Ġis Ġnot Ġin Ġappro ving Ġstate ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams Ġ= ĠarrayOf ( image Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ å®¡æł¸ ç»ĵæŀľ æł¡éªĮ ĊĠĠĠĠĠĠĠ Ġval Ġapprove Result Ġ= Ġapprove Image Req . result ĊĠĠĠĠĠĠĠ Ġif Ġ( approve Result Ġ!= ĠPASS Ġ&& Ġapprove Result Ġ!= ĠRE JECT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInvalid Param Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġ" approve Result =$ approve Result Ġis Ġnot Ġvalid , should Ġbe ĠPASS / RE JECT ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams Ġ= ĠarrayOf ( approve Result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġimage Status Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( approve Result Ġ== ĠPASS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . RELEASE D . status . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠImage Status Enum . AUDIT _ RE JECT . status . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġif Ġ( approve Result Ġ== ĠPASS ) ĠAudit TypeEnum . AUDIT _ SUCCESS Ġelse ĠAudit TypeEnum . AUDIT _ RE JECT ĊĠĠĠĠĠĠĠ Ġval Ġimage Status Msg Ġ= Ġapprove Image Req . message ĊĠĠĠĠĠĠĠ Ġd sl Context . transaction Ġ{ Ġt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠDSL . using ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Image Release ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapprove Result Ġ= Ġapprove Result , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Ġ= Ġimage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ= Ġimage Status , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Msg Ġ= Ġimage Status Msg , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Flag Ġ= Ġapprove Image Req . public Flag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecommend Flag Ġ= Ġapprove Image Req . recommend Flag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcert ification Flag Ġ= Ġapprove Image Req . cert ification Flag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrd Type Ġ= Ġapprove Image Req . rd Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweight Ġ= Ġapprove Image Req . weight ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtype ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġapprove Image ( userId : ĠString , Ġimage Id : ĠString , Ġapprove Image Req : ĠAppro ve Image Req ): ĠResult < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġapprove Image Without Notify ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapprove Image Req Ġ= Ġapprove Image Req ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// Ġ éĢļçŁ¥ åıĳå¸ĥ èĢħ ĊĠĠĠĠĠĠĠ Ġimage Notify Service . send Image Release Audit Notify Message ( image Id , Ġtype ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResult ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave Image Agent Type To Feature ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠDSL Context , ĊĠĠĠĠĠĠĠ Ġimage Code : ĠString , ĊĠĠĠĠĠĠĠ Ġagent TypeList : ĠList < Image Agent TypeEnum > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġimage Agent Type Dao . delete Agent Type By Image Code ( context , Ġimage Code ) ĊĠĠĠĠĠĠĠ Ġagent TypeList . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Agent Type Dao . add Agent Type By Image Code ( context , Ġimage Code , Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhandle Image Release ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠDSL Context , ĊĠĠĠĠĠĠĠ ĠuserId : ĠString , ĊĠĠĠĠĠĠĠ Ġapprove Result : ĠString , ĊĠĠĠĠĠĠĠ Ġimage : ĠT Image Record , ĊĠĠĠĠĠĠĠ Ġimage Status : ĠByte , ĊĠĠĠĠĠĠĠ Ġimage Status Msg : ĠString , ĊĠĠĠĠĠĠĠ Ġpublic Flag : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġrecommend Flag : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġcert ification Flag : ĠBoolean , ĊĠĠĠĠĠĠĠ Ġrd Type : ĠImage RD TypeEnum ?, ĊĠĠĠĠĠĠĠ Ġweight : ĠInt ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlatest Flag Ġ= Ġapprove Result Ġ== ĠPASS ĊĠĠĠĠĠĠĠ Ġvar Ġpub Time : ĠLocalDateTime ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( latest Flag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæ¸ ħ ç©º æĹ§ çīĪæľ¬ LATE ST _ FLAG ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmarket Image Dao . clean Latest Flag ( context , Ġimage . image Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpub Time Ġ= ĠLocalDateTime . now () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è®°å½ķ åıĳå¸ĥ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore Release Dao . add Store Release Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠuserId Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Release CreateRequest Ġ= ĠStore Release CreateRequest ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Code Ġ= Ġimage . image Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Type Ġ= ĠStore TypeEnum . IMAGE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Up grader Ġ= Ġimage . creator , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Upgrade Time Ġ= Ġpub Time ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Feature Dao . update ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Code Ġ= Ġimage . image Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Flag Ġ= Ġpublic Flag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecommend Flag Ġ= Ġrecommend Flag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcert ification Flag Ġ= Ġcert ification Flag , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrd Type Ġ= Ġrd Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠuserId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweight Ġ= Ġweight ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmarket Image Dao . update Image Status Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd sl Context Ġ= Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġimage . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Ġ= Ġimage Status , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Status Msg Ġ= Ġimage Status Msg , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlatest Flag Ġ= Ġlatest Flag , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpub Time Ġ= Ġpub Time ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġsave Image Agent Type To Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage . image Code , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson Util . to ( image . agent Type Scope , Ġobject Ġ: ĠType Reference < List < Image Agent TypeEnum >>() Ġ{}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ