package user import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "go_dreamfactory/sys/wordfilter" "strings" ) func (this *apiComp) ModifynameCheck(session comm.IUserSession, req *pb.UserModifynameReq) (errdata *pb.ErrorData) { name := strings.TrimSpace(req.Name) if name == "" || len(name) > 30 { errdata = &pb.ErrorData{ Code: pb.ErrorCode_ReqParameterError, Title: pb.ErrorCode_ReqParameterError.ToString(), } return } if ok, _ := wordfilter.Validate(name); !ok { errdata = &pb.ErrorData{ Code: pb.ErrorCode_UserNickSensitive, Title: pb.ErrorCode_UserNickSensitive.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 { errdata = this.module.ConsumeRes(session, this.module.globalConf.HeroName, true) if errdata != nil { return } } //修改名称次数 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 }