You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
5.0 KiB

7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
  1. <?php
  2. namespace App\Http\Controllers\Weixin;
  3. use App\Http\Controllers\Weixin\CommonController;
  4. use Illuminate\Http\Request;
  5. use App\Common\ReturnData;
  6. use App\Common\ReturnCode;
  7. class CartController extends CommonController
  8. {
  9. public function __construct()
  10. {
  11. parent::__construct();
  12. }
  13. //商品列表
  14. public function index(Request $request)
  15. {
  16. //购物车列表
  17. $postdata = array(
  18. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  19. );
  20. $url = env('APP_API_URL')."/cart_list";
  21. $res = curl_request($url,$postdata,'GET');
  22. $data['list'] = $res['data']['list'];
  23. //猜你喜欢商品列表
  24. $postdata = array(
  25. 'limit' => 4,
  26. 'orderby'=> 1,
  27. 'offset' => 0
  28. );
  29. $url = env('APP_API_URL')."/goods_list";
  30. $res = curl_request($url,$postdata,'GET');
  31. $data['like_goods_list'] = $res['data']['list'];
  32. return view('weixin.cart.index', $data);
  33. }
  34. //购物车结算
  35. public function cartCheckout($ids)
  36. {
  37. //支付方式列表
  38. $postdata = array(
  39. 'status' => 1,
  40. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  41. );
  42. $url = env('APP_API_URL')."/payment_list";
  43. $res = curl_request($url,$postdata,'GET');
  44. $data['payment_list'] = $res['data']['list'];
  45. //用户默认收货地址
  46. $postdata = array(
  47. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  48. );
  49. $url = env('APP_API_URL')."/user_default_address";
  50. $res = curl_request($url,$postdata,'GET');
  51. $data['user_default_address'] = $res['data'];
  52. //收货地址列表
  53. $postdata = array(
  54. 'limit' => 100,
  55. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  56. );
  57. $url = env('APP_API_URL')."/user_address_list";
  58. $res = curl_request($url,$postdata,'GET');
  59. $data['address_list'] = $res['data']['list'];
  60. $data['cartids'] = $ids;
  61. //获取会员信息
  62. $postdata = array(
  63. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  64. );
  65. $url = env('APP_API_URL')."/user_info";
  66. $res = curl_request($url,$postdata,'GET');
  67. $data['user_info'] = $res['data'];
  68. //购物车结算商品列表
  69. $postdata = array(
  70. 'ids' => $ids,
  71. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  72. );
  73. $url = env('APP_API_URL')."/cart_checkout_goods_list";
  74. $res = curl_request($url,$postdata,'GET');
  75. $data['checkout_goods'] = $res['data'];
  76. if(empty($data['checkout_goods']['list'])){$this->error_jump(ReturnCode::NO_FOUND);}
  77. //判断余额是否足够
  78. $is_balance_enough = 1; //足够
  79. if($data['checkout_goods']['total_price']>$data['user_info']['money']){$is_balance_enough = 0;}
  80. $data['is_balance_enough'] = $is_balance_enough;
  81. //获取用户优惠券列表
  82. $postdata = array(
  83. 'min_amount' => $data['checkout_goods']['total_price'],
  84. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  85. );
  86. $url = env('APP_API_URL')."/user_available_bonus_list";
  87. $res = curl_request($url,$postdata,'GET');
  88. $data['bonus_list'] = $res['data']['list'];
  89. return view('weixin.cart.cartCheckout', $data);
  90. }
  91. //生成订单
  92. public function cartDone(Request $request)
  93. {
  94. $cartids = $request->input('cartids',''); //购物车商品id,8_9
  95. $default_address_id = $request->input('default_address_id',''); //收货地址id
  96. //$payid = $request->input('payid',''); //支付方式:1余额支付,2微信,3支付宝
  97. $user_bonus_id = $request->input('user_bonus_id',0); //优惠券id,0没有优惠券
  98. $shipping_costs = $request->input('shipping_costs',''); //运费
  99. $message = $request->input('message',''); //买家留言
  100. if($default_address_id==''){$this->error_jump('请选择收货地址');}
  101. //if($payid==''){$this->error_jump('请选择支付方式');}
  102. if($cartids==''){$this->error_jump(ReturnData::PARAMS_ERROR);}
  103. //订单提交
  104. $postdata = array(
  105. 'cartids' => $cartids,
  106. 'default_address_id' => $default_address_id,
  107. //'payid' => $payid,
  108. 'user_bonus_id' => $user_bonus_id,
  109. 'shipping_costs' => $shipping_costs,
  110. 'message' => $message,
  111. 'access_token' => $_SESSION['weixin_user_info']['access_token']
  112. );
  113. $url = env('APP_API_URL')."/order_add";
  114. $res = curl_request($url,$postdata,'POST');
  115. if($res['code'] == ReturnData::SUCCESS)
  116. {
  117. header("Location: ".route('weixin_order_pay',array('id'=>$res['data'])));
  118. exit;
  119. }
  120. else
  121. {
  122. $ReturnMsg = '生成订单失败';
  123. if($res['msg'])
  124. {
  125. $ReturnMsg = $res['msg'];
  126. }
  127. $this->error_jump($ReturnMsg);
  128. }
  129. }
  130. }