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.

186 lines
6.1 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
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Admin\CommonController;
  4. use App\Http\Model\Order;
  5. use App\Http\Model\OrderGoods;
  6. use App\Http\Model\User;
  7. use App\Http\Model\Region;
  8. use DB;
  9. class OrderController extends CommonController
  10. {
  11. public function __construct()
  12. {
  13. parent::__construct();
  14. }
  15. public function index()
  16. {
  17. $res = '';
  18. $where = function ($query) use ($res) {
  19. if(isset($_REQUEST["keyword"]))
  20. {
  21. $query->where('order_sn', 'like', '%'.$_REQUEST['keyword'].'%')->orWhere("name", "like", '%'.$_REQUEST['keyword'].'%')->orWhere("mobile", "like", '%'.$_REQUEST['keyword'].'%');
  22. }
  23. if(isset($_REQUEST["mobile"]))
  24. {
  25. $query->where('mobile', 'like', '%'.$_REQUEST['mobile'].'%');
  26. }
  27. if(isset($_REQUEST["order_sn"]))
  28. {
  29. $query->where('order_sn', 'like', '%'.$_REQUEST['order_sn'].'%');
  30. }
  31. if(isset($_REQUEST["name"]))
  32. {
  33. $query->where("name", "like", '%'.$_REQUEST['name'].'%');
  34. }
  35. //0或者不传表示全部,1待付款,2待发货,3待收货,4待评价(确认收货,交易成功),5退款/售后
  36. if(isset($_REQUEST["status"]))
  37. {
  38. if($_REQUEST["status"] == 1)
  39. {
  40. $query->where(array('order_status'=>0,'pay_status'=>0));
  41. }
  42. elseif($_REQUEST["status"] == 2)
  43. {
  44. $query->where(array('order_status'=>0,'shipping_status'=>0,'pay_status'=>1));
  45. }
  46. elseif($_REQUEST["status"] == 3)
  47. {
  48. $query->where(array('order_status'=>0,'refund_status'=>0,'shipping_status'=>1,'pay_status'=>1));
  49. }
  50. elseif($_REQUEST["status"] == 4)
  51. {
  52. $query->where(array('order_status'=>3,'refund_status'=>0,'shipping_status'=>2,'is_comment'=>0));
  53. }
  54. elseif($_REQUEST["status"] == 5)
  55. {
  56. $query->where(array('order_status'=>3,'refund_status'=>1));
  57. }
  58. }
  59. $query->where('is_delete', 0); //未删除
  60. };
  61. $posts = parent::pageList('order', $where);
  62. foreach($posts as $key=>$value)
  63. {
  64. $order_status_arr = Order::getOrderStatusText(object_to_array($value, 1));
  65. $posts[$key]->order_status_text = $order_status_arr?$order_status_arr['text']:'';
  66. $posts[$key]->order_status_num = $order_status_arr?$order_status_arr['num']:'';
  67. $posts[$key]->province_name = Region::getRegionName($value->province);
  68. $posts[$key]->city_name = Region::getRegionName($value->city);
  69. $posts[$key]->district_name = Region::getRegionName($value->district);
  70. }
  71. $data['posts'] = $posts;
  72. return view('admin.order.index', $data);
  73. }
  74. public function detail()
  75. {
  76. if(!empty($_GET["id"])){$id = $_GET["id"];}else{$id="";}
  77. if(preg_match('/[0-9]*/',$id)){}else{exit;}
  78. $data['id'] = $id;
  79. $data['post'] = Order::where('id', $id)->first();
  80. if($data['post'])
  81. {
  82. $order_status_arr = Order::getOrderStatusText($data['post']);
  83. $data['post']['order_status_text'] = $order_status_arr?$order_status_arr['text']:'';
  84. $data['post']['order_status_num'] = $order_status_arr?$order_status_arr['num']:'';
  85. $data['post']['province_name'] = Region::getRegionName($data['post']['province']);
  86. $data['post']['city_name'] = Region::getRegionName($data['post']['city']);
  87. $data['post']['district_name'] = Region::getRegionName($data['post']['district']);
  88. $data['post']['invoice_text'] = Order::getInvoiceText($data['post']);
  89. $data['post']['place_type_text'] = Order::getPlaceTypeText($data['post']);
  90. $data['post']['user'] = User::where(array('id'=>$data['post']['user_id']))->first(); //下单人信息
  91. $order_goods = OrderGoods::where(array('order_id'=>$data['post']['id']))->get(); //订单商品列表
  92. foreach($order_goods as $k=>$v)
  93. {
  94. $order_goods[$k]['refund_status_text'] = OrderGoods::getRefundStatusText($v);
  95. }
  96. $data['post']['goodslist'] = $order_goods;
  97. }
  98. //echo '<pre>';print_r($data['post']);exit;
  99. return view('admin.order.detail', $data);
  100. }
  101. public function doadd()
  102. {
  103. $_POST['add_time'] = time();//更新时间
  104. $_POST['click'] = rand(200,500);//点击
  105. unset($_POST["_token"]);
  106. if(isset($_POST['editorValue'])){unset($_POST['editorValue']);}
  107. if(Order::insert($_POST))
  108. {
  109. success_jump('添加成功!', route('admin_order'));
  110. }
  111. else
  112. {
  113. error_jump('添加失败!请修改后重新添加');
  114. }
  115. }
  116. public function add()
  117. {
  118. return view('admin.order.add');
  119. }
  120. public function edit()
  121. {
  122. if(!empty($_GET["id"])){$id = $_GET["id"];}else{$id="";}
  123. if(preg_match('/[0-9]*/',$id)){}else{exit;}
  124. $data['id'] = $id;
  125. $data['post'] = Order::where('id', $id)->first();
  126. return view('admin.order.edit', $data);
  127. }
  128. public function doedit()
  129. {
  130. if(!empty($_POST["id"])){$id = $_POST["id"];unset($_POST["id"]);}else {$id="";exit;}
  131. unset($_POST["_token"]);
  132. if(isset($_POST['editorValue'])){unset($_POST['editorValue']);}
  133. if(Order::where('id', $id)->update($_POST))
  134. {
  135. success_jump('修改成功!', route('admin_order'));
  136. }
  137. else
  138. {
  139. error_jump('修改失败!请修改后重新添加');
  140. }
  141. }
  142. public function del()
  143. {
  144. if(!empty($_GET["id"])){$id = $_GET["id"];}else{error_jump("删除失败!请重新提交");} //if(preg_match('/[0-9]*/',$id)){}else{exit;}
  145. if(Order::whereIn("id", explode(',', $id))->update(array('is_delete'=>1)))
  146. {
  147. success_jump('删除成功');
  148. }
  149. else
  150. {
  151. error_jump("删除失败!请重新提交");
  152. }
  153. }
  154. }