Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
纵之格
ShopXO
提交
629e94c6
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,发现更多精彩内容 >>
提交
629e94c6
编写于
12月 09, 2022
作者:
G
gongfuxiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增商品列表优惠计算
上级
5c06c7c0
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
62 addition
and
9 deletion
+62
-9
app/service/SystemBaseService.php
app/service/SystemBaseService.php
+62
-9
未找到文件。
app/service/SystemBaseService.php
浏览文件 @
629e94c6
...
...
@@ -409,7 +409,7 @@ class SystemBaseService
public
static
function
IsGoodsDiscount
(
$params
=
[],
$plugins
=
''
)
{
// 默认支持
$status
=
true
;
$status
=
1
;
// 是否关闭商品优惠重叠
// 采用钩子进行处理
...
...
@@ -425,45 +425,98 @@ class SystemBaseService
if
(
!
empty
(
$old
))
{
// 展示销售价格
if
(
$status
&&
isset
(
$params
[
'goods'
][
'price'
]))
if
(
$status
==
1
&&
isset
(
$params
[
'goods'
][
'price'
]))
{
$temp
=
explode
(
'-'
,
$params
[
'goods'
][
'price'
]);
$temp_old
=
explode
(
'-'
,
$old
[
'price'
]);
if
(
$temp
[
count
(
$temp
)
-
1
]
<
$temp_old
[
count
(
$temp_old
)
-
1
])
{
$status
=
false
;
$status
=
0
;
}
}
// 最低价
if
(
$status
&&
isset
(
$params
[
'goods'
][
'min_price'
]))
if
(
$status
==
1
&&
isset
(
$params
[
'goods'
][
'min_price'
]))
{
if
(
$params
[
'goods'
][
'min_price'
]
<
$old
[
'min_price'
])
{
$status
=
false
;
$status
=
0
;
}
}
// 最高价
if
(
$status
&&
isset
(
$params
[
'goods'
][
'max_price'
]))
if
(
$status
==
1
&&
isset
(
$params
[
'goods'
][
'max_price'
]))
{
if
(
$params
[
'goods'
][
'max_price'
]
<
$old
[
'max_price'
])
{
$status
=
false
;
$status
=
0
;
}
}
}
}
break
;
// 商品列表处理结束
case
'plugins_service_goods_list_handle_end'
:
$result
=
[];
if
(
!
empty
(
$params
[
'data'
]))
{
// key字段
$key_field
=
empty
(
$params
[
'params'
][
'data_key_field'
])
?
'id'
:
$params
[
'params'
][
'data_key_field'
];
$old
=
Db
::
name
(
'Goods'
)
->
where
([
'id'
=>
array_column
(
$params
[
'data'
],
$key_field
)])
->
column
(
'id,price,min_price,max_price'
,
'id'
);
if
(
!
empty
(
$old
))
{
foreach
(
$params
[
'data'
]
as
$goods
)
{
if
(
array_key_exists
(
$goods
[
$key_field
],
$old
))
{
$status
=
1
;
$item_old
=
$old
[
$goods
[
$key_field
]];
// 展示销售价格
if
(
$status
==
1
&&
isset
(
$goods
[
'price'
]))
{
$temp
=
explode
(
'-'
,
$goods
[
'price'
]);
$temp_old
=
explode
(
'-'
,
$item_old
[
'price'
]);
if
(
$temp
[
count
(
$temp
)
-
1
]
<
$temp_old
[
count
(
$temp_old
)
-
1
])
{
$status
=
0
;
}
}
// 最低价
if
(
$status
==
1
&&
isset
(
$goods
[
'min_price'
]))
{
if
(
$goods
[
'min_price'
]
<
$item_old
[
'min_price'
])
{
$status
=
0
;
}
}
// 最高价
if
(
$status
==
1
&&
isset
(
$goods
[
'max_price'
]))
{
if
(
$goods
[
'max_price'
]
<
$item_old
[
'max_price'
])
{
$status
=
0
;
}
}
$result
[
$goods
[
$key_field
]]
=
$status
;
}
}
}
}
return
$result
;
break
;
// 获取规格详情
case
'plugins_service_goods_spec_base'
:
if
(
!
empty
(
$params
[
'data'
])
&&
!
empty
(
$params
[
'data'
][
'spec_base'
])
&&
!
empty
(
$params
[
'data'
][
'spec_base'
][
'id'
])
&&
!
empty
(
$params
[
'data'
][
'spec_base'
][
'goods_id'
])
&&
isset
(
$params
[
'data'
][
'spec_base'
][
'price'
]))
{
$price_old
=
Db
::
name
(
'GoodsSpecBase'
)
->
where
([
'id'
=>
$params
[
'data'
][
'spec_base'
][
'id'
]])
->
value
(
'price'
);
if
(
$status
&&
$params
[
'data'
][
'spec_base'
][
'price'
]
<
$price_old
)
if
(
$status
==
1
&&
$params
[
'data'
][
'spec_base'
][
'price'
]
<
$price_old
)
{
$status
=
false
;
$status
=
0
;
}
}
break
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录