|
|
|
|
@ -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();
|
|
|
|
|
|
|
|
|
|
|