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.

224 lines
9.3 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
7 years ago
7 years ago
7 years ago
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\Api\CommonController;
  4. use Illuminate\Http\Request;
  5. use App\Common\ReturnData;
  6. use App\Common\Token;
  7. use App\Http\Model\Order;
  8. use DB;
  9. class OrderController extends CommonController
  10. {
  11. public function __construct()
  12. {
  13. parent::__construct();
  14. }
  15. //订单列表
  16. public function orderList(Request $request)
  17. {
  18. //参数
  19. $data['limit'] = $request->input('limit', 10);
  20. $data['offset'] = $request->input('offset', 0);
  21. $data['user_id'] = Token::$uid;
  22. $data['status'] = $request->input('status',-1);
  23. return Order::getList($data);
  24. }
  25. //订单详情
  26. public function orderDetail(Request $request)
  27. {
  28. //参数
  29. $data['user_id'] = Token::$uid;
  30. $data['order_id'] = $request->input('order_id','');
  31. if($request->input('order_status','') != ''){$data['order_status'] = $request->input('order_status');}
  32. if($request->input('pay_status','') != ''){$data['pay_status'] = $request->input('pay_status');}
  33. if($request->input('refund_status','') != ''){$data['refund_status'] = $request->input('refund_status');}
  34. if($data['order_id']=='')
  35. {
  36. return ReturnData::create(ReturnData::PARAMS_ERROR);
  37. }
  38. return Order::getOne($data);
  39. }
  40. //生成订单
  41. public function orderAdd(Request $request)
  42. {
  43. //参数
  44. $data['default_address_id'] = $request->input('default_address_id','');
  45. //$data['payid'] = $request->input('payid','');
  46. $data['user_bonus_id'] = $request->input('user_bonus_id','');
  47. $data['shipping_costs'] = $request->input('shipping_costs','');
  48. $data['message'] = $request->input('message','');
  49. $data['place_type'] = $request->input('place_type',2); //订单来源,1pc,2微信,3app
  50. $data['user_id'] = Token::$uid;
  51. //获取商品列表
  52. $data['cartids'] = $request->input('cartids','');
  53. if($data['cartids']=='')
  54. {
  55. return ReturnData::create(ReturnData::PARAMS_ERROR);
  56. }
  57. return Order::add($data);
  58. }
  59. //订单修改
  60. public function orderUpdate(Request $request)
  61. {
  62. if($request->input('id', '')!=''){$where['id'] = $request->input('id');}
  63. if($request->input('order_sn', '')!=''){$where['order_sn'] = $request->input('order_sn');}
  64. if($request->input('order_amount', '')!=''){$data['order_amount'] = $request->input('order_amount');}
  65. if($request->input('out_trade_no', '')!=''){$data['out_trade_no'] = $request->input('out_trade_no');}
  66. if($request->input('shipping_name', '')!=''){$data['shipping_name'] = $request->input('shipping_name');}
  67. if($request->input('shipping_id', '')!=''){$data['shipping_id'] = $request->input('shipping_id');}
  68. if($request->input('shipping_sn', '')!=''){$data['shipping_sn'] = $request->input('shipping_sn');}
  69. if($request->input('shipping_fee', '')!=''){$data['shipping_fee'] = $request->input('shipping_fee');}
  70. if($request->input('shipping_time', '')!=''){$data['shipping_time'] = $request->input('shipping_time');}
  71. if($request->input('name', '')!=''){$data['name'] = $request->input('name');}
  72. if($request->input('province', '')!=''){$data['province'] = $request->input('province');}
  73. if($request->input('city', '')!=''){$data['city'] = $request->input('city');}
  74. if($request->input('district', '')!=''){$data['district'] = $request->input('district');}
  75. if($request->input('address', '')!=''){$data['address'] = $request->input('address');}
  76. if($request->input('zipcode', '')!=''){$data['zipcode'] = $request->input('zipcode');}
  77. if($request->input('mobile', '')!=''){$data['mobile'] = $request->input('mobile');}
  78. if($request->input('message', '')!=''){$data['message'] = $request->input('message');}
  79. if($request->input('is_comment', '')!=''){$data['is_comment'] = $request->input('is_comment');}
  80. if($request->input('is_delete', '')!=''){$data['is_delete'] = $request->input('is_delete');}
  81. if($request->input('to_buyer', '')!=''){$data['to_buyer'] = $request->input('to_buyer');}
  82. if($request->input('invoice', '')!=''){$data['invoice'] = $request->input('invoice');}
  83. if($request->input('invoice_title', '')!=''){$data['invoice_title'] = $request->input('invoice_title');}
  84. if($request->input('invoice_taxpayer_number', '')!=''){$data['invoice_taxpayer_number'] = $request->input('invoice_taxpayer_number');}
  85. if(!isset($where)){return ReturnData::create(ReturnData::PARAMS_ERROR);}
  86. if (isset($data))
  87. {
  88. $where['user_id'] = Token::$uid;
  89. Order::modify($where,$data);
  90. }
  91. return ReturnData::create(ReturnData::SUCCESS);
  92. }
  93. //订单状态修改
  94. public function orderStatusUpdate(Request $request)
  95. {
  96. $type = $request->input('type','');
  97. if($request->input('id', '')!=''){$where['id'] = $request->input('id');}
  98. $where['user_id'] = Token::$uid;
  99. if($type=='' || $where['id'] =='')
  100. {
  101. return ReturnData::create(ReturnData::PARAMS_ERROR);
  102. }
  103. //修改订单状态,1设为支付,2设为取消,3设为确认收货,4设为退款退货,5设为删除,6设为已评价
  104. if($type == 1)
  105. {
  106. //判断订单是否存在或本人
  107. $where['order_status'] = 0;
  108. $where['pay_status'] = 0;
  109. $order = Order::where($where)->first();
  110. if(!$order){return ReturnData::create(ReturnData::PARAMS_ERROR,null,'订单不存在');}
  111. //判断用户余额是否足够
  112. $user_money = DB::table('user')->where(array('id'=>Token::$uid))->value('money');
  113. if($order['order_amount']>$user_money){return ReturnData::create(ReturnData::PARAMS_ERROR,null,'余额不足');}
  114. $data['pay_status'] = 1;
  115. $data['pay_money'] = $order['order_amount']; //支付金额
  116. $data['pay_id'] = $request->input('pay_id','');
  117. $data['pay_time'] = $request->input('pay_time',time());
  118. if($request->input('pay_name', '')!=''){$data['pay_name'] = $request->input('pay_name');}
  119. //扣除用户余额
  120. if($data['pay_money']<=0 || !DB::table('user')->where(array('id'=>Token::$uid))->decrement('money', $data['pay_money']))
  121. {
  122. return ReturnData::create(ReturnData::PARAMS_ERROR);
  123. }
  124. //增加用户余额记录
  125. DB::table('user_money')->insert(array('user_id'=>Token::$uid,'type'=>1,'money'=>$data['pay_money'],'des'=>'订单余额支付','user_money'=>DB::table('user')->where(array('id'=>Token::$uid))->value('money'),'add_time'=>time()));
  126. }
  127. elseif($type == 2)
  128. {
  129. //判断订单是否存在或本人
  130. $where['order_status'] = 0;
  131. $where['pay_status'] = 0;
  132. $order = Order::where($where)->first();
  133. if(!$order){return ReturnData::create(ReturnData::PARAMS_ERROR,null,'订单不存在');}
  134. $data['order_status'] = 1;
  135. }
  136. elseif($type == 3)
  137. {
  138. //判断订单是否存在或本人
  139. $where['order_status'] = 0;
  140. $where['refund_status'] = 0;
  141. $where['pay_status'] = 1;
  142. $order = Order::where($where)->first();
  143. if(!$order){return ReturnData::create(ReturnData::PARAMS_ERROR,null,'订单不存在');}
  144. $data['order_status'] = 3;
  145. $data['shipping_status'] = 2;
  146. $data['refund_status'] = 0;
  147. $data['is_comment'] = 0;
  148. }
  149. elseif($type == 4)
  150. {
  151. //判断订单是否存在或本人
  152. $where['order_status'] = 3;
  153. $where['refund_status'] = 0;
  154. $order = Order::where($where)->first();
  155. if(!$order){return ReturnData::create(ReturnData::PARAMS_ERROR,null,'订单不存在');}
  156. $data['refund_status'] = 1;
  157. }
  158. elseif($type == 5)
  159. {
  160. //判断订单是否存在或本人
  161. $order = Order::where(array('order_status'=>3,'refund_status'=>0))->orWhere(array('order_status'=>1))->orWhere(array('order_status'=>2))->first();
  162. if(!$order){return ReturnData::create(ReturnData::PARAMS_ERROR,null,'订单不存在');}
  163. $data['is_delete'] = 1;
  164. }
  165. elseif($type == 6)
  166. {
  167. //判断订单是否存在或本人
  168. $where['order_status'] = 3;
  169. $where['refund_status'] = 0;
  170. $order = Order::where($where)->first();
  171. if(!$order){return ReturnData::create(ReturnData::PARAMS_ERROR,null,'订单不存在');}
  172. $data['is_comment'] = 1;
  173. }
  174. //修改订单状态
  175. if (isset($data))
  176. {
  177. Order::modify($where,$data);
  178. }
  179. return ReturnData::create(ReturnData::SUCCESS);
  180. }
  181. //删除订单
  182. public function orderDelete(Request $request)
  183. {
  184. $id = $request->input('id','');
  185. if($id=='')
  186. {
  187. return ReturnData::create(ReturnData::PARAMS_ERROR);
  188. }
  189. return Order::remove($id,Token::$uid);
  190. }
  191. }