Files
OMS/app/erpapi/lib/shop/response/process/qianniu.php
2025-12-28 23:13:25 +08:00

151 lines
5.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* Copyright © ShopeX http://www.shopex.cn. All rights reserved.
* See LICENSE file for license details.
*/
/**
* 千牛修改地址接口处理
*
* @category
* @package
* @author sunjing<sunjing@shopex.cn>
* @version $Id: Z
*/
class erpapi_shop_response_process_qianniu extends erpapi_shop_response_abstract
{
/**
* 添加ress_modify
* @param mixed $convert_order convert_order
* @return mixed 返回值
*/
public function address_modify($convert_order)
{
$operLobObj = app::get('ome')->model('operation_log');
$new_order = $convert_order['new_order'];
$order_detail = $convert_order['order_detail'];
$shop_id = $order_detail['shop_id'];
$order_bn = $order_detail['order_bn'];
//走编辑订单一样的流程
$order_id = $new_order['order_id'];
if(empty($order_id)) {
return array('rsp'=>'succ','msg'=>'千牛/平台改地址成功');
}
//订单信息
$orderModel = app::get('ome')->model('orders');
$order = $orderModel->db_dump($order_id, '*');
//暂停订单
$rs = $orderModel->pauseOrder($order_id);
if ($rs['rsp'] == 'fail'){
$this->_confirmModifyAdress($shop_id, ['order_bn'=>$order_bn,'confirm'=>false]);
$msg = '仓库已接单不支持改地址';
// 如果是预售订单
if ($order['order_type'] == 'presale'){
$msg = '预售下沉订单需要进行仓库确认';
}
return array('rsp'=>'fail','msg'=>$msg,'msg_code'=>'200007');
}
$orderModel->rebackDeliveryByOrderId($order_id, true);
$consignee = $new_order['consignee'];
foreach ($consignee as $k => $v) {
if($index = strpos($v, '>>')) {
$consignee[$k] = substr($v, 0, $index);
}
if($k == 'area') {
list(,$consignee[$k],) = explode(':', $v);
}
}
$msgLog = "千牛/平台改地址为:".$consignee['name'].' '.$consignee['mobile'].' '.$consignee['area'].$consignee['addr'];
$operLobObj->write_log('order_modify@ome',$order_id,$msgLog);
$this->_confirmModifyAdress($shop_id, ['order_bn'=>$order_bn,'confirm'=>true]);
//[翱象]地址变更后,重新获取建议的配送建议
if(in_array($order['shop_type'], array('taobao', 'tmall'))){
$orderTypeLib = kernel::single('ome_order_bool_type');
$aoxiangLib = kernel::single('dchain_aoxiang');
if($orderTypeLib->isAoxiang($order['order_bool_type'])) {
//查询建议快递
$error_msg = '';
$axResult = $aoxiangLib->triggerOrderLogi($order, $error_msg);
$log_msg = ($axResult ? '查询翱象建议快递成功' : '查询翱象建议快递失败:'. $error_msg);
//log
$operLobObj->write_log('order_modify@ome', $order['order_id'], $log_msg);
}
}
return array('rsp'=>'succ','msg'=>'千牛/平台改地址成功');
}
/**
* _confirmModifyAdress
* @param mixed $shop_id ID
* @param mixed $data 数据
* @return mixed 返回值
*/
public function _confirmModifyAdress($shop_id, $data) {
kernel::single('erpapi_router_request')->set('shop', $shop_id)->order_confirmModifyAdress($data);
}
/**
* modifysku
* @param mixed $sdf sdf
* @return mixed 返回值
*/
public function modifysku($sdf)
{
//记录师傅要更换sku的状态
$orderExtendModel = app::get('ome')->model('order_extend');
$orderExtendInfo = $orderExtendModel->dump(['order_id'=>$sdf['order_id']],'bool_extendstatus');
$bool_extendstatus = 0;
if($orderExtendInfo){
$bool_extendstatus = $orderExtendInfo['bool_extendstatus'];
}
$data = array(
'order_id' => $sdf['order_id'],
'bool_extendstatus' => $bool_extendstatus | ome_order_bool_extendstatus::__UPDATESKU_ORDER,
);
$orderExtendModel->save($data);
return array('rsp'=>'succ','msg'=>'成功');
}
/**
* 同步平台地址至OMS
* @param $sdf
* @return array|string[]
* @author db
* @date 2023-05-31 10:39 上午
*/
public function order_addr_modify($sdf)
{
$shop_id = $sdf['shop_id'];
$order_bn = $sdf['order_bn'];
$orderModel = app::get('ome')->model('orders');
$filter = array('order_bn' => $order_bn, 'shop_id' => $shop_id);
$orderInfo = $orderModel->db_dump($filter, 'order_id,order_bn');
if (!$orderInfo) {
return array('rsp' => 'fail', 'msg' => '缺少订单数据');
}
$orderRsp = kernel::single('erpapi_router_request')->set('shop', $shop_id)->order_get_order_detial($order_bn);
if ($orderRsp['rsp'] == 'succ') {
$orderPull = $orderRsp['data']['trade'];
kernel::single('ome_syncorder')->get_order_log($orderPull, $shop_id, $msg);
} else {
$this->__apilog['result']['msg'] = '单拉订单失败';
return array();
}
$msgLog = "平台改地址成功";
app::get('ome')->model('operation_log')->write_log('order_modify@ome', $orderInfo['order_id'], $msgLog);
return array('rsp' => 'succ', 'msg' => '平台改地址成功');
}
}