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 Mapster;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Mapster;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using SqlSugar; using SqlSugar;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Yi.Framework.Bbs.Application.Contracts.Dtos.BbsUser; using Yi.Framework.Bbs.Application.Contracts.Dtos.BbsUser;
using Yi.Framework.Bbs.Domain.Managers; 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.Consts;
using Yi.Framework.Rbac.Domain.Shared.Model;
namespace Yi.Framework.Bbs.Application.Services.Analyses namespace Yi.Framework.Bbs.Application.Services.Analyses
{ {
public class BbsUserAnalyseService : ApplicationService, IApplicationService public class BbsUserAnalyseService : ApplicationService, IApplicationService
{ {
private BbsUserManager _bbsUserManager; private BbsUserManager _bbsUserManager;
public BbsUserAnalyseService(BbsUserManager bbsUserManager) private IOnlineService _onlineService;
public BbsUserAnalyseService(BbsUserManager bbsUserManager, IOnlineService onlineService)
{ {
_bbsUserManager = bbsUserManager; _bbsUserManager = bbsUserManager;
_onlineService= onlineService;
} }
/// <summary> /// <summary>
@@ -54,5 +53,21 @@ namespace Yi.Framework.Bbs.Application.Services.Analyses
return output.Adapt<List<BbsUserGetListOutputDto>>(); 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 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.Dtos;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Yi.Framework.Rbac.Application.Contracts.IServices; 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;
using Yi.Framework.Rbac.Domain.SignalRHubs.Model;
namespace Yi.Framework.Rbac.Application.Services namespace Yi.Framework.Rbac.Application.Services
{ {
@@ -24,7 +24,7 @@ namespace Yi.Framework.Rbac.Application.Services
/// </summary> /// </summary>
/// <param name="online"></param> /// <param name="online"></param>
/// <returns></returns> /// <returns></returns>
public PagedResultDto<OnlineUserModel> GetListAsync([FromQuery] OnlineUserModel online) public Task<PagedResultDto<OnlineUserModel>> GetListAsync([FromQuery] OnlineUserModel online)
{ {
var data = OnlineUserHub.clientUsers; var data = OnlineUserHub.clientUsers;
IEnumerable<OnlineUserModel> dataWhere = data.AsEnumerable(); IEnumerable<OnlineUserModel> dataWhere = data.AsEnumerable();
@@ -37,7 +37,7 @@ namespace Yi.Framework.Rbac.Application.Services
{ {
dataWhere = dataWhere.Where((u) => u.UserName!.Contains(online.UserName)); 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.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Yi.Framework.Rbac.Domain.SignalRHubs.Model namespace Yi.Framework.Rbac.Domain.Shared.Model
{ {
public class OnlineUserModel public class OnlineUserModel
{ {

View File

@@ -4,7 +4,7 @@ using Microsoft.AspNetCore.SignalR;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Volo.Abp.AspNetCore.SignalR; using Volo.Abp.AspNetCore.SignalR;
using Yi.Framework.Rbac.Domain.Entities; 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 namespace Yi.Framework.Rbac.Domain.SignalRHubs
{ {