80 lines
2.0 KiB
Go
80 lines
2.0 KiB
Go
package user
|
|
|
|
import (
|
|
"go_dreamfactory/comm"
|
|
"go_dreamfactory/pb"
|
|
"strings"
|
|
)
|
|
|
|
func (this *apiComp) ModifynameCheck(session comm.IUserSession, req *pb.UserModifynameReq) (errdata *pb.ErrorData) {
|
|
if strings.TrimSpace(req.Name) == "" || len(strings.TrimSpace(req.Name)) > 18 {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_ReqParameterError,
|
|
Title: pb.ErrorCode_ReqParameterError.ToString(),
|
|
}
|
|
}
|
|
return
|
|
}
|
|
|
|
func (this *apiComp) Modifyname(session comm.IUserSession, req *pb.UserModifynameReq) (errdata *pb.ErrorData) {
|
|
if errdata = this.ModifynameCheck(session, req); errdata != nil {
|
|
return
|
|
}
|
|
uid := session.GetUserId()
|
|
resp := &pb.UserModifynameResp{Uid: uid, Name: req.Name}
|
|
name := strings.TrimSpace(req.Name)
|
|
//验证名称
|
|
if !this.module.modelUser.NickNameIsExist(name) {
|
|
resp.Code = pb.ErrorCode_UserNickNameExist
|
|
this.sendMsg(session, UserSubTypeModifyName, resp)
|
|
return
|
|
}
|
|
|
|
expand, err := this.module.modelExpand.GetUserExpand(uid)
|
|
if err != nil {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_DBError,
|
|
Title: pb.ErrorCode_DBError.ToString(),
|
|
Message: err.Error(),
|
|
}
|
|
return
|
|
}
|
|
|
|
//校验名称修改次数
|
|
if expand.ModifynameCount <= 0 {
|
|
code = this.module.ConsumeRes(session, this.module.globalConf.HeroName, true)
|
|
if errdata != nil {
|
|
return
|
|
}
|
|
this.module.Infof("修改昵称 uid:%v 消耗:%v code:%v", uid, this.module.globalConf.HeroName, code)
|
|
}
|
|
|
|
//修改名称次数
|
|
left := expand.ModifynameCount - 1
|
|
if left < 0 {
|
|
left = 0
|
|
}
|
|
mc := map[string]interface{}{
|
|
"modifynameCount": left,
|
|
}
|
|
if err := this.module.modelExpand.ChangeUserExpand(uid, mc); err != nil {
|
|
errdata = &pb.ErrorData{
|
|
Code: pb.ErrorCode_DBError,
|
|
Title: pb.ErrorCode_DBError.ToString(),
|
|
Message: err.Error(),
|
|
}
|
|
this.module.Errorf("更新昵称失败 uid:%v name:%v err:%v", uid, req.Name, err)
|
|
return
|
|
}
|
|
|
|
// 修改名称
|
|
if errdata = this.module.modelUser.modifyName(uid, name); errdata != nil {
|
|
return
|
|
}
|
|
|
|
resp.Count = uint32(left)
|
|
this.sendMsg(session, UserSubTypeModifyName, resp)
|
|
|
|
return
|
|
}
|