DictPreferenceController.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Support\Facades\Log;
  4. use Illuminate\Http\Request;
  5. use App\Models\UserDict;
  6. use App\Models\WordIndex;
  7. use App\Http\Resources\DictPreferenceResource;
  8. use App\Http\Api\DictApi;
  9. class DictPreferenceController extends Controller
  10. {
  11. /**
  12. * Display a listing of the resource.
  13. *
  14. * @return \Illuminate\Http\Response
  15. */
  16. public function index(Request $request)
  17. {
  18. //
  19. $dict_id = DictApi::getSysDict('system_preference');
  20. if (!$dict_id) {
  21. return $this->error('没有找到 system_preference 字典', 200, 200);
  22. }
  23. $table = WordIndex::where('user_dicts.dict_id', $dict_id)
  24. ->leftJoin('user_dicts', 'word_indices.word', '=', 'user_dicts.word')
  25. ->select([
  26. 'user_dicts.id',
  27. 'word_indices.word',
  28. 'word_indices.count',
  29. 'user_dicts.factors',
  30. 'user_dicts.parent',
  31. 'user_dicts.note',
  32. 'user_dicts.confidence',
  33. ]);
  34. //处理搜索
  35. if (!empty($request->get("keyword"))) {
  36. $table = $table->where('word_indices.word', 'like', "%" . $request->get("keyword") . "%");
  37. }
  38. //获取记录总条数
  39. $count = $table->count();
  40. //处理排序
  41. $table = $table->orderBy(
  42. $request->get("order", 'word_indices.count'),
  43. $request->get("dir", 'desc')
  44. );
  45. //处理分页
  46. $table = $table->skip($request->get("offset", 0))
  47. ->take($request->get("limit", 200));
  48. //获取数据
  49. $result = $table->get();
  50. return $this->ok([
  51. "rows" => DictPreferenceResource::collection($result),
  52. "count" => $count
  53. ]);
  54. }
  55. /**
  56. * Store a newly created resource in storage.
  57. *
  58. * @param \Illuminate\Http\Request $request
  59. * @return \Illuminate\Http\Response
  60. */
  61. public function store(Request $request)
  62. {
  63. //
  64. }
  65. /**
  66. * Display the specified resource.
  67. *
  68. * @param \App\Models\UserDict $userDict
  69. * @return \Illuminate\Http\Response
  70. */
  71. public function show(UserDict $userDict)
  72. {
  73. //
  74. }
  75. /**
  76. * Update the specified resource in storage.
  77. *
  78. * @param \Illuminate\Http\Request $request
  79. * @param string $id
  80. * @return \Illuminate\Http\Response
  81. */
  82. public function update(Request $request, $id)
  83. {
  84. //
  85. $newData = $request->all();
  86. $word = UserDict::findOrFail($id);
  87. if (isset($newData['factors'])) {
  88. $word->factors = $newData['factors'];
  89. }
  90. if (isset($newData['parent'])) {
  91. $word->parent = $newData['parent'];
  92. }
  93. if (isset($newData['confidence'])) {
  94. $word->confidence = $newData['confidence'];
  95. }
  96. $word->save();
  97. return $this->ok(new DictPreferenceResource($word));
  98. }
  99. /**
  100. * Remove the specified resource from storage.
  101. *
  102. * @param \App\Models\UserDict $userDict
  103. * @return \Illuminate\Http\Response
  104. */
  105. public function destroy(UserDict $userDict)
  106. {
  107. //
  108. }
  109. }