package Ġcom . chr is . bull se ye . system . service Ċ Ċ import Ġcom . baomidou . mybatisplus . extension . plugins . pagination . Page Ċ import Ġcom . chr is . bull se ye . base mapper . MP Base Mapper Ċ import Ġcom . chr is . bull se ye . common . utils . Auth Util Ċ import Ġcom . chr is . bull se ye . common . utils . Logger Ċ import Ġcom . chr is . bull se ye . common . utils . Validate Code Utils Ċ import Ġcom . chr is . bull se ye . system . dto . Json Result Ċ import Ġcom . chr is . bull se ye . system . dto . request . Account Request Ċ import Ġcom . chr is . bull se ye . system . dto . request . Login Request Ċ import Ġcom . chr is . bull se ye . system . dto . response . Account Response Ċ import Ġcom . chr is . bull se ye . system . mapper . Account Mapper Ċ import Ġcom . chr is . bull se ye . system . pojo . Account Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . security . crypto . factory . Password Encoder Factories Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ import Ġorg . springframework . transaction . interceptor . Transaction Aspect Support Ċ Ċ /** Ċ Ġ* Ġ@ author ĠChris Ċ Ġ* Ġ@ date 2 0 2 0 Ġ 1 2 Ġ 0 1 Ġ 1 4 : 4 1 Ċ Ġ*/ Ċ @ Service Ċ class ĠAccount Service ( val Ġaccount Mapper : ĠAccount Mapper ) Ġ: ĠBase Service < Account > (){ ĊĊĠĠĠ Ġoverride Ġfun Ġget Mapper (): ĠMP Base Mapper < Account > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġaccount Mapper ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget Account By UserName ( userName : ĠString ?): ĠAccount ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġaccount Mapper . get Account By UserName ( userName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Account By Staff Mobile ( userName : ĠString ?): ĠAccount ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġaccount Mapper . get Account By Staff Mobile ( userName ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget Dto ListBy Params ( map : ĠMutable Map < String , ĠString ?> ): ĠList < Account Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġaccount Mapper . get Dto ListBy Params ( map ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġget NotIn Role Code ListBy Params ( map : ĠMutable Map < String , ĠString ?> ): ĠList < Account Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġaccount Mapper . get NotIn Role Code ListBy Params ( map ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Dto ListBy Page ( account : ĠAccount Request ): ĠPage < Account Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġpage Ġ= ĠPage < Account Response >( account . pageNum !! , account . pageSize !! ) ĊĠĠĠĠĠĠĠ Ġreturn Ġaccount Mapper . get Dto ListBy Page ( page , account ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġreset Password ( accountId : ĠString ?): ĠJson Result < Any > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= ĠJson Result < Any >() ĊĠĠĠĠĠĠĠ Ġvar Ġaccount Ġ= Ġaccount Mapper . getById ( accountId ) ĊĠĠĠĠĠĠĠ Ġif ( account == null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult . failed (" è¯¥ è´¦åı· ä¸įåŃĺåľ¨ ") ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġact Ġ= ĠAccount () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġact . id Ġ= Ġaccount . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġnew Pwd Ġ Ġ= ĠPassword Encoder Factories . create Delegating Password Encoder (). encode ( account . username ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġact . password Ġ= Ġnew Pwd ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġstatus Ġ= Ġ Ġaccount Mapper . update ById ( act ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif ( status > 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ( null ," éĩį ç½® æĪĲåĬŁ ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . failed (" éĩį ç½® å¤±è´¥ ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġchange Password ( obj : Login Request ): ĠJson Result < Any > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= ĠJson Result < Any >() ĊĠĠĠĠĠĠĠ Ġresult . success Ġ Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠAuth Util . getCurrent User () ĊĠĠĠĠĠĠĠ Ġif Ġ( user Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . message Ġ Ġ= Ġ" æľª çĻ»å½ķ ï¼Į éĿŀ æ³ķ è®¿éĹ® ï¼ģ " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( obj . old Password . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . message Ġ= Ġ" æĹ§ å¯Ĩçłģ ä¸įèĥ½ä¸ºç©º " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( obj . new Password . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . message Ġ= Ġ" æĸ° å¯Ĩçłģ ä¸įèĥ½ä¸ºç©º " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠAccount Response Ġ Ġ= Ġaccount Mapper . getById ( user . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Account Response Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Password Encoder Factories . create Delegating Password Encoder (). matches ( obj . old Password , ĠAccount Response . password )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . message Ġ= Ġ" å¯Ĩçłģ éªĮè¯ģ éĶĻè¯¯ ï¼ģ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġnew Pwd Ġ= ĠPassword Encoder Factories . create Delegating Password Encoder (). encode ( obj . new Password ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= ĠAccount () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount . id Ġ= ĠAccount Response . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount . password Ġ= Ġnew Pwd ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount : ĠInt Ġ= Ġaccount Mapper . update ById ( account ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success Ġ Ġ= true ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . message Ġ= Ġ" å¯Ĩçłģ ä¿®æĶ¹ æĪĲåĬŁ ï¼ģ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . status Ġ Ġ= ĠHttpStatus . OK . value () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . message Ġ= Ġ" éĿŀ æ³ķ è¯·æ±Ĥ ï¼ģ " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Transactional ( rollback For Ġ= Ġ[ Exception :: class ]) ĊĠĠĠ Ġfun Ġforget Password ( obj : ĠLogin Request ): ĠJson Result < Any > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠJson Result < Any >() ĊĠĠĠĠĠĠĠ Ġresult . success Ġ Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( obj . mobile . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . message Ġ Ġ=" æīĭæľº åı· ä¸įèĥ½ä¸ºç©º ï¼ģ " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( obj . password . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . message Ġ Ġ=" å¯Ĩçłģ ä¸įèĥ½ä¸ºç©º ï¼ģ " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( obj . captcha . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . message Ġ Ġ=" éªĮè¯ģçłģ ä¸įèĥ½ä¸ºç©º ï¼ģ " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( obj . captcha Ġ!= ĠValidate Code Utils . get Validate Code ( obj . mobile )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . message Ġ Ġ=" éªĮè¯ģçłģ éĶĻè¯¯ ï¼ģ " ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= Ġaccount Mapper . get Account By Staff Mobile ( obj . mobile ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( account Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpwd : ĠString Ġ= ĠPassword Encoder Factories . create Delegating Password Encoder (). encode ( obj . password ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Ġ= ĠAccount () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . id Ġ= Ġaccount . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa . password Ġ Ġ= pwd ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Mapper . update ById ( a ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success Ġ Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . message Ġ Ġ=" å¯Ĩçłģ ä¿®æĶ¹ æĪĲåĬŁ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// éªĮè¯ģ åĲİ åĪłéĻ¤ éªĮè¯ģçłģ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidate Code Utils . remove Validate Code () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . message Ġ Ġ=" æķ°æį® å¼Ĥå¸¸ ï¼Į éĿŀ æ³ķ è¯·æ±Ĥ ï¼ģ " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! result . success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . debug (" æķ°æį® æľī è¯¯ ï¼Į æī§è¡Į æīĭåĬ¨ åĽŀ æ»ļ ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æīĭåĬ¨ åĽŀ æ»ļ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTransaction Aspect Support . current Transaction Status (). set Rollback Only () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġresult . status Ġ= ĠHttpStatus . OK . value () ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ }