RolePlugin.go 1.3 KB
package plugin

import (
	"github.com/golang/protobuf/proto"
	"pro2d/conf"
	"pro2d/protos/pb"
	"pro2d/src/components/logger"
	"pro2d/src/components/net"
	"pro2d/src/models"
)

func HeartRpc(msg *net.MsgPkg) (int32, proto.Message)   {
	//msg.Conn.SetLastHeartCheckTime()
	return 0, nil
}

func CreateRpc(msg *net.MsgPkg) (int32, proto.Message)   {
	req := pb.CreateReq{}
	if err := proto.Unmarshal(msg.Body, &req); err != nil {
		logger.Error("CreateRpc err: %v", err)
		return 1, nil
	}
	role := models.RoleExistByUid(req.Uid)
	if role != nil {
		return 2, nil
	}

	roleId := conf.SnowFlack.NextVal()
	role = models.NewRole(roleId)
	if _, err := role.Create(); err != nil {
		logger.Error("CreateRpc role create err: %v", err)
		return 3, nil
	}
	return 0, nil
}

func  LoginRpc(msg *net.MsgPkg) (int32, proto.Message)  {
	//logger.Debug("cmd: %v, msg: %s", msg.Head.Cmd, msg.Body)
	req := pb.LoginReq{}
	if err := proto.Unmarshal(msg.Body, &req); err != nil {
		logger.Error("loginRpc err: %v", err)
		return 1, nil
	}

	role := models.RoleExistByUid(req.Uid)
	if role == nil {
		return 2, nil
	}
	role.UpdateProperty("Device", req.Device)

	//return 0, &pb.RoleRsp{
	//	Role:   role.Role,
	//	Hero:   nil,
	//	Team:   nil,
	//	Equips: nil,
	//}
	return 0, &pb.LoginResponse{
		Uid:    role.Role.Uid,
		Device: role.Role.Device,
	}
}