diff --git a/app/Models/CourseSign.php b/app/Models/CourseSign.php index b865d02..c86ca1c 100755 --- a/app/Models/CourseSign.php +++ b/app/Models/CourseSign.php @@ -80,25 +80,27 @@ class CourseSign extends SoftDeletesModel */ public static function courseSignsTotal($start_date, $end_date, $status = null, $course_ids = null, $area = null, $retList = false) { - $total = CourseSign::whereDate('created_at', '>=', $start_date) - ->whereDate('created_at', '<=', $end_date) - ->whereHas('user', function ($query) use ($area) { - if (isset($area)) { - if ($area == '苏州市外') { - $allArea = ParameterDetail::where('parameter_id', 5)->get(); - $query->whereNotIn('company_area', $allArea->pluck('value')); - } else { - $query->where('company_area', $area); - } - } - })->where(function ($query) use ($status, $course_ids) { - if (isset($status)) { - $query->where('status', $status); - } - if (isset($course_ids)) { - $query->whereIn('course_id', $course_ids); + $total = CourseSign::where(function ($query) use ($status, $course_ids) { + if (isset($status)) { + $query->where('status', $status); + } + if (isset($course_ids)) { + $query->whereIn('course_id', $course_ids); + } + })->whereHas('course', function ($query) use ($start_date, $end_date) { + // 开始结束日期的筛选。or查询 + $query->whereBetween('start_date', [$start_date, $end_date]) + ->whereBetween('end_date', [$start_date, $end_date]); + })->whereHas('user', function ($query) use ($area) { + if (isset($area)) { + if ($area == '苏州市外') { + $allArea = ParameterDetail::where('parameter_id', 5)->get(); + $query->whereNotIn('company_area', $allArea->pluck('value')); + } else { + $query->where('company_area', $area); } - })->whereNotIn('status', [4, 5]); + } + })->whereNotIn('status', [4, 5]); if ($retList) { // 返回列表 return $total->get(); @@ -113,26 +115,27 @@ class CourseSign extends SoftDeletesModel */ public static function courseSignsTotalByUnique($start_date, $end_date, $status = null, $course_ids = null, $area = null, $retList = false) { - $courseSignByType = CourseSign::whereDate('created_at', '>=', $start_date) - ->whereDate('created_at', '<=', $end_date) - ->whereHas('user', function ($query) use ($area) { - if ($area) { - if ($area == '苏州市外') { - $allArea = ParameterDetail::where('parameter_id', 5)->get(); - $query->whereNotIn('company_area', $allArea->pluck('value')); - } else { - $query->where('company_area', $area); - } - } - })->where(function ($query) use ($status, $course_ids) { - if (isset($status)) { - $query->where('status', $status); - } - if (isset($course_ids)) { - $query->whereIn('course_id', $course_ids); + $courseSignByType = CourseSign::whereHas('course', function ($query) use ($start_date, $end_date) { + // 开始结束日期的筛选。or查询 + $query->whereBetween('start_date', [$start_date, $end_date]) + ->whereBetween('end_date', [$start_date, $end_date]); + })->whereHas('user', function ($query) use ($area) { + if ($area) { + if ($area == '苏州市外') { + $allArea = ParameterDetail::where('parameter_id', 5)->get(); + $query->whereNotIn('company_area', $allArea->pluck('value')); + } else { + $query->where('company_area', $area); } - })->whereNotIn('status', [4, 5]) - ->get(); + } + })->where(function ($query) use ($status, $course_ids) { + if (isset($status)) { + $query->where('status', $status); + } + if (isset($course_ids)) { + $query->whereIn('course_id', $course_ids); + } + })->whereNotIn('status', [4, 5])->get(); $user = User::whereIn('id', $courseSignByType->pluck('user_id'))->distinct('mobile'); if ($retList) { // 列表 @@ -148,10 +151,11 @@ class CourseSign extends SoftDeletesModel */ public static function yhInvested($start_date, $end_date, $retList = false) { - $courseSignByType = CourseSign::whereDate('created_at', '>=', $start_date) - ->whereDate('created_at', '<=', $end_date) - ->whereNotIn('status', [4, 5]) - ->get(); + $courseSignByType = CourseSign::whereHas('course', function ($query) use ($start_date, $end_date) { + // 开始结束日期的筛选。or查询 + $query->whereBetween('start_date', [$start_date, $end_date]) + ->whereBetween('end_date', [$start_date, $end_date]); + })->whereNotIn('status', [4, 5])->get(); $list = Company::whereHas('users', function ($query) use ($courseSignByType) { $query->whereIn('id', $courseSignByType->pluck('user_id')); })->where('is_yh_invested', 1)->get(); @@ -174,13 +178,15 @@ class CourseSign extends SoftDeletesModel */ public static function ganbu($start_date, $end_date, $course_ids = null, $retList = false) { - $courseSignsForGanbu = self::whereDate('created_at', '>=', $start_date) - ->whereDate('created_at', '<=', $end_date) - ->where(function ($query) use ($course_ids) { - if ($course_ids) { - $query->whereIn('course_id', $course_ids); - } - })->whereNotIn('status', [4, 5]) + $courseSignsForGanbu = self::whereHas('course', function ($query) use ($start_date, $end_date) { + // 开始结束日期的筛选。or查询 + $query->whereBetween('start_date', [$start_date, $end_date]) + ->whereBetween('end_date', [$start_date, $end_date]); + })->where(function ($query) use ($course_ids) { + if ($course_ids) { + $query->whereIn('course_id', $course_ids); + } + })->whereNotIn('status', [4, 5]) ->whereHas('user', function ($query) { $query->where('from', '跟班学员'); })->get(); @@ -202,13 +208,15 @@ class CourseSign extends SoftDeletesModel */ public static function companyMarketAfterEnrollment($start_date, $end_date, $course_ids = null, $retList = false) { - $courseSignsForStock = self::whereDate('created_at', '>=', $start_date) - ->whereDate('created_at', '<=', $end_date) - ->where(function ($query) use ($course_ids) { - if ($course_ids) { - $query->whereIn('course_id', $course_ids); - } - })->whereNotIn('status', [4, 5]) + $courseSignsForStock = self::whereHas('course', function ($query) use ($start_date, $end_date) { + // 开始结束日期的筛选。or查询 + $query->whereBetween('start_date', [$start_date, $end_date]) + ->whereBetween('end_date', [$start_date, $end_date]); + })->where(function ($query) use ($course_ids) { + if ($course_ids) { + $query->whereIn('course_id', $course_ids); + } + })->whereNotIn('status', [4, 5]) ->with('user.company') ->get();