Index.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\shopapi\controller;
  11. use app\model\order\Order;
  12. use app\model\shop\Shop as ShopModel;
  13. use app\model\shop\ShopReopen as ShopReopenModel;
  14. use app\model\system\Stat;
  15. use app\model\web\Notice as NoticeModel;
  16. use Carbon\Carbon;
  17. use app\model\web\WebSite as WebsiteModel;
  18. use app\model\goods\Goods as GoodsModel;
  19. use app\model\system\User as ShopUser;
  20. use app\model\order\OrderCommon;
  21. use app\model\order\OrderRefund as OrderRefundModel;
  22. use app\model\member\Member;
  23. class Index extends BaseApi
  24. {
  25. public function __construct()
  26. {
  27. //执行父类构造函数
  28. parent::__construct();
  29. $token = $this->checkToken();
  30. if ($token[ 'code' ] < 0) {
  31. echo $this->response($token);
  32. exit;
  33. }
  34. }
  35. /**
  36. * 首页
  37. * @return mixed
  38. */
  39. public function index()
  40. {
  41. //店铺基础信息
  42. $data[ 'shop_info' ] = $this->shop_info;
  43. //基础统计信息
  44. $stat_shop_model = new Stat();
  45. $today = Carbon::now();
  46. $yesterday = Carbon::yesterday();
  47. // $stat_today = $stat_shop_model->getStatShop($this->site_id, $today->year, $today->month, $today->day);
  48. // $stat_yesterday = $stat_shop_model->getStatShop($this->site_id, $yesterday->year, $yesterday->month, $yesterday->day);
  49. $stat_today = $stat_shop_model->getShopStatSum($this->site_id, $today->startOfDay()->timestamp, $today->endOfDay()->timestamp);
  50. $stat_yesterday = $stat_shop_model->getShopStatSum($this->site_id, $yesterday->startOfDay()->timestamp, $yesterday->endOfDay()->timestamp);
  51. $data[ 'stat_day' ] = $stat_today[ 'data' ];
  52. $data[ 'stat_yesterday' ] = $stat_yesterday[ 'data' ];
  53. // $data[ 'today' ] = $today;
  54. //日同比
  55. $day_rate[ 'order_pay_count' ] = diff_rate($stat_today[ 'data' ][ 'order_pay_count' ], $stat_yesterday[ 'data' ][ 'order_pay_count' ]);
  56. $day_rate[ 'order_total' ] = diff_rate($stat_today[ 'data' ][ 'order_total' ], $stat_yesterday[ 'data' ][ 'order_total' ]);
  57. $day_rate[ 'collect_goods' ] = diff_rate($stat_today[ 'data' ][ 'collect_goods' ], $stat_yesterday[ 'data' ][ 'collect_goods' ]);
  58. $day_rate[ 'visit_count' ] = diff_rate($stat_today[ 'data' ][ 'visit_count' ], $stat_yesterday[ 'data' ][ 'visit_count' ]);
  59. $day_rate[ 'member_count' ] = diff_rate($stat_today[ 'data' ][ 'member_count' ], $stat_yesterday[ 'data' ][ 'member_count' ]);
  60. $data[ 'day_rate' ] = $day_rate;
  61. //获取总数
  62. $shop_stat_sum = $stat_shop_model->getShopStatSum($this->site_id);
  63. $goods_model = new GoodsModel();
  64. $shop_stat_sum[ 'data' ][ 'goods_count' ] = $goods_model->getGoodsTotalCount([ [ 'site_id', '=', $this->site_id ], [ 'is_delete', '=', 0 ] ])[ 'data' ];
  65. $shop_stat_sum[ 'data' ]['member_count'] = (new Member())->getMemberCount([ [ 'site_id', '=', $this->site_id ], [ 'is_delete', '=', 0 ] ])[ 'data' ];
  66. $order = new Order();
  67. $shop_stat_sum[ 'data' ][ 'order_pay_count' ] = $order->getOrderCount([ [ 'site_id', '=', $this->site_id ], [ 'is_delete', '=', 0 ], [ 'pay_status', '=', 1 ] ])['data'];
  68. $shop_stat_sum[ 'data' ][ 'order_total' ] = $order->getOrderMoneySum([ [ 'site_id', '=', $this->site_id ], [ 'is_delete', '=', 0 ], [ 'pay_status', '=', 1 ] ], 'pay_money')['data'];
  69. $data[ 'shop_stat_sum' ] = $shop_stat_sum[ 'data' ];
  70. //数据信息统计
  71. $order = new OrderCommon();
  72. $waitpay = $order->getOrderCount([ [ 'order_status', '=', 0 ], [ 'site_id', '=', $this->site_id ], [ 'is_delete', '=', 0 ], ['order_scene', '=', 'online'] ]);
  73. $waitsend = $order->getOrderCount([ [ 'order_status', '=', 1 ], [ 'site_id', '=', $this->site_id ], [ 'is_delete', '=', 0 ] ]);
  74. $order_refund_model = new OrderRefundModel();
  75. $refund_num = $order_refund_model->getRefundOrderGoodsCount([
  76. [ "site_id", "=", $this->site_id ],
  77. [ "refund_status", "not in", [ 0, 3 ] ]
  78. ]);
  79. //商品预警数
  80. $goods_stock_alarm = $goods_model->getGoodsStockAlarm($this->site_id);
  81. //商品总数
  82. $goods_total = $goods_model->getGoodsTotalCount([ [ 'goods_state', '=', 1 ], [ 'site_id', '=', $this->site_id ], [ 'is_delete', '=', 0 ] ]);
  83. $num_data = [
  84. 'waitpay' => $waitpay[ 'data' ],
  85. 'waitsend' => $waitsend[ 'data' ],
  86. 'refund' => $refund_num[ 'data' ],
  87. 'goods_stock_alarm' => is_array($goods_stock_alarm[ 'data' ]) ? count($goods_stock_alarm[ 'data' ]) : 0,
  88. 'goods_total' => $goods_total[ 'data' ]
  89. ];
  90. $data[ 'num_data' ] = $num_data;
  91. $notice = new NoticeModel();
  92. $notice_list = $notice->getNoticePageList([ [ 'receiving_type', 'like', '%shop%' ] ], 1, 3, 'is_top desc,create_time desc', 'id, title');
  93. $notice_list = $notice_list[ 'data' ][ 'list' ];
  94. $data[ 'notice_list' ] = $notice_list;
  95. return $this->response($this->success($data));
  96. }
  97. }