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.

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