[TBID:opensource]

1、支持天猫加急发货功能
2、支持京东厂直售后
3、优化视频号订单金额
4、优化失败订单恢复逻辑
This commit is contained in:
chenping
2026-07-07 20:57:38 +08:00
parent c4a50a7e69
commit 677d749c0a
82 changed files with 3675 additions and 1511 deletions

View File

@@ -15,9 +15,31 @@
* limitations under the License.
*/
class ome_ctl_admin_delivery extends desktop_controller{
const URGENT_LABEL_CODE = 'SOMS_URGENT_SHIP';
var $name = "发货单";
var $workground = "console_center";
function _views(){
$mdl_delivery = $this->app->model('delivery');
$baseFilter = array(
'type' => 'normal',
'pause' => 'false',
'parent_id' => 0,
'disabled' => 'false',
'status' => array('ready','progress','succ')
);
$sub_menu = array(
0 => array('label' => app::get('base')->_('全部'), 'filter' => $baseFilter, 'optional' => false),
1 => array('label' => app::get('base')->_('加急发货'), 'filter' => array_merge($baseFilter, array('delivery_label_code' => self::URGENT_LABEL_CODE)), 'optional' => false),
);
foreach ($sub_menu as $k => $v) {
$sub_menu[$k]['filter'] = $v['filter'];
$sub_menu[$k]['addon'] = $mdl_delivery->count($v['filter']);
$sub_menu[$k]['href'] = 'index.php?app=ome&ctl='.$_GET['ctl'].'&act='.$_GET['act'].'&view='.$k;
}
return $sub_menu;
}
function index(){
$filter = array(
'type' => 'normal',
@@ -50,6 +72,7 @@ class ome_ctl_admin_delivery extends desktop_controller{
'use_buildin_export'=>false,
'use_buildin_import'=>false,
'use_buildin_filter'=>true,
'use_view_tab'=>true,
));
}

File diff suppressed because it is too large Load Diff

View File

@@ -116,7 +116,7 @@ class ome_ctl_admin_order_fail extends desktop_controller
}
//修正订单项
if (kernel::single("ome_order_fail")->modifyOrderItems($order_id, $oldPbn, $pbn)) {
if (kernel::single('ome_order_fail')->modifyOrderItems($order_id, $oldPbn, $pbn)) {
$this->splash('success', $url, '订单处理成功');
} else {
$this->splash('error', $url, '存在异常商品,订单修正失败!');
@@ -140,15 +140,25 @@ class ome_ctl_admin_order_fail extends desktop_controller
}
//type
$failLib = kernel::single('ome_order_fail');
if ($type == 'bn') {
$orderData = kernel::single('ome_order_fail')->getFailOrderByBn($oldPbn);
$orderData = $failLib->getFailOrderByBn($oldPbn);
$totalCount = $failLib->countFailOrderByBn($oldPbn, false);
$batchableCount = $failLib->countFailOrderByBn($oldPbn, true);
} else {
$orderData = kernel::single('ome_order_fail')->getFailOrderByName($oldPbn);
$orderData = $failLib->getFailOrderByName($oldPbn);
$totalCount = $failLib->countFailOrderByName($oldPbn, false);
$batchableCount = $failLib->countFailOrderByName($oldPbn, true);
}
// check
if(empty($orderData)){
echo "<button id='close_btn'>没有找到匹配的失败订单!</button><script>;if(finderGroup['{$finder_id}']) finderGroup['{$finder_id}'].refresh.delay(100,finderGroup['{$finder_id}']);var oDialog = $('close_btn').getParent('.dialog').retrieve('instance');oDialog.close.delay(2000, oDialog);</script>";
if ($totalCount > 0) {
$msg = sprintf('存在 %d 条匹配的失败订单,但流程状态不是【未确认】,无法批量修复!', $totalCount);
} else {
$msg = '没有找到匹配的失败订单!';
}
echo "<button id='close_btn'>{$msg}</button><script>;if(finderGroup['{$finder_id}']) finderGroup['{$finder_id}'].refresh.delay(100,finderGroup['{$finder_id}']);var oDialog = $('close_btn').getParent('.dialog').retrieve('instance');oDialog.close.delay(2000, oDialog);</script>";
exit;
}
@@ -180,6 +190,13 @@ class ome_ctl_admin_order_fail extends desktop_controller
}
}
$GroupList = array_column($orderData, 'order_id');
$excludedCount = $totalCount - $batchableCount;
if ($excludedCount > 0) {
$this->pagedata['batch_exclude_notice'] = sprintf(
'另有 %d 条同条件失败订单因流程状态不是【未确认】已排除,不在本次批量范围内。',
$excludedCount
);
}
$this->pagedata['oldPbn'] = base64_encode(json_encode($oldPbn));
$this->pagedata['pbn'] = base64_encode(json_encode($pbn));
$this->pagedata['modifyType'] = $type;

