LandMarkController.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: 思维定制
  5. * Date: 2018/10/26
  6. * Time: 16:48
  7. */
  8. namespace App\Http\Controllers\Api\V1;
  9. use App\Models\MapBannerModel;
  10. use App\Models\MapLikeModel;
  11. use App\Models\MapMessageModel;
  12. use App\Models\UserInfoModel;
  13. use App\Models\WechatAppModel;
  14. use EasyWeChat\Factory;
  15. use Illuminate\Http\Request;
  16. use Illuminate\Support\Facades\Validator;
  17. use App\Library\ErrorCode;
  18. use App\Models\MapLandmarkModel;
  19. use Auth;
  20. class LandMarkController extends BaseController
  21. {
  22. public function getLandMark()
  23. {
  24. $userAuth = Auth('api')->user();
  25. if(!$userAuth) return $this->error(null, ErrorCode::NO_AUTH);
  26. $data = MapLandmarkModel::all();
  27. foreach ($data as $key=>$val){
  28. $like = MapLikeModel::where([['user_id',$userAuth->id],['mark_id',$val->id]])->first();
  29. if($like){
  30. $val->isLike=1;
  31. }else{
  32. $val->isLike=0;
  33. }
  34. }
  35. return $this->api($data);
  36. }
  37. public function getSearch(Request $request)
  38. {
  39. $userAuth = Auth('api')->user();
  40. if(!$userAuth) return $this->error(null, ErrorCode::NO_AUTH);
  41. $keyword = '%'.$request->input('keywords').'%';
  42. if(empty($keyword)){
  43. $data = MapLandmarkModel::all();
  44. }else{
  45. $data = MapLandmarkModel::where([['title','like',$keyword]])->orWhere([['subtitle','like',$keyword]])->get();
  46. }
  47. foreach ($data as $key=>$val){
  48. $like = MapLikeModel::where([['user_id',$userAuth->id],['mark_id',$val->id]])->first();
  49. if($like){
  50. $val->isLike=1;
  51. }else{
  52. $val->isLike=0;
  53. }
  54. }
  55. return $this->api($data);
  56. }
  57. public function getDetail(Request $request)
  58. {
  59. $validator = Validator::make($request->all(), [
  60. 'id' => 'required'
  61. ], [
  62. 'id.required' => 'ID必填'
  63. ]);
  64. $userAuth = Auth('api')->user();
  65. if(!$userAuth) return $this->error(null, ErrorCode::NO_AUTH);
  66. if($validator->fails()) {
  67. return $this->validateError($validator);
  68. }
  69. $id = $request->input('id');
  70. $data = MapLandmarkModel::find($id);
  71. $banner = MapBannerModel::where('mark_id',$id)->orderBy('sort','desc')->get();
  72. $img = Array();
  73. foreach ($banner as $key=>$val){
  74. $img[]=$val['image'];
  75. }
  76. $data->banner = $img;
  77. $message = MapMessageModel::where('mark_id',$id)->orderBy('id','desc')->get();
  78. foreach ($message as $val){
  79. $user = UserInfoModel::find($val->user_id);
  80. $val->avatar = $user->avatar;
  81. $val->nickname = $user->nickname;
  82. $val->imgs = explode(',',$val->img);
  83. }
  84. $data->message = $message;
  85. // $c = explode(',',$message->img);
  86. $like = MapLikeModel::where([['user_id',$userAuth->id],['mark_id',$id]])->first();
  87. if($like){
  88. $data->isLike=1;
  89. }else{
  90. $data->isLike=0;
  91. }
  92. return $this->api($data);
  93. }
  94. public function doLike(Request $request)
  95. {
  96. $validator = Validator::make($request->all(), [
  97. 'id' => 'required'
  98. ], [
  99. 'id.required' => 'ID必填'
  100. ]);
  101. $userAuth = Auth('api')->user();
  102. if(!$userAuth) return $this->error(null, ErrorCode::NO_AUTH);
  103. if($validator->fails()) {
  104. return $this->validateError($validator);
  105. }
  106. $id = $request->input('id');
  107. $like = MapLikeModel::where([['user_id',$userAuth->id],['mark_id',$id]])->first();
  108. if($like){
  109. $res = $like->delete();
  110. $mark = MapLandmarkModel::find($id);
  111. $update['like'] = $mark->like -1;
  112. $state = 0;
  113. }else{
  114. $data['user_id'] = $userAuth->id;
  115. $data['mark_id'] = $id;
  116. $res = MapLikeModel::create($data);
  117. $mark = MapLandmarkModel::find($id);
  118. $update['like'] = $mark->like +1;
  119. $state =1;
  120. }
  121. $res_up = MapLandmarkModel::where('id',$id)->update($update);
  122. if($res && $res_up){
  123. return $this->success($state);
  124. }else{
  125. return $this->error(null, ErrorCode::SAVE_FALL);
  126. }
  127. }
  128. public function doComment(Request $request)
  129. {
  130. $validator = Validator::make($request->all(), [
  131. 'content' => 'required',
  132. 'mark_id' => 'required'
  133. ], [
  134. 'content.required' => '详情必填',
  135. 'mark_id.required' => 'id必填'
  136. ]);
  137. $userAuth = Auth('api')->user();
  138. if(!$userAuth) return $this->error(null, ErrorCode::NO_AUTH);
  139. if($validator->fails()) {
  140. return $this->validateError($validator);
  141. }
  142. $check_land = MapLandmarkModel::find($request->input('mark_id'));
  143. if(!$check_land) return $this->error(null, ErrorCode::CLIENT_WRONG_PARAMS);
  144. $data = $request->all();
  145. $data['user_id'] = $userAuth->id;
  146. // print_r($data);die;
  147. $res = MapMessageModel::create($data);
  148. if($res){
  149. return $this->success();
  150. }else{
  151. return $this->error(null, ErrorCode::SAVE_FALL);
  152. }
  153. }
  154. }