PaymentStatistic.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: tandunzhao
  5. * Date: 2017/12/5
  6. * Time: 下午4:18
  7. */
  8. namespace App\Modules\Finance\Models;
  9. use Illuminate\Database\Eloquent\Model;
  10. use DB;
  11. /**
  12. * 打款统计数据
  13. * Class PaymentStatistic
  14. * @package App\Modules\Finance\Models
  15. */
  16. class PaymentStatistic extends Model
  17. {
  18. protected $table = 'payment_statistics';
  19. protected $fillable = ['distribution_channel_id', 'distribution_channel_name', 'amount', 'amount_num', 'amount_person', 'amount_person_num', 'amount_company', 'amount_company_num', 'amount_audit_fail', 'amount_audit_fail_num', 'amount_fail', 'amount_fail_num', 'tallage', 'date'];
  20. /**
  21. * 获取每日统计报表
  22. * @param string $start_time
  23. * @param string $end_time
  24. * @param bool $isAll
  25. * @return mixed
  26. */
  27. public static function getGroupByDayDataStatistic($start_time = '', $end_time = '', $isAll = false) {
  28. $search_object = self::select(
  29. DB::raw('sum(amount) amount'),
  30. DB::raw('sum(amount_num) amount_num'),
  31. DB::raw('sum(amount_person) amount_person'),
  32. DB::raw('sum(amount_person_num) amount_person_num'),
  33. DB::raw('sum(amount_company) amount_company'),
  34. DB::raw('sum(amount_company_num) amount_company_num'),
  35. DB::raw('sum(amount_audit_fail) amount_audit_fail'),
  36. DB::raw('sum(amount_audit_fail_num) amount_audit_fail_num'),
  37. DB::raw('sum(amount_fail) amount_fail'),
  38. DB::raw('sum(amount_fail_num) amount_fail_num'),
  39. DB::raw('sum(tallage) tallage'),
  40. 'date')
  41. ->groupBy('date');
  42. if($start_time) $search_object->where('date','>=',$start_time);
  43. if($end_time) $search_object->where('date','<=',$end_time);
  44. if($isAll) {
  45. return $search_object->get();
  46. } else {
  47. return $search_object->paginate();
  48. }
  49. }
  50. }