<?php
namespace app\admin\controller;
use app\admin\model\NewsModel;
use app\admin\model\LabelModel;
use app\admin\model\ClassModel;
use app\admin\model\NewsLabelModel;
use app\admin\logic\NewsLogic;
class News extends Base
{
public function index()
{
$news = new NewsModel();
$logic = new NewsLogic();
$type = input("param.type/d");
$pagenum = input("param.page/d") ;
$pagesize = input("param.limit/d");
$status = input("param.status/d");
$title = input("param.title/s");
$class = input("param.class/d");
$label = input("param.label/d");
if ($type == 1) {
$order = "news_id asc";
$pagenum = $pagenum < 1 ? 1: $pagenum;
$pagesize = $pagesize < 1 ? 10: $pagesize;
$start = ($pagenum - 1) * $pagesize;
$size = $pagesize;
$result = $logic->get_news_list($title, $class, $label, $status, $order, $start, $size);
$data = array();
$data['code'] = '0';
$data['msg'] = '';
$data['count'] = $result['sum'];
$data['data'] = $result['list'];
echo json_encode($data);
exit;
}
$category = $logic->get_news_class();
$labels = $logic->get_news_label();
$data = [
'classes' => $category,
'labels' => $labels,
'status' => $status,
];
return $this->fetch('index', $data);
}
public function edit()
{
$news = new NewsModel();
$label = new LabelModel();
$newslabel = new NewsLabelModel();
$logic = new NewsLogic();
$flag = input("param.flag/s");
$news_id = input("param.news_id/d");
if (request()->isAjax()) {
$data = input("param.");
$res = $logic->add_news($data, $flag);
echo json_encode($res);
exit;
}
$category = $logic->get_news_class();
$data = [];
$data['category'] = $category;
if ($flag == "add") {
return $this->fetch('add', $data);
}elseif($flag == "edit"){
$result = $news::get($news_id);
$data['data'] = $result;
$where = ['news_id' => $news_id];
$labels = $newslabel->get_list($where);
if (!empty($labels)) {
$label_arr = [];
foreach ($labels as $k => $v) {
$label_arr[] = $v['label_id'];
}
$where = "label_id IN (".implode(",", $label_arr).")";
$res = $label->get_list($where);
$data['labelstr'] = implode(",", $label_arr);
$data['labels'] = $res;
}
return $this->fetch('edit', $data);
}
}
public function delnews()
{
$news = new NewsModel();
$id = input("param.news_id/d");
$ids = input("param.ids");
$status = input("param.status/d");
if (!empty($id)) {
if ($status == 3) {
$res = $news->del_data(['news_id' => $id]);
if (isset($res['msg'])) {
echo json_encode($res);exit;
}
}else{
$where = [
'news_id' => $id,
'status' => 3,
];
$res = $news->save_data($where);
if (isset($res['msg'])) {
echo json_encode($res);exit;
}
}
}
if (!empty($ids)) {
$ids = json_decode($ids);
if ($status == 3) {
$where = "news_id IN (".implode(",", $ids).")";
$res = $news->del_data($where);
if (isset($res['msg'])) {
echo json_encode($res);exit;
}
}else{
$cond = [];
foreach ($ids as $k => $v) {
$arr = [
'news_id' => $v,
'status' => 3,
];
$cond[] = $arr;
}
$res = $news->edit_data_bantch($cond);
if (isset($res['msg'])) {
echo json_encode($res);exit;
}
}
}
if ($status == 3) {
echo json_encode(msg_success("删除成功!"));exit;
}else{
echo json_encode(msg_success("移至回收站!"));exit;
}
}
public function classes()
{
$class = new ClassModel();
$type = input("param.type/d");
$pagenum = input("param.page/d") ;
$pagesize = input("param.limit/d");
if ($type == 1) {
$pagenum = $pagenum < 1 ? 1: $pagenum;
$pagesize = $pagesize < 1 ? 10: $pagesize;
$start = ($pagenum - 1) * $pagesize;
$size = $pagesize;
$where = [];
$order = "class_id asc";
$fields = "*";
$sum = $class->get_count($where);
$res = $class->get_list_page($where, $order, $fields, $start, $size);
$data = array();
$data['code'] = '0';
$data['msg'] = '';
$data['count'] = $sum;
$data['data'] = $res;
echo json_encode($data);
exit;
}
return $this->fetch('class');
}
public function edit_class()
{
$flag = input("param.flag/s");
$class_id = input("param.class_id/d");
$class = new ClassModel();
if (request()->isAjax()) {
$data = input("param.");
$data['status'] = empty($data['status'])? -1: $data['status'];
if ($flag == "add") {
$res = $class->insert_data($data) if (isset($res['msg'])){
echo json_encode($res);
exit;
}
}elseif($flag == "edit"){
$res = $class->save_data($data) if (isset($res['msg'])){
echo json_encode($res);
exit;
}
}
echo json_encode(msg_success("编辑成功"));
exit;
}
$data = [];
if ($flag == "add") {
return $this->fetch('class_add');
}elseif($flag == "edit"){
$result = $class::get($class_id);
$data['data'] = $result;
return $this->fetch('class_edit', $data);
}
}
public function delclass()
{
$class = new ClassModel();
$id = input("param.class_id/d");
$ids = input("param.ids");
if (!empty($id)) {
$where = ['class_id' => $id];
}
if (!empty($ids)) {
$ids = json_decode($ids);
$where = "class_id IN (".implode(",", $ids).")";
}
$res = $class->del_data($where);
if (isset($res['status'])) {
echo json_encode($res);
}else{
echo json_encode(msg_success("删除成功"));
}
exit;
}
public function label_list()
{
$label = new LabelModel();
$val = input("param.label/s");
if (request()->isAjax()) {
$where = ['status' => 1];
$list = $label->get_list($where);
if (!empty($val)) {
$arr = explode(",", $val);
foreach ($list as $k => $v) {
if (in_array($v['label_id'], $arr)) {
$list[$k]['select'] = 1;
}
}
}
echo json_encode($list);exit;
}
}
public function label_select()
{
$label = new LabelModel();
$val = input("param.label/a");
if (request()->isAjax()) {
$str = implode(",", $val);
$where = "label_id in (".$str.")";
$list = $label->get_list($where);
$data = [];
$data['str'] = $str;
$data['list'] = $list;
echo json_encode($data);exit;
}
}
public function label()
{
$label = new LabelModel();
$type = input("param.type/d");
$pagenum = input("param.page/d") ;
$pagesize = input("param.limit/d");
if ($type == 1) {
$pagenum = $pagenum < 1 ? 1: $pagenum;
$pagesize = $pagesize < 1 ? 10: $pagesize;
$start = ($pagenum - 1) * $pagesize;
$size = $pagesize;
$where = [];
$order = "label_id asc";
$fields = "*";
$sum = $label->get_count($where);
$res = $label->get_list_page($where, $order, $fields, $start, $size);
$data = array();
$data['code'] = '0';
$data['msg'] = '';
$data['count'] = $sum;
$data['data'] = $res;
echo json_encode($data);
exit;
}
return $this->fetch('label');
}
public function edit_label()
{
$flag = input("param.flag/s");
$label_id = input("param.label_id/d");
$label = new LabelModel();
if (request()->isAjax()) {
$data = input("param.");
$data['status'] = empty($data['status'])? -1: $data['status'];
if ($flag == "add") {
$res = $label->insert_data($data) if (isset($res['msg'])){
echo json_encode($res);
exit;
}
}elseif($flag == "edit"){
$res = $label->save_data($data) if (isset($res['msg'])){
echo json_encode($res);
exit;
}
}
echo json_encode(msg_success("编辑成功"));
exit;
}
$data = [];
if ($flag == "add") {
return $this->fetch('label_add');
}elseif($flag == "edit"){
$result = $label::get($label_id);
$data['data'] = $result;
return $this->fetch('label_edit', $data);
}
}
public function delabel()
{
$label = new LabelModel();
$id = input("param.label_id/d");
$ids = input("param.ids");
if (!empty($id)) {
$where = ['label_id' => $id];
}
if (!empty($ids)) {
$ids = json_decode($ids);
$where = "label_id IN (".implode(",", $ids).")";
}
$res = $label->del_data($where);
if (isset($res['status'])) {
echo json_encode($res);
}else{
echo json_encode(msg_success("删除成功"));
}
exit;
}
}
?>