feat: 新增个人页面跳转功能

This commit is contained in:
陈淳
2024-01-17 16:31:01 +08:00
parent 0d5c196f39
commit 98a4a2158a
17 changed files with 139 additions and 43 deletions

View File

@@ -5,6 +5,10 @@ namespace Yi.Framework.Bbs.Application.Contracts.Dtos.Discuss
{
public class DiscussGetListInputVo : PagedAndSortedResultRequestDto
{
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5>û<EFBFBD><C3BB><EFBFBD>
/// </summary>
public string? UserName { get; set; }
public Guid? UserId { get; set; }
public string? Title { get; set; }

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Framework.Bbs.Application.Contracts.IServices
{
public interface IBbsUserInfoService
{
}
}

View File

@@ -0,0 +1,33 @@
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
{
public class BbsUserInfoService : ApplicationService, IBbsUserInfoService
{
private BbsUserManager _bbsUserManager;
public BbsUserInfoService(BbsUserManager bbsUserManager)
{
_bbsUserManager = bbsUserManager;
}
[HttpGet("bbs-user/{userName}")]
public async Task<BbsUserInfoDto> GetUserInfoByUserNameAsync([FromRoute][Required] string userName)
{
var userEntity = await _bbsUserManager._userRepository.GetFirstAsync(x => x.UserName == userName);
if (userEntity == null)
{
throw new Volo.Abp.UserFriendlyException("该用户不存在");
}
var output =await _bbsUserManager.GetBbsUserInfoAsync(userEntity.Id);
return output!;
}
}
}

View File

@@ -112,8 +112,10 @@ namespace Yi.Framework.Bbs.Application.Services.Forum
.WhereIF(input.IsTop is not null, x => x.IsTop == input.IsTop)
.WhereIF(input.UserId is not null,x=>x.CreatorId==input.UserId)
.LeftJoin<UserEntity>((discuss, user) => discuss.CreatorId == user.Id)
.LeftJoin<BbsUserExtraInfoEntity>((discuss, user, info) => user.Id == info.UserId)
.WhereIF(input.UserName is not null, (discuss, user)=>user.UserName==input.UserName!)
.LeftJoin<BbsUserExtraInfoEntity>((discuss, user, info) => user.Id == info.UserId)
.OrderByDescending(discuss => discuss.OrderNum)
.OrderByIF(input.Type == QueryDiscussTypeEnum.New, discuss => discuss.CreationTime, OrderByType.Desc)
.OrderByIF(input.Type == QueryDiscussTypeEnum.Host, discuss => discuss.SeeNum, OrderByType.Desc)

View File

@@ -25,7 +25,11 @@ namespace Yi.Framework.Bbs.Domain.Managers
public async Task<BbsUserInfoDto?> GetBbsUserInfoAsync(Guid userId)
{
return await _userRepository._DbQueryable.LeftJoin<BbsUserExtraInfoEntity>((user, info) => user.Id == info.UserId)
.Select((user, info) => new BbsUserInfoDto { Id = user.Id ,Icon=user.Icon,Level=info.Level,UserLimit=info.UserLimit,
.Select((user, info) => new BbsUserInfoDto {
Id = user.Id ,
Icon=user.Icon,
Level=info.Level,
UserLimit=info.UserLimit,
Money = info.Money,
Experience = info.Experience
}, true)

View File

@@ -1,6 +1,9 @@
namespace Yi.Framework.Rbac.Application.Contracts.IServices
using Yi.Framework.Rbac.Domain.Shared.Dtos;
namespace Yi.Framework.Rbac.Application.Contracts.IServices
{
public interface IAccountService
{
Task<UserRoleMenuDto> Get();
}
}