getOrderList($condition, 10, '*', 'order_id desc', 0, array('order_goods', 'order_common','ppintuanorder', 'member')); foreach ($order_list as $key => $order_info) { if(isset($order_info['extend_order_goods'])){ foreach ($order_info['extend_order_goods'] as $value) { $value['image_240_url'] = goods_cthumb($value['goods_image'], 240); $value['goods_type_cn'] = get_order_goodstype($value['goods_type']); $value['goods_url'] = url('Goods/index', ['goods_id' => $value['goods_id']]); if ($value['goods_type'] == 5) { $order_info['zengpin_list'][] = $value; } else { $order_info['goods_list'][] = $value; } } if (empty($order_info['zengpin_list'])) { $order_info['goods_count'] = count($order_info['goods_list']); } else { $order_info['goods_count'] = count($order_info['goods_list']) + 1; } } $order_list[$key] = $order_info; } View::assign('order_list', $order_list); View::assign('show_page', $order_model->page_info->render()); $this->setAdminCurItem($state); return View::fetch(); } /** * 发货 */ public function send() { $order_id = input('param.order_id'); if ($order_id <= 0) { ds_json_encode(10001,lang('param_error')); } $order_model = model('order'); $condition = array(); $condition[] = array('order_id','=',$order_id); $order_info = $order_model->getOrderInfo($condition, array('order_common', 'order_goods')); $if_allow_send = intval($order_info['lock_state']) || !in_array($order_info['order_state'], array(ORDER_STATE_PAY, ORDER_STATE_SEND)); if ($if_allow_send) { ds_json_encode(10001,lang('param_error')); } if (!request()->isPost()) { View::assign('order_info', $order_info); //取发货地址 $daddress_model = model('daddress'); $daddress_info = array(); if ($order_info['extend_order_common']['daddress_id'] > 0) { $daddress_info = $daddress_model->getAddressInfo(array('daddress_id' => $order_info['extend_order_common']['daddress_id'])); } if(empty($daddress_info)){ //取默认地址 $daddress_info = $daddress_model->getAddressList(array(), '*', 'daddress_isdefault desc', 1); if (!empty($daddress_info)) { $daddress_info = $daddress_info[0]; //写入发货地址编号 $this->_edit_order_daddress($daddress_info['daddress_id'], $order_id); } else { //写入发货地址编号 $this->_edit_order_daddress(0, $order_id); } } View::assign('daddress_info', $daddress_info); $express_list = rkcache('express', true); View::assign('express_list', $express_list); $this->setAdminCurItem('send'); return View::fetch(); } else { $logic_order = model('order','logic'); $post = input('post.'); $post['reciver_info'] = $this->_get_reciver_info(); if (empty($post['daddress_id'])){ ds_json_encode(10001,'请选择发货地址'); } $result = $logic_order->changeOrderSend($order_info, 'admin', session('admin_name'), $post); if (!$result['code']) { ds_json_encode(10001,$result['msg']); } else { ds_json_encode(10000,'操作成功'); } } } /** * 批量发货 */ public function batch_send() { $order_id = ds_delete_param(input('param.order_id')); $order_model = model('order'); $daddress_model = model('daddress'); $condition = array(); $condition[] = array('order_id','in',$order_id); $condition[] = array('lock_state','=',0); $condition[] = array('order_state','in',array(ORDER_STATE_PAY)); $order_list = $order_model->getOrderList($condition, '', '*', 'order_id desc', 0, array('order_common')); if (request()->isPost()) { if(empty($order_list)){ $this->error(lang('param_error')); } $send=input('param.send/a'); $logic_order = model('order','logic'); foreach($order_list as $order_info){ if(empty($send[$order_info['order_id']])){ $this->error(lang('param_error')); } if(!$send[$order_info['order_id']]['daddress_id']){ $this->error(lang('store_order_order_sn').$order_info['order_sn'].':'.lang('store_deliver_confirm_daddress')); } if(!$send[$order_info['order_id']]['express_id']){ $this->error(lang('store_order_order_sn').$order_info['order_sn'].':'.lang('store_deliver_express_select')); } if(!$send[$order_info['order_id']]['shipping_code']){ $this->error(lang('store_order_order_sn').$order_info['order_sn'].':'.lang('store_deliver_shipping_code_pl')); } $result = $logic_order->changeOrderSend($order_info, 'admin', session('admin_name'), array_merge($send[$order_info['order_id']],array( 'reciver_info'=>serialize($order_info['extend_order_common']['reciver_info']), 'shipping_express_id'=>$send[$order_info['order_id']]['express_id'], 'reciver_name'=>$order_info['extend_order_common']['reciver_name'], 'reciver_area'=>$order_info['extend_order_common']['reciver_info']['area'], 'reciver_street'=>$order_info['extend_order_common']['reciver_info']['street'], 'reciver_mob_phone'=>$order_info['extend_order_common']['reciver_info']['mob_phone'], 'reciver_tel_phone'=>$order_info['extend_order_common']['reciver_info']['tel_phone'], 'deliver_explain'=>$order_info['extend_order_common']['deliver_explain'], ))); if(!$result['code']){ ds_json_encode(10001,$result['msg']); } } dsLayerOpenSuccess($result['msg']); }else{ if(empty($order_list)){ $this->error(lang('param_error')); } $daddress_list = $daddress_model->getAddressList(array(), '*', 'daddress_isdefault desc'); View::assign('daddress_list', $daddress_list); foreach($order_list as $key => $order_info){ //如果是自提订单,只保留自提快递公司 $express_list = rkcache('express', true); if (!empty($order_info['extend_order_common']['reciver_info']['dlyp'])) { foreach ($express_list as $k => $v) { if ($v['express_zt_state'] == '0') unset($express_list[$k]); } } $order_list[$key]['my_express_list']=array_values($express_list); } View::assign('order_list', $order_list); return View::fetch('batch_send'); } } /** * 编辑收货地址 * @return boolean */ public function buyer_address_edit() { $order_id = input('param.order_id'); if ($order_id <= 0){ return false; } $order_model = model('order'); $condition = array(); $condition[] = array('order_id','=',$order_id); $order_common_info = $order_model->getOrdercommonInfo($condition); if (!$order_common_info){ return false; } $order_common_info['reciver_info'] = @unserialize($order_common_info['reciver_info']); View::assign('address_info', $order_common_info); return View::fetch(); } /** * 收货地址保存 */ public function buyer_address_save() { $order_model = model('order'); $data = array(); $data['reciver_name'] = input('post.new_reciver_name'); $data['reciver_info'] = $this->_get_reciver_info(); $condition = array(); $condition[] = array('order_id','=',intval(input('param.order_id'))); $result = $order_model->editOrdercommon($data, $condition); if ($result>=0) { dsLayerOpenSuccess('保存成功'); } else { $this->error('保存失败'); } } /** * 组合reciver_info */ private function _get_reciver_info() { $reciver_info = array( 'address' => input('post.reciver_area') . ' ' . input('post.reciver_street'), 'phone' => trim(input('post.reciver_mob_phone') . ',' . input('post.reciver_tel_phone'), ','), 'area' => input('post.reciver_area'), 'street' => input('post.reciver_street'), 'mob_phone' => input('post.reciver_mob_phone'), 'tel_phone' => input('post.reciver_tel_phone'), 'dlyp' => input('post.reciver_dlyp'), ); return serialize($reciver_info); } /** * 选择发货地址 * @return boolean */ public function send_address_select() { $address_list = model('daddress')->getAddressList(array()); View::assign('address_list', $address_list); View::assign('order_id', input('param.order_id')); return View::fetch(); } /** * 保存发货地址修改 */ public function send_address_save() { $result = $this->_edit_order_daddress(input('param.daddress_id'), input('param.order_id')); if ($result>=0) { dsLayerOpenSuccess('保存成功'); } else { $this->error('保存失败'); } } /** * 修改发货地址 */ private function _edit_order_daddress($daddress_id, $order_id) { $order_model = model('order'); $data = array(); $data['daddress_id'] = intval($daddress_id); $condition = array(); $condition[] = array('order_id','=',$order_id); return $order_model->editOrdercommon($data, $condition); } /** * 物流跟踪 */ public function search_deliver() { $order_sn = input('param.order_sn'); if (!is_numeric($order_sn)) { $this->error(lang('param_error')); } $order_model = model('order'); $condition = array(); $condition[] = array('order_sn','=',$order_sn); $order_info = $order_model->getOrderInfo($condition, array('order_common', 'order_goods')); if (empty($order_info) || $order_info['shipping_code'] == '') { $this->error(lang('no_information_found')); } $order_info['state_info'] = get_order_state($order_info); View::assign('order_info', $order_info); //卖家发货信息 $daddress_info = model('daddress')->getAddressInfo(array('daddress_id' => $order_info['extend_order_common']['daddress_id'])); View::assign('daddress_info', $daddress_info); //取得配送公司代码 $express = rkcache('express', true); View::assign('express_code', isset($express[$order_info['extend_order_common']['shipping_express_id']])?$express[$order_info['extend_order_common']['shipping_express_id']]['express_code']:''); View::assign('express_name', isset($express[$order_info['extend_order_common']['shipping_express_id']])?$express[$order_info['extend_order_common']['shipping_express_id']]['express_name']:''); View::assign('express_url', isset($express[$order_info['extend_order_common']['shipping_express_id']])?$express[$order_info['extend_order_common']['shipping_express_id']]['express_url']:''); View::assign('shipping_code', $order_info['shipping_code']); $this->setAdminCurItem('search_deliver'); return View::fetch('search_deliver'); } /** * 从第三方取快递信息 * */ public function get_express() { $result = model('express')->queryExpress(input('param.express_code'),input('param.shipping_code'),input('param.phone')); if ($result['Success'] != true) exit(json_encode(false)); $content['Traces'] = array_reverse($result['Traces']); $output = ''; if (is_array($content['Traces'])) { foreach ($content['Traces'] as $k => $v) { if ($v['AcceptTime'] == '') continue; $output .= '