|
@@ -58,7 +58,31 @@ class ArticleService extends BaseService
|
|
|
{
|
|
{
|
|
|
$where = ['a.mark' => 1];
|
|
$where = ['a.mark' => 1];
|
|
|
$status = isset($params['status']) ? $params['status'] : 0;
|
|
$status = isset($params['status']) ? $params['status'] : 0;
|
|
|
- $type = isset($params['type']) ? $params['type'] : 0;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 处理type参数,支持单个值和数组类型
|
|
|
|
|
+ $type = isset($params['type']) ? $params['type'] : null;
|
|
|
|
|
+ if ($type !== null) {
|
|
|
|
|
+ // 如果是字符串"0"或数字0,转换为null(表示不过滤)
|
|
|
|
|
+ if ($type === '0' || $type === 0) {
|
|
|
|
|
+ $type = null;
|
|
|
|
|
+ } else if (is_string($type) && !is_array($type)) {
|
|
|
|
|
+ // 如果是字符串,尝试转换为数字
|
|
|
|
|
+ $type = is_numeric($type) ? (int)$type : null;
|
|
|
|
|
+ } else if (is_array($type)) {
|
|
|
|
|
+ // 如果是数组,确保所有元素都是数字类型,并过滤空值
|
|
|
|
|
+ $type = array_filter(array_map(function ($t) {
|
|
|
|
|
+ return is_numeric($t) ? (int)$t : null;
|
|
|
|
|
+ }, $type));
|
|
|
|
|
+ // 如果数组为空,设置为null
|
|
|
|
|
+ if (empty($type)) {
|
|
|
|
|
+ $type = null;
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 其他情况,转换为整数
|
|
|
|
|
+ $type = is_numeric($type) ? (int)$type : null;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
$cateId = isset($params['cate_id']) ? $params['cate_id'] : 0;
|
|
$cateId = isset($params['cate_id']) ? $params['cate_id'] : 0;
|
|
|
$articleCateType = isset($params['article_cate_type']) ? $params['article_cate_type'] : 0;
|
|
$articleCateType = isset($params['article_cate_type']) ? $params['article_cate_type'] : 0;
|
|
|
|
|
|
|
@@ -71,25 +95,26 @@ class ArticleService extends BaseService
|
|
|
->where($where)
|
|
->where($where)
|
|
|
->where(function ($query) use ($type) {
|
|
->where(function ($query) use ($type) {
|
|
|
if ($type && is_array($type)) {
|
|
if ($type && is_array($type)) {
|
|
|
|
|
+ // 数组类型使用 whereIn
|
|
|
$query->whereIn('a.type', $type);
|
|
$query->whereIn('a.type', $type);
|
|
|
} else if ($type) {
|
|
} else if ($type) {
|
|
|
|
|
+ // 单个值使用 where
|
|
|
$query->where('a.type', $type);
|
|
$query->where('a.type', $type);
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
- ->where(function ($query) use ($cateId,$articleCateType) {
|
|
|
|
|
- if ($articleCateType && $articleCateType!=1) {
|
|
|
|
|
- if($cateId>0){
|
|
|
|
|
|
|
+ ->where(function ($query) use ($cateId, $articleCateType) {
|
|
|
|
|
+ if ($articleCateType && $articleCateType != 1) {
|
|
|
|
|
+ if ($cateId > 0) {
|
|
|
$query->where('a.cate_id', $cateId);
|
|
$query->where('a.cate_id', $cateId);
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
$query->where('a.cate_id', '>', 0);
|
|
$query->where('a.cate_id', '>', 0);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- }else if($articleCateType==1){
|
|
|
|
|
|
|
+ } else if ($articleCateType == 1) {
|
|
|
$query->where('a.cate_id', 0);
|
|
$query->where('a.cate_id', 0);
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
->where(function ($query) use ($articleCateType) {
|
|
->where(function ($query) use ($articleCateType) {
|
|
|
- if ($articleCateType>1) {
|
|
|
|
|
|
|
+ if ($articleCateType > 1) {
|
|
|
$query->where('ac.type', $articleCateType);
|
|
$query->where('ac.type', $articleCateType);
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|