go_dreamfactory/modules/user/api_modifyname.go
2022-11-08 15:06:22 +08:00

74 lines
1.9 KiB
Go

package user
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"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 {
code = this.module.ConsumeRes(session, this.module.configure.GetGlobalConf().HeroName, true)
if code != pb.ErrorCode_Success {
return
}
this.module.Infof("修改昵称 uid:%v 消耗:%v code:%v", session.GetUserId(), this.module.configure.GetGlobalConf().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
}