ClauseController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Models\Clause;
  5. use Illuminate\Http\JsonResponse;
  6. use Illuminate\Support\Facades\DB;
  7. use Ramsey\Uuid\Uuid;
  8. class ClauseController extends Controller
  9. {
  10. public function list(){
  11. $clauses = Clause::all();
  12. return view('app.stat-tree.clauses.list', compact('clauses'));
  13. }
  14. public function dashboard(Clause $clause){
  15. return view('app.stat-tree.clauses.single', compact('clause'));
  16. }
  17. // view
  18. public function replaceAllPage(Request $request){
  19. return view('app.stat-tree.clauses.replace-all');
  20. }
  21. // process
  22. public function replaceAll(Request $request){
  23. $data = $request->get('data');
  24. $rows = json_decode($data);
  25. Clause::truncate();
  26. for($i = 0; $i < count($rows); $i++){
  27. $row = $rows[$i];
  28. $clause = new Clause();
  29. $nextId = DB::select("select nextval('clause_id_seq')");
  30. $clause->id = $nextId[0]->nextval;
  31. $clause->uid = Uuid::uuid4();
  32. $clause->model = $row[0];
  33. $clause->question = $row[1];
  34. $clause->answer = $row[2];
  35. $clause->label = $row[1] . ($row[2] && $row[2] != '-' ? ' ' . $row[2] : '');
  36. $clause->clause_text = $row[3];
  37. $clause->position_index = $i;
  38. $clause->save();
  39. }
  40. return $this->pass();
  41. }
  42. }