param(); $where = []; //订单搜素 if (!empty($param['search_key']) && !empty($param['keyword'])) { $keyword = $param['keyword']; switch ($param['search_key']) { case 'order_sn': $where[] = ['o.order_sn', 'like', '%' . $keyword . '%']; break; case 'user_sn': $where[] = ['u.sn', 'like', '%' . $keyword . '%']; break; case 'nickname': $where[] = ['u.nickname', 'like', '%' . $keyword . '%']; break; case 'user_mobile': $where[] = ['u.mobile', 'like', '%' . $keyword . '%']; break; } } //商品名称 if (isset($param['goods_name']) && $param['goods_name'] != '') { $where[] = ['g.goods_name', 'like', '%' . $param['goods_name'] . '%']; } //订单类型 if (isset($param['order_type']) && $param['order_type'] != '') { $where[] = ['o.order_status', '=', $param['order_type']]; } //下单时间 if (isset($param['start_time']) && $param['start_time'] != '') { $where[] = ['o.create_time', '>=', strtotime($param['start_time'])]; } if (isset($param['end_time']) && $param['end_time'] != '') { $where[] = ['o.create_time', '<=', strtotime($param['end_time'])]; } $model = $model ->alias('o') ->field('o.*,u.mobile,u.nickname,u.sn,u.avatar') ->join('user u', 'u.id = o.user_id') ->join('order_goods g', 'g.order_id = o.id') ->with(['order_goods']) ->append(['delivery_address']) ->where($where) ->order('o.id desc') ->group('o.id') ->scope('where', $param); $data = $model->paginate($this->admin['per_page'], false, ['query'=>$request->get()]); foreach ($data as $key => $value) { foreach ($value['order_goods'] as &$order_goods){ $mi_info=$mimodel->where(array('union_id'=>$order_goods['goods_id'],'type'=>1,'is_cover'=>1))->find(); $order_goods['img']=$mi_info['thumb_image']; } } //关键词,排序等赋值 $this->assign($request->get()); $this->assign([ 'data' => $data, 'page' => $data->render(), 'total' => $data->total(), ]); return $this->fetch(); } /** * Desc: 订单详情 */ public function detail($id, Request $request, Order $model, MallImage $mimodel) { $order = new Order(); $data = $order ->with(['user', 'order_goods']) ->where('id', $id) ->append(['delivery_address']) ->find(); foreach ($data['order_goods'] as &$order_goods){ $mi_info=$mimodel->where(array('union_id'=>$order_goods['goods_id'],'type'=>1,'is_cover'=>1))->find(); $order_goods['img']=$mi_info['thumb_image']; } $this->assign([ 'detail' => $data, ]); return $this->fetch(); } /** * Desc: 订单详情 */ public function delivery($id, Request $request, Order $model, MallImage $mimodel) { $order = new Order(); $data = $order ->with(['user', 'order_goods']) ->where('id', $id) ->append(['delivery_address']) ->find(); foreach ($data['order_goods'] as &$order_goods){ $mi_info=$mimodel->where(array('union_id'=>$order_goods['goods_id'],'type'=>1,'is_cover'=>1))->find(); $order_goods['img']=$mi_info['thumb_image']; } $this->assign([ 'detail' => $data, ]); return $this->fetch(); } /** * Desc: 发货操作 */ public function deliveryHandle(Request $request, Order $model, OrderValidate $validate) { if ($request->isAjax()) { $param = $request->param(); $validate_result = $validate->scene('hansle')->check($param); if (!$validate_result) { return error($validate->getError()); } $model->delivery_handle($param); return success('发货成功'); } } /** * Desc: 确认收货 */ public function confirm(Request $request, Order $model) { if ($this->request->isAjax()) { $param = $request->param(); $order = Order::get(['id' => $param['order_id']]); $order->order_status = 3; $order->update_time = time(); $order->confirm_take_time = time(); $order->save(); return success('确认成功'); } } }