コード例 #1
0
//更新用户最后登录时间
func UpdateUserLastLoginTime(identification uint64, userID uint64, time int64) {
	msg := dbProto.MarshalProtoMsg(identification, &dbProto.DB_User_UpdateLastLoginTimeC2S{
		UserID: protos.Uint64(userID),
		Time:   protos.Int64(time),
	})
	sendDBMsgToServer(msg)
}
コード例 #2
0
//用户登录
func userLogin(session *link.Session, protoMsg protos.ProtoMsg) {
	rev_msg := protoMsg.Body.(*dbProto.DB_User_LoginC2S)
	userName := rev_msg.GetName()

	//先从缓存中读取
	dbUser := redisProxy.GetDBUserByUserName(userName)
	if dbUser == nil {
		//从数据库中获取
		dbUser, _ = dao.GetUserByUserName(userName)
		//将数据缓存到Redis
		redisProxy.SetDBUser(dbUser)
	}

	//返回消息
	sendProtoMsg := &dbProto.DB_User_LoginS2C{}
	if dbUser != nil {
		sendProtoMsg.ID = protos.Uint64(dbUser.ID)
		sendProtoMsg.Name = protos.String(dbUser.Name)
	}
	send_msg := dbProto.MarshalProtoMsg(protoMsg.Identification, sendProtoMsg)
	sendDBMsgToClient(session, send_msg)

	//更新最后登录时间
	if dbUser != nil {
		dbUser.LastLoginTime = time.Now().Unix()
		redisProxy.UpdateUserLastLoginTime(dbUser)
	}
}
コード例 #3
0
//用户登录
func userLogin(session *link.Session, protoMsg dbProto.ProtoMsg) {
	rev_msg := protoMsg.Body.(*dbProto.DB_User_LoginC2S)

	sendProtoMsg := &dbProto.DB_User_LoginS2C{}
	dbUser, _ := module_db.GetUserByUserName(rev_msg.GetName())
	if dbUser != nil {
		redisProxy.SetDBUser(dbUser)

		sendProtoMsg.ID = protos.Uint64(dbUser.ID)
		sendProtoMsg.Name = protos.String(dbUser.Name)
	}

	send_msg := dbProto.MarshalProtoMsg(protoMsg.Identification, sendProtoMsg)
	sendDBMsgToClient(session, send_msg)
}
コード例 #4
0
//更新用户最后登录时间
func UpdateUserLastLoginTime(dbUser *DBUserModel) {
	userIDStr := strconv.FormatUint(dbUser.ID, 10)
	userLastLoginTime := strconv.FormatInt(dbUser.LastLoginTime, 10)

	//更新内存
	userKey := DB_User_Key + userIDStr
	data, _ := json.Marshal(dbUser)
	client.Set(userKey, data)

	//单独设置用户的最后登录时间,清理用户缓存数据使用
	client.Hset(DB_UserLastLoginTime_Key, userIDStr, []byte(userLastLoginTime))

	//更新DB
	msg := dbProto.MarshalProtoMsg(0, &dbProto.DB_User_UpdateLastLoginTimeC2S{
		UserID: protos.Uint64(dbUser.ID),
		Time:   protos.Int64(dbUser.LastLoginTime),
	})
	PushDBWriteMsg(msg)
}
コード例 #5
0
//用户登录使用
func UserLogin(identification uint64, userName string) {
	msg := dbProto.MarshalProtoMsg(identification, &dbProto.DB_User_LoginC2S{
		Name: protos.String(userName),
	})
	sendDBMsgToServer(msg)
}