model------userDao


package model
import("encoding/json""fmt")/サーバ起動後、userDaoインスタンスを初期化し、//グローバル変数にします.redis操作が必要な場合は、そのまま使用すればよい.var(myUserDao*UserDao)/UserDao構造体を定義//User構造体に対する様々な操作を完了//Userオブジェクト(インスタンス)に対する操作を記述する様々な方法は、主にtype UserDao struct{pool*redis.pool}//ファクトリモードを追加削除して調べることです.UserDaoインスタンス//func NewUserDao(pool*redis.Pool)(UserDao*UserDao){//userDao=&UserDao{//pool:pool/}//return/}を作成します.
//UserDaoで提供すべき方法を考えてみましょう//1.ユーザidに基づいて1つのUserインスタンス+err func(this*UserDao)getUserById(conn redis.conn,id int)(user*User,err error){///与えられたidによってredisに行ってこのユーザresをクエリし、err:=redis.string(conn.Do("HGet","user",id))iferr!=nil//////エラー!iferr==redis.ErrNil{////usersハッシュでは、対応するid err=ERr=ERr=ERr==ERr==ERr!=ERr!=ERr!=エラー!ifif!iferr=err=redis!ROR_USER_NOTEXTSTS
	}
	return
}
user=&User{}

//       res      User  
err=json.Unmarshal([]byte(res),&user)
if err!=nil{
	fmt.Println("json.Unmarshal",err)
	return
}
return

}
//ログインの効果を完了するLogin//1.Loginはユーザーに対する検証を完了した//2.ユーザのidとpwdが正しくない場合、userはユーザのidまたはpwdにエラーがある場合、対応するエラー情報func(this*UserDao)Login(userId int,userPwd string)(user*User,err error){//まずUserDaoの接続プールから接続conn:=this.pool.Get()defer conn.Close()user,err=this.getUserById(conn,userId)if err!=nil{return}////このユーザがifr r.user.user.user.user.user.userrId(conn,userId)if err!=nilジルコニアUserPwd!=userPwd{err=ERROR_USER_PWD return}return}func(this*UserDao)Register(user*User){//まずUserDaoの接続プールから接続conn:=this.pool.Get()defer conn.close()user,err=this.getUserById(conn,user.UserId)iferr==nil{err=ERROR_USER_EXSTS return////////////このとき、err=ERROR_USER_EXSTS return////////////////////////////このとき、err=ERr=ERROR_US説明idがredisにまだない場合は登録dataを完了することができ、err :=json.Marshal(user)/if errをシーケンス化!=nil{return}//入庫_,err=conn.Do(“HSet”,“user”,user.UserId,string(data)) if err!=nil{fmt.Println(「登録ユーザエラーerr=」,err)return}return}