using System;
using System.Threading.Tasks;
using Dapper;
using Datory;
using GxPress.Common.Tools;
using GxPress.Repository.Interface;
using GxPress.Result.DataCenter;
using GxPress.Service.Interface.PlatformData;
namespace GxPress.Service.Implement.PlatformData
{
public class PlatformDataService : IPlatformDataService
{
private readonly IUserRepository userRepository;
public PlatformDataService(IUserRepository userRepository)
{
this.userRepository = userRepository;
}
///
/// 平台运营数据
///
///
public async Task GetPlatformDataAsync()
{
var newUserTime = DateTime.Now.ToString("yyyy-MM-dd");
var onlineUserTime = DateTime.Now.AddMinutes(-10).ToString("yyyy-MM-dd HH:mm:ss");
var activityUserTime = DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd HH:mm:ss");
var sql = $@"SELECT
(SELECT
COUNT(1)
FROM
tede_user) AS SumUserCount,
(SELECT
COUNT(1)
FROM
tede_user
WHERE
CreatedDate > '{newUserTime}') AS NewUserCount,
(SELECT
COUNT(1)
FROM
tede_user
WHERE
LoginTime > '{onlineUserTime}') AS OnlineUserCount,
(SELECT
COUNT(1)
FROM
tede_user
WHERE
LoginTime > '{activityUserTime}') AS ActivityUserCount";
var connectionString = ConfigHelper.GetValue("Database:ConnectionString");
var database = new Database(DatabaseType.MySql, connectionString);
var connection = database.GetConnection();
var result = await connection.QueryFirstAsync(sql);
return result;
}
///
/// 用户总数增长趋势
///
///
public async Task GetUserIncreaseResult()
{
var result = new UserIncreaseResult();
return result;
}
}
}