$params['course_name'], 'course_picture' => $params['course_picture'], 'course_url' => $params['course_url'], 'course_lock' => $params['course_lock'], 'course_length' => $params['course_length'], 'course_question_setting' => self::configureReservedField($params['course_question_setting']??[]), 'course_question_score' => $params['course_question_score'], ]); 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/14 17:37 */ public static function edit(array $params): bool { Db::startTrans(); try { TrainingCourse::where('id', $params['id'])->update([ 'course_name' => $params['course_name'], 'course_picture' => $params['course_picture'], 'course_url' => $params['course_url'], 'course_lock' => $params['course_lock'], 'course_length' => $params['course_length'], 'course_question_setting' => json_encode(self::configureReservedField($params['course_question_setting']??[])), 'course_question_score' => $params['course_question_score'], ]); 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/14 17:37 */ public static function delete(array $params): bool { return TrainingCourse::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2025/02/14 17:37 */ public static function detail($params): array { return TrainingCourse::findOrEmpty($params['id'])->toArray(); } public static function configureReservedField($data): array { foreach ($data as $key => &$item) { $data[$key]['block_key'] = $key+1; $item['select_value'] = (int)$item['select_value']; } return $data??[]; } }