|
@@ -514,27 +514,31 @@ class NewsService implements NewsServiceInterface
|
|
|
*/
|
|
|
public function getWebsiteArticlett(array $data): array
|
|
|
{
|
|
|
-
|
|
|
- $category = WebsiteCategory::where('website_id', $data['website_id'])->select('category_id')->get();
|
|
|
- $category = $category->toArray();
|
|
|
- $result = [];
|
|
|
- if ($category) {
|
|
|
- $category_ids = [];
|
|
|
- foreach ($category as $val) {
|
|
|
- array_push($category_ids, $val['category_id']);
|
|
|
- }
|
|
|
- if (isset($data['placeid'])) {
|
|
|
- $placeid = $data['placeid'] - 1;
|
|
|
- $result = Article::where('status', 1)->where('level', $data['level'])->whereIn("catid", $category_ids)->orderBy("updated_at", "desc")->offset($placeid)->limit($data['pageSize'])->get();
|
|
|
- } else {
|
|
|
- $result = Article::where('status', 1)->where('level', $data['level'])->whereIn("catid", $category_ids)->orderBy("updated_at", "desc")->offset(0)->limit($data['pageSize'])->get();
|
|
|
- }
|
|
|
- if (empty($result)) {
|
|
|
- return Result::error("暂无头条新闻", 0);
|
|
|
- }
|
|
|
- return Result::success($result);
|
|
|
- } else {
|
|
|
- return Result::error("本网站下暂无相关栏目", 0);
|
|
|
+
|
|
|
+ $category = WebsiteCategory::where('website_id',$data['website_id'])->pluck('category_id');
|
|
|
+ $result= [];
|
|
|
+ if($category){
|
|
|
+ $placeid = isset($data['placeid']) && !empty($data['placeid']) ? $data['placeid'] - 1 : 0;
|
|
|
+ $where = [
|
|
|
+ 'status' => 1,
|
|
|
+ 'level' => $data['level'],
|
|
|
+ ];
|
|
|
+ $result = Article::where($where)
|
|
|
+ ->whereIn("catid", $category)
|
|
|
+ ->where(function ($query) use ($data) {
|
|
|
+ $query->whereRaw("JSON_CONTAINS(ignore_ids, '".intval($data['website_id'])."') = 0")
|
|
|
+ ->orWhereNull("ignore_ids");
|
|
|
+ })
|
|
|
+ ->orderBy("updated_at", "desc")
|
|
|
+ ->offset($placeid)
|
|
|
+ ->limit($data['pageSize'])
|
|
|
+ ->get();
|
|
|
+ if(empty($result)){
|
|
|
+ return Result::error("暂无头条新闻",0);
|
|
|
+ }
|
|
|
+ return Result::success($result);
|
|
|
+ }else{
|
|
|
+ return Result::error("本网站下暂无相关栏目",0);
|
|
|
}
|
|
|
}
|
|
|
/**
|
|
@@ -553,6 +557,8 @@ class NewsService implements NewsServiceInterface
|
|
|
'status' => 1,
|
|
|
'catid' => $catid,
|
|
|
];
|
|
|
+ $placeid = isset($data['placeid']) && !empty($data['placeid']) ? $data['placeid'] - 1 : 0;
|
|
|
+ // 级别:0:未分类 1:头条 2:轮播图 3:推荐图 4:热点资讯 5:资讯推荐
|
|
|
if ($data['level'] == 1) {
|
|
|
$level = [
|
|
|
0 => '1',
|
|
@@ -560,33 +566,41 @@ class NewsService implements NewsServiceInterface
|
|
|
2 => '5',
|
|
|
3 => '0',
|
|
|
];
|
|
|
- $result = Article::where($where)->whereIn('level', $level)->orderBy("updated_at", "desc")->limit($data['pagesize'])->get();
|
|
|
- } elseif ($data['level'] == 2) {
|
|
|
- $level = '2';
|
|
|
- $result = Article::where($where)->where('level', $level)->orderBy("updated_at", "desc")->limit($data['pagesize'])->get();
|
|
|
+ $result = Article::where($where)
|
|
|
+ ->whereIn('level',$level)
|
|
|
+ ->where(function ($query) use ($data) {
|
|
|
+ $query->whereRaw("JSON_CONTAINS(ignore_ids, '".intval($data['website_id'])."') = 0")
|
|
|
+ ->orWhereNull("ignore_ids");
|
|
|
+ })
|
|
|
+ ->orderBy("updated_at","desc")
|
|
|
+ ->offset($placeid)
|
|
|
+ ->limit($data['pagesize'])
|
|
|
+ ->get();
|
|
|
+ }elseif($data['level']==2){
|
|
|
+ $level='2';
|
|
|
+ $result = Article::where($where)
|
|
|
+ ->where('level',$level)
|
|
|
+ ->where(function ($query) use ($data) {
|
|
|
+ $query->whereRaw("JSON_CONTAINS(ignore_ids, '".intval($data['website_id'])."') = 0")
|
|
|
+ ->orWhereNull("ignore_ids");
|
|
|
+ })
|
|
|
+ ->orderBy("updated_at","desc")
|
|
|
+ ->offset($placeid)
|
|
|
+ ->limit($data['pagesize'])
|
|
|
+ ->get();
|
|
|
|
|
|
- } else {
|
|
|
- $level = '3';
|
|
|
- $result = Article::where($where)->where('level', $level)->orderBy("updated_at", "desc")->limit($data['pagesize'])->get();
|
|
|
- }
|
|
|
- $result = $result->toArray();
|
|
|
- if (!empty($result) && isset($data['placeid']) && !empty($data['placeid'])) {
|
|
|
- $placeid = $data['placeid'] - 1;
|
|
|
- if ($level == 2 || $level == 3) {
|
|
|
- $where = [
|
|
|
- 'level' => $level,
|
|
|
- ];
|
|
|
- $result = Article::where($where)
|
|
|
- ->orderBy("updated_at", "desc")
|
|
|
- ->offset($placeid)
|
|
|
- ->limit($data['pagesize'])->get();
|
|
|
- } else {
|
|
|
- $result = Article::where($where)
|
|
|
- ->whereIn('level', $level)
|
|
|
- ->offset($placeid)
|
|
|
- ->orderBy("updated_at", "desc")
|
|
|
- ->limit($data['pagesize'])->get();
|
|
|
- }
|
|
|
+ }else{
|
|
|
+ $level='3';
|
|
|
+ $result = Article::where($where)
|
|
|
+ ->where('level',$level)
|
|
|
+ ->where(function ($query) use ($data) {
|
|
|
+ $query->whereRaw("JSON_CONTAINS(ignore_ids, '".intval($data['website_id'])."') = 0")
|
|
|
+ ->orWhereNull("ignore_ids");
|
|
|
+ })
|
|
|
+ ->orderBy("updated_at","desc")
|
|
|
+ ->offset($placeid)
|
|
|
+ ->limit($data['pagesize'])
|
|
|
+ ->get();
|
|
|
}
|
|
|
if (empty($result)) {
|
|
|
return Result::error("此栏目暂无相关新闻", 0);
|
|
@@ -598,12 +612,16 @@ class NewsService implements NewsServiceInterface
|
|
|
return Result::success($result);
|
|
|
|
|
|
}
|
|
|
-/**
|
|
|
- *获取新闻列表
|
|
|
- * @param array $data
|
|
|
- * @return array
|
|
|
- */
|
|
|
- public function getWebsiteArticleList(array $data): array
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ *获取新闻列表
|
|
|
+ * @param array $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getWebsiteArticleList(array $data): array
|
|
|
{
|
|
|
$where[] = ['status', '=', 1];
|
|
|
if (isset($data['keyword']) && !empty($data['keyword'])) {
|
|
@@ -622,7 +640,6 @@ class NewsService implements NewsServiceInterface
|
|
|
}
|
|
|
}
|
|
|
// return Result::success($where);
|
|
|
-
|
|
|
$rep = Article::where(function ($query) use ($where) {
|
|
|
foreach ($where as $condition) {
|
|
|
if ($condition[1] === 'in') {
|
|
@@ -632,10 +649,14 @@ class NewsService implements NewsServiceInterface
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
- ->orderBy("updated_at", "desc")
|
|
|
- ->limit($data['pageSize'])
|
|
|
- ->offset(($data['page'] - 1) * $data['pageSize'])
|
|
|
- ->get();
|
|
|
+ ->where(function ($query) use ($data) {
|
|
|
+ $query->whereRaw("JSON_CONTAINS(ignore_ids, '".intval($data['website_id'])."') = 0")
|
|
|
+ ->orWhereNull("ignore_ids");
|
|
|
+ })
|
|
|
+ ->orderBy("updated_at", "desc")
|
|
|
+ ->limit($data['pageSize'])
|
|
|
+ ->offset(($data['page'] - 1) * $data['pageSize'])
|
|
|
+ ->get();
|
|
|
|
|
|
$count = Article::where(function ($query) use ($where) {
|
|
|
foreach ($where as $condition) {
|
|
@@ -669,9 +690,14 @@ class NewsService implements NewsServiceInterface
|
|
|
'article.id' => $data['id'],
|
|
|
'article.status' => 1,
|
|
|
];
|
|
|
- $result = Article::where($where)->leftJoin("article_data", "article.id", "article_data.article_id")->first();
|
|
|
- if (empty($result)) {
|
|
|
- return Result::error("查询失败", 0);
|
|
|
+ $result = Article::where($where)->leftJoin("article_data","article.id","article_data.article_id")
|
|
|
+ ->where(function ($query) use ($data) {
|
|
|
+ $query->whereRaw("JSON_CONTAINS(ignore_ids, '".intval($data['website_id'])."') = 0")
|
|
|
+ ->orWhereNull("ignore_ids");
|
|
|
+ })
|
|
|
+ ->first();
|
|
|
+ if(empty($result)){
|
|
|
+ return Result::error("暂无此新闻!",0);
|
|
|
}
|
|
|
$category = WebsiteCategory::where('website_id', $data['website_id'])->where(['category_id' => $result['catid']])->first();
|
|
|
if (empty($category)) {
|
|
@@ -924,6 +950,53 @@ class NewsService implements NewsServiceInterface
|
|
|
return Result::success($result);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 前端-搜索新闻列表
|
|
|
+ * @param array $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function selectWebsiteArticle(array $data): array
|
|
|
+ {
|
|
|
+ $where = [];
|
|
|
+ // 初始化查询构造器
|
|
|
+ $category = WebsiteCategory::where('website_id',$data['website_id'])->pluck('category_id');
|
|
|
+ $query = Article::where('status', 1)
|
|
|
+ ->whereIn('catid', $category)
|
|
|
+ ->where(function ($query) use ($data) {
|
|
|
+ $query->where(function ($subQuery) use ($data) {
|
|
|
+ $subQuery->whereRaw("JSON_CONTAINS(ignore_ids, '".intval($data['website_id'])."') = 0");
|
|
|
+ })->orWhereNull("ignore_ids");
|
|
|
+ });
|
|
|
+ // return Result::success($all_articles);
|
|
|
+ // 检查是否存在 cityid 参数
|
|
|
+ if (isset($data['cityid']) && !empty($data['cityid'])) {
|
|
|
+ $query->whereRaw("JSON_CONTAINS(city_arr_id, '".intval($data['cityid'])."')");
|
|
|
+ }
|
|
|
+ // 检查是否存在 department_id 参数
|
|
|
+ if (isset($data['department_id']) && !empty($data['department_id'])) {
|
|
|
+ $query->whereRaw("JSON_CONTAINS(department_arr_id, '".intval($data['department_id'])."')");
|
|
|
+ }
|
|
|
+ // 检查是否存在 keyword 参数
|
|
|
+ if (isset($data['keyword']) && !empty($data['keyword'])) {
|
|
|
+ $query->where('title', 'like', '%'.$data['keyword'].'%');
|
|
|
+ }
|
|
|
+ // 计算总数
|
|
|
+ $count = $query->count();
|
|
|
+ // 分页查询
|
|
|
+ $articles = $query->orderBy("updated_at", "desc")
|
|
|
+ ->limit($data['pageSize'])
|
|
|
+ ->offset(($data['page'] - 1) * $data['pageSize'])
|
|
|
+ ->get()->all();
|
|
|
+ if (empty($articles)) {
|
|
|
+ return Result::error("没有符合条件的资讯数据");
|
|
|
+ }
|
|
|
+ $data = [
|
|
|
+ 'rows' => $articles,
|
|
|
+ 'count' => $count
|
|
|
+ ];
|
|
|
+ return Result::success($data);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 验证导航名称是否重复
|
|
|
* @return void
|