You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
225 lines
7.7 KiB
225 lines
7.7 KiB
<?php
|
|
|
|
namespace app\news\controller\admin;
|
|
|
|
|
|
|
|
use app\news\model\NewsCategory;
|
|
use app\news\model\NewsCategoryRelation;
|
|
use app\news\model\NewsInteractive;
|
|
use think\facade\Db;
|
|
use think\facade\View;
|
|
|
|
class News extends Base
|
|
{
|
|
/**
|
|
* 新闻分类
|
|
*/
|
|
public function category()
|
|
{
|
|
$where = [
|
|
'uid' => UID,
|
|
];
|
|
$integral_category_model = new NewsCategory();
|
|
$dataList = $integral_category_model->getAllData($where, '*', 'sort desc');
|
|
View::assign('dataList', $dataList);
|
|
|
|
return View::fetch();
|
|
}
|
|
|
|
/**
|
|
* 添加分类
|
|
*/
|
|
public function categoryadd()
|
|
{
|
|
$news_category_model = new NewsCategory();
|
|
if (request()->isPost()) {
|
|
$data = input('post.');
|
|
$data['uid'] = UID;
|
|
$data['publish_time'] = time();
|
|
$res = $news_category_model->dataUpdate($data);
|
|
if (!$res) {
|
|
return sendErrorMessage();
|
|
}
|
|
return sendSuccessMessage();
|
|
} else {
|
|
$id = input('param.id', 0);
|
|
$data = $news_category_model->getOneData(['id' => $id]);
|
|
View::assign('data', $data);
|
|
return View::fetch('categoryadd');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 修改分类
|
|
*/
|
|
public function categoryupdate()
|
|
{
|
|
return $this->categoryadd();
|
|
}
|
|
|
|
/**
|
|
* 新闻列表
|
|
*/
|
|
public function news()
|
|
{
|
|
$search = input('get.');
|
|
autoSearch(['time', 'keyword', 'category_id', 'is_publish'], $search);
|
|
|
|
$news_model = new \app\news\model\News();
|
|
$news_category_model = new NewsCategory();
|
|
$news_category_relation = new NewsCategoryRelation();
|
|
$news_interactive_model = new NewsInteractive();
|
|
|
|
$where = [['uid','=',UID]];
|
|
$hasWhere = [];
|
|
if ($search['time']) {
|
|
$time = explode('-', $search['time']);
|
|
$where[] = ['create_time','between time', [$time[0], $time[1]]];
|
|
}
|
|
|
|
if ($search['keyword']) {
|
|
$where[] = ['name','like', '%' . $search['keyword'] . '%'];
|
|
}
|
|
|
|
if ($search['is_publish'] !== '') {
|
|
$where []= ['is_publish','=',$search['is_publish']];
|
|
}
|
|
|
|
if ($search['category_id'] != '') {
|
|
$hasWhere[] = ['category_id','=',$search['category_id']];
|
|
}
|
|
$where = $news_model->whereChange($where);
|
|
$dataList = $news_model::hasWhere('categoryRelation',$hasWhere)
|
|
->where($where)
|
|
->order('id desc')
|
|
->paginate([
|
|
'list_rows' => 15,
|
|
'page' => array_key_exists("page", $search) ? (string)$search['page'] : "1",
|
|
'query' => $search
|
|
], false)->each(function ($item, $key)use($news_interactive_model,$news_category_relation,$news_category_model) {
|
|
$item['collect_count'] = $news_interactive_model->getNumber(['uid' => UID, 'type' => 2, 'info_id' => $item['id']]);
|
|
$category_id = $news_category_relation->where(['news_id' => $item['id']])->column('category_id');
|
|
if (!empty($category_id)) {
|
|
$category_name = $news_category_model->where([['id', 'IN', $category_id]])->column('name');
|
|
$item['category_name'] = implode(',', array_unique($category_name));
|
|
} else {
|
|
$item['category_name'] = "";
|
|
}
|
|
return $item;
|
|
});
|
|
|
|
$categoryList = $news_category_model->getAllData(['uid' => UID], 'id,name', 'sort desc');
|
|
|
|
View::assign('search', $search);
|
|
View::assign('dataList', $dataList);
|
|
View::assign('categoryList', $categoryList);
|
|
return View::fetch();
|
|
}
|
|
|
|
/**
|
|
* 新闻添加
|
|
*/
|
|
public function newsadd()
|
|
{
|
|
$news_model = new \app\news\model\News();
|
|
$news_category_relation_model = new NewsCategoryRelation();
|
|
if (request()->isPost()) {
|
|
$data = input('post.');
|
|
if ($data['name'] == "") {
|
|
return sendErrorMessage(1,'请填写新闻标题');
|
|
}
|
|
|
|
$data['is_publish'] = array_key_exists('is_publish', $data) ? $data['is_publish'] : 0;
|
|
$data['is_recommend'] = array_key_exists('is_recommend', $data) ? $data['is_recommend'] : 0;
|
|
$data['is_top'] = array_key_exists('is_top', $data) ? $data['is_top'] : 0;
|
|
if ($data['is_publish'] == 1) {
|
|
$data['publish_time'] = time();
|
|
}
|
|
$data['uid'] = UID;
|
|
|
|
Db::startTrans();
|
|
$news_id = $news_model->dataUpdate($data);
|
|
if (!$news_id) {
|
|
Db::rollback();
|
|
return sendErrorMessage();
|
|
}
|
|
if (isset($data['id']) && $data['id'] != "") {
|
|
$where = ['news_id' => $data['id']];
|
|
$insert = array();
|
|
if (array_key_exists('category_id', $data)) {
|
|
foreach ($data['category_id'] as $value) {
|
|
$temp = array(
|
|
'category_id' => $value,
|
|
'news_id' => $data['id'],
|
|
'create_time' => time()
|
|
);
|
|
$insert[] = $temp;
|
|
}
|
|
}
|
|
$res = $news_category_relation_model->where($where)->delete();
|
|
if ($res === false) {
|
|
Db::rollback();
|
|
return sendErrorMessage();
|
|
}
|
|
if (!empty($insert)) {
|
|
$res2 = $news_category_relation_model->insertAll($insert);
|
|
if (!$res2) {
|
|
Db::rollback();
|
|
return sendErrorMessage();
|
|
}
|
|
}
|
|
Db::commit();
|
|
return sendSuccessMessage();
|
|
} else {
|
|
$insert = array();
|
|
if (array_key_exists('category_id', $data)) {
|
|
foreach ($data['category_id'] as $value) {
|
|
$temp = array(
|
|
'category_id' => $value,
|
|
'news_id' => $news_id,
|
|
'create_time' => time()
|
|
);
|
|
$insert[] = $temp;
|
|
}
|
|
}
|
|
if (!empty($insert)) {
|
|
$res2 = $news_category_relation_model->insertAll($insert);
|
|
if (!$res2) {
|
|
Db::rollback();
|
|
return sendErrorMessage();
|
|
}
|
|
}
|
|
Db::commit();
|
|
return sendSuccessMessage();
|
|
}
|
|
} else {
|
|
$id = input('param.id', 0);
|
|
$data = $news_model->getOneData(['id' => $id]);
|
|
// dump($data->toArray());exit();
|
|
//新闻分类
|
|
$where = [
|
|
'uid' => UID
|
|
];
|
|
$news_category_model = new NewsCategory();
|
|
$categoryList = $news_category_model->getAllData($where, 'id,name', 'sort desc');
|
|
//查询商品关联分类
|
|
$category_id = $news_category_relation_model->where('news_id', $id)->column('category_id');
|
|
if (empty($category_id)) {
|
|
$category_id = [];
|
|
}
|
|
foreach ($categoryList as $key => &$value) {
|
|
if (in_array($value['id'], $category_id)) {
|
|
$value['is_select'] = 1;
|
|
} else {
|
|
$value['is_select'] = 0;
|
|
}
|
|
}
|
|
|
|
View::assign('categoryList', $categoryList);
|
|
View::assign('data', $data);
|
|
return View::fetch();
|
|
}
|
|
}
|
|
|
|
} |