【新增】天猫超市商品下载同步

【修复】天猫超市发货问题
【修复】采购单单号因含特殊字符导致入库或取消失败
【修复】售后批量操作设置显示不正确
This commit is contained in:
chenping
2026-04-21 23:42:49 +08:00
parent b20d422532
commit e3d3593fdd
34 changed files with 297 additions and 251 deletions

View File

@@ -13,7 +13,6 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
@@ -131,7 +130,7 @@
</div>
</td>
<td >
<h4><{if $member.is_encrypt}><a class="member-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>购买人信息</h4>
<h4><{if $member.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="member-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>购买人信息</h4>
<div class="division" id="memberinfo">
<table cellspacing="0" cellpadding="0" border="0">
@@ -180,7 +179,7 @@
</td>
<td >
<h4>
<{if $order.is_encrypt}><a class="order-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>
<{if $order.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="order-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>
<span><{t}>收货人信息<{/t}></span>
<span style="position:relative;" id="order_receiver_copy_span"><button class="btn" id="order_receiver_copy" stu="Y" info="<{$order.consignee.area|region}>,<{$order.consignee.addr|escape:'html'}>,<{$order.consignee.name}><{if $order.consignee.telephone}>,<{$order.consignee.telephone|escape:'html'}><{/if}><{if $order.consignee.mobile}>,<{$order.consignee.mobile|escape:'html'}><{/if}>,<{$order.consignee.zip|escape:'html'}>"><span><span><{t}>复制收货人信息<{/t}></span></span></button></span>
<!-- <span style="font-size:12px;" class="sysiconBtnNoIcon" style="cursor:pointer" id="order_receiver_copy" status="Y" info="<{$order.consignee.area|escape:'html'}>,<{$order.consignee.addr|escape:'html'}>,<{$order.name}><{if $order.consignee.telephone}>,<{$order.consignee.telephone|escape:'html'}><{/if}><{if $order.consignee.mobile}>,<{$order.consignee.mobile|escape:'html'}><{/if}>,<{$order.consignee.zip|escape:'html'}>"><{t}>复制收货人信息<{/t}></span> -->

View File

@@ -26,7 +26,7 @@
height: 20px;
}
</style>
<h4><{if $dly.is_encrypt}><a class="delivery-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>发货单信息:</h4>
<h4><{if $dly.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="delivery-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>发货单信息:</h4>
<div class="division" id="deliveryinfo">
<table border="0" cellspacing="0" cellpadding="0">
<tr>

View File

@@ -86,28 +86,28 @@
</div>
</td>
<td style="vertical-align:top;">
<h4><{if $member.is_encrypt}><a class="member-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>购买人信息</h4>
<h4><{if $member.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="member-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>购买人信息</h4>
<div class="division">
<table cellspacing="0" cellpadding="0" border="0" id="memberinfo">
<tbody><tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'uname' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>用户名:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'uname' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>用户名:</th>
<td>
<span sensitive-field="uname"><{$member.account.uname|ciphertext:'member','uname',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'name' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>姓名:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'name' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>姓名:</th>
<td><span sensitive-field="name"><{$member.contact.name|ciphertext:'member','name',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'mobile' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'mobile' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<td><span sensitive-field="mobile"><{$member.contact.phone.mobile|ciphertext:'member','mobile',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'tel' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'tel' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<td><span sensitive-field="tel"><{$member.contact.phone.telephone|ciphertext:'member','tel',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'address' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>地区:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'address' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>地区:</th>
<td><{$member.contact.area|region}></td>
</tr>
</tbody>
@@ -116,29 +116,29 @@
</td>
<td style="vertical-align:top;">
<h4>
<span><{if $order.is_encrypt}><a class="order-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}><{t}>收货人信息<{/t}></span>
<span><{if $order.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="order-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}><{t}>收货人信息<{/t}></span>
</h4>
<div class="division">
<table cellspacing="0" cellpadding="0" border="0" id="consigneeinfo">
<tbody>
<tr>
<th ><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'uname' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>姓名:</th>
<th ><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'uname' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>姓名:</th>
<td><span sensitive-field="ship_name" data-order="2"><{$order.ship_name|ciphertext:'order','ship_name',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'mobile' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'mobile' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<td><span sensitive-field="ship_mobile" data-order="4"><{$order.ship_mobile|ciphertext:'order','ship_mobile',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'tel' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'tel' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<td><span sensitive-field="ship_tel" data-order="3"><{$order.ship_tel|ciphertext:'order','ship_tel',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'address' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>地区:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'address' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>地区:</th>
<td><{$order.ship_area|region}></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'receiver_address' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>地址:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'receiver_address' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>地址:</th>
<td style="white-space: normal; line-height: 18px;"><span sensitive-field="ship_addr" data-order="1"><{$order.ship_addr|escape:'html'|ciphertext:'order','ship_addr',$order.shop_type}></span></td>
</tr>
<tr style="display: none;">

View File

@@ -313,6 +313,8 @@ define("SHOP_GET_ITEMS_ALL_RPC", 'store.items.all.get');
define("SHOP_GET_ITEMS_LIST_RPC", 'store.items.list.get'); // 通过IID获取多个前端商品
define("SHOP_GET_FENXIAO_PRODUCTS", 'store.fenxiao.products.get'); // 淘分销商品下载
define("SHOP_GET_SUPPLIER_PRODUCTS", 'store.supplier.item.list.info.query'); // 供应商商品下载
define("SHOP_SUPPLIER_PRODUCTS_FIND",'store.supplier.products.find'); // 供应商商品查询
define("SHOP_ITEM_GET",'store.item.get'); // 通过IID获取单个商品
define("SHOP_ITEM_SKU_GET",'store.item.sku.get'); // 单拉商品SKU
define("SHOP_ORDER_SETTLE_GET",'store.trade.settle.get'); //获取抖音订单明细

View File

@@ -172,7 +172,7 @@ class erpapi_shop_matrix_tmall_request_maochao_delivery extends erpapi_shop_requ
// 喵速达取平台推送的store_code
$store_code = $storeCodes[0];
}else{
$store_code = $sdf['branch']['branch_bn'];
$store_code = $sdf['store_code'] ?: $sdf['branch']['branch_bn'];
}
// params
@@ -189,4 +189,4 @@ class erpapi_shop_matrix_tmall_request_maochao_delivery extends erpapi_shop_requ
];
return $params;
}
}
}

View File

@@ -18,6 +18,7 @@
* @author ykm 2022/6/27 18:09:55
* @describe 处理店铺商品相关类
*/
class erpapi_shop_matrix_tmall_request_maochao_product extends erpapi_shop_request_product {
protected function getUpdateStockApi() {
@@ -25,21 +26,40 @@ class erpapi_shop_matrix_tmall_request_maochao_product extends erpapi_shop_reque
return $api_name;
}
/**
* format_stocks
* @param mixed $stockList stockList
* @return mixed 返回值
*/
private function getStoreCode($branch_bn) {
public function format_stocks($stockList) {
static $storeCode = [];
if(isset($storeCode[$branch_bn])) {
return $storeCode[$branch_bn];
}
$branch = app::get('ome')->model('branch')->dump(array ('branch_bn'=>$branch_bn,'check_permission'=>'false'));
if(empty($branch)) {
return $branch_bn;
}
$relation = app::get('ome')->model('branch_relation')->dump(array ('branch_id'=>$branch['branch_id'],'type' => '3pl'));
if(empty($relation)) {
return $branch_bn;
}
$storeCode[$branch_bn] = $relation['relation_branch_bn'];
return $storeCode[$branch_bn];
}
public function _getUpdateStockParams($stockList) {
$firstStock = current($stockList);
$shop_id = $this->__channelObj->channel['shop_id'];
if(empty($firstStock['branch_bn'])) {
$memo = '未使用分仓独立回写,不能回写';
$optLogModel = app::get('inventorydepth')->model('operation_log');
$optLogModel->write_log('shop', $shop_id, 'stockup',$memo);
return false;
// $memo = '未使用分仓独立回写,不能回写';
// $optLogModel = app::get('inventorydepth')->model('operation_log');
// $optLogModel->write_log('shop', $shop_id, 'stockup',$memo);
return [];
}
$bns = array();
foreach ($stockList as $key => $val)
{
@@ -51,7 +71,7 @@ class erpapi_shop_matrix_tmall_request_maochao_product extends erpapi_shop_reque
$skuObj = app::get('inventorydepth')->model('shop_skus');
$tempList = $skuObj->getList('shop_sku_id,shop_product_bn,shop_iid', array('shop_id'=>$shop_id, 'shop_product_bn'=>$bns));
if(empty($tempList)){
return false;
return [];
}
$shopBnList = [];
foreach ($tempList as $key => $value) {
@@ -79,21 +99,21 @@ class erpapi_shop_matrix_tmall_request_maochao_product extends erpapi_shop_reque
"additional_info" => [
"attribute" => [
"inv_operate_mode" => "FULLAMOUNT",
"supplier_id" => $val['shop_sku_id']
"supplier_id" => $this->__channelObj->channel['config']['supplier_id'],
]
],
"location"=> [
"store_code"=> $value['branch_bn']
"store_code"=> $this->getStoreCode($value['branch_bn'])
],
"detail_order"=> [
"operation_detail_order_id"=> count($detail_operation_list)
"operation_detail_order_id"=> time().rand(1000, 9999),
]
];
$detail_operation_list[] = $tmp;
}
}
if(empty($list_quantity)) {
return false;
return [];
}
$inventory_main_operation = [[
'main_order'=>[
@@ -110,16 +130,7 @@ class erpapi_shop_matrix_tmall_request_maochao_product extends erpapi_shop_reque
return $return;
}
protected function _getUpdateStockParams($stocks) {
return $stocks;
}
#实时下载店铺商品
/**
* skuAllGet
* @param mixed $sdf sdf
* @return mixed 返回值
*/
public function skuAllGet($sdf)
{
$timeout = 20;
@@ -130,36 +141,86 @@ class erpapi_shop_matrix_tmall_request_maochao_product extends erpapi_shop_reque
'end_time' => $sdf['end_time'],
'supplier_id' => $sdf['supplier_id'],
);
if ($sdf['scroll_id']) {
$param['scroll_id'] = $sdf['scroll_id'];
}
$title = "获取店铺(" . $this->__channelObj->channel['name'] .')商品';
$result = $this->__caller->call(SHOP_GET_SUPPLIER_PRODUCTS,$param,array(),$title,$timeout, $param['supplier_id']);
$api_name = SHOP_GET_SUPPLIER_PRODUCTS;
if (is_array($this->__channelObj->channel['config']) && in_array('MCZZ',(array) $this->__channelObj->channel['config']['sub_business_type'])) {
$api_name = SHOP_SUPPLIER_PRODUCTS_FIND;
}
$result = $this->__caller->call($api_name,$param,array(),$title,$timeout, $param['supplier_id']);
if ($result['res_ltype'] > 0) {
for ($i=0;$i<3;$i++) {
$result = $this->__caller->call(SHOP_GET_SUPPLIER_PRODUCTS,$param,array(),$title,$timeout, $param['supplier_id']);
$result = $this->__caller->call($api_name,$param,array(),$title,$timeout, $param['supplier_id']);
if ($result['res_ltype'] == 0) {
break;
}
}
}
if($result['data']) {
$data = json_decode($result['data'], true);
$result['data'] = [];
if(empty($data['data']['data']['page_data']['page_data'])) {
return $result;
}
foreach ($data['data']['data']['page_data']['page_data'] as $value) {
$result['data'][] = [
'iid' => $value['sc_item_id'],
'title' => $value['sc_item_name'],
'outer_id' => $value['outer_id'],
'sku' => [
'outer_id' => $value['outer_id'],
'sku_id' => $value['supplier_id'],
'barcode' => $value['barcode'],
]
];
}
$data = $result['data'] ? json_decode($result['data'], true) : [];
if ($api_name == SHOP_GET_SUPPLIER_PRODUCTS) {
$result['data'] = $this->supplierProductsGetResponse($data);
}
if ($api_name == SHOP_SUPPLIER_PRODUCTS_FIND) {
$result['scroll_id'] = $data['data']['scroll_id'];
$result['total_count'] = $data['data']['total_count'];
$result['data'] = $this->supplierProductsFindResponse($data);
}
return $result;
}
}
private function supplierProductsGetResponse($data) {
$formatData = [];
if(!$data || empty($data['data']['data']['page_data']['page_data'])) {
return $formatData;
}
foreach ($data['data']['data']['page_data']['page_data'] as $value) {
$formatData[] = [
'iid' => $value['sc_item_id'],
'title' => $value['sc_item_name'],
'outer_id' => $value['outer_id'],
'sku' => [
'outer_id' => $value['outer_id'],
'sku_id' => $value['supplier_id'],
'barcode' => $value['barcode'],
]
];
}
return $formatData;
}
private function supplierProductsFindResponse($data) {
$formatData = [];
if(!$data || empty($data['data']['data'])) {
return $formatData;
}
foreach ($data['data']['data']['supply_product_info_response'] as $value) {
$formatData[] = [
'iid' => $value['supplier_product_id'],
'title' => $value['supplier_product_name'],
'outer_id' => $value['outer_id'],
'sku' => [
'outer_id' => $value['outer_id'],
'sku_id' => $value['supplier_product_id'],
'barcode' => $value['barcode'],
]
];
}
return $formatData;
}
}

View File

@@ -39,6 +39,39 @@ class erpapi_shop_response_bookingrefund extends erpapi_shop_response_abstract {
'oid_list' => $params['oid_list'],
'refundStatus' => $params['refundStatus'] ? : 1,
'shop_id' => $this->__channelObj->channel['shop_id'],
'sub_business_type' => [],
];
if ( is_array($this->__channelObj->channel['config']) && $this->__channelObj->channel['config']['sub_business_type'] ) {
$sdf['sub_business_type'] = (array) $this->__channelObj->channel['config']['sub_business_type'];
}
return $sdf;
}
public function fxordermsg($params){
// shopbee供销供应商订单信息同步
$this->__apilog['title'] = '供销供应商订单信息同步';
$this->__apilog['original_bn'] = $params['bizOrderCode'];
if (empty($params['bizOrderCode'])) {
return array('rsp' => 'fail', 'msg' => '业务单号不能为空');
}
$sdf = [
'order_bn' => $params['bizOrderCode'],
'shop_id' => $this->__channelObj->channel['shop_id'],
'supplierName' => $params['supplierName'],
'buyerComments' => $params['buyerComments'],
'supplierId' => $params['supplierId'],
'sellerId' => $params['sellerId'],
'bizType' => $params['bizType'],
'outBizCode' => $params['outBizCode'],
'extraContent' => $params['extraContent'],
'sellerComments' => $params['sellerComments'],
'sellerName' => $params['sellerName'],
'bizOrderCode' => $params['bizOrderCode'],
'deliverRequirement' => $params['deliverRequirement'],
'appointArrivedTime' => $params['appointArrivedTime'],
'appointDeliveryTime' => $params['appointDeliveryTime'],
];
return $sdf;
}

View File

@@ -79,6 +79,12 @@ class erpapi_shop_response_process_bookingrefund{
}else{ //异步asynchronous
$orderInfo['pause_status'] = $pause_status;
$ret = $this->ordermsg_back($orderInfo, $params);
// 如果是猫超主站退款回告成功,直接退款
if ($ret['rsp'] == 'succ' && in_array('MCZZ', (array) $params['sub_business_type'])) {
$this->_dealRefund($orderInfo);
}
return array('rsp'=>'succ', 'msg' => $ret);
}
}

View File

@@ -393,6 +393,7 @@ class erpapi_shop_whitelist {
SHOP_RESHIPPING_CONSIGNGOODS, //补寄发货
SHOP_RESHIPPING_REFUSEREASON_GET, //查询拒绝原因列表
STORE_VIRTUAL_NUMBER_GROUP_UPDATE,
SHOP_SUPPLIER_PRODUCTS_FIND, //供应商商品查询
);
/**

View File

@@ -20,16 +20,12 @@
* @author 334395174@qq.com
* @version 0.1
*/
class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
{
// 流水单
/**
* index
* @return mixed 返回值
*/
public function index(){
public function index(){
$params = array(
'actions'=>[],
@@ -50,10 +46,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
}
//基础数据
/**
* base
* @return mixed 返回值
*/
public function base(){
if(!isset($_POST['time_from'])) $_POST['time_from'] = date('Y-m-01', strtotime(date("Y-m-d")));
@@ -197,10 +189,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
}
//收支单导入 - 账单导入
/**
* bill_import
* @return mixed 返回值
*/
public function bill_import(){
$platformConfig = $this->getPlatformConfig();
@@ -246,10 +234,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
}
// 待核销列表
/**
* unverification
* @return mixed 返回值
*/
public function unverification()
{
@@ -276,10 +260,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
// 导出设置页
/**
* export
* @return mixed 返回值
*/
public function export(){
$this->pagedata['shop_list'] = financebase_func::getShopList(financebase_func::getShopType());
@@ -289,10 +269,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
}
// 检查是否允许导出
/**
* 检查Export
* @return mixed 返回验证结果
*/
public function checkExport(){
$mdlBill = app::get('financebase')->model('bill');
$bill_start_time = strtotime($_POST['time_from']);
@@ -305,14 +281,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
}
// 导出csv
/**
* doExport
* @param mixed $shop_id ID
* @param mixed $time_from time_from
* @param mixed $time_to time_to
* @param mixed $bill_status bill_status
* @return mixed 返回值
*/
public function doExport($shop_id,$time_from,$time_to,$bill_status='all'){
set_time_limit(0);
@@ -395,10 +363,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
}
// 重新匹配页面
/**
* rematch
* @return mixed 返回值
*/
public function rematch(){
$this->pagedata['request_url'] = $this->url .'&act=doMatch';
/* if($_POST['bill_category'] != 'all' && empty($_POST['id'])) {
@@ -408,10 +372,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
$this->dialog_batch('financebase_mdl_base', false, 100, 'incr');
}
/**
* doMatch
* @return mixed 返回值
*/
public function doMatch(){
$retArr = array(
'itotal' => 0,
@@ -486,11 +446,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
}
// 重新设置订单号
/**
* 重置OrderBn
* @param mixed $id ID
* @return mixed 返回值
*/
public function resetOrderBn($id)
{
$bill_info = app::get('financebase')->model("bill")->getList('order_bn,id,credential_number,trade_no,money',array('id'=>$id,'status|lthan'=>2),0,1);
@@ -499,10 +454,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
}
// 保存设置订单号
/**
* 保存OrderBn
* @return mixed 返回操作结果
*/
public function saveOrderBn()
{
$this->begin('index.php?app=financebase&ctl=admin_shop_settlement_bill&act=index');
@@ -548,10 +499,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
}
// 导出未匹配订单号
/**
* exportUnMatch
* @return mixed 返回值
*/
public function exportUnMatch(){
$oFunc = kernel::single('financebase_func');
@@ -562,11 +509,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
$this->display('admin/bill/export_unmatch.html');
}
/**
* doUnMatchExport
* @param mixed $platform_type platform_type
* @return mixed 返回值
*/
public function doUnMatchExport($platform_type = 'alipay'){
set_time_limit(0);
@@ -662,10 +604,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
}
// 导入未匹配订单号
/**
* importUnMatch
* @return mixed 返回值
*/
public function importUnMatch(){
$oFunc = kernel::single('financebase_func');
@@ -676,10 +614,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
$this->display('admin/bill/import_unmatch.html');
}
/**
* doUnMatchImport
* @return mixed 返回值
*/
public function doUnMatchImport()
{
@@ -722,11 +656,6 @@ class financebase_ctl_admin_shop_settlement_bill extends desktop_controller
// 查看核销详情
/**
* detailVerification
* @param mixed $order_bn order_bn
* @return mixed 返回值
*/
public function detailVerification($order_bn)
{
echo $order_bn;

View File

@@ -65,9 +65,15 @@ class inventorydepth_shop_maochao_skus {
$sdf['page'] = $offset;
$sdf['page_size'] = $limit;
$rs = kernel::single('erpapi_router_request')->set('shop',$shop_id)->product_skuAllGet($sdf);
if(empty($rs['data'])) {
if(empty($rs['data']) && $sdf['page'] != 1) {
break;
}
if ($rs['scroll_id']) {
$sdf['scroll_id'] = $rs['scroll_id'];
}
$data = [];
foreach ($rs['data'] as $item) {
$tmp = array(

View File

@@ -94,7 +94,7 @@
</table>
</div></td>
<td valign="top" >
<h4><{if $invoice_order.is_encrypt}><a class="invoice-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>客户信息</h4>
<h4><{if $invoice_order.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="invoice-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>客户信息</h4>
<div class="division" >
<table id="invoiceinfo" cellspacing="0" cellpadding="0" border="0" class="data-hide">
<tbody>

View File

@@ -73,7 +73,7 @@
<td width="180px">送货地址:</td>
<td id='consigneeinfo'>
<{$dly.ship_province}>&nbsp;<{$dly.ship_city}>&nbsp;<{$dly.ship_district}>&nbsp;&nbsp;<span sensitive-field="ship_addr"><{$dly.ship_addr|escape:'html'|ciphertext:'order','ship_addr',$dly.shop_type}></span>
<{if $dly.is_encrypt}><a class="delivery-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>
<{if $dly.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="delivery-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>
</td>
</tr>
<tr>

View File

@@ -23,7 +23,7 @@
<style>
.logi-no-input{width:150px;height:20px;}
</style>
<h4><{if $dly.is_encrypt}><a class="delivery-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>发货单信息:</h4>
<h4><{if $dly.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="delivery-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>发货单信息:</h4>
<input type="hidden" name="status" value="<{$status}>" />
<div class="division">
<table border="0" cellspacing="0" cellpadding="0" id="deliveryinfo">
@@ -34,15 +34,15 @@
<td ><{foreach from=$order_bn item=item}><{$item}><br><{/foreach}></td>
<th >配送方式:</th>
<td ><{$dly.delivery}></td>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo'}><a data-type = 'uname' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>会员:</th>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'uname' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>会员:</th>
<td ><span sensitive-field="uname"><{$dly.member_name|ciphertext:'delivery','uname',$dly.shop_type}></span></td>
</tr>
<tr>
<th><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo'}><a data-type = 'uname' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>收货人:</th>
<th><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'uname' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>收货人:</th>
<td ><span sensitive-field="ship_name"><{$dly.consignee.name|ciphertext:'delivery','ship_name',$dly.shop_type}></span></td>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo'}><a data-type = 'tel' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'tel' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<td ><span sensitive-field="ship_tel"><{$dly.consignee.telephone|ciphertext:'delivery','ship_tel',$dly.shop_type}></span></td>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo'}><a data-type = 'mobile' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'mobile' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<td ><span sensitive-field="ship_mobile"><{$dly.consignee.mobile|ciphertext:'delivery','ship_mobile',$dly.shop_type}></span></td>
<th>Email</th>
<td><{$dly.consignee.email}></td>

View File

@@ -4294,7 +4294,13 @@ class ome_ctl_admin_order extends desktop_controller{
$tmp = array();
$tmp = $o['items'];
unset($o['items']);
// 更新pay_status状态值
//@todo解决手工批量删除赠品又手工编辑订单进行恢复导致pay_status='5'退款状态,无法审核订单;
if($o['delete'] == 'false' && $o['price'] == '0'){
$o['pay_status'] = '0';
}
$oOrderObj->save($o);
foreach ($tmp as $oo){

View File

@@ -14,6 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* 缺货列表
*/
@@ -28,11 +29,10 @@ class ome_ctl_admin_order_lack extends desktop_controller {
}
/**
* 缺货搜索
*
*
* @param void
* @return void
*/
function index() {
$params = array(
@@ -349,7 +349,7 @@ class ome_ctl_admin_order_lack extends desktop_controller {
/**
* 缺货订单列表
*
*
* @return void
* @author
*/
@@ -383,10 +383,6 @@ class ome_ctl_admin_order_lack extends desktop_controller {
$this->finder('ome_mdl_orders',$params);
}
/**
* routerAgain
* @return mixed 返回值
*/
public function routerAgain() {
$batchLogModel = app::get('ome')->model('batch_log');
@@ -429,10 +425,6 @@ class ome_ctl_admin_order_lack extends desktop_controller {
return $params;
}
/**
* routerSpilt
* @return mixed 返回值
*/
public function routerSpilt() {
// $key = 'ome-order-lack-router';
// cachecore::store($key, time(), 360);
@@ -457,10 +449,6 @@ class ome_ctl_admin_order_lack extends desktop_controller {
echo json_encode($retArr);
}
/**
* apply
* @return mixed 返回值
*/
public function apply() {
$order_id = (int) $_GET['order_id'];
$order = app::get('ome')->model('orders')->db_dump($order_id, 'shop_type, order_source');
@@ -480,7 +468,7 @@ class ome_ctl_admin_order_lack extends desktop_controller {
exit;
}
$bmIds = array_column($order_items, 'product_id');
$branch_id = current($appointBranch)['branch_id'];
$branch_id = current($appointBranch);
$branch_product = app::get('ome')->model('branch_product')->getList('product_id, store, store_freeze',
['branch_id'=>$branch_id, 'product_id'=>$bmIds]);
$branch_product = array_column($branch_product, null, 'product_id');
@@ -509,10 +497,6 @@ class ome_ctl_admin_order_lack extends desktop_controller {
$this->singlepage('admin/order/lack/apply.html');
}
/**
* dealApply
* @return mixed 返回值
*/
public function dealApply() {
$order_id = (int) $_POST['order_id'];
$out_stock = $_POST['out_stock'];

View File

@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
class ome_ctl_admin_return_batch extends desktop_controller {
var $workground = "setting_tools";
@@ -54,6 +53,7 @@ class ome_ctl_admin_return_batch extends desktop_controller {
}
}
$oReturn_batch = $this->app->model('return_batch');
$return_batch = array();
if ($batch_id) {
$return_batch = $oReturn_batch->dump($batch_id);
}
@@ -119,4 +119,4 @@ class ome_ctl_admin_return_batch extends desktop_controller {
}
?>
?>

View File

@@ -16,7 +16,6 @@
*/
class ome_ctl_admin_return_rchange extends desktop_controller
{
public $name = "退换货单";
public $workground = "aftersale_center";
@@ -522,7 +521,6 @@ class ome_ctl_admin_return_rchange extends desktop_controller
$is_auto_approve = app::get('ome')->getConf('return.auto_approve');
if ($is_auto_approve == 'on') {
$reshipLib = kernel::single('ome_reship');
$result = $reshipLib->batch_reship_queue($reship[0]['reship_id']);
}
}
@@ -538,6 +536,7 @@ class ome_ctl_admin_return_rchange extends desktop_controller
/**
* 根据order_bn快速获取订单信息售后申请、退换货单2处加载订单信息
*
* @author yangminsheng
**/
public function getOrderinfo()
@@ -640,7 +639,7 @@ class ome_ctl_admin_return_rchange extends desktop_controller
$branchLib = kernel::single('ome_branch');
$store_id = $branchLib->isStoreBranch($order["branch_id"]);
if ($store_id) {
//是门店仓
//是门店仓
$order["branch_list"] = kernel::single('o2o_return')->get_aftersale_o2o_branch($order["branch_id"]);
//售后设置->退货仓库设置 类型选择:发货仓库的
$branchtype = app::get('wms')->getConf('wms.branchset.type');
@@ -659,7 +658,7 @@ class ome_ctl_admin_return_rchange extends desktop_controller
}
}
} else {
//是电商仓
//是电商仓
$order["branch_list"] = app::get('ome')->model('branch')->getlist('branch_id,name', array('disabled' => 'false', 'b_type' => 1));
}
$order['member_uname'] = $member['account']['uname'];
@@ -4167,7 +4166,6 @@ class ome_ctl_admin_return_rchange extends desktop_controller
}
}
/**
* 验证页面配置项
*/

View File

@@ -55,11 +55,19 @@ class ome_event_trigger_shop_data_delivery_taobao extends ome_event_trigger_shop
// }
$this->__sdf['order_extend'] = $this->_get_order_extend($delivery_id);
$this->__sdf['store_code'] = '';
// BN对应的OID
$oidList = [];
$orderObjects = $this->_get_all_order_objects($delivery_id);
$this->__sdf['order_objects'] = $orderObjects;
foreach ($orderObjects as $object) {
if ($object['store_code']) {
$this->__sdf['store_code'] = $object['store_code'];
}
foreach ($object['order_items'] as $item) {
if(empty($object['oid'])) {
continue;

View File

@@ -37,13 +37,17 @@ class ome_order_refund {
if($order['createway'] != 'matrix') {
return [false, ['msg'=>'非平台订单']];
}
$shop = app::get('ome')->model('shop')->db_dump(['shop_id'=>$order['shop_id']], 'node_id, node_type');
$shop = app::get('ome')->model('shop')->db_dump(['shop_id'=>$order['shop_id']], 'node_id, node_type, business_type');
if(empty($shop['node_id'])) {
return [false, ['msg'=>'店铺未绑定']];
}
if(!in_array($shop['node_type'], ['taobao'])) {
return [false, ['msg'=>'非淘宝店铺']];
}
if($shop['business_type'] == 'maochao') {
return [false, ['msg'=>'猫超国际']];
}
list($rs, $notice) = kernel::single('ome_order_refund_status')->fetch($order['order_bn'], $shop['node_id'], $order['shop_id']);
if(!$rs) {
return [true, ['msg'=>$notice['msg']]];

View File

@@ -23,7 +23,7 @@
<style>
.logi-no-input{width:150px;height:20px;}
</style>
<h4><{if $dly.is_encrypt}><a class="delivery-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>发货单信息:</h4>
<h4><{if $dly.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="delivery-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>发货单信息:</h4>
<input type="hidden" name="status" value="<{$status}>" />
<input type="hidden" name="delivery_id" value="<{$dly.delivery_id}>" />
<div class="division">
@@ -35,15 +35,15 @@
<td ><{foreach from=$order_bn item=item}><{$item}><br><{/foreach}></td>
<th >配送方式:</th>
<td ><{$dly.delivery}></td>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo'}><a data-type = 'uname' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>会员:</th>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'uname' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>会员:</th>
<td ><span sensitive-field="uname"><{$dly.member_name|ciphertext:'delivery','uname',$dly.shop_type}></span></td>
</tr>
<tr>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo'}><a data-type = 'uname' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>收货人:</th>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'uname' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>收货人:</th>
<td ><span sensitive-field="ship_name"><{$dly.consignee.name|ciphertext:'delivery','ship_name',$dly.shop_type}></span></td>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo'}><a data-type = 'tel' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'tel' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<td ><span sensitive-field="ship_tel"><{$dly.consignee.telephone|ciphertext:'delivery','ship_tel',$dly.shop_type}></span></td>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo'}><a data-type = 'mobile' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'mobile' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<td ><span sensitive-field="ship_mobile"><{$dly.consignee.mobile|ciphertext:'delivery','ship_mobile',$dly.shop_type}></span></td>
<th>Email</th>
<td><{$dly.consignee.email}></td>

View File

@@ -17,15 +17,15 @@
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="delivery-info">
<tbody>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'uname' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>收货人:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'uname' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>收货人:</th>
<td><span sensitive-field="ship_name"><{$order.consignee.name|ciphertext:'order','ship_name',$order.shop_type}></span>
<input type="hidden" name="consignee[name]" value="<{$order.consignee.name}>" /></td>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'receiver_address' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>配送地址:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'receiver_address' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>配送地址:</th>
<td><span id='consignee[area]'><{$order.consignee.area|region}></span>
<input type="hidden" name="consignee[area]" value="<{$order.consignee.area}>" />
<span id='consignee[addr]' sensitive-field="ship_addr"><{$order.consignee.addr|ciphertext:'order','ship_addr',$order.shop_type}></span>
<input type='hidden' name='consignee[addr]' value="<{$order.consignee.addr}>"/></td>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'tel' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话/手机:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'tel' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话/手机:</th>
<td>
<span sensitive-field="ship_tel"><{$order.consignee.telephone|ciphertext:'order','ship_tel',$order.shop_type}></span>
<span><{if $order.consignee.telephone}>/<{/if}></span>

View File

@@ -23,8 +23,8 @@
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<{if $member.is_encrypt}><th><a class="data-hide member-sensitive-btn" href="javascript:void(0);" ></a></th><{/if}>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'uname' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>会员用户名:</th>
<{if $member.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><th><a class="data-hide member-sensitive-btn" href="javascript:void(0);" ></a></th><{/if}>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'uname' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>会员用户名:</th>
<td>
<span sensitive-field="uname">
@@ -40,9 +40,9 @@
<{/if}>
</span>
</td>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'uname' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>姓名:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'uname' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>姓名:</th>
<td><span sensitive-field="name"><{$member.contact.name|ciphertext:'member','name',$order.shop_type}></span></td>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'tel' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>联系电话:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'tel' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>联系电话:</th>
<td>
<span sensitive-field="tel"><{$member.contact.phone.telephone|ciphertext:'member','tel',$order.shop_type}></span>
<span><{if $member.contact.phone.telephone}>/<{/if}></span>

View File

@@ -13,7 +13,6 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<{if $order.process_status neq 'is_retrial'}>
<{if $operate && (($order.ship_status neq '1' && $order.ship_status neq '3' && $order.ship_status neq '4'&& $order.shipping.is_cod eq 'false') || ($order.pay_status neq '1' && $order.ship_status neq '3' && $order.ship_status neq '4'&& $order.shipping.is_cod eq 'true') || ($order.pay_status neq '1' && $order.ship_status neq '3' && $order.ship_status neq '4'&& $use_before_payed eq 'true') || ($order.process_status eq 'splitting' && $order.ship_status eq '3'))}>
<{include file="admin/order/order_button.html"}>
@@ -196,30 +195,30 @@
</div>
</td>
<td style="vertical-align:top;">
<h4><{if $member.is_encrypt}><a class="member-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>购买人信息</h4>
<h4><{if $member.is_encrypt}><{if !defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW')}><a class="member-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}><{/if}>购买人信息</h4>
<div class="division">
<table cellspacing="0" cellpadding="0" border="0" id="memberinfo">
<tbody><tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'uname' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>用户名:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'uname' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>用户名:</th>
<td>
<span sensitive-field="uname"><{$member.account.uname|ciphertext:'member','uname',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'name' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>姓名:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'name' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>姓名:</th>
<td><span sensitive-field="name"><{$member.contact.name|ciphertext:'member','name',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'tel' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'tel' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<td><span sensitive-field="tel"><{$member.contact.phone.telephone|ciphertext:'member','tel',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'mobile' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'mobile' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<td><span sensitive-field="mobile"><{$member.contact.phone.mobile|ciphertext:'member','mobile',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'address' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>地区:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'address' class="member-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>地区:</th>
<td><{$member.contact.area|region}></td>
</tr>
<tr>
@@ -232,7 +231,7 @@
</td>
<td style="vertical-align:top;">
<h4>
<span><{if $order.is_encrypt}><a class="order-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}><{t}>收货人信息<{/t}></span>
<span><{if $order.is_encrypt}><{if !defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW')}><a class="order-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}><{/if}><{t}>收货人信息<{/t}></span>
<span style="position:relative;" id="order_receiver_copy_span">
<{if $is_hied_receiver_copy !== true}>
<button type="button" class="btn" id="order_receiver_copy" stu="Y">
@@ -248,23 +247,23 @@
<td><{$order.consignee.r_time}></td>
</tr>
<tr>
<th ><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'uname' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>姓名:</th>
<th ><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'uname' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>姓名:</th>
<td><span sensitive-field="ship_name" data-order="2"><{$order.consignee.name|ciphertext:'order','ship_name',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'tel' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'tel' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<td><span sensitive-field="ship_tel" data-order="3"><{$order.consignee.telephone|ciphertext:'order','ship_tel',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'mobile' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'mobile' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<td><span sensitive-field="ship_mobile" data-order="4"><{$order.consignee.mobile|ciphertext:'order','ship_mobile',$order.shop_type}></span></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'address' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>地区:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'address' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>地区:</th>
<td><{$order.consignee.area|region}></td>
</tr>
<tr>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo'}><a data-type = 'receiver_address' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>地址:</th>
<th><{if $member.is_encrypt && $order.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'receiver_address' class="order-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>地址:</th>
<td style="white-space: normal; line-height: 18px;"><span sensitive-field="ship_addr" data-order="1"><{$order.consignee.addr|escape:'html'|ciphertext:'order','ship_addr',$order.shop_type}></span></td>
</tr>
<tr>

View File

@@ -13,7 +13,6 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<{capture name="header"}>
<{css app="ome" src="ome.css"}>
<{script src="coms/autocompleter.js" app='desktop' }>
@@ -56,7 +55,7 @@
</div>
<div class="finder-detail">
<h3><{if $order.is_encrypt}><a class="data-hide order-sensitive-btn" href="javascript:void(0);"></a><{/if}>配送信息</h3>
<h3><{if $order.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="data-hide order-sensitive-btn" href="javascript:void(0);"></a><{/if}>配送信息</h3>
<div class="division" style="background:#fff; " id="order_edit_receiver">
<a href="javascript:void(0);" id="consignee-edit">编辑</a>
<{include file="admin/order/edit/consignee_info.html"}>

View File

@@ -62,7 +62,7 @@
<!-- 订单售后情况 END-->
<div class="finder-detail">
<h3><{if $order.is_encrypt}><a class="data-hide order-sensitive-btn" href="javascript:void(0);"></a><{/if}>配送信息</h3>
<h3><{if $order.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="data-hide order-sensitive-btn" href="javascript:void(0);"></a><{/if}>配送信息</h3>
<div class="division" style="background:#fff; " id="order_edit_receiver">
<a href="javascript:void(0);" id="consignee-edit">编辑</a>
<{include file="admin/order/edit/consignee_info.html"}>
@@ -757,6 +757,7 @@ function do_refund()
var height=550;
ome_order_refund_dialog(id, newtotal, total, is_cod, pay_status, width, height);
}
function ome_order_refund_dialog(id, newtotal, total, is_cod, pay_status,width,height)
{
var url = 'index.php?app=ome&ctl=admin_order&act=do_check&finder_id=<{$env.get.finder_id}>&p[0]='+id+'&p[1]='+newtotal+'&p[2]='+total+'&is_cod='+is_cod+'&pay_status='+pay_status;
@@ -776,10 +777,7 @@ function ome_order_refund_dialog(id, newtotal, total, is_cod, pay_status,width,h
var callurl='index.php?app=ome&ctl=admin_order&act=getSalesMaterialgroup',store=[];
if($('add-material-btn')){
$('add-material-btn').addEvent('click',function(e) {
var shop_id = $E('input[name=shop_id]').getValue();
var url='index.php?app=desktop&act=alertpages&goto='+encodeURIComponent('index.php?app=material&ctl=admin_material_sales&act=findSalesMaterial&shop_id='+shop_id);
Ex_Loader('modedialog',function() {
@@ -797,6 +795,5 @@ if($('add-material-btn')){
});
}.bind(this));
});
}
</script>

View File

@@ -13,7 +13,6 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<style>
.gridlist th{
width:140px;
@@ -36,7 +35,7 @@
<td colspan="2">
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="width:100%" class="gridlist">
<tr>
<th><{if $reship_data.is_encrypt}><a class="reship-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>销售单:</th>
<th><{if $reship_data.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="reship-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>销售单:</th>
<td><{$reship_data.order_bn}></td>
<th>创建日期:</th><td><{$reship_data.createtime|cdate}></td>
<th>会员名:</th><td><{$reship_data.member_id|ciphertext:'reship','ship_name',$reship_data.shop_type}></td>
@@ -407,4 +406,4 @@ CheckEditFrame();
}
<{/if}>
</script>
</script>

View File

@@ -13,7 +13,6 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<form action="index.php?app=ome&ctl=admin_return_batch&act=set&finder_id=<{$finder_id}>" method="post" id="form1" enctype="multipart/form-data" target="upload">
<div class="tableform">
<div class="division">
@@ -31,8 +30,8 @@
<th><{t}>类型:<{/t}></th>
<td >
<select name='batch_type' vtype="required">
<{foreach from=$batch_type item=batch_type key=key}>
<option value='<{$key}>'><{$batch_type}></option>
<{foreach from=$batch_type item=type_label key=key}>
<option value='<{$key}>' <{if $return_batch.batch_type == $key}>selected="selected"<{/if}>><{$type_label}></option>
<{/foreach}>
</select>
<em class="c-red">*</em>
@@ -98,4 +97,4 @@ $('form1').store('target',{
}
}
});
</script>
</script>

View File

@@ -15,17 +15,9 @@
* limitations under the License.
*/
class openapi_data_original_aftersales
{
/**
* 获取List
* @param mixed $filter filter
* @param mixed $start_time start_time
* @param mixed $end_time end_time
* @param mixed $offset offset
* @param mixed $limit limit
* @return mixed 返回结果
*/
public function getList($filter,$start_time,$end_time,$offset=0,$limit=100)
{
$aftersaleMdl = app::get('sales')->model('aftersale');
@@ -50,7 +42,12 @@ class openapi_data_original_aftersales
$branchInfos[$branch['branch_id']]['branch_bn'] = $branch['branch_bn'];
}
$aftersaleLists = $aftersaleMdl->getList('*', $filter, $offset, $limit,'aftersale_id ASC');
if(empty($aftersaleLists)){
return array(
'lists' => array(),
'count' => $count,
);
}
$shopInfos = $shopObj->getList('shop_id,shop_bn,name,delivery_mode', [
'shop_id' => array_column($aftersaleLists, 'shop_id'),
@@ -58,13 +55,13 @@ class openapi_data_original_aftersales
$shopInfos = array_column($shopInfos, null, 'shop_id');
$aftersaleIds = array();
$orderIds = array();
$memberIds = array();
$returnIds = array();
$reshipIds = array();
$refundApplyIds = array();
$opIds = array();
$aftersaleIds = array(-1);
$orderIds = array(-1);
$memberIds = array(-1);
$returnIds = array(-1);
$reshipIds = array(-1);
$refundApplyIds = array(-1);
$opIds = array(-1);
foreach ($aftersaleLists as $k => $aftersale){
$aftersaleIds[] = $aftersale['aftersale_id'];
@@ -333,7 +330,7 @@ class openapi_data_original_aftersales
}
/**
* 获取基础物料信息
*
*
* @param array $productIds
* @return array
*/
@@ -444,4 +441,4 @@ class openapi_data_original_aftersales
'count' => $count,
];
}
}
}

View File

@@ -78,6 +78,23 @@ class purchase_mdl_po extends dbeav_model{
return $arr;
}
/**
* 导入采购单号安全清洗
*
* 仅保留安全字符,避免引号、&、注释符等特殊字符进入后续 SQL/缓存/日志链路。
*
* @param string $poBn
* @return string
*/
private function sanitizeImportPoBn($poBn)
{
$poBn = trim(str_replace(' ', '', (string) $poBn));
$poBn = strip_tags($poBn);
$poBn = preg_replace('/[^A-Za-z0-9._\/-]/', '', $poBn);
return substr($poBn, 0, 32);
}
function getSafeStock($data=null, $start=0, $end=1){
$where = ' ';
@@ -572,7 +589,9 @@ class purchase_mdl_po extends dbeav_model{
$memo = serialize($export_memo);
}
$pSdf['memo'] = $memo;
$pSdf['po_bn'] = $aP['purchase']['contents'][0][0];
// 导入的采购单号
$pSdf['po_bn'] = $this->sanitizeImportPoBn($aP['purchase']['contents'][0][0]);
$pSdf['supplier_id'] = $supplier['supplier_id'];
$pSdf['branch_id'] = $branch['branch_id'];
@@ -750,6 +769,8 @@ class purchase_mdl_po extends dbeav_model{
$fileData['item']['contents'][] = $row;
}else {
$row[0] = $this->sanitizeImportPoBn($row[0]);
$row_0 = $row[0];
if (empty($row_0)){
$msg['error'] = "请填写采购单编号";
return false;

View File

@@ -13,9 +13,8 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<div class="tableform">
<h4><span><{if $aftersales.is_encrypt}><a class="order-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}><{t}>售后单详情<{/t}></span></h4>
<h4><span><{if $aftersales.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="order-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}><{t}>售后单详情<{/t}></span></h4>
<div class="division">
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="consigneeinfo">
<tr>

View File

@@ -13,14 +13,12 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<{capture name="header"}>
<link href="../app/ome/statics/ome.css" rel="stylesheet" type="text/css">
<{/capture}>
<div class="tableform" id="saleinfo">
<h4><{if $deliveryinfo.is_encrypt}><a class="delivery-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>基本信息</h4>
<h4><{if $deliveryinfo.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="delivery-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>基本信息</h4>
<div class="division">
<table border="0" cellspacing="0" cellpadding="0">
<tr>

View File

@@ -14,22 +14,24 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @author ykm 216-01-25
* @describe 京东电子面单
* @describe 爱库存电子面单 SDF 组装
*/
class wms_event_trigger_logistics_data_electron_aikucun extends wms_event_trigger_logistics_data_electron_common
{
/**
* 获取DirectSdf
* @param mixed $arrDelivery arrDelivery
* @param mixed $arrBill arrBill
* @param mixed $shop shop
* @return mixed 返回结果
* 矩阵 orderInfo.orderChannelsType 固定值(与小红书多店铺映射不同)
*/
public function orderChannelsType()
{
return 'aikucun';
}
public function getDirectSdf($arrDelivery, $arrBill, $shop) {
public function getDirectSdf($arrDelivery, $arrBill, $shop)
{
$delivery = $arrDelivery[0];
if (empty($arrBill)) {

View File

@@ -13,7 +13,6 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<{capture name="header"}>
<link href="../app/wms/statics/wms.css" rel="stylesheet" type="text/css">
<{/capture}>
@@ -23,7 +22,7 @@
<style>
.logi-no-input{width:150px;height:20px;}
</style>
<h4><{if $dly.is_encrypt}><a class="delivery-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>发货单信息:</h4>
<h4><{if $dly.is_encrypt && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a class="delivery-sensitive-btn data-hide" href="javascript:void(0);"></a><{/if}>发货单信息:</h4>
<input type="hidden" name="status" value="<{$status}>" />
<div class="division">
<table border="0" cellspacing="0" cellpadding="0" id="deliveryinfo">
@@ -34,15 +33,15 @@
<td ><{foreach from=$order_bn item=item}><{$item}><br><{/foreach}></td>
<th >配送方式:</th>
<td ><{$dly.delivery}></td>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo'}><a data-type = 'uname' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>会员:</th>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'uname' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>会员:</th>
<td ><span sensitive-field="uname"><{$dly.member_name|ciphertext:'delivery','uname',$dly.shop_type}></span></td>
</tr>
<tr>
<th><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo'}><a data-type = 'uname' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>收货人:</th>
<th><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'uname' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>收货人:</th>
<td ><span sensitive-field="ship_name"><{$dly.consignee.name|ciphertext:'delivery','ship_name',$dly.shop_type}></span></td>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo'}><a data-type = 'tel' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'tel' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>电话:</th>
<td ><span sensitive-field="ship_tel"><{$dly.consignee.telephone|ciphertext:'delivery','ship_tel',$dly.shop_type}></span></td>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo'}><a data-type = 'mobile' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<th ><{if $dly.is_encrypt && $dly.shop_type == 'pinduoduo' && (!defined('SENSITIVE_DATA_SHOW') || constant('SENSITIVE_DATA_SHOW'))}><a data-type = 'mobile' class="delivery-sensitive-btn-detail data-hide" style="background-size: 13px 10px;" href="javascript:void(0);"></a><{/if}>手机:</th>
<td ><span sensitive-field="ship_mobile"><{$dly.consignee.mobile|ciphertext:'delivery','ship_mobile',$dly.shop_type}></span></td>
<th>Email</th>
<td><{$dly.consignee.email}></td>