Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
纵之格
ShopXO
提交
eaa0231f
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 搜索 >>
提交
eaa0231f
编写于
3月 04, 2022
作者:
G
gongfuxiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
下单支付优化
上级
120cbd9b
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
80 addition
and
25 deletion
+80
-25
app/service/BuyService.php
app/service/BuyService.php
+52
-24
app/service/OrderService.php
app/service/OrderService.php
+28
-1
未找到文件。
app/service/BuyService.php
浏览文件 @
eaa0231f
...
...
@@ -104,7 +104,11 @@ class BuyService
$spec
=
self
::
GoodsSpecificationsHandle
(
$params
);
// 获取商品基础信息
$goods_base
=
GoodsService
::
GoodsSpecDetail
([
'id'
=>
$goods_id
,
'spec'
=>
$spec
]);
$spec_params
=
array_merge
(
$params
,
[
'id'
=>
$goods_id
,
'spec'
=>
$spec
,
]);
$goods_base
=
GoodsService
::
GoodsSpecDetail
(
$spec_params
);
if
(
$goods_base
[
'code'
]
!=
0
)
{
return
$goods_base
;
...
...
@@ -121,18 +125,10 @@ class BuyService
$goods
[
'images_old'
]
=
ResourcesService
::
AttachmentPathViewHandle
(
$images
);
}
// 从规格获取库存
$base
=
GoodsService
::
GoodsSpecDetail
([
'id'
=>
$goods_id
,
'spec'
=>
$spec
]);
if
(
$base
[
'code'
]
==
0
)
{
// 规格库存赋值
$goods
[
'inventory'
]
=
$base
[
'data'
][
'spec_base'
][
'inventory'
];
}
else
{
return
$base
;
}
// 规格库存赋值
$goods
[
'inventory'
]
=
$goods_base
[
'data'
][
'spec_base'
][
'inventory'
];
}
// 数量
$stock
=
(
$goods
[
'buy_max_number'
]
>
0
&&
$params
[
'stock'
]
>
$goods
[
'buy_max_number'
])
?
$goods
[
'buy_max_number'
]
:
$params
[
'stock'
];
...
...
@@ -248,7 +244,12 @@ class BuyService
$v
[
'spec'
]
=
empty
(
$v
[
'spec'
])
?
null
:
json_decode
(
$v
[
'spec'
],
true
);
// 获取商品基础信息
$goods_base
=
GoodsService
::
GoodsSpecDetail
([
'id'
=>
$v
[
'goods_id'
],
'spec'
=>
$v
[
'spec'
],
'stock'
=>
$v
[
'stock'
]]);
$spec_params
=
array_merge
(
$params
,
[
'id'
=>
$v
[
'goods_id'
],
'spec'
=>
$v
[
'spec'
],
'stock'
=>
$v
[
'stock'
],
]);
$goods_base
=
GoodsService
::
GoodsSpecDetail
(
$spec_params
);
$v
[
'is_invalid'
]
=
0
;
if
(
$goods_base
[
'code'
]
==
0
)
{
...
...
@@ -455,7 +456,12 @@ class BuyService
if
(
Db
::
name
(
'Cart'
)
->
where
(
$where
)
->
update
(
$upd_data
))
{
// 获取商品基础信息、更新商品价格信息
$goods_base
=
GoodsService
::
GoodsSpecDetail
([
'id'
=>
$data
[
'goods_id'
],
'spec'
=>
$data
[
'spec'
],
'stock'
=>
$data
[
'stock'
]]);
$spec_params
=
array_merge
(
$params
,
[
'id'
=>
$data
[
'goods_id'
],
'spec'
=>
$data
[
'spec'
],
'stock'
=>
$data
[
'stock'
],
]);
$goods_base
=
GoodsService
::
GoodsSpecDetail
(
$spec_params
);
if
(
$goods_base
[
'code'
]
==
0
)
{
$data
[
'price'
]
=
$goods_base
[
'data'
][
'spec_base'
][
'price'
];
...
...
@@ -526,15 +532,15 @@ class BuyService
}
// 获取商品
$
p
=
[
$
goods_params
=
array_merge
(
$params
,
[
'where'
=>
[
'id'
=>
intval
(
$params
[
'goods_id'
]),
'is_delete_time'
=>
0
,
'is_shelves'
=>
1
,
],
'field'
=>
'id, id AS goods_id, title, images, inventory_unit, buy_min_number, buy_max_number, model'
,
];
$ret
=
GoodsService
::
GoodsList
(
$
p
);
]
)
;
$ret
=
GoodsService
::
GoodsList
(
$
goods_params
);
if
(
empty
(
$ret
[
'data'
][
0
]))
{
return
DataReturn
(
'资源不存在或已被删除'
,
-
10
);
...
...
@@ -545,7 +551,12 @@ class BuyService
$goods
[
'spec'
]
=
self
::
GoodsSpecificationsHandle
(
$params
);
// 获取商品基础信息
$goods_base
=
GoodsService
::
GoodsSpecDetail
([
'id'
=>
$goods
[
'goods_id'
],
'spec'
=>
$goods
[
'spec'
],
'stock'
=>
$params
[
'stock'
]]);
$spec_params
=
array_merge
(
$params
,
[
'id'
=>
$goods
[
'goods_id'
],
'spec'
=>
$goods
[
'spec'
],
'stock'
=>
$params
[
'stock'
]
]);
$goods_base
=
GoodsService
::
GoodsSpecDetail
(
$spec_params
);
if
(
$goods_base
[
'code'
]
==
0
)
{
$goods
[
'inventory'
]
=
$goods_base
[
'data'
][
'spec_base'
][
'inventory'
];
...
...
@@ -967,7 +978,11 @@ class BuyService
}
// 规格
$goods_base
=
GoodsService
::
GoodsSpecDetail
([
'id'
=>
$v
[
'goods_id'
],
'spec'
=>
isset
(
$v
[
'spec'
])
?
$v
[
'spec'
]
:
[]]);
$spec_params
=
array_merge
(
$params
,
[
'id'
=>
$v
[
'goods_id'
],
'spec'
=>
isset
(
$v
[
'spec'
])
?
$v
[
'spec'
]
:
[],
]);
$goods_base
=
GoodsService
::
GoodsSpecDetail
(
$spec_params
);
if
(
$goods_base
[
'code'
]
==
0
)
{
$goods
[
'price'
]
=
$goods_base
[
'data'
][
'spec_base'
][
'price'
];
...
...
@@ -1695,7 +1710,7 @@ class BuyService
// 数据校验
foreach
(
$order_detail
as
$v
)
{
$ret
=
self
::
BuyOrderPayBeginGoodsCheck
(
$v
);
$ret
=
self
::
BuyOrderPayBeginGoodsCheck
(
$v
,
$params
);
if
(
$ret
[
'code'
]
!=
0
)
{
return
$ret
;
...
...
@@ -1782,7 +1797,7 @@ class BuyService
{
foreach
(
$g
as
$v
)
{
$ret
=
self
::
BuyOrderPayBeginGoodsCheck
(
$v
);
$ret
=
self
::
BuyOrderPayBeginGoodsCheck
(
$v
,
$params
);
if
(
$ret
[
'code'
]
!=
0
)
{
return
$ret
;
...
...
@@ -1803,8 +1818,9 @@ class BuyService
* @date 2020-08-05
* @desc description
* @param [array] $detail [订单详情]
* @param [array] $params [输入参数]
*/
public
static
function
BuyOrderPayBeginGoodsCheck
(
$detail
)
public
static
function
BuyOrderPayBeginGoodsCheck
(
$detail
,
$params
)
{
// 获取商品
$goods
=
Db
::
name
(
'Goods'
)
->
field
(
'is_shelves,is_deduction_inventory,inventory,title'
)
->
find
(
$detail
[
'goods_id'
]);
...
...
@@ -1830,7 +1846,11 @@ class BuyService
// 规格库存
$spec
=
empty
(
$detail
[
'spec'
])
?
''
:
json_decode
(
$detail
[
'spec'
],
true
);
$base
=
GoodsService
::
GoodsSpecDetail
([
'id'
=>
$detail
[
'goods_id'
],
'spec'
=>
$spec
]);
$spec_params
=
array_merge
(
$params
,
[
'id'
=>
$detail
[
'goods_id'
],
'spec'
=>
$spec
,
]);
$base
=
GoodsService
::
GoodsSpecDetail
(
$spec_params
);
if
(
$base
[
'code'
]
==
0
)
{
// 先判断商品规格库存是否不足
...
...
@@ -1939,7 +1959,11 @@ class BuyService
// 扣除规格库存
$spec
=
empty
(
$v
[
'spec'
])
?
''
:
json_decode
(
$v
[
'spec'
],
true
);
$base
=
GoodsService
::
GoodsSpecDetail
([
'id'
=>
$v
[
'goods_id'
],
'spec'
=>
$spec
]);
$spec_params
=
array_merge
(
$params
,
[
'id'
=>
$v
[
'goods_id'
],
'spec'
=>
$spec
,
]);
$base
=
GoodsService
::
GoodsSpecDetail
(
$spec_params
);
if
(
$base
[
'code'
]
==
0
)
{
// 先判断商品规格库存是否不足
...
...
@@ -2064,7 +2088,11 @@ class BuyService
// 回滚规格库存
$spec
=
empty
(
$v
[
'spec'
])
?
''
:
json_decode
(
$v
[
'spec'
],
true
);
$base
=
GoodsService
::
GoodsSpecDetail
([
'id'
=>
$v
[
'goods_id'
],
'spec'
=>
$spec
]);
$spec_params
=
array_merge
(
$params
,
[
'id'
=>
$v
[
'goods_id'
],
'spec'
=>
$spec
,
]);
$base
=
GoodsService
::
GoodsSpecDetail
(
$spec_params
);
if
(
$base
[
'code'
]
==
0
)
{
// 回滚规格操作
...
...
app/service/OrderService.php
浏览文件 @
eaa0231f
...
...
@@ -94,6 +94,10 @@ class OrderService
// 订单用户
$order
[
'user'
]
=
UserService
::
UserHandle
(
UserService
::
UserInfo
(
'id'
,
$order
[
'user_id'
]));
if
(
empty
(
$order
[
'user'
]))
{
return
DataReturn
(
'订单用户无效['
.
$order_id
.
']'
,
-
1
);
}
// 订单数据集合
$order_data
[]
=
$order
;
...
...
@@ -453,11 +457,18 @@ class OrderService
}
$payment
=
$res
[
0
];
// 订单用户信息
$user
=
UserService
::
GetUserViewInfo
(
$order
[
'user_id'
]);
if
(
empty
(
$user
))
{
return
DataReturn
(
'订单用户无效'
,
-
1
);
}
// 线下支付处理
return
self
::
OrderPaymentUnderLineSuccess
([
'order'
=>
$order
,
'payment'
=>
$payment
,
'user'
=>
UserService
::
GetUserViewInfo
(
$order
[
'user_id'
])
,
'user'
=>
$user
,
'params'
=>
$params
,
]);
}
...
...
@@ -1170,6 +1181,22 @@ class OrderService
return
(
int
)
Db
::
name
(
'Order'
)
->
where
(
$where
)
->
count
();
}
/**
* 提示信息
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2018-09-29
* @desc description
* @param [array] $where [条件]
*/
public
static
function
OrderTipsMsg
(
$where
=
[])
{
$total_price
=
Db
::
name
(
'Order'
)
->
where
(
$where
)
->
sum
(
'total_price'
);
$pay_price
=
Db
::
name
(
'Order'
)
->
where
(
$where
)
->
sum
(
'pay_price'
);
return
'订单总额 '
.
$total_price
.
' 元 支付总额 '
.
$pay_price
.
' 元'
;
}
/**
* 订单列表
* @author Devil
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录