TotalData.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace app\api\model\service;
  3. use think\Model;
  4. use think\Db;
  5. class TotalData extends Model
  6. {
  7. // 表名
  8. protected $name = 'service_total_data';
  9. // 自动写入时间戳字段
  10. protected $autoWriteTimestamp = 'int';
  11. // 定义时间戳字段名
  12. protected $createTime = 'createtime';
  13. protected $updateTime = 'updatetime';
  14. public static function totalData($type=0)
  15. {
  16. $data['total_order_nums'] = Order::where(['status'=>['>',5]])->count();
  17. $data['total_user_nums'] = User::count();
  18. $data['total_plus_nums'] = UserInfo::where(['is_plus'=>1])->count();
  19. $data['total_skill_nums'] = Skill::count();
  20. $data['total_shop_nums'] = Shop::count();
  21. $data['total_price'] = Order::where(['status'=>['>',5]])->sum('payprice-refund_price');
  22. $rebatePrice = Rebate::where(['rebatetype'=>0])->sum('num');
  23. $carPrice = 0;
  24. $carList = Rebate::where(['rebatetype'=>2])->group('order_id')->column('id');
  25. foreach ($carList as $val)
  26. {
  27. $carPrice+=Rebate::where('id',$val)->value('num');
  28. }
  29. $data['rebate_price'] = bcadd($rebatePrice,$carPrice,2);
  30. $data['recharge_price'] = Recharge::where(['state'=>1])->sum('price');
  31. $data['withdraw_price'] = Withdraw::where(['state'=>['>',1],'type'=>['<>',1]])->sum('num');
  32. $data['skill_ensure_price'] = Skill::sum('ensure_price');
  33. $data['shop_ensure_price'] = Shop::sum('ensure_price');
  34. $starttime = strtotime(date("Y-m-d",time()));
  35. $data['day_order_nums'] = $type == 0?Order::where(['status'=>['>',5],'finishtime'=>['>',$starttime]])->count():Order::where(['status'=>['>',5],'finishtime'=>['between',[$starttime-86400,$starttime]]])->count();
  36. if($type == 1)
  37. {
  38. self::create($data);
  39. }
  40. return $data;
  41. }
  42. }