MyController.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. <?php
  2. namespace App\Http\Controllers\Api\V1;
  3. use App\Models\S1OrderInfoModel;
  4. use App\Models\S1UserFavoriteModel;
  5. use App\Models\WxUserAddressModel;
  6. use App\Services\Base\ErrorCode;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Auth;
  9. use Illuminate\Support\Facades\Validator;
  10. class MyController extends Controller
  11. {
  12. /**
  13. * @api {get} /api/my/index 首页
  14. * @apiDescription 首页
  15. * @apiGroup My
  16. * @apiParam {string} appid appid
  17. * @apiPermission none
  18. * @apiVersion 0.1.0
  19. * @apiSuccessExample {json} Success-Response:
  20. * HTTP/1.1 200 OK
  21. {
  22. "status": true,
  23. "status_code": 0,
  24. "message": "",
  25. "data": {
  26. "user": {
  27. "id": 1,
  28. "appid": "dsfbdffd32434dfvdf",
  29. "nickname": "nickname1",
  30. "openid": "openid123",
  31. "avatar": "/upload/wx_user/20171012/8cea5bda71481b13edbe54ae2509e063.jpg",
  32. "password": "password123",
  33. "score": 1000123,
  34. "level_id": 1,
  35. "balance": "",
  36. "remark": null,
  37. "status": 1,
  38. "created_at": "2017-10-12 15:56:20",
  39. "updated_at": "2017-10-12 15:56:46",
  40. "deleted_at": null,
  41. "favorite": [
  42. {
  43. "id": 1,
  44. "name": "商品1",
  45. "number": "0011",
  46. "pic": "/upload/s1/goods/face/20171013/effbecdc6d9de83d0128e3f08ec6d636.jpg",
  47. }
  48. ]
  49. },
  50. "order1": [
  51. {
  52. "id": 13,
  53. "amount": "1250100",
  54. "goods": [
  55. {
  56. "id": 1,
  57. "name": "商品1",
  58. "pic": "/upload/s1/goods/face/20171013/effbecdc6d9de83d0128e3f08ec6d636.jpg",
  59. },
  60. {
  61. "id": 2,
  62. "name": "test",
  63. "pic": "/upload/s1/goods/face/20171013/cdfe1a254ac611d055cd9aacaa11c58a.png",
  64. }
  65. ]
  66. },
  67. ],
  68. }
  69. }
  70. * @apiErrorExample {json} Error-Response:
  71. * HTTP/1.1 400 Bad Request
  72. */
  73. public function index(Request $request)
  74. {
  75. $user = Auth::guard('api')->user();
  76. if (!$user) return $this->error(ErrorCode::ERROR_POWER);
  77. $validator = Validator::make($request->all(),
  78. [
  79. 'appid' => 'required',
  80. ],
  81. [
  82. 'appid.required' => 'appid不存在',
  83. ]
  84. );
  85. if ($validator->fails()) {
  86. return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
  87. }
  88. $appid = $request->input('appid');
  89. // 1待付款 2待收货 3代发货 4已完成 5售后
  90. $order1 =S1OrderInfoModel::where('appid',$appid)->where('wx_user_id',$user->id)->where('status',1)
  91. ->with(['goods'=> function ($query) {
  92. $query->select('s1_goods_info.id','name','pic','s1_goods_info.price');
  93. }])->orderBy('order_time','desc')->select('id','amount','trade_no','created_at','status')->get();
  94. $order2 =S1OrderInfoModel::where('appid',$appid)->where('wx_user_id',$user->id)->where('status',2)
  95. ->with(['goods'=> function ($query) {
  96. $query->select('s1_goods_info.id','name','pic','s1_goods_info.price');
  97. }])->orderBy('order_time','desc')->select('id','amount','trade_no','created_at','status')->get();
  98. $order3 =S1OrderInfoModel::where('appid',$appid)->where('wx_user_id',$user->id)->where('status',3)
  99. ->with(['goods'=> function ($query) {
  100. $query->select('s1_goods_info.id','name','pic','s1_goods_info.price');
  101. }])->orderBy('order_time','desc')->select('id','amount','trade_no','created_at','status')->get();
  102. $order4 =S1OrderInfoModel::where('appid',$appid)->where('wx_user_id',$user->id)->where('status',6)
  103. ->with(['goods'=> function ($query) {
  104. $query->select('s1_goods_info.id','name','pic','s1_goods_info.price');
  105. }])->orderBy('order_time','desc')->select('id','amount','trade_no','created_at','status')->get();
  106. $order5 =S1OrderInfoModel::where('appid',$appid)->where('wx_user_id',$user->id)->
  107. where(function ($query) {
  108. $query->where('status',4)->orWhere('status',5);
  109. })->with(['goods'=> function ($query) {
  110. $query->select('s1_goods_info.id','name','pic','s1_goods_info.price');
  111. }])->orderBy('order_time','desc')->select('id','amount','trade_no','created_at','status')->get();
  112. $favorite = $user->favorite; //收藏
  113. return $this->api(compact('user','order1','order2','order3','order4','order5'));
  114. }
  115. /**
  116. * @api {get} /api/my/favorite 收藏
  117. * @apiDescription 收藏
  118. * @apiGroup My
  119. * @apiParam {int} [page=1] 分页参数
  120. * @apiPermission none
  121. * @apiVersion 0.1.0
  122. * @apiSuccessExample {json} Success-Response:
  123. * HTTP/1.1 200 OK
  124. {
  125. "status": true,
  126. "status_code": 0,
  127. "message": "",
  128. "data": {
  129. "current_page": 1,
  130. "data": [
  131. {
  132. "id": 3,
  133. "s1_goods_id": 1,
  134. "wx_user_id": 1,
  135. "created_at": "2017-10-19 16:36:16",
  136. "updated_at": "2017-10-19 16:36:16",
  137. "goods": {
  138. "id": 1,
  139. "pic": "/upload/s1/goods/face/20171013/effbecdc6d9de83d0128e3f08ec6d636.jpg",
  140. "name": "商品1"
  141. }
  142. }
  143. ],
  144. "first_page_url": "http://www.s1.com/api/my/favorite?page=1",
  145. "from": 1,
  146. "last_page": 1,
  147. "last_page_url": "http://www.s1.com/api/my/favorite?page=1",
  148. "next_page_url": null,
  149. "path": "http://www.s1.com/api/my/favorite",
  150. "per_page": 15,
  151. "prev_page_url": null,
  152. "to": 1,
  153. "total": 1
  154. }
  155. }
  156. * @apiErrorExample {json} Error-Response:
  157. * HTTP/1.1 400 Bad Request
  158. */
  159. public function favorite()
  160. {
  161. $user = Auth::guard('api')->user();
  162. if (!$user) return $this->error(ErrorCode::ERROR_POWER);
  163. $favorite = S1UserFavoriteModel::where('wx_user_id',$user->id)
  164. ->with(['goods'=> function ($query) {
  165. $query->select('id','pic','name','price');
  166. }])->paginate();
  167. return $this->api($favorite);
  168. }
  169. }