PlatformDataService.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System;
  2. using System.Threading.Tasks;
  3. using Dapper;
  4. using Datory;
  5. using GxPress.Common.Tools;
  6. using GxPress.Repository.Interface;
  7. using GxPress.Result.DataCenter;
  8. using GxPress.Service.Interface.PlatformData;
  9. namespace GxPress.Service.Implement.PlatformData
  10. {
  11. public class PlatformDataService : IPlatformDataService
  12. {
  13. private readonly IUserRepository userRepository;
  14. public PlatformDataService(IUserRepository userRepository)
  15. {
  16. this.userRepository = userRepository;
  17. }
  18. /// <summary>
  19. /// 平台运营数据
  20. /// </summary>
  21. /// <returns></returns>
  22. public async Task<PlatformOperationDataResult> GetPlatformDataAsync()
  23. {
  24. var newUserTime = DateTime.Now.ToString("yyyy-MM-dd");
  25. var onlineUserTime = DateTime.Now.AddMinutes(-10).ToString("yyyy-MM-dd HH:mm:ss");
  26. var activityUserTime = DateTime.Now.AddMonths(-1).ToString("yyyy-MM-dd HH:mm:ss");
  27. var sql = $@"SELECT
  28. (SELECT
  29. COUNT(1)
  30. FROM
  31. tede_user) AS SumUserCount,
  32. (SELECT
  33. COUNT(1)
  34. FROM
  35. tede_user
  36. WHERE
  37. CreatedDate > '{newUserTime}') AS NewUserCount,
  38. (SELECT
  39. COUNT(1)
  40. FROM
  41. tede_user
  42. WHERE
  43. LoginTime > '{onlineUserTime}') AS OnlineUserCount,
  44. (SELECT
  45. COUNT(1)
  46. FROM
  47. tede_user
  48. WHERE
  49. LoginTime > '{activityUserTime}') AS ActivityUserCount";
  50. var connectionString = ConfigHelper.GetValue("Database:ConnectionString");
  51. var database = new Database(DatabaseType.MySql, connectionString);
  52. var connection = database.GetConnection();
  53. var result = await connection.QueryFirstAsync<PlatformOperationDataResult>(sql);
  54. return result;
  55. }
  56. /// <summary>
  57. /// 用户总数增长趋势
  58. /// </summary>
  59. /// <returns></returns>
  60. public async Task<UserIncreaseResult> GetUserIncreaseResult()
  61. {
  62. var result = new UserIncreaseResult();
  63. return result;
  64. }
  65. }
  66. }