From 13ae0e33c175600be4933120456cedabc9ea2196 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B7=B3?= <454313500@qq.com> Date: Thu, 1 Feb 2024 15:16:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E6=88=90=E7=AD=89=E7=BA=A7?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/BbsUserInfoService.cs | 25 +++++++---- .../Managers/LevelManager.cs | 14 +++--- Yi.Bbs.Vue3/src/apis/levelApi.js | 7 +++ Yi.Bbs.Vue3/src/views/level/Index.vue | 45 ++++++++++++++----- 4 files changed, 66 insertions(+), 25 deletions(-) diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/BbsUserInfoService.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/BbsUserInfoService.cs index 50a92d5a..0e93ced2 100644 --- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/BbsUserInfoService.cs +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/BbsUserInfoService.cs @@ -1,10 +1,8 @@ using System.ComponentModel.DataAnnotations; using Microsoft.AspNetCore.Mvc; -using TencentCloud.Ame.V20190916.Models; using Volo.Abp.Application.Services; using Yi.Framework.Bbs.Application.Contracts.IServices; using Yi.Framework.Bbs.Domain.Managers; -using Yi.Framework.Rbac.Domain.Shared.Dtos; namespace Yi.Framework.Bbs.Application.Services { @@ -16,16 +14,25 @@ namespace Yi.Framework.Bbs.Application.Services _bbsUserManager = bbsUserManager; } - [HttpGet("bbs-user/{userName}")] - public async Task GetUserInfoByUserNameAsync([FromRoute][Required] string userName) + [HttpGet("bbs-user/{userNameOrUserId}")] + public async Task GetUserInfoByUserNameOrUserIdAsync([FromRoute][Required] string userNameOrUserId) { - - var userEntity = await _bbsUserManager._userRepository.GetFirstAsync(x => x.UserName == userName); - if (userEntity == null) + Guid userId; + if (Guid.TryParse(userNameOrUserId, out var userGuidId)) { - throw new Volo.Abp.UserFriendlyException("该用户不存在"); + userId = userGuidId; } - var output =await _bbsUserManager.GetBbsUserInfoAsync(userEntity.Id); + else + { + var userEntity = await _bbsUserManager._userRepository.GetFirstAsync(x => x.UserName == userNameOrUserId); + if (userEntity == null) + { + throw new Volo.Abp.UserFriendlyException("该用户不存在"); + } + userId= userEntity.Id; + } + + var output =await _bbsUserManager.GetBbsUserInfoAsync(userId); return output!; } diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Managers/LevelManager.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Managers/LevelManager.cs index 24fa1e6f..ba413bec 100644 --- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Managers/LevelManager.cs +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Domain/Managers/LevelManager.cs @@ -36,11 +36,11 @@ namespace Yi.Framework.Bbs.Domain.Managers var currentNewExperience = userInfo.Experience + moneyNumber * 1; //修改钱钱,如果钱钱不足,直接会丢出去 - await _localEventBus.PublishAsync(new MoneyChangeEventArgs { UserId = userId, Number = moneyNumber }); + await _localEventBus.PublishAsync(new MoneyChangeEventArgs { UserId = userId, Number = -moneyNumber },false); //更改最终的经验再变化等级 - var levelList = _levelCacheItem.OrderBy(x => x.CurrentLevel).ToList(); - var currentNewLevel = 0; + var levelList = _levelCacheItem.OrderByDescending(x => x.CurrentLevel).ToList(); + var currentNewLevel = 1; foreach (var level in levelList) { if (currentNewExperience >= level.MinExperience) @@ -49,9 +49,11 @@ namespace Yi.Framework.Bbs.Domain.Managers break; } } - userInfo.Level = currentNewLevel; - userInfo.Experience = currentNewExperience; - await _bbsUserManager._bbsUserInfoRepository.UpdateAsync(userInfo.Adapt()); + + var exUserInfo = await _bbsUserManager._bbsUserInfoRepository.GetAsync(x => x.UserId == userInfo.Id); + exUserInfo.Level = currentNewLevel; + exUserInfo.Experience = currentNewExperience; + await _bbsUserManager._bbsUserInfoRepository.UpdateAsync(exUserInfo); } } diff --git a/Yi.Bbs.Vue3/src/apis/levelApi.js b/Yi.Bbs.Vue3/src/apis/levelApi.js index b6237539..342a1e87 100644 --- a/Yi.Bbs.Vue3/src/apis/levelApi.js +++ b/Yi.Bbs.Vue3/src/apis/levelApi.js @@ -7,3 +7,10 @@ export function getList(data) { params: data, }); } +export function upgrade(experience) { + return request({ + url: `/level/upgrade?experience=${experience}`, + method: "put" + }); +} + diff --git a/Yi.Bbs.Vue3/src/views/level/Index.vue b/Yi.Bbs.Vue3/src/views/level/Index.vue index 14477740..9bc650cc 100644 --- a/Yi.Bbs.Vue3/src/views/level/Index.vue +++ b/Yi.Bbs.Vue3/src/views/level/Index.vue @@ -1,24 +1,25 @@