getDocumentList($type, $module, $search_more, $page_size, $current);
foreach ($doc_res as $k => $v) {
$doc_res[$k]['num'] = $k + 1 + ($current - 1) * $page_size;
}
// 获取总数
$total_page = $opera_document->getDocumentListCount($type, $module, $search_more);
$res = [];
if ($total_page > 0) {
$res['code'] = '0';
$res['info'] = '返回文档管理列表成功';
$res['list'] = $doc_res;
$res['count'] = $total_page;
$res['total_page'] = (string)ceil($total_page / $page_size);
$res['current'] = $current;
} else {
$res['code'] = '0';
$res['info'] = '没有符合条件的数据';
$res['list'] = array();
$res['count'] = '0';
$res['total_page'] = '0';
$res['current'] = $current;
}
return $res;
}
/**
* Function Description:查询已发布的模块的功能说明和系统简介文档(首页)
* Function Name: getInfo
* @return array|\yii\db\ActiveRecord[]
* @author 田玲菲
*/
public function getInfo()
{
$operaDocument = new OperaDocument();
$res = $operaDocument->getInfo();
foreach ($res as $k => $v2) {
if (isset($res[$k]['function'])) {
foreach ($res[$k]['function'] as &$v) {
$v['title'] = strip_tags($v['title']);
$v['content'] = strip_tags($v['content']);
if(isset($v['content']{200})){
$v['content'] = mb_substr($v['content'],0,200,'UTF-8').'...';
}
}
}
if (isset($res[$k]['system'])) {
foreach ($res[$k]['system'] as &$v) {
$v['title'] = strip_tags($v['title']);
$v['content'] = strip_tags($v['content']);
}
}
}
return $res;
}
/**
* Function Description:关键字高亮,不区分大小写
* Function Name: str_highlight
* @param $subject
* @param $keyword
* @param string $pre
* @param string $suf
* @return string
* @author 田玲菲
*/
public function str_highlight($subject,$keyword,$pre = '',$suf = ''){
if(empty($subject) || empty($keyword)){
return $subject;
}
$k_len = strlen($keyword);
if($k_len > strlen($subject)){
return $subject;
}
$keyword = strtolower($keyword);
$offset=0;
$return=array();
while (1) {
$sub = substr($subject, $offset, $k_len);
if(strlen($sub)<$k_len){
if($sub){
$return[]=$sub;
}
break;
}
if(strtolower($sub) == $keyword){
$return[]=$pre;
$return[]=$sub;
$return[]=$suf;
$offset+=$k_len;
}else{
$return[]=substr($subject, $offset,1);
$offset++;
}
}
return join('', $return);
}
/**
* Function Description:获取文章列表
* Function Name: getArticleList
* @param $type
* @param $module
* @param $search_more
* @param $page_size
* @param $current
* @return array
* @author 田玲菲
*/
public function getArticleList($type, $module, $search_more, $page_size, $current)
{
$opera_document = new OperaDocument();
//获取文档列表
$doc_res = $opera_document->getDocumentListReleased($type, $module, $search_more, $page_size, $current);
//剥去html和php标签
foreach ($doc_res as &$v) {
$v['content'] = strip_tags($v['content']);
if(isset($v['content']{200})){
$v['content'] = mb_substr($v['content'],0,200,'UTF-8').'...';
}
}
//搜索关键字变红
if (!empty($search_more)) {
// $replace_str = '' . $search_more . '';
// foreach ($doc_res as &$v) {
// $v['title'] = str_replace($search_more, $replace_str, $v['title']);
// $v['content'] = str_replace($search_more, $replace_str, $v['content']);
// }
foreach ($doc_res as &$v){
$v['title'] = $this->str_highlight($v['title'],$search_more);
$v['content'] = $this->str_highlight($v['content'],$search_more);
}
}
// 获取总数
$total_page = $opera_document->getDocumentListReleaseCount($type, $module, $search_more);
$res = [];
$base_area = new BaseArea();
$page_arr = $base_area->getPage($total_page, $page_size, $current);
$res['page_size_arr'] = [10, 30, 50, 100];
if ($total_page > 0) {
$res['code'] = '0';
$res['info'] = '返回文档列表成功';
$res['list'] = $doc_res;
$res['page']['current_page'] = $current;
$res['page']['total_row'] = $total_page;
$res['page']['page_size'] = $page_size;
$res['count'] = $total_page;
$res['total_page'] = (string)ceil($total_page / $page_size);
$res['page_arr'] = $page_arr;
$res['module'] = $module;
} else {
$res['code'] = '1';
$res['info'] = '没有符合条件的数据';
$res['list'] = array();
$res['count'] = '0';
$res['total_page'] = '0';
$res['page']['current_page'] = $current;
$res['page']['total_row'] = $total_page;
$res['page']['page_size'] = $page_size;
$res['count'] = $total_page;
$res['total_page'] = (string)ceil($total_page / $page_size);
$res['page_arr'] = $page_arr;
$res['module'] = $module;
}
return $res;
}
/**
* Function Description:根据id获取文章内容
* Function Name: getDocumentContent
* @param $id
* @return array|\yii\db\ActiveRecord[]
* @author 田玲菲
*/
public function getDocumentContent($id)
{
$operaDocument = new OperaDocument();
return $operaDocument->getDocumentContent($id);
}
/**
* Function Description:获取常见问题列表和内容
* Function Name: getCommonQuestion
* @return array|\yii\db\ActiveRecord[]
* @author 田玲菲
*/
public function getCommonQuestion()
{
$operaDocument = new OperaDocument();
$res = $operaDocument->getCommonQuestion();
foreach ($res as $k => $v2) {
if (isset($res[$k]['function'])) {
foreach ($res[$k]['function'] as &$v) {
$v['title'] = strip_tags($v['title']);
$v['content'] = strip_tags($v['content']);
}
}
if (isset($res[$k]['system'])) {
foreach ($res[$k]['system'] as &$v) {
$v['title'] = strip_tags($v['title']);
$v['content'] = strip_tags($v['content']);
}
}
}
return $res;
}
/**
* Function Description:增加文档的阅读次数
* Function Name: addSeeCount
* @param $id
* @return mixed
* @author 田玲菲
*/
public function addSeeCounts($id)
{
$operaDocument = new OperaDocument();
return $operaDocument->addSeeCount($id);
}
/**
* Function Description:删除文档
* Function Name: deleteDocument
* @param $id
* @return mixed
* @author 李健
*/
public function deleteDocument($id)
{
$operaDocument = new OperaDocument();
$res = $operaDocument->deleteDocument($id);
if (!$res) {
$json['code'] = '1';
$json['info'] = '删除文档失败';
} else {
$json['code'] = '0';
$json['info'] = '删除文档成功';
}
return $json;
}
/**
* Function Description:修改状态
* Function Name: changeStatus
* @param $id
* @return mixed
* @author 李健
*/
public function changeStatus($id)
{
$operaDocument = new OperaDocument();
$res = $operaDocument->changeStatus($id);
if (!$res) {
$json['code'] = '1';
$json['info'] = '修改失败';
} else {
$json['code'] = '0';
$json['info'] = '修改成功';
}
return $json;
}
/**
* Function Description:上传图片
* Function Name: uploadImg
* @param $pic
*
* @return string|void
*
* @author 李健
*/
public function uploadImg($pic)
{
// 允许的图片类型
$allowedExts = array("gif", "jpeg", "jpg", "png");
$extension = end(explode('.',$pic['name']));
if(!in_array($extension,$allowedExts)){
return;
}
if(!is_uploaded_file($pic['tmp_name'])) {
return ;
}
$upload_path = "http://". CS1_DOMAIN. "/upload/image/";
$name = sha1(microtime()) . "." . $extension;
if(move_uploaded_file($pic["tmp_name"],'upload/image/' . $name)){
$response['link'] = $upload_path.$name;
return json_encode($response);
}
}
/**
* Function Description:保存文档
* Function Name: saveDocument
* @param $type
* @param $module
* @param $sort
* @param $title
* @param $content
* @param $release_type
*
* @return mixed
*
* @author 李健
*/
public function saveDocument($type,$module,$sort,$title,$content,$release_type)
{
// 校验模块
if($type==3){
$json = $this->checkFunction($type,$module);
if($json['code']!=0){
return $json;
}
}
// 校验标题
$json = $this->checkTitle($title);
if($json['code']!=0){
return $json;
}
$opera_document = new OperaDocument();
$res = $opera_document->saveDocument($type,$module,$sort,$title,$content,$release_type);
if(!$res){
$json['code'] = 1;
$json['info'] = '保存文档失败';
} else {
$json['code'] = 0;
if($release_type==1){
$json['info'] = '保存并发布文档成功';
} else {
$json['info'] = '保存文档成功';
}
}
return $json;
}
/**
* Function Description:修改文档
* Function Name: updateDocument
* @param $id
* @param $type
* @param $module
* @param $sort
* @param $title
* @param $content
* @param $release_type
*
* @return mixed
*
* @author 李健
*/
public function updateDocument($id,$type,$module,$sort,$title,$content,$release_type)
{
// 校验模块
if($type==3){
$json = $this->checkFunction($type,$module,$id);
if($json['code']!=0){
return $json;
}
}
// 校验标题
$json = $this->checkTitle($title,$id);
if($json['code']!=0){
return $json;
}
$opera_document = new OperaDocument();
$res = $opera_document->updateDocument($id,$type,$module,$sort,$title,$content,$release_type);
if(!$res){
$json['code'] = 1;
$json['info'] = '修改保存文档失败';
} else {
$json['code'] = 0;
if($release_type==1){
$json['info'] = '修改并发布文档成功';
} else {
$json['info'] = '修改并保存文档成功';
}
}
return $json;
}
/**
* Function Description:检查功能说明是否存在
* Function Name: checkFunction
* @param $type
* @param $module
* @param $id
*
* @return array|null|\yii\db\ActiveRecord
*
* @author 李健
*/
public function checkFunction($type,$module,$id=0)
{
$opera_document = new OperaDocument();
$res = $opera_document->checkFunction($type,$module);
if($res){
if($id!=0 && $res['id'] == $id){
$res['code'] = 0;
} else {
$res['code'] = 1;
$res['info'] = '该模块功能说明已存在请勿重复添加';
}
} else {
$res['code'] = 0;
}
return $res;
}
/**
* Function Description:校验标题唯一性
* Function Name: checkTitle
* @param $title
* @param int $id
*
* @return array|null|\yii\db\ActiveRecord
*
* @author 李健
*/
public function checkTitle($title,$id=0)
{
$opera_document = new OperaDocument();
$res = $opera_document->checkTitle($title);
if($res){
if($id!=0 && $res['id'] == $id){
$res['code'] = 0;
} else {
$res['code'] = 1;
$res['info'] = '该标题已存在请勿重复添加';
}
} else {
$res['code'] = 0;
}
return $res;
}
/**
* Function Description:更新排序
* Function Name: updateSort
* @param $sort
* @param $id
*
* @return mixed
*
* @author 李健
*/
public function updateSort($sort,$id)
{
$opera_document = new OperaDocument();
$res = $opera_document->updateSort($sort,$id);
if($res){
$json['code'] = 0;
$json['info'] = '排序更新成功';
} else {
$json['code'] = 1;
$json['info'] = '排序更新失败';
}
return $json;
}
}