KunWeb/ciyon/web/admin/www/list_art.php

281 lines
12 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace web\admin\www;
class list_art {
static function setwhere($db, $post, $rsuser) {
$query = $post->get('query', array());
$csql = new \ciy\sql('www_list_art');
$csql->where('id like', objstr($query, 'id'));
$val = objstr($query, 'cateid');
if (!empty($val)) {
$csqlt = new \ciy\sql('www_list_cate');
$csqlt->where('name like', $val);
$trow = $db->getone($csqlt);
if (is_array($trow)) {
$csql->where('cateid', $trow['id']);
$query['cateid'] = $trow['name'];
} else {
$csql->where('cateid=0');
}
} else
$csql->where('cateid', get('_cateid'));
$csql->where('clickcnt like', objstr($query, 'clickcnt'));
$csql->where('name like', objstr($query, 'name'));
$csql->where('keyw like', objstr($query, 'keyw'));
$csql->wheredaterange('uptimes', objstr($query, 'uptimes'));
$order = objstr($query, 'order', 'id desc');
$csql->order($order);
$query['order'] = $order;
return [$query, $csql];
}
public static function json_list() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
list($where, $csql) = self::setwhere($db, $post, $rsuser);
$csql->column('!descs,content', $db->getraw('show full fields from www_list_art'));
$pageno = $post->getint('pageno', 1);
$pagecount = $post->getint('pagecount', 10);
$csql->limit($pageno, $pagecount);
$mainrowcount = $post->getint('count');
$mrows = $db->get($csql, $mainrowcount);
if ($mrows === false)
return errjson($db->error);
$ret = array('searchwhere' => $where, 'pageno' => $pageno, 'pagecount' => $pagecount, 'count' => $mainrowcount, 'list' => $mrows);
if ($post->getbool('field')) {
$field = array();
$fshow = $db->getfield($field, 'www_list_art');
foreach ($field as $fr => $v) {
if (get('_' . $fr))
$field[$fr]['c'] = ',' . $field[$fr]['c'];
}
$fshow = fieldadd($fshow, $field, 0, '_btn', '操作');
$ret['field'] = $field;
$ret['fshow'] = $fshow;
}
if ($post->getbool('once')) {
$ret['once'] = true;
$input = array();
$input[] = array('type' => 'input', 'form' => 'id', 'name' => 'ID', 'prop' => ' style="width:8em;"');
if (!get('_cateid'))
$input[] = array('type' => 'input', 'form' => 'cateid', 'name' => '所属栏目', 'prop' => ' style="width:8em;"');
$input[] = array('type' => 'input', 'form' => 'clickcnt', 'name' => '点击量', 'prop' => ' style="width:8em;"');
$input[] = array('type' => 'input', 'form' => 'name', 'name' => '主标题', 'prop' => ' style="width:8em;"');
$input[] = array('type' => 'input', 'form' => 'keyw', 'name' => '关键词', 'prop' => ' style="width:8em;"');
$input[] = array('type' => 'daterange', 'form' => 'uptimes', 'name' => '更新时间');
$ret['searchinput'] = $input;
$csql = (new \ciy\sql('www_list_cate'))->column('id,name');
$ret['www_list_cate'] = $db->get($csql);
}
return succjson($ret);
}
public static function json_getdata() {
global $db;
$rsuser = verifyfast();
$post = new \ciy\post();
$id = $post->getint('id');
$act = $post->get('act');
if ($id > 0) {
$csql = new \ciy\sql('www_list_art');
$csql->where('id', $id);
$mrow = $db->getone($csql);
if (!is_array($mrow))
return errjson('数据不存在');
if ($act == 'view' || $act == 'review') {
}
} else {
$mrow = array();
}
$ret['data'] = $mrow;
if ($act == 'edit') {
}
return succjson($ret);
}
public static function json_update() {
global $db;
$rsuser = verifyfast();
//if (nopower($db, $rsuser['id'], 'p u'))
// return errjson('您未被授权操作');
$post = new \ciy\post();
//$db->trace($post->get('_pf'), $rsuser);
$id = $post->getint('id');
$cateid = $post->getint('cateid');
$clickcnt = $post->getint('clickcnt');
$icon = $post->get('icon');
$name = $post->get('name');
$seotitle = $post->get('seotitle');
$keyw = $post->get('keyw');
$author = $post->get('author');
$descs = $post->get('descs');
$content = $post->get('content');
$csort = $post->getint('csort');
$vadmin = $post->getint('vadmin');
if ($cateid == 0)
return errjson('请填写所属栏目');
if (empty($name))
return errjson('请填写主标题');
if (empty($keyw))
return errjson('请填写关键词');
if ($content == '[MD]')
return errjson('请填写内容');
$datarow = null;
if ($id > 0) {
$csql = new \ciy\sql('www_list_art');
$csql->where('id', $id);
$datarow = $db->getone($csql);
if (!is_array($datarow))
return errjson('数据不存在');
}
try {
$db->begin();
$updata = array();
$updata['cateid'] = $cateid;
$updata['clickcnt'] = $clickcnt;
$updata['icon'] = $icon;
$updata['name'] = $name;
$updata['seotitle'] = $seotitle;
$updata['keyw'] = $keyw;
$updata['author'] = $author;
$updata['descs'] = $descs;
$updata['content'] = $content;
$updata['csort'] = $csort;
$updata['uptimes'] = tostamp();
$updata['vadmin'] = $vadmin;
if ($id > 0) {
$csql = new \ciy\sql('www_list_art'); //update
$csql->where('id', $id);
if ($db->update($csql, $updata) === false)
throw new \Exception('更新失败:' . $db->error);
} else {
$updatapre = array();
$updatapre['cateid'] = $cateid;
$updatapre['icon'] = $icon;
$updatapre['name'] = $name;
$updatapre['seotitle'] = $seotitle;
$updatapre['keyw'] = $keyw;
$updatapre['author'] = $author;
$updatapre['descs'] = $descs;
$updatapre['content'] = $content;
$updatapre['vadmin'] = $rsuser['id'];
$updatapre['preartstatus'] = 100;
$updatapre['uptimes'] = tostamp();
$csql = new \ciy\sql('www_list_preart'); //insert
if ($db->insert($csql, $updatapre) === false)
throw new \Exception('新增preart失败:' . $db->error);
$id = $db->insert_id();
$updata['id'] = $id;
$csql = new \ciy\sql('www_list_art'); //insert
if ($db->insert($csql, $updata) === false)
throw new \Exception('新增art失败:' . $db->error);
}
$updata['id'] = $id;
//savelogdb($db, $rsuser['id'], 'www_list_art', $datarow, $updata);
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
savelogfile('err_db', $ex->getMessage());
return errjson($ex->getMessage());
}
$ret['data'] = $updata;
return succjson($ret);
}
public static function json_del() {
global $db;
$rsuser = verifyfast();
//if (nopower($db, $rsuser['id'], 'p d'))
// return errjson('您未被授权操作');
$post = new \ciy\post();
//$db->trace($post->get('_pf'), $rsuser);
$ids = $post->get('ids');
if (empty($ids))
return errjson('请选择至少一条');
$csql = new \ciy\sql('www_list_art');
$csql->where('id in', $ids);
$mrows = $db->get($csql);
$vids = array();
try {
$db->begin();
foreach ($mrows as $mrow) {
$delid = $mrow['id'];
//delcheck($db, $delid, 'tablexx', 'xxid', '管理员');
//delall($db, $delid, 'tablexx', 'xxid', '运动员'); //deltimeall
delme($db, $delid, 'www_list_art');
savelogdb($db, $rsuser['id'], 'www_list_art', $mrow, null);
$vids[] = $delid;
}
$db->commit();
} catch (\Exception $ex) {
$db->rollback();
savelogfile('err_db', $ex->getMessage());
return errjson($ex->getMessage());
}
$ret['ids'] = $vids;
return succjson($ret);
}
public static function json_exportxls() {
global $db;
$rsuser = verifyfast();
//if (nopower($db, $rsuser['id'], 'p e'))
// return errjson('您未被授权操作');
$post = new \ciy\post();
list($where, $csql) = self::setwhere($db, $post, $rsuser);
$mrows = $db->get($csql);
if (count($mrows) > 10000)
return errjson('将导出' . count($mrows) . '条不建议超过1万条请筛选缩小范围');
$fields = array();
$fields[] = array('style' => 'c', 'width' => 60, 'field' => 'id', 'name' => '行码');
$fields[] = array('style' => 'l', 'width' => 100, 'field' => 'cateid', 'name' => '所属栏目');
$fields[] = array('style' => 'r', 'width' => 100, 'field' => 'clickcnt', 'name' => '点击量');
$fields[] = array('style' => 'l', 'width' => 300, 'field' => 'icon', 'name' => '缩略图');
$fields[] = array('style' => 'l', 'width' => 150, 'field' => 'name', 'name' => '主标题');
$fields[] = array('style' => 'l', 'width' => 150, 'field' => 'seotitle', 'name' => 'SEO标题');
$fields[] = array('style' => 'l', 'width' => 150, 'field' => 'keyw', 'name' => '关键词');
$fields[] = array('style' => 'l', 'width' => 150, 'field' => 'author', 'name' => '作者');
$fields[] = array('style' => 'l', 'width' => 150, 'field' => 'descs', 'name' => '摘要');
$fields[] = array('style' => 'c', 'width' => 100, 'field' => 'csort', 'name' => '排序');
$fields[] = array('style' => 'l', 'width' => 100, 'field' => 'uptimes', 'name' => '更新时间');
$fields[] = array('style' => 'l', 'width' => 100, 'field' => 'vadmin', 'name' => '操作人');
$code_cateid = $db->get((new \ciy\sql('www_list_cate'))->column('id,name'));
$code_vadmin = getcatas($db, 'adminuser');
$datas = array();
foreach ($mrows as $mrow) {
$dat = array();
foreach ($fields as $field) {
$field = $field['field'];
$val = isset($mrow[$field]) ? $mrow[$field] : '';
if ($field == 'id')
$val = enid($val);
if ($field == 'cateid')
$val = ccode($code_cateid, $val);
if ($field == 'uptimes')
$val = ($val <= 0 ? '--' : date('Y-m-d H:i', $val));
if ($field == 'vadmin')
$val = ccode($code_vadmin, $val);
$dat[] = $val;
}
$datas[] = $dat;
}
$param = array();
$param['field'] = $fields;
$param['data'] = $datas;
$param['sheetname'] = '数据报表';
$param['titleheight'] = '25'; //列头高度
$param['landscape'] = true; //横向打印
$param['fixtopage'] = true; //打印整个工作表
$param['toptitle'] = '已发文章数据报表';
$str = \ciy\excel::general_excel_xml($param);
$filename = '';
if (empty($filename))
$filename = date('Y-m-d_H-i-s') . rand(1000, 9999);
$filename .= '.xls';
file_put_contents(PATH_WEB . 'ud/tmp/' . $filename, $str);
return succjson(array('url' => '/ud/tmp/' . $filename));
}
}