Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
纵之格
ShopXO
提交
ab6f22df
ShopXO
项目概览
纵之格
/
ShopXO
通知
394
Star
16
Fork
11
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
ab6f22df
编写于
10月 12, 2019
作者:
D
devil_gong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
订单售后逻辑优化,仅退款未发货直接关闭订单并释放库存
上级
1959292b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
18 addition
and
1 deletion
+18
-1
application/service/OrderAftersaleService.php
application/service/OrderAftersaleService.php
+18
-1
未找到文件。
application/service/OrderAftersaleService.php
浏览文件 @
ab6f22df
...
...
@@ -777,6 +777,14 @@ class OrderAftersaleService
}
}
// 是否仅退款操作需要退数量操作
$is_refund_only_number
=
false
;
if
(
$aftersale
[
'type'
]
==
0
&&
$order
[
'data'
][
'status'
]
<=
2
)
{
$is_refund_only_number
=
true
;
$aftersale
[
'number'
]
=
$order
[
'data'
][
'items'
][
'buy_number'
];
}
// 更新主订单
$refund_price
=
PriceNumberFormat
(
$order
[
'data'
][
'refund_price'
]
+
$aftersale
[
'price'
]);
$returned_quantity
=
intval
(
$order
[
'data'
][
'returned_quantity'
]
+
$aftersale
[
'number'
]);
...
...
@@ -787,11 +795,14 @@ class OrderAftersaleService
'close_time'
=>
time
(),
'upd_time'
=>
time
(),
];
// 如果退款金额和退款数量到达订单实际是否金额和购买数量则关闭订单
if
(
$refund_price
>=
$order
[
'data'
][
'pay_price'
]
&&
$returned_quantity
>=
$order
[
'data'
][
'buy_number_count'
])
{
$order_upd_data
[
'status'
]
=
6
;
}
// 更新主订单
if
(
!
Db
::
name
(
'Order'
)
->
where
([
'id'
=>
$order
[
'data'
][
'id'
]])
->
update
(
$order_upd_data
))
{
Db
::
rollback
();
...
...
@@ -811,7 +822,7 @@ class OrderAftersaleService
}
// 库存回滚
if
(
$aftersale
[
'type'
]
==
1
)
if
(
$aftersale
[
'type'
]
==
1
||
$is_refund_only_number
==
true
)
{
$ret
=
BuyService
::
OrderInventoryRollback
([
'order_id'
=>
$order
[
'data'
][
'id'
],
'order_data'
=>
$order_upd_data
,
'appoint_order_detail_id'
=>
$aftersale
[
'order_detail_id'
],
'appoint_buy_number'
=>
$aftersale
[
'number'
]]);
if
(
$ret
[
'code'
]
!=
0
)
...
...
@@ -840,6 +851,12 @@ class OrderAftersaleService
'audit_time'
=>
time
(),
'upd_time'
=>
time
(),
];
// 仅退款是否退了数量
if
(
$is_refund_only_number
==
true
)
{
$aftersale_upd_data
[
'number'
]
=
$aftersale
[
'number'
];
}
if
(
!
Db
::
name
(
'OrderAftersale'
)
->
where
([
'id'
=>
$aftersale
[
'id'
]])
->
update
(
$aftersale_upd_data
))
{
Db
::
rollback
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录