MetricsController.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?php
  2. namespace App\Module\GameItems\AdminControllers;
  3. use App\Module\GameItems\AdminControllers\Metrics\MaterialRanking;
  4. use App\Module\GameItems\AdminControllers\Metrics\WoodRanking;
  5. use App\Module\GameItems\AdminControllers\Metrics\StoneRanking;
  6. use App\Module\GameItems\AdminControllers\Metrics\SteelRanking;
  7. use App\Module\GameItems\AdminControllers\Metrics\FruitDailyOutputChart;
  8. use App\Module\GameItems\AdminControllers\Metrics\CarrotRanking;
  9. use App\Module\GameItems\AdminControllers\Metrics\ChiliRanking;
  10. use App\Module\GameItems\AdminControllers\Metrics\AppleRanking;
  11. use App\Module\GameItems\AdminControllers\Metrics\WatermelonRanking;
  12. use App\Module\GameItems\AdminControllers\Metrics\StrawberryRanking;
  13. use App\Module\GameItems\AdminControllers\Metrics\PumpkinRanking;
  14. use App\Module\GameItems\AdminControllers\Metrics\WalnutRanking;
  15. use App\Module\GameItems\AdminControllers\Metrics\CocoaRanking;
  16. use App\Module\GameItems\AdminControllers\Metrics\GinsengRanking;
  17. use App\Module\GameItems\AdminControllers\Metrics\RoseRanking;
  18. use Dcat\Admin\Layout\Column;
  19. use Dcat\Admin\Layout\Content;
  20. use Dcat\Admin\Layout\Row;
  21. use Spatie\RouteAttributes\Attributes\Get;
  22. use UCore\DcatAdmin\AdminController;
  23. /**
  24. * 物品模块图表控制器
  25. * 提供物品相关的数据统计和图表展示
  26. */
  27. class MetricsController extends AdminController
  28. {
  29. /**
  30. * 物品统计图表页面
  31. *
  32. * @param Content $content
  33. * @return Content
  34. */
  35. #[Get('game-items-metrics')]
  36. public function index(Content $content)
  37. {
  38. return $content
  39. ->header('物品统计图表')
  40. ->description('物品模块数据统计与分析')
  41. ->body(function (Row $row) {
  42. // 第一行:综合材料排名(原有功能)
  43. $row->column(12, function (Column $column) {
  44. // 三大材料持有排名(可切换)
  45. $column->row(new MaterialRanking());
  46. });
  47. // 第二行:三个独立的材料排名图表
  48. $row->column(4, function (Column $column) {
  49. // 木材排名
  50. $column->row(new WoodRanking());
  51. });
  52. $row->column(4, function (Column $column) {
  53. // 石材排名
  54. $column->row(new StoneRanking());
  55. });
  56. $row->column(4, function (Column $column) {
  57. // 钢材排名
  58. $column->row(new SteelRanking());
  59. });
  60. });
  61. }
  62. /**
  63. * 果实统计图表页面
  64. *
  65. * @param Content $content
  66. * @return Content
  67. */
  68. #[Get('game-items-fruits-metrics')]
  69. public function fruits(Content $content)
  70. {
  71. return $content
  72. ->header('果实统计图表')
  73. ->description('果实持有排名和每日产出趋势分析')
  74. ->body(function (Row $row) {
  75. // 第一行:果实每日产出趋势图
  76. $row->column(12, function (Column $column) {
  77. $column->row(new FruitDailyOutputChart());
  78. });
  79. // 第二行:果实持有排名(第一组:萝卜、辣椒、苹果、西瓜、草莓)
  80. $row->column(12, function (Column $column) {
  81. $column->row(function (Row $subRow) {
  82. $subRow->column(2, function (Column $subColumn) {
  83. $subColumn->row(new CarrotRanking());
  84. });
  85. $subRow->column(2, function (Column $subColumn) {
  86. $subColumn->row(new ChiliRanking());
  87. });
  88. $subRow->column(2, function (Column $subColumn) {
  89. $subColumn->row(new AppleRanking());
  90. });
  91. $subRow->column(3, function (Column $subColumn) {
  92. $subColumn->row(new WatermelonRanking());
  93. });
  94. $subRow->column(3, function (Column $subColumn) {
  95. $subColumn->row(new StrawberryRanking());
  96. });
  97. });
  98. });
  99. // 第三行:果实持有排名(第二组:南瓜、核桃、可可、人参、玫瑰)
  100. $row->column(12, function (Column $column) {
  101. $column->row(function (Row $subRow) {
  102. $subRow->column(2, function (Column $subColumn) {
  103. $subColumn->row(new PumpkinRanking());
  104. });
  105. $subRow->column(2, function (Column $subColumn) {
  106. $subColumn->row(new WalnutRanking());
  107. });
  108. $subRow->column(3, function (Column $subColumn) {
  109. $subColumn->row(new CocoaRanking());
  110. });
  111. $subRow->column(3, function (Column $subColumn) {
  112. $subColumn->row(new GinsengRanking());
  113. });
  114. $subRow->column(2, function (Column $subColumn) {
  115. $subColumn->row(new RoseRanking());
  116. });
  117. });
  118. });
  119. });
  120. }
  121. }