121
This commit is contained in:
@@ -14,13 +14,15 @@ public class RelationController : ControllerBase
|
||||
private readonly IUnitUserRelationService _relationService;
|
||||
private readonly IUnitUserService _userService;
|
||||
private readonly IMessageService _messageService;
|
||||
private readonly IUnitUserAccService _accService;
|
||||
|
||||
public RelationController(IUnitUserRelationService relationService, IUnitUserService userService,
|
||||
IMessageService messageService)
|
||||
IMessageService messageService, IUnitUserAccService accService)
|
||||
{
|
||||
_relationService = relationService;
|
||||
_userService = userService;
|
||||
_messageService = messageService;
|
||||
_accService = accService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -51,10 +53,23 @@ public class RelationController : ControllerBase
|
||||
.ThenByDescending(it => it.sort).ToList();
|
||||
result = PageExtend.GetPageList(data, page, 10);
|
||||
}
|
||||
else if (type == 3)
|
||||
{
|
||||
var data = await _relationService.GetUserEnemyData(userId);
|
||||
total = data.Count;
|
||||
data = data.OrderByDescending(it => it.isOnline)
|
||||
.ThenByDescending(it => it.sort).ToList();
|
||||
result = PageExtend.GetPageList(data, page, 10);
|
||||
}
|
||||
|
||||
return PoAction.Ok(new { data = result, total = total.Value, online = result.Count(it => it.isOnline == 1) });
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 好友处理
|
||||
/// </summary>
|
||||
/// <param name="no"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<IPoAction> FriendHandle(string no)
|
||||
{
|
||||
@@ -76,8 +91,33 @@ public class RelationController : ControllerBase
|
||||
}
|
||||
|
||||
bool IsFriend = await _relationService.CheckIsFriend(userId, userInfo.userId);
|
||||
if (IsFriend == false)
|
||||
if (IsFriend == false) //添加好友
|
||||
{
|
||||
var friendRole =
|
||||
await _userService.GetUserConfigInfo(userInfo.userId, nameof(UserEnum.ConfigCode.FriendRole));
|
||||
if (friendRole == 0)
|
||||
{
|
||||
return PoAction.Message("该玩家拒绝任何人添加好友!");
|
||||
}
|
||||
|
||||
var friendCount = await _relationService.GetUserFriendCount(userId);
|
||||
if (friendCount >= GameConfig.GameUserFriendMaxCount)
|
||||
{
|
||||
return PoAction.Message("好友人数已达上限!");
|
||||
}
|
||||
|
||||
if (friendRole == 2)//不限制加好友
|
||||
{
|
||||
if (await _relationService.AddFriend(userId, userInfo.userId))
|
||||
{
|
||||
return PoAction.Ok(true, "添加好友成功!");
|
||||
}
|
||||
else
|
||||
{
|
||||
return PoAction.Ok(true, "添加好友失败,请稍后尝试!");
|
||||
}
|
||||
}
|
||||
|
||||
string token = $"{nameof(MessageEnum.EventCode.Friend)}_{userId}_{userInfo.userId}";
|
||||
if (await _messageService.CheckAtEventMsg(token))
|
||||
{
|
||||
@@ -114,4 +154,91 @@ public class RelationController : ControllerBase
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 删除仇人
|
||||
/// </summary>
|
||||
/// <param name="no"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<IPoAction> DeleteEnemy(string no)
|
||||
{
|
||||
string userId = StateHelper.userId;
|
||||
var userInfo = await _userService.GetUserInfoByUserNo(no); //基础资料
|
||||
if (userInfo == null)
|
||||
{
|
||||
return PoAction.Message("玩家不存在!");
|
||||
}
|
||||
|
||||
bool IsEnemy = await _relationService.CheckUserEnemy(userId, userInfo.userId);
|
||||
if (IsEnemy == false)
|
||||
{
|
||||
return PoAction.Message("不是仇人,无需删除哦");
|
||||
}
|
||||
|
||||
bool result = await _relationService.DeleteUserEnemy(userId, userInfo.userId);
|
||||
if (result)
|
||||
{
|
||||
return PoAction.Ok(true, "删除成功!");
|
||||
}
|
||||
else
|
||||
{
|
||||
return PoAction.Message("删除失败,请稍后尝试.");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 添加仇人
|
||||
/// </summary>
|
||||
/// <param name="no"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<IPoAction> AddEnemy(string no)
|
||||
{
|
||||
string userId = StateHelper.userId;
|
||||
var userInfo = await _userService.GetUserInfoByUserNo(no); //基础资料
|
||||
if (userInfo == null)
|
||||
{
|
||||
return PoAction.Message("玩家不存在!");
|
||||
}
|
||||
|
||||
if (userInfo.userId == userId)
|
||||
{
|
||||
return PoAction.Message("不能加自己为仇人!");
|
||||
}
|
||||
|
||||
if (userInfo.areaId != StateHelper.areaId)
|
||||
{
|
||||
return PoAction.Message("玩家不存在!");
|
||||
}
|
||||
|
||||
bool IsEnemy = await _relationService.CheckUserEnemy(userId, userInfo.userId);
|
||||
if (IsEnemy == true)
|
||||
{
|
||||
return PoAction.Message("已经是仇人啦,无需重复添加!");
|
||||
}
|
||||
|
||||
var myAcc = await _accService.GetUserAccInfo(userId, nameof(AccEnum.AccType.gold));
|
||||
if (myAcc < GameConfig.GameRelationEnemyNeedGold)
|
||||
{
|
||||
return PoAction.Message("您的金元不足!");
|
||||
}
|
||||
|
||||
if (await _accService.UpdateUserAcc(userId, 0, nameof(AccEnum.AccType.gold),
|
||||
GameConfig.GameRelationEnemyNeedGold, nameof(AccEnum.Name.其他), "添加仇人"))
|
||||
{
|
||||
if (await _relationService.AddUserEnemy(userId, userInfo.userId))
|
||||
{
|
||||
return PoAction.Ok(true, "仇人添加成功!");
|
||||
}
|
||||
else
|
||||
{
|
||||
return PoAction.Message("添加失败,请稍后尝试.");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return PoAction.Message("添加失败,请稍后尝试.");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,18 +13,22 @@ public class UserController : ControllerBase
|
||||
private readonly IUnitUserAccService _accService;
|
||||
private readonly IGameMapService _mapService;
|
||||
private readonly IUnitUserRelationService _relationService;
|
||||
private readonly IGameGoodsService _goodsService;
|
||||
private readonly IGameChatService _chatService;
|
||||
|
||||
public UserController(IUnitUserService userService, IUnitUserAttrService attrService,
|
||||
IUnitUserAccService accService, IGameMapService mapService,IUnitUserRelationService relationService)
|
||||
IUnitUserAccService accService, IGameMapService mapService, IUnitUserRelationService relationService,
|
||||
IGameGoodsService goodsService, IGameChatService chatService)
|
||||
{
|
||||
_userService = userService;
|
||||
_attrService = attrService;
|
||||
_accService = accService;
|
||||
_mapService = mapService;
|
||||
_relationService = relationService;
|
||||
_goodsService = goodsService;
|
||||
_chatService = chatService;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取个人资料信息
|
||||
@@ -53,27 +57,34 @@ public class UserController : ControllerBase
|
||||
/// <param name="no"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet]
|
||||
public async Task<IPoAction> GetUserBaseInfo(string no)
|
||||
public async Task<IPoAction> GetUserBaseInfo(string? no)
|
||||
{
|
||||
string userId = StateHelper.userId;
|
||||
var userInfo = await _userService.GetUserInfoByUserNo(no); //基础资料
|
||||
if (userInfo == null)
|
||||
if (!string.IsNullOrEmpty(no))
|
||||
{
|
||||
return PoAction.Message("玩家不存在!", 102);
|
||||
var userInfo = await _userService.GetUserInfoByUserNo(no); //基础资料
|
||||
if (userInfo == null)
|
||||
{
|
||||
return PoAction.Message("玩家不存在!", 102);
|
||||
}
|
||||
|
||||
if (userInfo.userId == userId)
|
||||
{
|
||||
return PoAction.Message("用户本身!", 101);
|
||||
}
|
||||
|
||||
if (userInfo.areaId != StateHelper.areaId)
|
||||
{
|
||||
return PoAction.Message("玩家不存在!", 102);
|
||||
}
|
||||
|
||||
userId = userInfo.userId;
|
||||
}
|
||||
|
||||
if (userInfo.userId == userId)
|
||||
{
|
||||
return PoAction.Message("用户本身!", 101);
|
||||
}
|
||||
if (userInfo.areaId != StateHelper.areaId)
|
||||
{
|
||||
return PoAction.Message("玩家不存在!", 102);
|
||||
}
|
||||
|
||||
var model = await UserModelTool.GetUserView(userInfo.userId);
|
||||
var model = await UserModelTool.GetUserView(userId);
|
||||
return PoAction.Ok(model);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取用户资料
|
||||
/// </summary>
|
||||
@@ -93,6 +104,7 @@ public class UserController : ControllerBase
|
||||
{
|
||||
return PoAction.Message("用户本身!", 101);
|
||||
}
|
||||
|
||||
if (userInfo.areaId != StateHelper.areaId)
|
||||
{
|
||||
return PoAction.Message("玩家不存在!", 102);
|
||||
@@ -112,7 +124,126 @@ public class UserController : ControllerBase
|
||||
var onCity = await _mapService.GetCityInfo((int)onMapInfo.cityId);
|
||||
string onMapName = $"{onCity.cityName}-{onMapInfo.mapName}";
|
||||
bool isFriend = await _relationService.CheckIsFriend(userId, userInfo.userId);
|
||||
object result = new { user, attr = new { attrInfo.lev }, acc, isOnline, onMapName ,isFriend};
|
||||
bool isEnemy = await _relationService.CheckUserEnemy(userId, userInfo.userId);
|
||||
object result = new { user, attr = new { attrInfo.lev }, acc, isOnline, onMapName, isFriend, isEnemy };
|
||||
return PoAction.Ok(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新昵称
|
||||
/// </summary>
|
||||
/// <param name="parms"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<IPoAction> UpdateUserNick([FromBody] UpdateNickParms parms)
|
||||
{
|
||||
parms.nick = StringAssist.NoHTML(parms.nick);
|
||||
if (string.IsNullOrEmpty(parms.nick))
|
||||
{
|
||||
return PoAction.Message("昵称不能为空!");
|
||||
}
|
||||
|
||||
string userId = StateHelper.userId;
|
||||
var userInfo = await _userService.GetUserInfoByUserId(userId);
|
||||
if (userInfo.nick == parms.nick)
|
||||
{
|
||||
return PoAction.Message("昵称无变化,无需修改!");
|
||||
}
|
||||
|
||||
if (await _userService.CheckUserNickIsAt(parms.nick))
|
||||
{
|
||||
return PoAction.Message("昵称已存在!");
|
||||
}
|
||||
|
||||
|
||||
var myGoods = await _goodsService.GetUserGoodsCount(userId, GameConfig.GameUpdateNickNeedGoods);
|
||||
if (myGoods < 1)
|
||||
{
|
||||
return PoAction.Message("暂无改名道具!");
|
||||
}
|
||||
|
||||
if (await _goodsService.UpdateUserGoods(userId, 0, GameConfig.GameUpdateNickNeedGoods, 1, "改名使用"))
|
||||
{
|
||||
if (await _userService.UpdateUserNick(userId, parms.nick))
|
||||
{
|
||||
string sign = $"玩家注意:【{UbbTool.HomeUbb(userInfo.userNo, userInfo.nick)}】已将昵称修改为【{parms.nick}】";
|
||||
await _chatService.SendChat("0", StateHelper.areaId, nameof(GameChatEnum.Code.Region), sign);
|
||||
return PoAction.Ok(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
return PoAction.Message("操作失败,请稍后尝试!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return PoAction.Message("操作失败,请稍后尝试!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 变更性别
|
||||
/// </summary>
|
||||
/// <param name="parms"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<IPoAction> UpdateUserSex([FromBody] UpdateSexParms parms)
|
||||
{
|
||||
parms.sex = parms.sex == "男" ? "男" : "女";
|
||||
|
||||
string userId = StateHelper.userId;
|
||||
var userInfo = await _userService.GetUserInfoByUserId(userId);
|
||||
if (userInfo.sex == parms.sex)
|
||||
{
|
||||
return PoAction.Message("已是当前性别,无需修改!");
|
||||
}
|
||||
|
||||
var myGoods = await _goodsService.GetUserGoodsCount(userId, GameConfig.GameUpdateSexNeedGoods);
|
||||
if (myGoods < 1)
|
||||
{
|
||||
return PoAction.Message("暂无性别变更道具!");
|
||||
}
|
||||
|
||||
if (await _goodsService.UpdateUserGoods(userId, 0, GameConfig.GameUpdateSexNeedGoods, 1, "变更性别使用"))
|
||||
{
|
||||
if (await _userService.UpdateUserSex(userId, parms.sex))
|
||||
{
|
||||
return PoAction.Ok(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
return PoAction.Message("操作失败,请稍后尝试!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return PoAction.Message("操作失败,请稍后尝试!");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 更新签名
|
||||
/// </summary>
|
||||
/// <param name="parms"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<IPoAction> UpdateUserSign([FromBody] UpdateSignParms parms)
|
||||
{
|
||||
if (parms.sign.Length > 80)
|
||||
{
|
||||
return PoAction.Message("签名不能超过80个字符!");
|
||||
}
|
||||
|
||||
parms.sign = StringAssist.NoHTML(parms.sign);
|
||||
string userId = StateHelper.userId;
|
||||
|
||||
if (await _userService.UpdateUserSign(userId, parms.sign))
|
||||
{
|
||||
return PoAction.Ok(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
return PoAction.Message("操作失败,请稍后尝试!");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user