Data.php 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace app\admin\controller\service;
  3. use app\common\controller\Backend;
  4. use think\Db;
  5. use app\admin\model\service\order\Order;
  6. /**
  7. * 数据统计
  8. *
  9. * @icon fa fa-circle-o
  10. */
  11. class Data extends Backend
  12. {
  13. public function index()
  14. {
  15. \think\Db::execute("SET @@sql_mode='';");
  16. $info = db('service_total_data')->field('total_order_nums,total_user_nums,total_plus_nums,total_shop_nums,total_skill_nums,total_price,rebate_price,recharge_price,withdraw_price,skill_ensure_price,shop_ensure_price,day_order_nums')->order('id desc')->find();
  17. $data = \app\api\model\service\TotalData::totalData();
  18. $diff = [];
  19. foreach ($data as $key=>$value)
  20. {
  21. $diff[$key] = $info?strstr($key,'num')?intval($value-$info[$key]):sprintf("%.2f",$value-$info[$key]):0;
  22. }
  23. $orderTotal = \app\api\model\service\Order::getTotalOrder();
  24. $userTotal = \app\api\model\service\User::getTotalUser();
  25. $this->assignconfig('day',$orderTotal['day']);
  26. $this->assignconfig('ordertotal',$orderTotal['total']);
  27. $this->assignconfig('usertotal',$userTotal);
  28. $starttime = strtotime(date("Y-m-d",time()));
  29. $endtime = $starttime+86399;
  30. $this->assign([
  31. 'data' => $data,
  32. 'diff' => $diff,
  33. 'finish' => \app\admin\model\service\order\Order::where(['finishtime'=>['between',[$starttime,$endtime]]])->where(['is_service'=>['in',[0,-1]]])->count(),
  34. 'notFinish' => \app\admin\model\service\order\Order::where(['paytime'=>['between',[$starttime,$endtime]]])->where(['status'=>['in',[1,2,3,4,5]],'is_service'=>['in',[0,-1]]])->count(),
  35. 'afterNotFinish'=> \app\admin\model\service\order\Order::where(['starttime'=>['between',[$starttime+172800,$endtime+172800]]])->where(['status'=>['>',0],'is_service'=>['in',[0,-1]]])->count(),
  36. 'beforeFinish' => \app\admin\model\service\order\Order::where(['finishtime'=>['between',[$starttime-86400,$endtime-86400]]])->where(['status'=>['>',0],'is_service'=>['in',[0,-1]]])->count(),
  37. 'tomorrowNotFinish' => \app\admin\model\service\order\Order::where(['starttime'=>['between',[$starttime+86400,$endtime+86400]]])->where(['is_service'=>['in',[0,-1]]])->count(),
  38. 'refund' => \app\admin\model\service\order\Refundorder::where('state',0)->count(),
  39. 'dayOrder' => \app\admin\model\service\order\Order::where(['paytime'=>['between',[$starttime,$endtime]]])->where(['is_service'=>['in',[0,-1]]])->count(),
  40. 'dayUser' => \app\admin\model\User::where(['jointime'=>['between',[$starttime,$endtime]]])->count(),
  41. 'dayRecharge' => \app\admin\model\service\money\Recharge::where(['paytime'=>['between',[$starttime,$endtime]]])->sum('price'),
  42. 'dayGoods' => (new Order())->getRank('goods_id','day'),
  43. 'monthGoods' => (new Order())->getRank('goods_id','month'),
  44. 'yearGoods' => (new Order())->getRank('goods_id','year'),
  45. 'allGoods' => (new Order())->getRank('goods_id','all'),
  46. 'dayCity' => (new Order())->getRank('city','day'),
  47. 'monthCity' => (new Order())->getRank('city','month'),
  48. 'yearCity' => (new Order())->getRank('city','year'),
  49. 'allCity' => (new Order())->getRank('city','all'),
  50. 'dayShop' => (new Order())->getRank('shop_id','day'),
  51. 'monthShop' => (new Order())->getRank('shop_id','month'),
  52. 'yearShop' => (new Order())->getRank('shop_id','year'),
  53. 'allShop' => (new Order())->getRank('shop_id','all'),
  54. 'daySkill' => (new Order())->getRank('skill_id','day'),
  55. 'monthSkill' => (new Order())->getRank('skill_id','month'),
  56. 'yearSkill' => (new Order())->getRank('skill_id','year'),
  57. 'allSkill' => (new Order())->getRank('skill_id','all'),
  58. ]);
  59. return $this->view->fetch();
  60. }
  61. }