package user import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "strings" ) 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 *pb.ErrorData) { 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 { code = this.module.ConsumeRes(session, this.module.globalConf.HeroName, true) if code != pb.ErrorCode_Success { return } this.module.Infof("修改昵称 uid:%v 消耗:%v code:%v", session.GetUserId(), 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(session.GetUserId(), mc); err != nil { code = pb.ErrorCode_DBError this.module.Errorf("更新昵称失败 uid:%v name:%v err:%v", session.GetUserId(), req.Name, err) 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 }