LandMarkController.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  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. Auth::loginUsingId(1);
  25. $userAuth = Auth('api')->user();
  26. if(!$userAuth) return $this->error(null, ErrorCode::NO_AUTH);
  27. $data = MapLandmarkModel::all();
  28. foreach ($data as $key=>$val){
  29. $like = MapLikeModel::where([['user_id',$userAuth->id],['mark_id',$val->id]])->first();
  30. if($like){
  31. $val->isLike=1;
  32. }else{
  33. $val->isLike=0;
  34. }
  35. }
  36. return $this->api($data);
  37. }
  38. public function getSearch(Request $request)
  39. {
  40. Auth::loginUsingId(1);
  41. $userAuth = Auth('api')->user();
  42. if(!$userAuth) return $this->error(null, ErrorCode::NO_AUTH);
  43. $keyword = '%'.$request->input('keywords').'%';
  44. if(empty($keyword)){
  45. $data = MapLandmarkModel::all();
  46. }else{
  47. $data = MapLandmarkModel::where([['title','like',$keyword]])->orWhere([['subtitle','like',$keyword]])->get();
  48. }
  49. foreach ($data as $key=>$val){
  50. $like = MapLikeModel::where([['user_id',$userAuth->id],['mark_id',$val->id]])->first();
  51. if($like){
  52. $val->isLike=1;
  53. }else{
  54. $val->isLike=0;
  55. }
  56. }
  57. return $this->api($data);
  58. }
  59. public function getDetail(Request $request)
  60. {
  61. Auth::loginUsingId(1);
  62. $validator = Validator::make($request->all(), [
  63. 'id' => 'required'
  64. ], [
  65. 'id.required' => 'ID必填'
  66. ]);
  67. $userAuth = Auth('api')->user();
  68. if(!$userAuth) return $this->error(null, ErrorCode::NO_AUTH);
  69. if($validator->fails()) {
  70. return $this->validateError($validator);
  71. }
  72. $id = $request->input('id');
  73. $data = MapLandmarkModel::find($id);
  74. $banner = MapBannerModel::where('mark_id',$id)->orderBy('sort','desc')->get();
  75. $img = Array();
  76. foreach ($banner as $key=>$val){
  77. $img[]=$val['image'];
  78. }
  79. $data->banner = $img;
  80. $message = MapMessageModel::where('mark_id',$id)->orderBy('id','desc')->get();
  81. foreach ($message as $val){
  82. $user = UserInfoModel::find($val->user_id);
  83. $val->avatar = $user->avatar;
  84. $val->nickname = $user->nickname;
  85. $val->imgs = explode(',',$val->img);
  86. }
  87. $data->message = $message;
  88. // $c = explode(',',$message->img);
  89. $like = MapLikeModel::where([['user_id',$userAuth->id],['mark_id',$id]])->first();
  90. if($like){
  91. $data->isLike=1;
  92. }else{
  93. $data->isLike=0;
  94. }
  95. return $this->api($data);
  96. }
  97. public function doLike(Request $request)
  98. {
  99. $validator = Validator::make($request->all(), [
  100. 'id' => 'required'
  101. ], [
  102. 'id.required' => 'ID必填'
  103. ]);
  104. $userAuth = Auth('api')->user();
  105. if(!$userAuth) return $this->error(null, ErrorCode::NO_AUTH);
  106. if($validator->fails()) {
  107. return $this->validateError($validator);
  108. }
  109. $id = $request->input('id');
  110. $like = MapLikeModel::where([['user_id',$userAuth->id],['mark_id',$id]])->first();
  111. if($like){
  112. $res = $like->delete();
  113. $mark = MapLandmarkModel::find($id);
  114. $update['like'] = $mark->like -1;
  115. $state = 0;
  116. }else{
  117. $data['user_id'] = $userAuth->id;
  118. $data['mark_id'] = $id;
  119. $res = MapLikeModel::create($data);
  120. $mark = MapLandmarkModel::find($id);
  121. $update['like'] = $mark->like +1;
  122. $state =1;
  123. }
  124. $res_up = MapLandmarkModel::where('id',$id)->update($update);
  125. if($res && $res_up){
  126. return $this->success($state);
  127. }else{
  128. return $this->error(null, ErrorCode::SAVE_FALL);
  129. }
  130. }
  131. public function doComment(Request $request)
  132. {
  133. Auth::loginUsingId(1);
  134. $validator = Validator::make($request->all(), [
  135. 'content' => 'required',
  136. 'mark_id' => 'required'
  137. ], [
  138. 'content.required' => '详情必填',
  139. 'mark_id.required' => 'id必填'
  140. ]);
  141. $userAuth = Auth('api')->user();
  142. if(!$userAuth) return $this->error(null, ErrorCode::NO_AUTH);
  143. if($validator->fails()) {
  144. return $this->validateError($validator);
  145. }
  146. $check_land = MapLandmarkModel::find($request->input('mark_id'));
  147. if(!$check_land) return $this->error(null, ErrorCode::CLIENT_WRONG_PARAMS);
  148. $data = $request->all();
  149. $data['user_id'] = $userAuth->id;
  150. // print_r($data);die;
  151. $res = MapMessageModel::create($data);
  152. if($res){
  153. return $this->success();
  154. }else{
  155. return $this->error(null, ErrorCode::SAVE_FALL);
  156. }
  157. }
  158. }