feat: 添加在线用户及注册人数的分析接口
This commit is contained in:
@@ -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; }
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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() }) ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
{
|
||||
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user