render(); $oOrder = app::get('ome')->model('orders'); $orderInfo = $oOrder->dump($order_id , '*' , array('order_objects' => array('*',array('order_items' => array('*'))))); //echo "
";
//var_dump($orderInfo['order_objects']);
foreach($orderInfo['order_objects'] as $ko => &$obj){
if($obj['goods_id'] <=0){
//销售物料找不到的
$obj['obj_fail'] = 1;
continue;
}
if(!isset($obj['order_items'])){
$obj['obj_item_fail'] = 1;
}
}
$shopex_shop_list = ome_shop_type::shopex_shop_type();
$shops = app::get('ome')->model('shop')->dump(array('shop_id'=>$orderInfo['shop_id']),'node_type');
$render->pagedata['shop_type'] = in_array($shops['node_type'],$shopex_shop_list) ? 'shopex' : 'c2c';
$render->pagedata['orderInfo'] = $orderInfo;
$render->pagedata['object_alias'] = $oOrder->getOrderObjectAlias($order_id);
return $render->fetch('admin/order/detail_fail.html');
}
/**
* 订单操作记录
*
* @param int $order_id
* @var string
*/
var $detail_history = '订单操作记录';
/**
* detail_history
* @param mixed $order_id ID
* @return mixed 返回值
*/
public function detail_history($order_id)
{
//订单信息
$orderType = app::get('ome')->model('orders')->dump(array('order_id'=>$order_id), 'order_type');
//加载模板
return $this->__normal_log_history($order_id);
}
var $column_abnormal_mark = '异常标识';
/**
* column_abnormal_mark
* @param mixed $row row
* @return mixed 返回值
*/
public function column_abnormal_mark($row)
{
$abnormal_status = $row[$this->col_prefix.'abnormal_status'];
if(empty($abnormal_status)){
return '';
}elseif($abnormal_status & ome_preprocess_const::__ORDER_LUCKY_FAIL ){
//福袋订单异常
return kernel::single('ome_preprocess_const')->getBoolTypeIdentifier($abnormal_status, $row[$this->col_prefix.'shop_type']);
}
return '';
}
var $column_abnormal_msg = '失败原因';
var $column_abnormal_msg_order = 10;
var $column_abnormal_msg_width = 350;
/**
* column_abnormal_msg
* @param mixed $row row
* @param mixed $list list
* @return mixed 返回值
*/
public function column_abnormal_msg($row, $list)
{
$order_id = $row['order_id'];
$abnormalMsgInfo = $this->_getAbnormalMsgList($order_id, $list);
return "". $abnormalMsgInfo['abnormal_msg'] ."";
}
private function _getAbnormalMsgList($order_id, $list)
{
static $abnormalMsgList;
//check
if(isset($abnormalMsgList)) {
return $abnormalMsgList[$order_id];
}
$orderIds = array();
foreach($list as $val)
{
$orderIds[] = $val['order_id'];
}
//订单商品失败异常类型
$abnormal_type = 'object_fail';
//list
$dataList = app::get('ome')->model('order_abnormal')->getList('aid,order_id,abnormal_msg', array('order_id'=>$orderIds, 'abnormal_type'=>$abnormal_type));
$dataList = array_column($dataList, null, 'order_id');
foreach ($orderIds as $orderKey => $id)
{
if(isset($dataList[$id])){
$abnormalMsgList[$id] = $dataList[$id];
}else{
$abnormalMsgList[$id] = array();
}
}
return $abnormalMsgList[$order_id];
}
/**
* [普通]订单操作记录
*
* @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']);
$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'];
}
}
/* 同批处理的订单日志 */
$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']);
}
}
}
$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');
}
}