package Ġcom . i way ee . activity . dao . mysql Ċ Ċ import Ġio . vertx . core . json . JsonArray Ċ import Ġio . vertx . core . json . JsonObject Ċ import Ġio . vertx . mysql client . MySQL Client Ċ import Ġio . vertx . sql client . Tuple Ċ import Ġorg . slf 4 j . LoggerFactory Ċ Ċ object ĠUser Dao Ġ: ĠMy Dao () Ġ{ ĊĠ Ġprivate Ġval ĠLOG Ġ= ĠLoggerFactory . getLogger ( User Dao :: class . java ) ĊĊĠ Ġfun Ġcreate ( user : ĠJsonObject , Ġaction : Ġ( Long ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġfields Ġ= Ġ" username , password , token , nick , wx _ token , wx _ nick , sex , phone , email , ip , activities , groups "; ĊĠĠĠ Ġvar Ġsql Ġ= Ġ" INSERT ĠINTO Ġuser Ġ($ fields ) ĠVALUES Ġ( ?,?, ?,?, ?,?, ?,?, ?,?, ?, ? )" ĊĊĠĠĠ Ġ// Ġ æī¹éĩı æıĴåħ¥ ĊĠĠĠ Ġ// Ġconn . prepared Query (" INSERT ĠINTO ĠUsers Ġ( first _ name , last _ name ) ĠVALUES Ġ( ?, Ġ? )") ĊĠĠĠ Ġ// ĠĠĠĠĠ Ġ. execute Batch ( Arrays . asList ( ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠTuple . of (" Jul ien ", Ġ" V iet "), ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠTuple . of (" Em ad ", Ġ" Al bl ues hi ") ĊĠĠĠ Ġ// ĠĠĠĠĠ Ġ)) ĊĊĠĠĠ Ġclient ?. let Ġ{ ĊĠĠĠĠĠ Ġit . prepared Query ( sql ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute ( Tuple . of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" username "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" password "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" token "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" nick "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" wx _ token "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" wx _ nick "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getInteger (" sex "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" phone "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" email "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" ip "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" activities "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" groups ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Success Ġ{ Ġrows Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Insert Id Ġ= Ġrows . property ( MySQL Client . LAST _ INSERT ED _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . info (" Last ĠInsert ĠId : Ġ$ last Insert Id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( last Insert Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Failure Ġ{ Ġth Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . info (" Failure : Ġ${ th . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun ĠgetUser ById ( id : ĠLong , Ġaction : Ġ( JsonObject ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġfields Ġ= Ġ" id , scores , username , token , nick , wx _ token , wx _ nick , sex , phone , email , ip , activities , groups , create _ at "; ĊĠĠĠ Ġvar Ġsql Ġ= Ġ" SELECT Ġ$ fields ĠFROM Ġ` user ` ĠWHERE Ġid Ġ= Ġ? " ĊĊĠĠĠ Ġclient ?. let Ġ{ ĊĠĠĠĠĠ Ġit . prepared Query ( sql ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute ( Tuple . of ( id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Success Ġ{ Ġrows Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġjo Ġ= ĠJsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( row Ġin Ġrows ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjo Ġ= Ġto Jo ( row . toJson ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( jo ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Failure Ġ{ Ġth Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . info (" Failure : Ġ${ th . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( JsonObject ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun ĠgetUser ByName ( username : ĠString , Ġaction : Ġ( JsonObject ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġfields Ġ= Ġ" id , scores , username , token , nick , wx _ token , wx _ nick , sex , phone , email , ip , activities , groups , create _ at "; ĊĠĠĠ Ġvar Ġsql Ġ= Ġ" SELECT Ġ$ fields ĠFROM Ġ` user ` ĠWHERE Ġusername Ġ= Ġ? " ĊĊĠĠĠ Ġclient ?. let Ġ{ ĊĠĠĠĠĠ Ġit . prepared Query ( sql ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute ( Tuple . of ( username )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Success Ġ{ Ġrows Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġjo Ġ= ĠJsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( row Ġin Ġrows ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjo Ġ= Ġto Jo ( row . toJson ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( jo ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Failure Ġ{ Ġth Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . info (" Failure : Ġ${ th . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( JsonObject ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun ĠgetUser ById s ( ids : ĠString , Ġaction : Ġ( JsonObject ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġfields Ġ= Ġ" id , scores , username , token , nick , wx _ token , wx _ nick , sex , phone , email , ip , activities , groups "; ĊĠĠĠ Ġvar Ġsql Ġ= Ġ" SELECT Ġ$ fields ĠFROM Ġ` user ` ĠWHERE Ġid ĠIN ($ ids )" ĊĊĠĠĠ Ġclient ?. let Ġ{ ĊĠĠĠĠĠ Ġit . prepared Query ( sql ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Success Ġ{ Ġrows Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġjo Ġ= ĠJsonObject () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( row Ġin Ġrows ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjo . put ( row . getInteger (" id "). toString (), Ġto Jo ( row . toJson ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( jo ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Failure Ġ{ Ġth Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . info (" Failure : Ġ${ th . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( JsonObject ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġupdate User ById ( id : ĠLong , Ġuser : ĠJsonObject , Ġaction : Ġ( Boolean ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġfields Ġ= Ġ(" nick Ġ= Ġ?, Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" wx _ nick Ġ= Ġ?, Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" token Ġ= Ġ?, Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" wx _ token Ġ= Ġ?, Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" ip Ġ= Ġ?, Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" groups Ġ= Ġ?, Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" activities Ġ= Ġ? ") ĊĠĠĠ Ġvar Ġsql Ġ= Ġ" UPDATE Ġ` user ` ĠSET Ġ$ fields ĠWHERE Ġid Ġ= Ġ? " ĊĊĠĠĠ Ġclient ?. let Ġ{ ĊĠĠĠĠĠ Ġit . prepared Query ( sql ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. execute ( Tuple . of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" nick "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" wx _ nick "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" token "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" wx _ token "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . getString (" ip "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . get JsonArray (" groups "). encode (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser . get JsonArray (" activities "). encode (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Success { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Failure Ġ{ Ġth Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLOG . info (" Failure : Ġ${ th . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ// Ġ ç§ģ æľī æĸ¹æ³ķ ĊĠ Ġprivate Ġfun Ġto Jo ( jo : ĠJsonObject ): ĠJsonObject Ġ{ ĊĠĠĠ Ġjo . put (" groups ", ĠJson Array ( jo . getString (" groups "))) ĊĠĠĠ Ġjo . put (" activities ", ĠJson Array ( jo . getString (" activities "))) ĊĠĠĠ Ġreturn Ġjo ĊĠ Ġ} Ċ } Ċ