Statistics.php 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace app\controller\admin\order;
  3. use app\common\model\store\order\StoreGroupOrder;
  4. use crmeb\basic\BaseController;
  5. use think\facade\Db;
  6. class Statistics extends BaseController
  7. {
  8. public function topics(){
  9. $todaySalesPrice = 0;//今日销售额
  10. $todaySalesNumber = 0;//今日销售量
  11. $sevenSalesPrice = 0;//7天销售额
  12. $sevenSalesNumber = 0;//7天销售量
  13. $merchantNumber = 0;//创客数量
  14. $merchantProductNumber = 0;//创客商品数量
  15. $salesPrice = 0;//总销售额
  16. $salesNumber = 0;//总销售量
  17. $refundPrice = 0;//退款总金额
  18. $refundNumber = 0;//退款总数量
  19. $query = StoreGroupOrder::getDb() -> where("paid",1);
  20. $today = getModelTime($query, "today","pay_time") -> field("pay_price") -> select();
  21. foreach($today as $value){
  22. $todaySalesPrice += $value['pay_price'];
  23. }
  24. $todaySalesPrice = sprintf("%01.2f", $todaySalesPrice);
  25. $todaySalesNumber = count($today);
  26. $query1 = StoreGroupOrder::getDb() -> where("paid",1);
  27. $seven = getModelTime($query1, "lately7","pay_time") -> field("pay_price") -> select();
  28. foreach($seven as $value){
  29. $sevenSalesPrice += $value['pay_price'];
  30. }
  31. $sevenSalesPrice = sprintf("%01.2f", $sevenSalesPrice);
  32. $sevenSalesNumber = count($seven);
  33. $merchantNumber = Db::name("merchant") -> count();
  34. $where=[
  35. 'is_used'=>1,
  36. 'mer_status'=>1,
  37. 'is_show'=>1,
  38. 'is_hide'=>0,
  39. 'is_del' => 0
  40. ];
  41. $merchantProductNumber = Db::name("store_product") -> where($where) -> count();
  42. $query2 = StoreGroupOrder::getDb() -> where("paid",1);
  43. $sales = $query2 -> field("pay_price") -> select();
  44. foreach($sales as $value){
  45. $salesPrice += $value['pay_price'];
  46. }
  47. $salesPrice = sprintf("%01.2f", $salesPrice);
  48. $salesNumber = count($sales);
  49. $refund = Db::name("store_refund_order") -> where("status",3) -> field("refund_price") -> select();
  50. foreach($refund as $value){
  51. $refundPrice += $value['refund_price'];
  52. }
  53. $refundPrice = sprintf("%01.2f", $refundPrice);
  54. $refundNumber = count($refund);
  55. return app('json')->success(compact(
  56. "todaySalesPrice",
  57. "todaySalesNumber",
  58. "sevenSalesPrice",
  59. "sevenSalesNumber",
  60. "merchantNumber",
  61. "merchantProductNumber",
  62. "salesPrice",
  63. "salesNumber",
  64. "refundPrice",
  65. "refundNumber"
  66. ));
  67. }
  68. //销量top20
  69. public function sales_product_top(){
  70. $where=[
  71. 'is_used'=>1,
  72. 'mer_status'=>1,
  73. 'is_show'=>1,
  74. 'is_hide'=>0,
  75. 'is_del' => 0
  76. ];
  77. $top = Db::name('store_product') -> where($where) -> order("sales desc") -> field("product_id,store_name,cost as cost_price,spu_id,price,plate_mer_profit,sales") -> limit(20)-> select();
  78. return app('json')->success($top);
  79. }
  80. //退款top20
  81. public function refund_product_top(){
  82. $top = Db::query("SELECT * FROM ( SELECT COUNT( order_product_id ) AS total, sp.product_id,sp.store_name,sp.cost as cost_price,sp.spu_id,sp.price,sp.plate_mer_profit,sp.sales FROM rrx_store_refund_product as srp JOIN rrx_store_refund_order as sro on srp.refund_order_id = sro.refund_order_id JOIN rrx_store_product as sp on sp.product_id = srp.order_product_id GROUP BY order_product_id ) AS new_refund_product ORDER BY total DESC LIMIT 20");
  83. return app('json')->success($top);
  84. }
  85. }