GoodsOrder.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace app\order\controller;
  3. use library\Controller;
  4. use think\Db;
  5. /**
  6. * 商品订单
  7. * Class Order
  8. * @package app\order\controller
  9. */
  10. class GoodsOrder extends Controller
  11. {
  12. protected $table = 'store_order';
  13. /**
  14. * 订单列表
  15. * @auth true
  16. * @menu true
  17. */
  18. public function index()
  19. {
  20. $this->title = '订单管理';
  21. $this->order_status = ['待支付','已支付','已取消'];
  22. $order_stat = Db::table($this->table)
  23. ->where('status',1)
  24. ->where('is_deleted',0)
  25. ->field('pay_price')
  26. ->select();
  27. $this->order_num = empty($order_stat) ? 0: count($order_stat);
  28. $this->total_money = empty($order_stat) ? 0: array_sum(array_column($order_stat,'pay_price'));
  29. $query = $this->_query($this->table);
  30. $where = [];
  31. if($this->request->request('tel'))$where[]= ['u.phone','like','%'.$this->request->request('tel').'%'];
  32. if($this->request->request('user_name'))$where[]= ['u.name','like','%'.$this->request->request('user_name').'%'];
  33. if($this->request->request('order_no')) $where[]= ['o.order_no','like','%'.$this->request->request('order_no').'%'];
  34. if($this->request->request('order_status') > -1) $where[]= ['o.status','=',$this->request->request('order_status')];
  35. $query->alias('o')
  36. ->field('o.* , u.name as user_name ,u.phone')
  37. ->join('store_member u',' o.mid = u.id ','LEFT');
  38. if(!empty($where)) $query->where($where);
  39. $query ->order('o.id desc')->page();
  40. }
  41. /**
  42. * 订单详情
  43. * @auth true
  44. * @menu true
  45. */
  46. public function detail()
  47. {
  48. $this->order_status = ['待支付','已支付','已取消'];
  49. $this->title = '订单详情';
  50. $order_id = input('id');
  51. $detail = Db::table('store_order o')
  52. ->field('o.* , u.name as user_name ,u.phone')
  53. ->join('store_member u',' o.mid = u.id ','LEFT')
  54. ->where('o.id',$order_id)
  55. ->find();
  56. $detail['pro_info'] = json_decode($detail['pro_info'],true);
  57. $detail['pay_type'] = $detail['pay_type']=='wx' ? '微信' : '支付宝';
  58. $this->assign('detail',$detail);
  59. $this->fetch('detail');
  60. }
  61. /**
  62. * 订单发货
  63. * @auth true
  64. * @menu true
  65. */
  66. public function deliver()
  67. {
  68. $this->title = '发货';
  69. $this->express_company = Db::table('store_express_company')->field('id,express_title')->select();
  70. $this->_form($this->table,'deliver');
  71. }
  72. /**
  73. * 表单数据处理
  74. * @auth true
  75. * @menu true
  76. * @param array $data
  77. */
  78. protected function _form_filter(&$data)
  79. {
  80. if ($this->request->isPost() && $this->request->action() == 'deliver') {
  81. $express_company = Db::table('store_express_company')->field('id,express_title')->find($data['express_company_id']);
  82. $data['express_company_title'] = $express_company['express_title'] ? $express_company['express_title'] : '';
  83. $data['express_send_at'] = date("Y-m-d H:i:s");
  84. $data['express_state'] = 1;
  85. }
  86. }
  87. }