2021-04-08 20:09:59 +08:00
|
|
|
|
using System;
|
2021-04-11 19:50:39 +08:00
|
|
|
|
using System.Collections.Generic;
|
2021-04-08 20:09:59 +08:00
|
|
|
|
|
|
|
|
|
namespace ET
|
|
|
|
|
{
|
|
|
|
|
[ActorMessageHandler]
|
2021-05-16 17:22:42 +08:00
|
|
|
|
public class C2M_ChangeNickNameHandler: AMActorLocationRpcHandler<Unit, C2M_ChangeNickName, M2C_ChangeNickName>
|
2021-04-08 20:09:59 +08:00
|
|
|
|
{
|
|
|
|
|
protected override async ETTask Run(Unit unit, C2M_ChangeNickName request, M2C_ChangeNickName response, Action reply)
|
|
|
|
|
{
|
2021-04-11 19:50:39 +08:00
|
|
|
|
string ret = CharacterHelper.ReduceMoney(unit, CharacterHelper.MoneyType.Voucher, ConstDefine.ChangeNickNamePrice);
|
2021-04-08 20:09:59 +08:00
|
|
|
|
if (ret != null)
|
|
|
|
|
{
|
|
|
|
|
response.Message = ret;
|
|
|
|
|
reply();
|
|
|
|
|
return;
|
|
|
|
|
}
|
2021-05-16 17:22:42 +08:00
|
|
|
|
|
2021-04-08 20:09:59 +08:00
|
|
|
|
User user = await UserComponent.Instance.Query(unit.Id);
|
|
|
|
|
string oldName = user.NickName;
|
2021-04-10 19:49:32 +08:00
|
|
|
|
string name = request.name;
|
|
|
|
|
if (!FilterCharHelper.IsInvalid(name))
|
2021-04-08 20:09:59 +08:00
|
|
|
|
{
|
2021-04-10 19:49:32 +08:00
|
|
|
|
response.Message = "昵称不能超过7位,不能含有特殊字符";
|
2021-04-08 20:09:59 +08:00
|
|
|
|
reply();
|
|
|
|
|
return;
|
|
|
|
|
}
|
2021-05-16 17:22:42 +08:00
|
|
|
|
|
|
|
|
|
List<NickName> list = await DBComponent.Instance.Query<NickName>(t => t.Nickname == name);
|
|
|
|
|
if (list != null && list.Count > 0)
|
2021-04-08 20:09:59 +08:00
|
|
|
|
{
|
|
|
|
|
response.Message = "昵称重复";
|
|
|
|
|
reply();
|
|
|
|
|
return;
|
|
|
|
|
}
|
2021-05-16 17:22:42 +08:00
|
|
|
|
|
2021-04-08 20:09:59 +08:00
|
|
|
|
await DBComponent.Instance.Remove<NickName>(t => t.Nickname == user.NickName);
|
|
|
|
|
using NickName nickName = EntityFactory.Create<NickName>(unit.DomainScene());
|
|
|
|
|
nickName.Nickname = name;
|
|
|
|
|
await DBComponent.Instance.Save(nickName);
|
|
|
|
|
user.NickName = name;
|
|
|
|
|
await UserComponent.Instance.Save(user);
|
2021-05-16 17:22:42 +08:00
|
|
|
|
NickNameLog log= await DBComponent.Instance.Query<NickNameLog>(unit.Id) ?? EntityFactory.CreateWithId<NickNameLog>(unit.DomainScene(), unit.Id);
|
|
|
|
|
if (log.nameList.Count == 0 || log.nameList[^1] != oldName)
|
|
|
|
|
log.nameList.Add(oldName);
|
2021-04-08 20:09:59 +08:00
|
|
|
|
log.nameList.Add(name);
|
|
|
|
|
await DBComponent.Instance.Save(log);
|
2021-05-16 17:22:42 +08:00
|
|
|
|
log.Dispose();
|
2021-04-08 20:09:59 +08:00
|
|
|
|
|
|
|
|
|
reply();
|
|
|
|
|
await ETTask.CompletedTask;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|