package Ġcom . chr is . bull se ye . system . service Ċ Ċ import Ġcom . chr is . bull se ye . base mapper . MP Base Mapper Ċ import Ġcom . chr is . bull se ye . system . dto . response . Menu Response Ċ import Ġcom . chr is . bull se ye . system . mapper . Menu Mapper Ċ import Ġcom . chr is . bull se ye . system . pojo . Menu Ċ import Ġcom . chr is . bull se ye . common . utils . Auth Util Ċ import Ġcom . chr is . bull se ye . system . dto . response . Menu M ata Response Ċ import Ġorg . apache . commons . lang 3 . StringUtils Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . HashMap Ċ import Ġkotlin . collections . set Ċ Ċ /** Ċ Ġ* Ġ@ author ĠChris Ċ Ġ* Ġ@ date Ġ 2 0 2 0 Ġ 1 2 Ġ 1 0 Ġ 1 5 : 4 0 Ċ Ġ*/ Ċ @ Service Ċ class ĠMenu Service ( var Ġmenu Mapper : ĠMenu Mapper ): ĠBase Service < Menu >() Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Mapper (): ĠMP Base Mapper < Menu > Ġ{ ĊĠĠĠĠĠĠ Ġreturn Ġmenu Mapper ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget Dto ListBy Params ( map : ĠMutable Map < String , ĠString ?> ): ĠList < Menu Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmenu Mapper . get Dto ListBy Params ( map ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Menus By AccountId (): ĠList < Menu Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠAuth Util . getCurrent User () ĊĠĠĠĠĠĠĠ Ġvar Ġmap : ĠMutable Map < String , ĠString ?> Ġ= ĠHashMap ( 2 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( user Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" accountId "] Ġ= Ġuser . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" organization Id "] Ġ= Ġuser . organization Id ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġmenus : ĠList < Menu Response > Ġ= Ġmenu Mapper . get Menus By AccountId ( map ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġmenu List : ĠMutable List < Menu Response > Ġ= ĠArrayList < Menu Response >() ĊĠĠĠĠĠĠĠ Ġ// Ġ åħĪ æī¾åĪ° æīĢæľīçļĦ ä¸Ģ çº§ èıľåįķ ĊĠĠĠĠĠĠĠ Ġfor Ġ( menu Ġin Ġmenus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä¸Ģ çº§ èıľåįķ æ²¡æľī p Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmeta Ġ= ĠMenu M ata Response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta . title Ġ= Ġmenu . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta . icon Ġ= Ġmenu . icon ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta . hidden Ġ= Ġmenu . hidden ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta . always Show Ġ= Ġmenu . always Show ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta . aff ix Ġ= Ġmenu . aff ix ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta . no Cache Ġ= Ġmenu . no Cache ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta . breadcrumb Ġ= Ġmenu . breadcrumb ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeta . active Menu Ġ= Ġmenu . active Menu ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu . meta Ġ= Ġmeta ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( StringUtils . isEmpty ( menu . parentId )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu List . add ( menu ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġä¸º ä¸Ģ çº§ èıľåįķ è®¾ç½® åŃĲ èıľåįķ ï¼Į getChild æĺ¯ éĢĴ å½Ĵ è°ĥçĶ¨ çļĦ ĊĠĠĠĠĠĠĠ Ġfor Ġ( menu Ġin Ġmenu List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu . children Ġ= Ġmenu . id ?. let Ġ{ Ġget Child ( it , Ġmenus ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmenu List ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Menus By RoleId ( role Id : ĠString ): ĠList < Menu Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap : ĠMutable Map < String , ĠString > Ġ= ĠHashMap ( 2 ) ĊĠĠĠĠĠĠĠ Ġmap [" role Id "] Ġ= Ġrole Id ĊĠĠĠĠĠĠĠ Ġreturn Ġmenu Mapper . get Menus By RoleId ( map ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetAll Menus (): ĠList < Menu Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmenus : ĠList < Menu Response > Ġ= Ġmenu Mapper . getAll Menus () ĊĠĠĠĠĠĠĠ Ġval Ġmenu List : ĠMutable List < Menu Response > Ġ= ĠArrayList < Menu Response >() ĊĊĠĠĠĠĠĠĠ Ġ// Ġ åħĪ æī¾åĪ° æīĢæľīçļĦ ä¸Ģ çº§ èıľåįķ ĊĠĠĠĠĠĠĠ Ġfor Ġ( menu Ġin Ġmenus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä¸Ģ çº§ èıľåįķ æ²¡æľī p Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( menu . parentId == Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu List . add ( menu ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġä¸º ä¸Ģ çº§ èıľåįķ è®¾ç½® åŃĲ èıľåįķ ï¼Į getChild æĺ¯ éĢĴ å½Ĵ è°ĥçĶ¨ çļĦ ĊĠĠĠĠĠĠĠ Ġfor Ġ( menu Ġin Ġmenu List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu . children Ġ= Ġmenu . id ?. let Ġ{ Ġget Child ( it , Ġmenus ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmenu List ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġget Child ( id : ĠString , Ġmenu List : ĠList < Menu Response >): ĠList < Menu Response >? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ åŃĲ èıľåįķ ĊĠĠĠĠĠĠĠ Ġval Ġchild List : ĠMutable List < Menu Response > Ġ= ĠArrayList < Menu Response >() ĊĠĠĠĠĠĠĠ Ġ// éģįåİĨ æīĢæľī èĬĤçĤ¹ ï¼Į å°Ĩ çĪ¶ çº§ èıľåįķ ID ä¸İ ä¼ł è¿ĩ æĿ¥çļĦ ID åģļ æ¯Ķè¾ĥ ĊĠĠĠĠĠĠĠ Ġfor Ġ( menu Ġin Ġmenu List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! menu . parentId . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( menu . parentId Ġ== Ġid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu . children Ġ= Ġmenu . id ?. let Ġ{ Ġget Child ( it , Ġmenu List ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild List . add ( menu ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( child List . size Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġchild List ĊĠĠĠ Ġ} Ċ Ċ } Ċ