Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
starsw001
ShopXO
提交
f52243c5
ShopXO
项目概览
starsw001
/
ShopXO
与 Fork 源项目一致
Fork自
纵之格 / ShopXO
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
f52243c5
编写于
8月 08, 2020
作者:
D
devil
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
搜索支持空格多个关键字
上级
652f057b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
19 addition
and
3 deletion
+19
-3
application/service/SearchService.php
application/service/SearchService.php
+19
-3
未找到文件。
application/service/SearchService.php
浏览文件 @
f52243c5
...
@@ -73,9 +73,14 @@ class SearchService
...
@@ -73,9 +73,14 @@ class SearchService
];
];
// 关键字
// 关键字
$where_keywords
=
[];
if
(
!
empty
(
$params
[
'keywords'
]))
if
(
!
empty
(
$params
[
'keywords'
]))
{
{
$where
[]
=
[
'g.title|g.model|g.simple_desc|g.seo_title|g.seo_keywords|g.seo_keywords'
,
'like'
,
'%'
.
$params
[
'keywords'
]
.
'%'
];
$keywords
=
explode
(
' '
,
$params
[
'keywords'
]);
foreach
(
$keywords
as
$kv
)
{
$where_keywords
[]
=
[
'g.title|g.model|g.simple_desc|g.seo_title|g.seo_keywords|g.seo_keywords'
,
'like'
,
'%'
.
$kv
.
'%'
];
}
}
}
// 品牌
// 品牌
...
@@ -112,7 +117,9 @@ class SearchService
...
@@ -112,7 +117,9 @@ class SearchService
}
}
// 获取商品总数
// 获取商品总数
$result
[
'total'
]
=
GoodsService
::
CategoryGoodsTotal
(
$where
);
$result
[
'total'
]
=
(
int
)
Db
::
name
(
'Goods'
)
->
alias
(
'g'
)
->
join
([
'__GOODS_CATEGORY_JOIN__'
=>
'gci'
],
'g.id=gci.goods_id'
)
->
where
(
$where
)
->
where
(
function
(
$query
)
use
(
$where_keywords
)
{
$query
->
whereOr
(
$where_keywords
);
})
->
count
(
'DISTINCT g.id'
);
// 获取商品列表
// 获取商品列表
if
(
$result
[
'total'
]
>
0
)
if
(
$result
[
'total'
]
>
0
)
...
@@ -130,7 +137,16 @@ class SearchService
...
@@ -130,7 +137,16 @@ class SearchService
$page
=
max
(
1
,
isset
(
$params
[
'page'
])
?
intval
(
$params
[
'page'
])
:
1
);
$page
=
max
(
1
,
isset
(
$params
[
'page'
])
?
intval
(
$params
[
'page'
])
:
1
);
$n
=
20
;
$n
=
20
;
$m
=
intval
((
$page
-
1
)
*
$n
);
$m
=
intval
((
$page
-
1
)
*
$n
);
$goods
=
GoodsService
::
CategoryGoodsList
([
'where'
=>
$where
,
'm'
=>
$m
,
'n'
=>
$n
,
'order_by'
=>
$order_by
]);
// 查询数据
$data
=
Db
::
name
(
'Goods'
)
->
alias
(
'g'
)
->
join
([
'__GOODS_CATEGORY_JOIN__'
=>
'gci'
],
'g.id=gci.goods_id'
)
->
field
(
'g.*'
)
->
where
(
$where
)
->
where
(
function
(
$query
)
use
(
$where_keywords
)
{
$query
->
whereOr
(
$where_keywords
);
})
->
group
(
'g.id'
)
->
order
(
$order_by
)
->
limit
(
$m
,
$n
)
->
select
();
// 数据处理
$goods
=
GoodsService
::
GoodsDataHandle
(
$data
);
// 返回数据
$result
[
'data'
]
=
$goods
[
'data'
];
$result
[
'data'
]
=
$goods
[
'data'
];
$result
[
'page_total'
]
=
ceil
(
$result
[
'total'
]
/
$n
);
$result
[
'page_total'
]
=
ceil
(
$result
[
'total'
]
/
$n
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录