package Ġme . me li jn . me lij nb ot . database . econom y Ċ Ċ import Ġme . me li jn . me lij nb ot . database . HIG HER _ CACHE Ċ import Ġme . me li jn . me lij nb ot . database . NORMAL _ CACHE Ċ Ċ class ĠBalance Wrapper ( private Ġval Ġbalance Dao : ĠBalance Dao ) Ġ{ ĊĊĠĠĠ Ġsuspend Ġfun Ġget Balance ( userId : ĠLong ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcached Ġ= Ġbalance Dao . getCache Entry ( userId , ĠH IG HER _ CACHE )?. to Long () ĊĠĠĠĠĠĠĠ Ġif Ġ( cached Ġ!= Ġnull ) Ġreturn Ġcached ĊĊĠĠĠĠĠĠĠ Ġval Ġbalance Ġ= Ġbalance Dao . get Balance ( userId ) ĊĠĠĠĠĠĠĠ Ġbalance Dao . set Cache Entry ( userId , Ġbalance , ĠNORMAL _ CACHE ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbalance ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Balance ( userId : ĠLong , Ġmoney : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbalance Dao . set Balance ( userId , Ġmoney ) ĊĠĠĠĠĠĠĠ Ġbalance Dao . set Cache Entry ( userId , Ġmoney , ĠNORMAL _ CACHE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Position ( userId : ĠLong ): ĠPair < Long , ĠLong > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbalance Dao . getPosition ( userId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Top ( users : ĠInt , Ġoffset : ĠInt ): ĠMap < Long , ĠLong > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbalance Dao . get Top ( users , Ġoffset ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget RowCount (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbalance Dao . getRow Count () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġadd Balance ( userId : ĠLong , Ġamount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Balance ( userId , Ġamount . to Long ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġadd Balance ( userId : ĠLong , Ġamount : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc Bal Ġ= Ġget Balance ( userId ) ĊĠĠĠĠĠĠĠ Ġset Balance ( userId , Ġc Bal Ġ+ Ġamount ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġremove Balance ( userId : ĠLong , Ġamount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġremove Balance ( userId , Ġamount . to Long ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġremove Balance ( userId : ĠLong , Ġamount : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc Bal Ġ= Ġget Balance ( userId ) ĊĠĠĠĠĠĠĠ Ġset Balance ( userId , Ġc Bal Ġ- Ġamount ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġadd Balance AndGet ( userId : ĠLong , Ġamount : ĠLong ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc Bal Ġ= Ġget Balance ( userId ) ĊĠĠĠĠĠĠĠ Ġset Balance ( userId , Ġc Bal Ġ+ Ġamount ) ĊĠĠĠĠĠĠĠ Ġreturn Ġc Bal Ġ+ Ġamount ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġbalance Dao . clear () ĊĠĠĠ Ġ} Ċ }