TaoLer/app/admin/controller/Index.php
2021-03-18 16:21:27 +08:00

236 lines
5.6 KiB
PHP

<?php
namespace app\admin\controller;
use app\common\controller\AdminController;
use think\facade\View;
use think\facade\Db;
use think\facade\Session;
use think\facade\Request;
use think\facade\Cache;
use app\admin\model\Admin;
use app\admin\model\Article;
use app\admin\model\Cunsult;
use think\facade\Config;
use taoler\com\Api;
class Index extends AdminController
{
/*
protected function initialize()
{
parent::initialize();
}
*/
public function __construct()
{
// 控制器初始化显示左侧导航菜单
parent::initialize();
$this->sys_version = Config::get('taoler.version');
$this->sys = Db::name('system')->where('id',1)->find();
//域名转换为无http协议
$www = stripos($this->sys['domain'],'://') ? substr(stristr($this->sys['domain'],'://'),3) : $this->sys['domain'];
$this->domain = Request::scheme().'://'. $www;
$this->api = $this->sys['api_url'];
if(empty($this->api)){
$baseUrl = $this->sys['base_url'];
$this->api = strstr($baseUrl,'/v',true);
}
}
public function index()
{
return View::fetch('index');
}
public function set()
{
return view();
}
public function message()
{
return view();
}
public function home()
{
//版本检测
$url = $this->sys['upcheck_url'].'?ver='.$this->sys_version;
$versions = Api::urlGet($url);
if($versions->code == 1){
if($versions->up_num > 0){
$versions = "当前有{$versions->up_num}个版本需更新,当前可更新至{$versions->version}";
}
} else {
$versions ='当前无可更新版本';
}
//运行时间
$now = time();
$count = $now-$this->sys['create_time'];
$days = floor($count/86400);
$hos = floor(($count%86400)/3600);
$mins = floor(($count%3600)/60);
$years = floor($days/365);
if($years >= 1){
$days = floor($days%365);
}
$runTime = $years ? "{$years}{$days}{$hos}{$mins}" : "{$days}{$hos}{$mins}";
View::assign(['runTime'=>$runTime,'versions'=>$versions]);
return View::fetch();
}
//本周发帖
public function forums()
{
$forumList = Db::name('article')
->alias('a')
->join('user u','a.user_id = u.id')
->join('cate c','a.cate_id = c.id')
->field('a.id as aid,title,name,catename,pv')
->whereWeek('a.create_time')
->order('a.create_time', 'desc')
->paginate(10);
$res = [];
$count = $forumList->total();
if($count){
$res['code'] = 0;
$res['msg'] = '';
$res['count'] = $count;
foreach($forumList as $k=>$v){
$url = (string) str_replace("admin","index",$this->domain.url('article/detail',['id'=>$v['aid']]));
$res['data'][]= ['id'=>$url,'title'=>$v['title'],'name'=>$v['name'],'catename'=>$v['catename'],'pv'=>$v['pv']];
}
} else {
$res = ['code'=>-1,'msg'=>'本周还没有发帖!'];
}
return json($res);
}
//本周评论
public function replys()
{
if(Request::isAjax()) {
$replys = Db::name('comment')
->alias('a')
->join('user u','a.user_id = u.id')
->join('article c','a.article_id = c.id')
->field('a.content as content,title,c.id as cid,name')
->whereWeek('a.create_time')
->order('a.create_time', 'desc')
->paginate(10);
$count = $replys->total();
$res = [];
if ($count) {
$res = ['code'=>0,'msg'=>'','count'=>$count];
foreach($replys as $k => $v){
$res['data'][] = ['content'=>$v['content'],'title'=>$v['title'],'cid'=>str_replace("admin","index",$this->domain.(string) url('article/detail',['id'=>$v['cid']])),'name'=>$v['name']];
}
} else {
$res = ['code'=>-1,'msg'=>'本周还没评论'];
}
return json($res);
}
}
//动态信息
public function news()
{
$page = Request::param('page');
$url = $this->api.'/v1/news?'.Request::query();
$news = Cache::get('news'.$page);
if(is_null($news)){
$news = Api::urlGet($url);
Cache::set('news'.$page,$news,600);
}
if($news){
return $news;
}else{
return json(['code'=>-1,'msg'=>'稍后获取内容...']);
}
}
//提交反馈
public function cunsult()
{
$url = $this->api.'/v1/reply';
//$mail = Db::name('system')->where('id',1)->value('auth_mail'); // bug邮件发送
if(Request::isAjax()){
$data = Request::only(['type','title','content']);
$data['poster'] = 3; //公共id
$apiRes = Api::urlPost($url,$data);
if($apiRes){
//halt($data);
$res = Cunsult::create($data);
if($res->id){
//$result = mailto($mail,$data['title'],'我的问题类型是'.$data['type'].$data['content']);
$res = ['code'=>0,'msg'=>$apiRes->msg];
} else {
$res = ['code'=>0,'msg'=>$apiRes->msg];
}
} else {
$res = ['code'=>-1,'msg'=>'失败,请稍后再试提交...'];
}
return json($res);
}
}
//问题和反馈
public function reply()
{
if(Request::isAjax()) {
$replys = Db::name('cunsult')
->whereWeek('create_time')
->order('create_time', 'desc')
->paginate(10);
$count = $replys->total();
$res = [];
if ($count) {
$res = ['code'=>0,'msg'=>'','count'=>$count];
foreach($replys as $k => $v){
$res['data'][] = ['id'=>$v['id'],'content'=>$v['content'],'title'=>$v['title'],'time'=>Date('Y-m-d',$v['create_time'])];
}
} else {
$res = ['code'=>-1,'msg'=>'本周还没问题'];
}
return json($res);
}
}
//删除反馈
public function delReply()
{
if(Request::isAjax()){
$res = Db::name('cunsult')->delete(input('id'));
if($res){
$res = ['code'=>0,'msg'=>'删除成功!'];
}else{
$res = ['code'=>-1,'msg'=>'删除失败!'];
}
return json($res);
}
}
public function layout(){
return view();
}
}