From c47c998b664222000b8aa3635e45f5fa71eac364 Mon Sep 17 00:00:00 2001 From: wangzeyan <258785420@qq.com> Date: Wed, 25 Jun 2025 12:28:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=9A=E6=97=B6=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transfer/schedule/CourseScheduleJob.php | 100 ++++++++++++++++++ .../schedule/ResourceAutoAllocation.php | 46 ++++++++ 2 files changed, 146 insertions(+) create mode 100644 niucloud/app/job/transfer/schedule/CourseScheduleJob.php create mode 100644 niucloud/app/job/transfer/schedule/ResourceAutoAllocation.php diff --git a/niucloud/app/job/transfer/schedule/CourseScheduleJob.php b/niucloud/app/job/transfer/schedule/CourseScheduleJob.php new file mode 100644 index 00000000..81d9208d --- /dev/null +++ b/niucloud/app/job/transfer/schedule/CourseScheduleJob.php @@ -0,0 +1,100 @@ +where('course_date', date('Y-m-d'))->select(); + + $results = []; + foreach ($autoSchedules as $schedule) { + // 构造课程日期(基于给定的月份和年份) + $courseDate = $this->getCourseDate($schedule->course_date, $month, $year); + + // 检查该月份是否有相同的课程安排 + $exists = $this->checkCourseExists($schedule, $courseDate); + + if (!$exists) { + // 如果不存在,则插入新的课程安排 + $newSchedule = $this->createNewSchedule($schedule, $courseDate); + $results[] = [ + 'status' => 'inserted', + 'schedule' => $newSchedule + ]; + } else { + $results[] = [ + 'status' => 'exists', + 'schedule' => $schedule + ]; + } + } + + return $results; + } + + /** + * 根据原始课程日期和目标月份、年份计算新的课程日期 + * @param string $originalDate 原始课程日期(格式:Y-m-d) + * @param int $targetMonth 目标月份 + * @param int $targetYear 目标年份 + * @return string 新的课程日期 + */ + protected function getCourseDate($originalDate, $targetMonth, $targetYear) + { + $date = \DateTime::createFromFormat('Y-m-d', $originalDate); + $date->setDate($targetYear, $targetMonth, $date->format('d')); + return $date->format('Y-m-d'); + } + + /** + * 检查指定月份是否有相同的课程安排 + * @param CourseSchedule $schedule 原始课程安排 + * @param string $courseDate 课程日期 + * @return bool 是否存在 + */ + protected function checkCourseExists(CourseSchedule $schedule, $courseDate) + { + $exists = CourseSchedule::where(function ($query) use ($schedule, $courseDate) { + $query->where('campus_id', $schedule->campus_id) + ->where('venue_id', $schedule->venue_id) + ->where('course_date', $courseDate) + ->where('time_slot', $schedule->time_slot) + ->where('course_id', $schedule->course_id); + })->count(); + + return $exists > 0; + } + + /** + * 创建新的课程安排 + * @param CourseSchedule $schedule 原始课程安排 + * @param string $courseDate 课程日期 + * @return CourseSchedule 新创建的课程安排 + */ + protected function createNewSchedule(CourseSchedule $schedule, $courseDate) + { + $newSchedule = new CourseSchedule(); + $newSchedule->campus_id = $schedule->campus_id; + $newSchedule->venue_id = $schedule->venue_id; + $newSchedule->course_date = $courseDate; + $newSchedule->time_slot = $schedule->time_slot; + $newSchedule->course_id = $schedule->course_id; + $newSchedule->auto_schedule = 1; + // 复制其他需要的字段... + $newSchedule->save(); + + return $newSchedule; + } +} \ No newline at end of file diff --git a/niucloud/app/job/transfer/schedule/ResourceAutoAllocation.php b/niucloud/app/job/transfer/schedule/ResourceAutoAllocation.php new file mode 100644 index 00000000..0ec2256e --- /dev/null +++ b/niucloud/app/job/transfer/schedule/ResourceAutoAllocation.php @@ -0,0 +1,46 @@ +select(); + } + + /** + * 按照现在销售人员的资源拥有情况分配资源 + */ + public function allocateResource() + { + Log::write('按照现在销售人员的资源拥有情况分配资源'); + } + + + +} \ No newline at end of file