$params['training_course_id'], 'title' => $params['title'], 'question_type' => $params['question_type'], //'question_selects' => $params['question_selects'], 'question_selects' => self::configureReservedField($params['question_selects']??[]), 'question_answer' => self::$select_value?implode(',',self::$select_value):'', 'question_analysis' => $params['question_analysis'], ]); 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 13:49 */ public static function edit(array $params): bool { Db::startTrans(); try { TrainingQuestions::where('id', $params['id'])->update([ 'training_course_id' => $params['training_course_id'], 'title' => $params['title'], 'question_type' => $params['question_type'], 'question_selects' => json_encode(self::configureReservedField($params['question_selects']??[])), 'question_answer' => self::$select_value?implode(',',self::$select_value):'', 'question_analysis' => $params['question_analysis'], ]); 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 13:49 */ public static function delete(array $params): bool { return TrainingQuestions::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2025/02/14 13:49 */ public static function detail($params): array { return TrainingQuestions::findOrEmpty($params['id'])->toArray(); } public static function configureReservedField($data): array { $select_value = []; foreach ($data as $key => &$item) { $data[$key]['block_key'] = $key+1; if($item['select_value']){ $select_value[] = $data[$key]['block_key']; $item['select_value'] = \true; }else{ $item['select_value'] = ''; } } self::$select_value = $select_value; return $data??[]; } }