Merge branch 'abp' of https://gitee.com/ccnetcore/Yi into abp

This commit is contained in:
Xwen
2024-01-04 20:58:11 +08:00
6 changed files with 54 additions and 13 deletions

View File

@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Framework.Bbs.Application.Contracts.Dtos.BbsUser
{
public class BbsUserAnalyseGetOutput
{
/// <summary>
/// 注册人数
/// </summary>
public long RegisterNumber { get; set; }
/// <summary>
/// 在线人数
/// </summary>
public long OnlineNumber { get; set; }
}
}

View File

@@ -1,25 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Mapster;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Yi.Framework.Bbs.Application.Contracts.Dtos.BbsUser;
using Yi.Framework.Bbs.Domain.Managers;
using Yi.Framework.Rbac.Application.Contracts.IServices;
using Yi.Framework.Rbac.Domain.Shared.Consts;
using Yi.Framework.Rbac.Domain.Shared.Model;
namespace Yi.Framework.Bbs.Application.Services.Analyses
{
public class BbsUserAnalyseService : ApplicationService, IApplicationService
{
private BbsUserManager _bbsUserManager;
public BbsUserAnalyseService(BbsUserManager bbsUserManager)
private IOnlineService _onlineService;
public BbsUserAnalyseService(BbsUserManager bbsUserManager, IOnlineService onlineService)
{
_bbsUserManager = bbsUserManager;
_onlineService= onlineService;
}
/// <summary>
@@ -54,5 +53,21 @@ namespace Yi.Framework.Bbs.Application.Services.Analyses
return output.Adapt<List<BbsUserGetListOutputDto>>();
}
/// <summary>
/// 用户分析
/// </summary>
/// <returns></returns>
[HttpGet("analyse/bbs-user")]
public async Task<BbsUserAnalyseGetOutput> GetUserAnalyseAsync()
{
var registerUser = await _bbsUserManager._userRepository._DbQueryable.CountAsync();
var userOnline =( await _onlineService.GetListAsync(new OnlineUserModel { })).TotalCount;
var output = new BbsUserAnalyseGetOutput() { OnlineNumber = userOnline, RegisterNumber = registerUser };
return output;
}
}
}

View File

@@ -1,6 +1,10 @@
namespace Yi.Framework.Rbac.Application.Contracts.IServices
using Volo.Abp.Application.Dtos;
using Yi.Framework.Rbac.Domain.Shared.Model;
namespace Yi.Framework.Rbac.Application.Contracts.IServices
{
public interface IOnlineService
{
Task< PagedResultDto<OnlineUserModel>> GetListAsync(OnlineUserModel online);
}
}

View File

@@ -4,8 +4,8 @@ using Microsoft.Extensions.Logging;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Yi.Framework.Rbac.Application.Contracts.IServices;
using Yi.Framework.Rbac.Domain.Shared.Model;
using Yi.Framework.Rbac.Domain.SignalRHubs;
using Yi.Framework.Rbac.Domain.SignalRHubs.Model;
namespace Yi.Framework.Rbac.Application.Services
{
@@ -24,7 +24,7 @@ namespace Yi.Framework.Rbac.Application.Services
/// </summary>
/// <param name="online"></param>
/// <returns></returns>
public PagedResultDto<OnlineUserModel> GetListAsync([FromQuery] OnlineUserModel online)
public Task<PagedResultDto<OnlineUserModel>> GetListAsync([FromQuery] OnlineUserModel online)
{
var data = OnlineUserHub.clientUsers;
IEnumerable<OnlineUserModel> dataWhere = data.AsEnumerable();
@@ -37,7 +37,7 @@ namespace Yi.Framework.Rbac.Application.Services
{
dataWhere = dataWhere.Where((u) => u.UserName!.Contains(online.UserName));
}
return new PagedResultDto<OnlineUserModel>() { TotalCount = data.Count, Items = dataWhere.ToList() };
return Task.FromResult(new PagedResultDto<OnlineUserModel>() { TotalCount = data.Count, Items = dataWhere.ToList() }) ;
}

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Yi.Framework.Rbac.Domain.SignalRHubs.Model
namespace Yi.Framework.Rbac.Domain.Shared.Model
{
public class OnlineUserModel
{

View File

@@ -4,7 +4,7 @@ using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.Logging;
using Volo.Abp.AspNetCore.SignalR;
using Yi.Framework.Rbac.Domain.Entities;
using Yi.Framework.Rbac.Domain.SignalRHubs.Model;
using Yi.Framework.Rbac.Domain.Shared.Model;
namespace Yi.Framework.Rbac.Domain.SignalRHubs
{