ConsoleController.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. namespace hd\controllers;
  3. use bizHd\stat\classes\StatVisitClass;
  4. use bizGhs\item\classes\ItemClass;
  5. use common\components\dict;
  6. use common\components\util;
  7. use bizGhs\order\classes\OrderClass;
  8. use Yii;
  9. class ConsoleController extends BaseController
  10. {
  11. public $guestAccess = ['init', 'profile'];
  12. //总览
  13. public function actionStat()
  14. {
  15. $where = ['mainId' => $this->mainId, 'debt' => 1]; // 重新赋值
  16. $pfDebt = OrderClass::sum($where, 'remainDebtPrice'); // 总欠款
  17. $pfDebt = $pfDebt === null ? 0 : $pfDebt;
  18. $lsDebt = \bizHd\order\classes\OrderClass::sum(['mainId' => $this->mainId, 'debt' => 1], 'remainDebtPrice');
  19. $lsDebt = $lsDebt === null ? 0 : $lsDebt;
  20. $totalDebt = bcadd($pfDebt, $lsDebt, 2);
  21. $itemList = ItemClass::getAllByCondition(['mainId' => $this->mainId], null, 'id,stock,cost', null, true);
  22. $totalItemNum = 0;
  23. $totalCost = 0;
  24. if (!empty($itemList)) {
  25. foreach ($itemList as $item) {
  26. $stock = $item->stock ?? 0;
  27. $cost = $item->cost ?? 0;
  28. $totalItemNum = bcadd($stock, $totalItemNum, 2);
  29. $currentCost = bcmul($stock, $cost, 2);
  30. $totalCost = bcadd($currentCost, $totalCost, 2);
  31. }
  32. }
  33. $totalItemNum = floor($totalItemNum);
  34. $main = $this->main;
  35. $totalCustom = $main->totalUser ?? 0;
  36. $totalVisit = $main->totalVisit ?? 0;
  37. $totalOrder = $main->finishOrder ?? 0;
  38. $overview = [
  39. ['name' => "库存(扎)", "url" => '/admin/stat/stock', 'value' => $totalItemNum, 'type' => 1],
  40. ['name' => "库存(元)", "url" => '/admin/stat/stock', 'value' => $totalCost, 'type' => 1],
  41. ['name' => "总欠款", "url" => '/admin/home/member', 'value' => $totalDebt, 'type' => 4],
  42. ['name' => "总客户", "url" => '/admin/home/member', 'value' => $totalCustom, 'type' => 4],
  43. ['name' => "总访客", "url" => '/admin/home/member', 'value' => $totalVisit, 'type' => 4],
  44. ['name' => "总订单", "url" => '/admin/home/order', 'value' => $totalOrder, 'type' => 4],
  45. ];
  46. util::success(['overview' => $overview]);
  47. }
  48. //概况 ssh 2019.12.19
  49. public function actionProfile()
  50. {
  51. $get = Yii::$app->request->get();
  52. $isMini = $get['isMini'] ?? 0;
  53. $notice = [];
  54. //引导授权
  55. $admin = $this->admin;
  56. $mainId = $this->mainId;
  57. $respond = \bizGhs\stat\classes\StatSaleClass::profile($mainId);
  58. $incomeList = $respond['income'] ?? [];
  59. $todaySale = 0;
  60. if (!empty($incomeList)) {
  61. foreach ($incomeList as $item) {
  62. $todaySale = bcadd($todaySale, $item['amount'], 2);
  63. }
  64. }
  65. $expendList = $respond['expend'] ?? [];
  66. $todayOut = 0;
  67. if (!empty($expendList)) {
  68. foreach ($expendList as $item) {
  69. $todayOut = bcadd($todayOut, $item['amount'], 2);
  70. }
  71. }
  72. $orderNum = $respond['totalOrderNum'] ?? 0;
  73. //访客数
  74. $visitCustom = StatVisitClass::getVisitNum($this->mainId);
  75. util::success([
  76. 'asset' => $this->main,
  77. 'notice' => $notice,
  78. 'todayData' => ['visit' => $visitCustom, 'income' => $todaySale, 'order' => $orderNum, 'out' => $todayOut],
  79. 'incomeStat' => [],
  80. ]);
  81. }
  82. //常用初始化
  83. public function actionInit()
  84. {
  85. $dict = dict::get();
  86. $shop = isset($this->shop) && !empty($this->shop) ? $this->shop->attributes : [];
  87. util::success(['dict' => $dict, 'shop' => $shop]);
  88. }
  89. //系统收入、客服收入、欠款
  90. public function actionStrokeCount()
  91. {
  92. if (empty($this->mainId)) {
  93. util::success([
  94. 'systemIncome' => 0,
  95. 'systemCount' => 0,
  96. 'debtCount' => 0,
  97. 'debtIncome' => 0,
  98. 'kfWxCount' => 0,
  99. 'kfWxIncome' => 0,
  100. 'cashCount' => 0,
  101. 'cashIncome' => 0,
  102. ]);
  103. }
  104. $incomeList = \bizGhs\stat\classes\StatKdClass::eachChannelIncome($this->mainId, $this->shop);
  105. $systemIncome1 = $incomeList['system']['category']['ls']['amount'] ?? 0;
  106. $systemCount1 = $incomeList['system']['category']['ls']['num'] ?? 0;
  107. $systemIncome2 = $incomeList['system']['category']['pf']['amount'] ?? 0;
  108. $systemCount2 = $incomeList['system']['category']['pf']['num'] ?? 0;
  109. $systemCount = bcadd($systemCount1, $systemCount2);
  110. $systemIncome = bcadd($systemIncome1, $systemIncome2, 2);
  111. $debtIncome1 = $incomeList['debt']['category']['ls']['amount'] ?? 0;
  112. $debtCount1 = $incomeList['debt']['category']['ls']['num'] ?? 0;
  113. $debtIncome2 = $incomeList['debt']['category']['pf']['amount'] ?? 0;
  114. $debtCount2 = $incomeList['debt']['category']['pf']['num'] ?? 0;
  115. $debtIncome = bcadd($debtIncome1, $debtIncome2, 2);
  116. $debtCount = bcadd($debtCount1, $debtCount2);
  117. $kfWxIncome1 = $incomeList['kfWx']['category']['ls']['amount'] ?? 0;
  118. $kfWxCount1 = $incomeList['kfWx']['category']['ls']['num'] ?? 0;
  119. $kfWxIncome2 = $incomeList['kfWx']['category']['pf']['amount'] ?? 0;
  120. $kfWxCount2 = $incomeList['kfWx']['category']['pf']['num'] ?? 0;
  121. $kfWxIncome = bcadd($kfWxIncome1, $kfWxIncome2, 2);
  122. $kfWxCount = bcadd($kfWxCount1, $kfWxCount2);
  123. $cashIncome1 = $incomeList['cash']['category']['ls']['amount'] ?? 0;
  124. $cashCount1 = $incomeList['cash']['category']['ls']['num'] ?? 0;
  125. $cashIncome2 = $incomeList['cash']['category']['pf']['amount'] ?? 0;
  126. $cashCount2 = $incomeList['cash']['category']['pf']['num'] ?? 0;
  127. $cashIncome = bcadd($cashIncome1, $cashIncome2, 2);
  128. $cashCount = bcadd($cashCount1, $cashCount2);
  129. util::success([
  130. 'systemIncome' => $systemIncome,
  131. 'systemCount' => $systemCount,
  132. 'debtCount' => $debtCount,
  133. 'debtIncome' => $debtIncome,
  134. 'kfWxCount' => $kfWxCount,
  135. 'kfWxIncome' => $kfWxIncome,
  136. 'cashCount' => $cashCount,
  137. 'cashIncome' => $cashIncome,
  138. ]);
  139. }
  140. }