Account.php 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\shop\controller;
  11. use app\model\member\Withdraw;
  12. use app\model\order\Order as OrderModel;
  13. use app\model\order\OrderRefund;
  14. use Carbon\Carbon;
  15. class Account extends BaseShop
  16. {
  17. public function dashboard()
  18. {
  19. $is_memberwithdraw = addon_is_exit('memberwithdraw', $this->site_id);
  20. $this->assign('is_memberwithdraw', $is_memberwithdraw);
  21. //获取分销商账户统计
  22. $is_addon_fenxiao = addon_is_exit('fenxiao', $this->site_id);
  23. $this->assign('is_addon_fenxiao', $is_addon_fenxiao);
  24. $this->income();
  25. $this->disburse();
  26. return $this->fetch('account/dashboard');
  27. }
  28. /**
  29. * 收入
  30. */
  31. public function income()
  32. {
  33. $start_time = input('start_time', Carbon::today()->timestamp);
  34. $end_time = input('end_time', Carbon::tomorrow()->timestamp);
  35. $order_money = (new OrderModel())->getOrderMoneySum([ ['site_id', '=', $this->site_id], ['pay_time', 'between', [$start_time, $end_time] ], ['order_scene', '=', 'online'] ], 'pay_money')['data'];
  36. $data = [
  37. [
  38. 'title' => '商城订单',
  39. 'value' => $order_money,
  40. 'desc' => '统计时间内,所有付款订单实付金额之和',
  41. 'url' => 'shop/order/lists'
  42. ]
  43. ];
  44. $event = event('IncomeStatistics', ['site_id' => $this->site_id, 'start_time' => $start_time, 'end_time' => $end_time]);
  45. if (!empty($event)) $data = array_merge($data, ...$event);
  46. if (request()->isAjax()) return success(0, '', $data);
  47. $this->assign('total_income', array_sum(array_column($data, 'value')));
  48. $this->assign('income_data', $data);
  49. }
  50. /**
  51. * 支出
  52. */
  53. public function disburse()
  54. {
  55. $start_time = input('start_time', Carbon::today()->timestamp);
  56. $end_time = input('end_time', Carbon::tomorrow()->timestamp);
  57. $data = [
  58. [
  59. 'title' => '订单退款',
  60. 'value' => (new OrderRefund())->getRefundSum([ ['site_id', '=', $this->site_id], ['refund_money_type', '=', '1,2'], ['refund_time', 'between', [$start_time, $end_time] ] ], 'refund_pay_money')['data'],
  61. 'desc' => '统计时间内,所有订单退款转账金额之和',
  62. 'url' => 'shop/orderrefund/lists'
  63. ],
  64. [
  65. 'title' => '会员提现',
  66. 'value' => (new Withdraw())->getMemberWithdrawSum([ ['site_id', '=', $this->site_id], ['payment_time', 'between', [$start_time, $end_time] ] ], 'apply_money')['data'],
  67. 'desc' => '统计时间内,所有会员提现转账金额之和',
  68. 'url' => 'shop/memberwithdraw/lists'
  69. ]
  70. ];
  71. $event = event('DisburseStatistics', ['site_id' => $this->site_id, 'start_time' => $start_time, 'end_time' => $end_time]);
  72. if (!empty($event)) $data = array_merge($data, ...$event);
  73. if (request()->isAjax()) return success(0, '', $data);
  74. $this->assign('total_disburse', array_sum(array_column($data, 'value')));
  75. $this->assign('disburse_data', $data);
  76. }
  77. }