commonFunc.go 1.04 KB
package common

import (
	"errors"
	"fmt"
	"github.com/garyburd/redigo/redis"
	"pro2d/common/db/redisproxy"
)

func GetNextRoleId() (string, error) {
	relay, err := redisproxy.HGET(AutoIncrement, "role")
	if err != nil {
		return "", err
	}
	ID, err := redis.Int64(relay, err)
	if err != nil {
		return "", err
	}

	//roleID的范围 [GlobalSconf.ID*MaxRoleNum, GlobalSconf.ID*MaxRoleNum + MaxRoleNum]
	if ID-GlobalSconf.ID*MaxRoleNum >= MaxCommNum-1 {
		return "", errors.New("DB_FULL")
	}

	relay, err = redisproxy.HINCRBY(AutoIncrement, "role", 1)
	ID, err = redis.Int64(relay, err)
	if err != nil {
		return "", err
	}
	return fmt.Sprintf("%d", ID), nil
}

func GetNextUId() (string, error) {
	relay, err := redisproxy.HGET(AutoIncrement, "uid")
	if err != nil {
		return "", err
	}

	var ID int64 = 0
	if relay == nil {
		ID = 90000
		redisproxy.HSET(AutoIncrement, "uid", ID)
	} else {
		relay, err = redisproxy.HINCRBY(AutoIncrement, "uid", 1)
		ID, err = redis.Int64(relay, err)
		if err != nil {
			return "", err
		}
	}
	return fmt.Sprintf("%d", ID), nil
}