79 lines
1.8 KiB
Go
79 lines
1.8 KiB
Go
package user
|
|
|
|
import (
|
|
"go_dreamfactory/comm"
|
|
"go_dreamfactory/pb"
|
|
cfg "go_dreamfactory/sys/configure/structs"
|
|
"strings"
|
|
|
|
"google.golang.org/protobuf/proto"
|
|
)
|
|
|
|
func (this *apiComp) ModifynameCheck(session comm.IUserSession, req *pb.UserModifynameReq) (code pb.ErrorCode) {
|
|
if strings.TrimSpace(req.Name) == "" || len(strings.TrimSpace(req.Name)) > 18 {
|
|
code = pb.ErrorCode_ReqParameterError
|
|
}
|
|
return
|
|
}
|
|
|
|
func (this *apiComp) Modifyname(session comm.IUserSession, req *pb.UserModifynameReq) (code pb.ErrorCode, data proto.Message) {
|
|
if code = this.ModifynameCheck(session, req); code != pb.ErrorCode_Success {
|
|
return
|
|
}
|
|
|
|
name := strings.TrimSpace(req.Name)
|
|
//验证名称
|
|
if !this.module.modelUser.NickNameIsExist(name) {
|
|
code = pb.ErrorCode_UserNickNameExist
|
|
return
|
|
}
|
|
|
|
expand, err := this.module.modelExpand.GetUserExpand(session.GetUserId())
|
|
if err != nil {
|
|
code = pb.ErrorCode_DBError
|
|
return
|
|
}
|
|
|
|
//校验名称修改次数
|
|
if expand.ModifynameCount <= 0 {
|
|
//TODO 从全局配置从读取消耗道具
|
|
if code = this.module.ConsumeRes(session, []*cfg.Game_atn{
|
|
{
|
|
A: "attr",
|
|
T: "gold",
|
|
N: 5000,
|
|
},
|
|
}, true); code != pb.ErrorCode_Success {
|
|
return
|
|
}
|
|
}
|
|
|
|
//修改名称次数
|
|
left := expand.ModifynameCount - 1
|
|
if left < 0 {
|
|
left = 0
|
|
}
|
|
mc := map[string]interface{}{
|
|
"modifynameCount": left,
|
|
}
|
|
if err := this.module.modelExpand.ChangeUserExpand(session.GetUserId(), mc); err != nil {
|
|
code = pb.ErrorCode_DBError
|
|
return
|
|
}
|
|
|
|
// 修改名称
|
|
if code = this.module.modelUser.modifyName(session.GetUserId(), name); code != pb.ErrorCode_Success {
|
|
return
|
|
}
|
|
|
|
if err = session.SendMsg(string(this.module.GetType()), UserSubTypeModifyName, &pb.UserModifynameResp{
|
|
Uid: session.GetUserId(),
|
|
Count: uint32(left),
|
|
Name: req.Name,
|
|
}); err != nil {
|
|
code = pb.ErrorCode_SystemError
|
|
}
|
|
|
|
return
|
|
}
|