$params['master_worker_id'], 'shop_goods_id' => $params['shop_goods_id'], 'training_task_id' => $params['training_task_id'], 'lead_master_worker_id' => $params['lead_master_worker_id'], 'operate_status' => $params['operate_status']??0, 'task_list' => $params['task_list']??'', ]); // 添加该工程师初始化记录 self::trainingCourseRecord($params['master_worker_id'],$params['training_task_id']); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑 * @param array $params * @return bool * @author likeadmin * @date 2025/02/16 13:49 */ public static function edit(array $params): bool { Db::startTrans(); try { TrainingWorkerTask::where('id', $params['id'])->update([ 'master_worker_id' => $params['master_worker_id'], 'shop_goods_id' => $params['shop_goods_id'], 'training_task_id' => $params['training_task_id'], 'lead_master_worker_id' => $params['lead_master_worker_id'], 'operate_status' => $params['operate_status']??0, 'task_list' => $params['task_list']?json_encode($params['task_list']):'', ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除 * @param array $params * @return bool * @author likeadmin * @date 2025/02/16 13:49 */ public static function delete(array $params): bool { return TrainingWorkerTask::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2025/02/16 13:49 */ public static function detail($params): array { return TrainingWorkerTask::findOrEmpty($params['id'])->toArray(); } /** 培训课程初始化记录 */ public static function trainingCourseRecord($masterWorkerId,$training_task_id): array { $training_course_ids = json_decode(TrainingTask::where('id',$training_task_id)->value('training_course_id'),true); // 添加该工程师的所有培训课程初始化记录 foreach ($training_course_ids as $course_id) { $workerCourse = TrainingWorkerCourse::create([ 'master_worker_id' => $masterWorkerId, 'training_task_id' => $training_task_id, 'training_course_id' => $course_id, 'play_time' => 0, 'exam_start_time' => 0, 'exam_end_time' => 0, 'study_status' => 0, 'exam_score' => 0, ]); // 添加该工程师该课程的所有试题初始化记录 //[{"block_key":1,"select_value":1,"score":"20"},{"block_key":2,"select_value":2,"score":"10"},{"block_key":3,"select_value":3,"score":"70"}] $course_question = json_decode(TrainingCourse::where('id',$course_id)->value('course_question_setting'),true); $course_question_ids = array_column($course_question,'select_value'); foreach ($course_question_ids as $question_id) { $workerQuestion = TrainingWorkerQuestion::create([ 'worker_course_id' => $workerCourse->id, 'questions_id' => $question_id, 'worker_answer' => '', 'exam_score' => 0 ]); } } return $training_course_ids??[]; } }