2
0

LikeController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Like;
  4. use Illuminate\Http\Request;
  5. class LikeController extends Controller
  6. {
  7. /**
  8. * Display a listing of the resource.
  9. *
  10. * @return \Illuminate\Http\Response
  11. */
  12. public function index(Request $request)
  13. {
  14. //
  15. switch ($request->get("view")) {
  16. case 'count':
  17. # code...
  18. $resulte = Like::where("target_id",$request->get("target_id"))
  19. ->groupBy("type")
  20. ->select("type")
  21. ->selectRaw("count(*)")
  22. ->get();
  23. if(isset($_COOKIE["user_uid"])){
  24. foreach ($resulte as $key => $value) {
  25. # code...
  26. if(Like::where(["target_id"=>$request->get("target_id"),
  27. 'type'=>$value->type,
  28. 'user_id'=>$_COOKIE["user_uid"]])->exists()){
  29. $resulte[$key]->selected = true;
  30. }
  31. }
  32. }
  33. break;
  34. default:
  35. # code...
  36. break;
  37. }
  38. return $this->ok($resulte);
  39. }
  40. /**
  41. * Store a newly created resource in storage.
  42. *
  43. * @param \Illuminate\Http\Request $request
  44. * @return \Illuminate\Http\Response
  45. */
  46. public function store(Request $request)
  47. {
  48. //
  49. if(!isset($_COOKIE["user_uid"])){
  50. return $this->error("no login");
  51. }
  52. $param = $request->all();
  53. $param['user_id'] = $_COOKIE["user_uid"];
  54. $like = Like::firstOrCreate($param);
  55. return $this->ok($like);
  56. }
  57. /**
  58. * Display the specified resource.
  59. *
  60. * @param \App\Models\Like $like
  61. * @return \Illuminate\Http\Response
  62. */
  63. public function show(Like $like)
  64. {
  65. //
  66. }
  67. /**
  68. * Update the specified resource in storage.
  69. *
  70. * @param \Illuminate\Http\Request $request
  71. * @param \App\Models\Like $like
  72. * @return \Illuminate\Http\Response
  73. */
  74. public function update(Request $request, Like $like)
  75. {
  76. //
  77. }
  78. /**
  79. * Remove the specified resource from storage.
  80. *
  81. * @param \App\Models\Like $like
  82. * @return \Illuminate\Http\Response
  83. */
  84. public function destroy(Like $like)
  85. {
  86. //
  87. if(!isset($_COOKIE["user_uid"])){
  88. return $this->error("no login");
  89. }
  90. if($like->user_id==$_COOKIE["user_uid"]){
  91. return $this->ok($like->delete());
  92. }
  93. $param = $request->all();
  94. $param['user_id'] = $_COOKIE["user_uid"];
  95. $like = Like::where($param)->delete();
  96. return $this->ok($like);
  97. }
  98. public function delete(Request $request){
  99. if(!isset($_COOKIE["user_uid"])){
  100. return $this->error("no login");
  101. }
  102. $param = [
  103. "id"=>$request->get('id'),
  104. 'user_id'=>$_COOKIE["user_uid"]
  105. ];
  106. $del = Like::where($param)->delete();
  107. $count = Like::where('target_id',$request->get('target_id'))
  108. ->where('type',$request->get('type'))
  109. ->count();
  110. return $this->ok([
  111. 'deleted'=>$del,
  112. 'count'=>$count
  113. ]);
  114. }
  115. }