package Ġcom . rk room . blog . service . Impl Ċ Ċ import Ġcom . rk room . blog . entity . User Ċ import Ġcom . rk room . blog . repository . UserRepository Ċ import Ġcom . rk room . blog . service . UserService Ċ import Ġorg . apache . shiro . crypto . hash . Simple Hash Ċ import Ġorg . apache . shiro . util . Byte Source Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Service Ċ Ċ @ Service Ġ// å®ļä¹ī ä¸º æľįåĬ¡ Ċ class ĠUser ServiceImpl Ġ: ĠUserService Ġ{ ĊĠĠĠ Ġ// å®ŀçİ° users ervice æİ¥åı£ ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġvar Ġuser Repository : Ġ// èĩªåĬ¨ è£ħ éħį ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUser Repository ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġselect By Username ( username : ĠString ?): ĠUser ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġuser Repository !!. findBy Username ( username ) Ġ// æł¹æį® çĶ¨æĪ·åĲį è¿ĶåĽŀ æķ°æį® ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġselect ById ( id : ĠInt ): ĠUser ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoptional Ġ= Ġuser Repository !!. findById ( id ) ĊĠĠĠĠĠĠĠ Ġreturn Ġoptional . get () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Password ById ( password : ĠString ?, Ġid : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġpd Ġ= Ġpassword ĊĠĠĠĠĠĠĠ Ġval Ġusername Ġ= Ġuser Repository !!. find Username ById ( id ) ĊĠĠĠĠĠĠĠ Ġ// å°Ĩ å¯Ĩçłģ hash åĲİ åŃĺ åħ¥ æķ°æį®åºĵ ĊĠĠĠĠĠĠĠ Ġpd Ġ= ĠSimple Hash (" md 5 ", Ġpd , ĠByte Source . Util . bytes ( username ), Ġ 2 ). toString () ĊĠĠĠĠĠĠĠ Ġuser Repository !!. update Password ById ( pd , Ġid ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// æĸ°å¢ŀ çĶ¨æĪ· ĊĠĠĠ Ġoverride Ġfun Ġinsert User ( user : ĠUser ?) Ġ{ Ġ// Ġå°Ĩ å¯Ĩçłģ hash åĲİ åĨį åŃĺ åħ¥ æķ°æį®åºĵ ĊĠĠĠĠĠĠĠ Ġval Ġusername Ġ= Ġuser !!. username ĊĠĠĠĠĠĠĠ Ġvar Ġpassword Ġ= Ġuser . password ĊĠĠĠĠĠĠĠ Ġpassword Ġ= ĠSimple Hash (" md 5 ", Ġpassword , ĠByte Source . Util . bytes ( username ), Ġ 2 ). toString () ĊĠĠĠĠĠĠĠ Ġuser . password Ġ= Ġpassword ĊĠĠĠĠĠĠĠ Ġuser Repository !!. save ( user ) ĊĠĠĠ Ġ} Ċ }