View File

@@ -404,7 +404,7 @@ class ome_ctl_admin_order_lack extends desktop_controller {
protected function _getOlistFilter() {
$params = array(
'assigned' => 'assigned',
//'assigned' => 'assigned',
'abnormal' => 'false',
'is_fail' => 'false',
'status' => 'active',
@@ -417,7 +417,7 @@ class ome_ctl_admin_order_lack extends desktop_controller {
// }
if(!kernel::single('desktop_user')->is_super()){
$op_id = kernel::single('desktop_user')->get_id();
$params['op_id'] = $op_id;
$params['op_id'] = array($op_id, 0);
}
/*$flag = omeauto_auto_const::__STORE_CODE;
$params['order_confirm_filter'] = sprintf("(sdb_ome_orders.auto_status & %s = %s)", $flag, $flag); */

View File

@@ -20,6 +20,7 @@
*/
class ome_ctl_admin_receipts_print extends desktop_controller {
const URGENT_LABEL_CODE = 'SOMS_URGENT_SHIP';
var $name = "发货中心";
var $workground = "delivery_center";
@@ -97,9 +98,14 @@ class ome_ctl_admin_receipts_print extends desktop_controller {
'filter' => $tmp_filter,
'optional' => false
);
$sub_menu[$c++] = array(
'label' => app::get('base')->_('加急发货'),
'filter' => array_merge($tmp_filter, array('delivery_label_code' => self::URGENT_LABEL_CODE)),
'optional' => false
);
#第三方发货时,显示已发货、未发货
if($_GET['ctl'] == 'admin_receipts_outer') {
$c = 3;#物流公司view在未发货之后
$c = $c + 2;
$outer_filter = $tmp_filter;
#让已发货、未发货显示在全部之后
$outer = $this->shipStatus();

View File

@@ -2813,31 +2813,29 @@ class ome_ctl_admin_return_rchange extends desktop_controller
}elseif(in_array($reship_detail['shop_type'] ,array( 'luban','meituan4medicine'))){
$lubanReutrnInfo = app::get('ome')->model('return_product_luban')->db_dump(array('return_id'=>$reship_detail['return_id']));
if(!empty($lubanReutrnInfo)){
if ($_FILES['refuse_proof']['size']<=0) {
$this->end(false, '请上传凭证图片!');
$memo = array(
'reject_reason_code' => $_POST['seller_refuse_reason_id'],
'remark' => $_POST['refuse_message'],
'parse' => 'second',
);
if ($_FILES['refuse_proof']['size'] > 0) {
if ($_FILES ['refuse_proof'] ['size'] > 512000) {
$this->end(false, '上传文件不能超过500K!');
}
$type = array ('gif','jpg','png');
$pathinfo = pathinfo($_FILES ['refuse_proof'] ['name']);
if (!in_array($pathinfo['extension'], $type)) {
$this->end(false, "您只能上传以下类型文件".implode('、', $type)."!");
}
$storager = kernel::single ( 'base_storager' );
$id = $storager->save_upload ( $_FILES ['refuse_proof'], "file", "", $msg ); //返回file_id;
$refuse_memo['image'] = $storager->getUrl ( $id, "file" );
$memo['refuse_proof'] = $refuse_memo['image'];
}
if ($_FILES ['refuse_proof'] ['size'] > 512000) {
$this->end(false, '上传文件不能超过500K!');
}
$type = array ('gif','jpg','png');
$pathinfo = pathinfo($_FILES ['refuse_proof'] ['name']);
if (!in_array($pathinfo['extension'], $type)) {
$this->end(false, "您只能上传以下类型文件".implode('、', $type)."!");
}
$storager = kernel::single ( 'base_storager' );
$id = $storager->save_upload ( $_FILES ['refuse_proof'], "file", "", $msg ); //返回file_id;
$refuse_memo['image'] = $storager->getUrl ( $id, "file" );
$imagebinary = $refuse_memo['image'];
//memo
$memo['refuse_proof'] = $imagebinary;
$memo['reject_reason_code'] = $_POST['seller_refuse_reason_id'];
$memo['remark'] = $_POST['refuse_message'];
$memo['parse'] = 'second';
//request
$result = kernel::single('ome_service_aftersale')->update_status($reship_detail['return_id'],'5','sync',$memo);
if ($result['rsp'] != 'succ' && !$_POST['forced_cancel']) {