";
}
// function detail_service($order_id){
// $render = app::get('ome')->render();
// $serviceObj = app::get('ome')->model('order_service');
// $service_list = $serviceObj->getList('*',array('order_id'=>$order_id));
// $render->pagedata['service_list'] = $service_list;
// return $render->fetch('admin/order/detail_service.html');
// }
var $column_order_combined_confirm = '已合并审单';
var $column_order_combined_confirm_width = "60";
function column_order_combined_confirm($row) {
$ret = "否";
$mdl_ome_dl_or = app::get('ome')->model('delivery_order');
$rs_dl_or = $mdl_ome_dl_or->getList("delivery_id",array("order_id"=>$row['order_id']),0,-1,"delivery_id desc");
if(!empty($rs_dl_or)){
$mdl_ome_dl = app::get('ome')->model('delivery');
foreach($rs_dl_or as $var_d_o){
$rs_dl = $mdl_ome_dl->dump(array("delivery_id"=>$var_d_o["delivery_id"]),"is_bind");
if($rs_dl["is_bind"] == "true"){
$ret = "是";
break;
}
}
}
return $ret;
}
private function __getOrderExtend($list) {
static $arrExtend;
if(isset($arrExtend)) {
return $arrExtend;
}
$orderId = array();
foreach($list as $val) {
$orderId[] = $val['order_id'];
}
$extendData = app::get('ome')->model('order_extend')->getList('*', array('order_id'=>$orderId));
foreach($extendData as $val) {
$arrExtend[$val['order_id']] = $val;
}
return $arrExtend;
}
var $column_bool_type='订单标识';
function column_bool_type($row)
{
return kernel::single('ome_order_bool_type')->getBoolTypeIdentifier($row[$this->col_prefix.'order_bool_type'],$row[$this->col_prefix.'shop_type']);
}
public $column_push_time = '推单时间';
public $column_push_time_width = '120';
/**
* column_push_time
* @param mixed $row row
* @param mixed $list list
* @return mixed 返回值
*/
public function column_push_time($row, $list) {
$extend = $this->__getOrderExtend($list);
$time = $extend[$row['order_id']]['push_time'];
$img = '';
if (kernel::single('ome_order_bool_type')->isCnService($row[$this->col_prefix . 'order_bool_type'])) {
if($extend[$row['order_id']]['cn_service'] == 'dang') {
$img = '
->res_url . '/images/nonstop_1.png)
';
} elseif ($extend[$row['order_id']]['cn_service'] == 'ci') {
$img = '
->res_url . '/images/nonstop_2.png)
';
} elseif ($extend[$row['order_id']]['cn_service'] == 'shi') {
$img = '
预约时效服务
';
} elseif ($extend[$row['order_id']]['cn_service'] == 'yue') {
$img = '
->res_url . '/images/nonstop_4.png)
';
} elseif ($extend[$row['order_id']]['cn_service'] == 'duo') {
$img = '
菜鸟多日达
';
}
}
return $time ? '
' . date('Y-m-d H:i', $time) . ' ' . $img : '';
}
public $column_collect_time = '揽收时间';
public $column_collect_time_width = '120';
/**
* column_collect_time
* @param mixed $row row
* @param mixed $list list
* @return mixed 返回值
*/
public function column_collect_time($row, $list) {
$extend = $this->__getOrderExtend($list);
$time = $extend[$row['order_id']]['collect_time'];
$txt = '
'.$extend[$row['order_id']]['es_time'].'日达
';
return $time ? '
' . date('Y-m-d H:i', $time) . ' ' . $txt : '';
}
public $column_added_serivces = '增值服务';
/**
* column_added_serivces
* @param mixed $row row
* @param mixed $list list
* @return mixed 返回值
*/
public function column_added_serivces($row, $list){
$extend = $this->__getOrderExtend($list);
$img = '';
$cn_service = explode(',', $extend[$row['order_id']]['cpup_service']);
$str = '';
if (kernel::single('ome_order_bool_type')->isCPUP($row[$this->col_prefix . 'order_bool_type'])) {
if (in_array('201', $cn_service)) {
$str .= "
按需配送";
}
if (in_array('202', $cn_service)) {
$str .= "
顺丰配送";
}
if (in_array('203', $cn_service)) {
$str .= "
承诺发货";
}
if (in_array('204', $cn_service)) {
$str .= "
承诺送达";
}
if (in_array('210', $cn_service)) {
$str .= "
极速上门";
}
if (in_array('sug_home_deliver', $cn_service)) {
$str .= "
建议使用音尊达";
}
}
if (!empty($str)) {
$img .= "
$str
";
}
return $img ? $img : '';
}
public $column_latest_delivery_time = '最晚发货时间';
public $column_latest_delivery_time_width = '120';
/**
* column_latest_delivery_time
* @param mixed $row row
* @param mixed $list list
* @return mixed 返回值
*/
public function column_latest_delivery_time($row, $list) {
$extend = $this->__getOrderExtend($list);
$time = $extend[$row['order_id']]['latest_delivery_time'];
if($row[$this->col_prefix . 'order_bool_type'] & ome_order_bool_type::__SHI_CODE) {
return $time ? '
' . date('Y-m-d H:i', $time) . ' ' : '';
}
$img = '';
if(kernel::single('ome_order_bool_type')->isCnService($row[$this->col_prefix . 'order_bool_type'])) {
if($extend[$row['order_id']]['cn_service'] == 'dang') {
$img = '
->res_url . '/images/tmzs.png)
';
} elseif ($extend[$row['order_id']]['cn_service'] == 'ci') {
$img = '
->res_url . '/images/tmzs.png)
';
} elseif ($extend[$row['order_id']]['cn_service'] == 'shi') {
$img = '
->res_url . '/images/tmzs.png)
';
} elseif ($extend[$row['order_id']]['cn_service'] == 'yue') {
$img = '
->res_url . '/images/tmzs.png)
';
} elseif ($extend[$row['order_id']]['cn_service'] == 'duo') {
$img = '
->res_url . '/images/tmzs.png)
';
}
}
return $time ? '
' . date('Y-m-d H:i', $time) . ' ' : '';
}
public $column_promised_collect_time = '承诺最晚揽收时间';
public $column_promised_collect_time_width = '120';
/**
* column_promised_collect_time
* @param mixed $row row
* @param mixed $list list
* @return mixed 返回值
*/
public function column_promised_collect_time($row, $list) {
$extend = $this->__getOrderExtend($list);
$time = $extend[$row['order_id']]['promised_collect_time'];
return $time ? '
' . date('Y-m-d H:i', $time) . '' : '';
}
public $column_promised_sign_time = '承诺最晚送达时间';
public $column_promised_sign_time_width = '120';
/**
* column_promised_sign_time
* @param mixed $row row
* @param mixed $list list
* @return mixed 返回值
*/
public function column_promised_sign_time($row, $list) {
$extend = $this->__getOrderExtend($list);
$time = $extend[$row['order_id']]['promised_sign_time'];
return $time ? '
' . date('Y-m-d H:i', $time) . '' : '';
}
/**
* 订单标记
*/
public $column_order_label = '订单标记';
public $column_order_label_width = 260;
public $column_order_label_order = 30;
/**
* column_order_label
* @param mixed $row row
* @param mixed $list list
* @return mixed 返回值
*/
public function column_order_label($row, $list)
{
$order_id = $row['order_id'];
//获取订单标记列表
$labelList = $this->__getOrderLabel($list);
$dataList = $labelList[$order_id];
if(empty($dataList)){
return '';
}
//只显标记列表
$str = [];
foreach ($dataList as $key => $val)
{
$label_desc = $val['label_desc'];
if($label_desc){
$str[] =
sprintf("
%s", $val['label_desc'],$val['label_color'], $val['label_color'], $val['label_name']);
}else{
$str[] =
sprintf("
%s", $val['label_color'], $val['label_color'], $val['label_name']);
}
}
$str = '
'.implode("", $str).'
';
return $str;
}
/**
* 订单标记列表
*
* @param array $list
* @return null
*/
private function __getOrderLabel($list)
{
static $arrOrderLabel;
if(isset($arrOrderLabel)){
return $arrOrderLabel;
}
$arrOrderLabel = [];
$orderIds = array();
foreach($list as $val) {
$orderIds[] = $val['order_id'];
}
//获取订单标记列表
$orderLabelObj = app::get('ome')->model('bill_label');
$labelData = $orderLabelObj->getBIllLabelList($orderIds);
foreach($labelData as $val)
{
$order_id = $val['bill_id'];
$arrOrderLabel[$order_id][] = array(
'label_id' => $val['label_id'],
'label_name' => $val['label_name'],
'label_color' => $val['label_color'],
'label_desc'=>$val['label_desc'],
);
}
unset($orderIds, $labelData);
return $arrOrderLabel;
}
/**
* 回传给前端店铺发货状态失败
*/
public $column_delivery_errormsg = '发货失败信息';
public $column_delivery_errormsg_width = 300;
public $column_delivery_errormsg_order = 99;
/**
* column_delivery_errormsg
* @param mixed $row row
* @param mixed $list list
* @return mixed 返回值
*/
public function column_delivery_errormsg($row, $list)
{
//不是已发货状态,直接返回
if($row[$this->col_prefix.'ship_status'] != '1'){
return '';
}
//不是回传失败,直接返回
if($row[$this->col_prefix.'sync'] != 'fail'){
return '';
}
$order_bn = $row['order_bn'];
if(empty(self::$_syncErrorMsgs)){
$shipmentObj = app::get('ome')->model('shipment_log');
$order_bns = array();
foreach ($list as $key => $val)
{
$order_bns[] = $val['order_bn'];
}
//list
$shipmentLogs = $shipmentObj->getList('log_id,orderBn,message', array('orderBn'=>$order_bns));
if($shipmentLogs){
foreach ($shipmentLogs as $key => $val)
{
$orderBn = $val['orderBn'];
$val['message'] = strip_tags(htmlspecialchars($val['message']));
self::$_syncErrorMsgs[$orderBn] = substr($val['message'], 0, 96);
}
}
unset($order_bns, $shipmentLogs);
}
return self::$_syncErrorMsgs[$order_bn];
}
var $column_tostr = "商品名称";
var $column_tostr_width = "160";
function column_tostr($row) {
$tostr = $row[$this->col_prefix . 'tostr'];
if($tostr){
$tostr = json_decode($tostr,true);
if(!is_array($tostr)) {
return '';
}
$num=0;
foreach ($tostr as $value){
$num+= $value['num'];
}
return sprintf("
%s
",implode(',',array_column($tostr,'name')));
}
return '';
}
var $column_itemnum = "商品数量";
var $column_itemnum_width = "160";
function column_itemnum($row) {
$tostr = $row[$this->col_prefix . 'tostr'];
if($tostr){
$tostr = json_decode($tostr,true);
$num=0;
foreach ($tostr as $value){
$num+= $value['num'];
}
return sprintf("
%s
",$num);
}
return '';
}
var $column_abnormal_mark = '异常标识';
function column_abnormal_mark($row)
{
return kernel::single('ome_preprocess_const')->getBoolTypeIdentifier($row[$this->col_prefix.'abnormal_status'], $row[$this->col_prefix.'shop_type']);
}
/**
* detail_prodcut_store
* @param mixed $order_id ID
* @return mixed 返回值
*/
public function detail_prodcut_store($order_id)
{
$render = app::get('ome')->render();
$branchIds = kernel::single('ome_order_branch')->getBranchIdByOrder($order_id);
if(empty($branchIds)) {
return '
';
}
$items = app::get('ome')->model('order_items')->getList('product_id,bn,name,nums,split_num', ['order_id'=>$order_id, 'delete'=>'false']);
$bp = app::get('ome')->model('branch_product')->getList('branch_id,product_id,store,store_freeze', ['branch_id'=>$branchIds, 'product_id'=>array_column($items, 'product_id')]);
if(empty($bp)) {
$bp = app::get('o2o')->model('product_store')->getList('branch_id,bm_id as product_id,store,store_freeze', ['branch_id'=>$branchIds, 'bm_id'=>array_column($items, 'product_id')]);
}
// $orderFreeze = app::get('material')->model('basic_material_stock_freeze')->getList('*', array('obj_type'=>1, 'obj_id'=>$order_id));
// $branchIds = array_merge($branchIds, array_column($orderFreeze, 'branch_id'));
$branch = app::get('ome')->model('branch')->getList('branch_id, name', ['branch_id'=>$branchIds, 'check_permission'=>'false']);
$branch = array_column($branch, null, 'branch_id');
$pidItems = [];
foreach($items as $v) {
if($pidItems[$v['product_id']]) {
$pidItems[$v['product_id']]['undly_num'] += $v['nums'] - $v['split_num'];
} else {
$pidItems[$v['product_id']] = $v;
$pidItems[$v['product_id']]['undly_num'] = $v['nums'] - $v['split_num'];
}
}
$pidBp = [];
foreach($bp as $v) {
$pidBp[$v['product_id']][$v['branch_id']] = $v;
}
$store_list = [];
foreach($pidItems as $v) {
if($pidBp[$v['product_id']]) {
foreach($pidBp[$v['product_id']] as $vv) {
$tmp = $v;
if($vv['store']-$vv['store_freeze'] < $v['undly_num']) {
$tmp['is_less'] = true;
}
$tmp['store'] = $vv['store'];
$tmp['store_freeze'] = $vv['store_freeze'];
$tmp['branch_name'] = $branch[$vv['branch_id']]['name'];
$store_list[] = $tmp;
}
} else {
$v['is_less'] = true;
$store_list[] = $v;
}
}
$render->pagedata['store_list'] = $store_list;
// foreach ($orderFreeze as $key => $value) {
// $orderFreeze[$key]['bn'] = $pidItems[$value['bm_id']]['bn'];
// $orderFreeze[$key]['name'] = $pidItems[$value['bm_id']]['name'];
// $orderFreeze[$key]['bill_type'] = $value['bill_type'] == 2 ? '预占' : ($value['bill_type'] == 1 ? '缺货' : '未处理/已释放');
// $orderFreeze[$key]['branch_name'] = $branch[$value['branch_id']]['name'];
// }
// $render->pagedata['order_freeze'] = $orderFreeze;
return $render->fetch('admin/order/detail_product_store.html');
}
/**
* detail_freeze
* @param mixed $order_id ID
* @return mixed 返回值
*/
public function detail_freeze($order_id)
{
$render = app::get('ome')->render();
$orderFreeze = app::get('material')->model('basic_material_stock_freeze')->getList('*', array('obj_type'=>1, 'obj_id'=>$order_id, 'num|than' => 0));
$deliveryOrder = app::get('ome')->model('delivery_order')->getList('*', array('order_id'=>$order_id));
if ($deliveryOrder) {
$delivery_id = array_column($deliveryOrder, 'delivery_id');
$orderFreeze2 = app::get('material')->model('basic_material_stock_freeze')->getList('*', array('obj_type'=>2, 'obj_id'=>$delivery_id, 'bill_type'=> '1', 'num|than' => 0));
if ($orderFreeze2) {
$orderFreeze = array_merge((array)$orderFreeze, (array)$orderFreeze2);
}
}
if ($orderFreeze) {
$branchIds = array_filter(array_column($orderFreeze, 'branch_id'));
$branchList = [];
if ($branchIds) {
$branchList = app::get('ome')->model('branch')->getList('branch_id,name', [
'branch_id' =>$branchIds,
'check_permission' => 'false',
]);
$branchList = array_column($branchList, 'name', 'branch_id');
}
$bmIds = array_filter(array_column($orderFreeze, 'bm_id'));
$bmList = app::get('material')->model('basic_material')->getList('bm_id,material_bn,material_name', [
'bm_id' => $bmIds,
]);
$bmList = array_column($bmList, null, 'bm_id');
$billType = app::get('console')->model('basic_material_stock_freeze')->get_type(1);
foreach ($orderFreeze as $key => $value) {
$orderFreeze[$key]['bn'] = $bmList[$value['bm_id']]['material_bn'];
$orderFreeze[$key]['name'] = $bmList[$value['bm_id']]['material_name'];
$orderFreeze[$key]['branch_name'] = $branchList[$value['branch_id']];
if ($value['obj_type'] == '2') {
$orderFreeze[$key]['bill_type'] = '仓库冻结';
$orderFreeze[$key]['obj_type'] = '发货单';
} else {
$orderFreeze[$key]['obj_type'] = '订单';
$orderFreeze[$key]['bill_type'] = $billType[$value['bill_type']];
}
}
}
$render->pagedata['order_freeze'] = $orderFreeze;
return $render->fetch('admin/order/detail_freeze.html');
}
/**
* [普通]订单操作记录
*
* @param int $order_id
* @return string
*/
private function __normal_log_history($order_id)
{
$render = app::get('ome')->render();
$orderObj = app::get('ome')->model('orders');
$logObj = app::get('ome')->model('operation_log');
$deliveryObj = app::get('ome')->model('delivery');
$ooObj = app::get('ome')->model('operations_order');
/* 本订单日志 */
$history = $logObj->read_log(array('obj_id'=>$order_id,'obj_type'=>'orders@ome'),0,-1);
foreach($history as $k=>$v){
$data = $ooObj->getList('operation_id',array('log_id'=>$v['log_id']));
if(!empty($data)){
$history[$k]['flag'] ='true';
}else{
$history[$k]['flag'] ='false';
}
$history[$k]['operate_time'] = date('Y-m-d H:i:s',$v['operate_time']);
// 为长文本准备数据,HTML由模板处理
$memo = $history[$k]['memo'];
$memoLength = mb_strlen($memo);
if ($memoLength > 400) {
$history[$k]['short_memo'] = mb_substr($memo, 0, 400);
$history[$k]['is_long'] = true;
} else {
$history[$k]['is_long'] = false;
}
}
/* 发货单日志 */
$delivery_ids = $deliveryObj->getDeliverIdByOrderId($order_id);
if ($delivery_ids) {
$deliverylog = $logObj->read_log(array('obj_id'=>$delivery_ids,'obj_type'=>'delivery@ome'), 0, -1);
}
//[拆单]多个发货单 格式化分开显示
$dly_log_list = array();
foreach((array) $deliverylog as $k=>$v)
{
$deliverylog[$k]['operate_time'] = date('Y-m-d H:i:s',$v['operate_time']);
// 为长文本准备数据,HTML由模板处理
$memo = $deliverylog[$k]['memo'];
$memoLength = mb_strlen($memo);
if ($memoLength > 400) {
$deliverylog[$k]['short_memo'] = mb_substr($memo, 0, 400);
$deliverylog[$k]['is_long'] = true;
} else {
$deliverylog[$k]['is_long'] = false;
}
$obj_id = $v['obj_id'];
$dly_log_list[$obj_id]['obj_name'] = $v['obj_name'];
$dly_log_list[$obj_id]['list'][] = $deliverylog[$k];
}
$render->pagedata['dly_log_list'] = $dly_log_list;
/* “失败”、“取消”、“打回”发货单日志 */
$history_ids = $deliveryObj->getHistoryIdByOrderId($order_id);
$deliveryHistorylog = array();
foreach($history_ids as $v){
$delivery = $deliveryObj->dump($v,'delivery_id,delivery_bn,status');
$deliveryHistorylog[$delivery['delivery_bn']] = $logObj->read_log(array('obj_id'=>$v,'obj_type'=>'delivery@ome'), 0, -1);
foreach($deliveryHistorylog[$delivery['delivery_bn']] as $k=>$v){
$deliveryHistorylog[$delivery['delivery_bn']][$k]['operate_time'] = date('Y-m-d H:i:s',$v['operate_time']);
$deliveryHistorylog[$delivery['delivery_bn']][$k]['status'] =$delivery['status'];
// 为长文本准备数据,HTML由模板处理
$memo = $deliveryHistorylog[$delivery['delivery_bn']][$k]['memo'];
$memoLength = mb_strlen($memo);
if ($memoLength > 400) {
$deliveryHistorylog[$delivery['delivery_bn']][$k]['short_memo'] = mb_substr($memo, 0, 400);
$deliveryHistorylog[$delivery['delivery_bn']][$k]['is_long'] = true;
} else {
$deliveryHistorylog[$delivery['delivery_bn']][$k]['is_long'] = false;
}
}
}
/* 同批处理的订单日志 */
$order_ids = $deliveryObj->getOrderIdByDeliveryId($delivery_ids);
$orderLogs = array();
foreach($order_ids as $v){
if($v != $order_id){
$order = $orderObj->dump($v,'order_id,order_bn');
$orderLogs[$order['order_bn']] = $logObj->read_log(array('obj_id'=>$v,'obj_type'=>'orders@ome'), 0, -1);
foreach($orderLogs[$order['order_bn']] as $k=>$v){
if($v) {
$orderLogs[$order['order_bn']][$k]['operate_time'] = date('Y-m-d H:i:s',$v['operate_time']);
// 为长文本准备数据,HTML由模板处理
$memo = $orderLogs[$order['order_bn']][$k]['memo'];
$memoLength = mb_strlen($memo);
if ($memoLength > 400) {
$orderLogs[$order['order_bn']][$k]['short_memo'] = mb_substr($memo, 0, 400);
$orderLogs[$order['order_bn']][$k]['is_long'] = true;
} else {
$orderLogs[$order['order_bn']][$k]['is_long'] = false;
}
}
}
}
}
$render->pagedata['history'] = $history;
$render->pagedata['deliverylog'] = $deliverylog;
$render->pagedata['deliveryHistorylog'] = $deliveryHistorylog;
$render->pagedata['orderLogs'] = $orderLogs;
$render->pagedata['order_id'] = $order_id;
return $render->fetch('admin/order/detail_history.html');
}
/**
* [brush特殊订单]订单操作记录
*
* @param int $order_id
* @return string
*/
private function __brush_log_history($order_id)
{
$render = app::get('ome')->render();
$logObj = app::get('ome')->model('operation_log');
$ooObj = app::get('ome')->model('operations_order');
/* 本订单日志 */
$history = $logObj->read_log(array('obj_id'=>$order_id,'obj_type'=>'orders@ome'),0,-1);
foreach($history as $k => $v){
$data = $ooObj->getList('operation_id',array('log_id'=>$v['log_id']));
if(!empty($data)){
$history[$k]['flag'] ='true';
}else{
$history[$k]['flag'] ='false';
}
$history[$k]['operate_time'] = date('Y-m-d H:i:s',$v['operate_time']);
// 为长文本准备数据,HTML由模板处理
$memo = $history[$k]['memo'];
$memoLength = mb_strlen($memo);
if ($memoLength > 400) {
$history[$k]['short_memo'] = mb_substr($memo, 0, 400);
$history[$k]['is_long'] = true;
} else {
$history[$k]['is_long'] = false;
}
}
/* 发货单日志 */
$deliveryId = kernel::database()->select('select delivery_id from sdb_brush_delivery_order where order_id = "' . $order_id . '"');
$deliveryIds = array();
foreach($deliveryId as $val) {
$deliveryIds[] = $val['delivery_id'];
}
if($deliveryIds) {
$deliverylog = $logObj->read_log(array('obj_id'=>$deliveryIds,'obj_type'=>'delivery@brush'), 0, -1);
$dly_log_list = $deliveryHistorylog = array();
foreach((array)$deliverylog as $k=>$v)
{
static $deliveryData = array();
if(empty($deliveryData[$v['obj_id']])) {
$tmpDeliveryData = kernel::database()->select('select delivery_bn, status from sdb_brush_delivery where delivery_id="' . $v['obj_id'] . '"');
$deliveryData[$v['obj_id']] = $tmpDeliveryData[0];
}
if($deliveryData[$v['obj_id']]['status'] == 'cancel') {
$v['operate_time'] = date('Y-m-d H:i:s', $v['operate_time']);
// 为长文本准备数据,HTML由模板处理
$memo = $v['memo'];
$memoLength = mb_strlen($memo);
if ($memoLength > 500) {
$v['short_memo'] = mb_substr($memo, 0, 500);
$v['is_long'] = true;
} else {
$v['is_long'] = false;
}
$deliveryHistorylog[$deliveryData[$v['obj_id']]['delivery_bn']][] = $v;
} else {
$deliverylog[$k]['operate_time'] = date('Y-m-d H:i:s', $v['operate_time']);
// 为长文本准备数据,HTML由模板处理
$memo = $deliverylog[$k]['memo'];
$memoLength = mb_strlen($memo);
if ($memoLength > 500) {
$deliverylog[$k]['short_memo'] = mb_substr($memo, 0, 500);
$deliverylog[$k]['is_long'] = true;
} else {
$deliverylog[$k]['is_long'] = false;
}
$obj_id = $v['obj_id'];
$dly_log_list[$obj_id]['obj_name'] = $v['obj_name'];
$dly_log_list[$obj_id]['list'][] = $deliverylog[$k];
}
}
$render->pagedata['dly_log_list'] = $dly_log_list;
}
$render->pagedata['order_id'] = $order_id;
$render->pagedata['history'] = $history;
$render->pagedata['deliverylog'] = $deliverylog;
$render->pagedata['deliveryHistorylog'] = $deliveryHistorylog;
return $render->fetch('admin/order/detail_history.html');
}
var $column_promise_service = '物流服务标签';
var $column_promise_service_width = 320;
/**
* column_promise_service
* @param mixed $row row
* @param mixed $list list
* @return mixed 返回值
*/
public function column_promise_service($row, $list)
{
$extend = $this->__getOrderExtend($list);
//check
if(empty($extend[$row['order_id']]['promise_service'])){
return '';
}
$str = '';
$colorList = array('#6666ff', '#336600', '#FF0000', '#FF8800', '#c64ae2', '#4ae25e', '#e2bc4a', '#668800');
$promise_services = explode(',', $extend[$row['order_id']]['promise_service']);
foreach ($promise_services as $key => $val)
{
$color = ($colorList[$key] ? $colorList[$key] : $colorList[0]);
$str .= '
'. $val .'';
}
return $str;
}
/**
* 配送方式映射展示
*/
var $column_shipping_name = '配送方式';
var $column_shipping_name_width = 120;
var $column_shipping_name_order = 35;
/**
* column_shipping_name
* @param mixed $row row
* @param mixed $list list
* @return mixed 返回值
*/
public function column_shipping_name($row, $list)
{
$shipping_code = $row[$this->col_prefix.'shipping'];
if(empty($shipping_code)){
return '-';
}
// 从 corp.php 获取配送方式映射
$corpObj = app::get('ome')->model('dly_corp');
// 尝试从不同配送模式中查找配送方式名称
$shippingName = $corpObj->corp_default('instatnt'); // 先查找同城配送
if(isset($shippingName[$shipping_code])){
return $shippingName[$shipping_code]['name'];
}
$shippingName = $corpObj->corp_default('seller'); // 再查找商家配送
if(isset($shippingName[$shipping_code])){
return $shippingName[$shipping_code]['name'];
}
// 如果都找不到,直接返回原始配送代码
return $shipping_code;
}
/**
* 平台建议信息
*
* @param $order_id
* @return string
*/
public function detail_platform_info($order_id)
{
$render = app::get('ome')->render();
$orderMdl = app::get('ome')->model('orders');
$orderObjMdl = app::get('ome')->model('order_objects');
$orderExtendMdl = app::get('ome')->model('order_extend');
$logiLib = kernel::single('logisticsmanager_waybill_pdd');
//订单信息
$orderInfo = $orderMdl->dump($order_id);
//订单明细信息
$orderObjList = $orderObjMdl->getList('*', array('order_id'=>$order_id));
//订单扩展信息
$extendInfo = $orderExtendMdl->dump($order_id);
//extend_field
$extend_fields = array();
if($extendInfo['extend_field']){
$extend_fields = json_decode($extendInfo['extend_field'], true);
}
//预估发货快递白名单
if($extendInfo['white_delivery_cps']){
$logiCodes = json_decode($extendInfo['white_delivery_cps'], true);
foreach ($logiCodes as $key => $logi_code){
$logiInfo = $logiLib->logistics($logi_code);
//[兼容]物流公司编码不正确
if(empty($logiInfo)){
$logiInfo = array('code'=>$logi_code, 'name'=>'未定义');
}
$extend_fields['white_logis'][] = $logiInfo;
}
}
//预估发货快递黑名单
if($extendInfo['black_delivery_cps']){
$logiCodes = json_decode($extendInfo['black_delivery_cps'], true);
foreach ($logiCodes as $key => $logi_code){
$logiInfo = $logiLib->logistics($logi_code);
//[兼容]物流公司编码不正确
if(empty($logiInfo)){
$logiInfo = array('code'=>$logi_code, 'name'=>'未定义');
}
$extend_fields['black_logis'][] = $logiInfo;
}
}
$render->pagedata['orderInfo'] = $orderInfo;
$render->pagedata['orderObjList'] = $orderObjList;
$render->pagedata['extendInfo'] = $extendInfo;
$render->pagedata['extend_fields'] = $extend_fields;
return $render->fetch('admin/order/detail_platform_info.html');
}
private function _getShop($shop_id, $list)
{
static $shopList;
if (isset($shopList)) {
return $shopList[$shop_id];
}
$shopList = app::get('ome')->model('shop')->getList('shop_id,shop_bn',[
'shop_id' => array_column($list, $this->col_prefix.'shop_id'),
]);
$shopList = array_column($shopList, null, 'shop_id');
return $shopList[$shop_id];
}
private function _getMemberMobile($order_bn, $list)
{
static $epList;
if (isset($epList)) {
return $epList[$order_bn];
}
$epList = [];
$memberList = app::get('ome')->model('members')->getList('member_id,uname,mobile', [
'member_id' => array_column($list, $this->col_prefix.'member_id'),
]);
$memberList = array_column($memberList, null, 'member_id');
$syOrderList = app::get('epassport')->model('syorders')->getList('order_sn,plat_account', [
'order_sn' => array_column($list, $this->col_prefix.'order_bn'),
]);
$syOrderList = array_column($syOrderList, null, 'order_sn');
foreach ($list as $key => $value) {
switch ($value[$this->col_prefix.'shop_type']) {
case 'taobao':
$epList[$value[$this->col_prefix.'order_bn']] = $syOrderList[$value[$this->col_prefix.'order_bn']]['plat_account'];
break;
case '360buy':
$epList[$value[$this->col_prefix.'order_bn']] = $memberList[$value[$this->col_prefix.'member_id']]['uname'];
break;
default:
$epList[$value[$this->col_prefix.'order_bn']] = $memberList[$value[$this->col_prefix.'member_id']]['mobile'];
break;
}
}
return $epList[$order_bn];
}
}
?>