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.

231 lines
6.8 KiB

<?php
namespace app\feedback\controller\admin;
use app\feedback\model\FeedbackCategory;
use app\feedback\model\FeedbackConfig;
use app\feedback\model\FeedbackReply;
use think\facade\View;
class Feedback extends Base
{
/**
* 意见反馈设置
* @return string|\think\response\Json
*/
public function config()
{
$feedback_config_model = new FeedbackConfig();
if (request()->isPost()) {
$data = input('post.');
$data['uid'] = UID;
$res = $feedback_config_model->dataUpdate($data);
if (!$res) {
return sendErrorMessage();
}
return sendSuccessMessage();
} else {
$data = $feedback_config_model->getOneData(['uid' => UID]);
View::assign('data', $data);
return View::fetch();
}
}
/**
* 反馈类型
* @return string
*/
public function category()
{
$search = input('get.');
autoSearch(['keyword'], $search);
View::assign('search', $search);
$where [] = ['uid', '=', UID];
if ($search['keyword']) {
$where[] = ['name', 'like', '%' . $search['keyword'] . '%'];
}
$page = array_key_exists("page", $search) ? (string)$search['page'] : "1";
$category_model = new FeedbackCategory();
$dataList = $category_model->getDataList($where, $page);
View::assign('dataList', $dataList);
return View::fetch();
}
/**
* 添加反馈类型
*/
public function categoryadd()
{
$category_model = new FeedbackCategory();
if (request()->isPost()) {
$data = input('post.');
$data['uid'] = UID;
$data['publish_time'] = time();
$res = $category_model->dataUpdate($data);
if (!$res) {
return sendErrorMessage();
}
return sendSuccessMessage();
} else {
$id = input('param.id', 0);
$data = $category_model->getOneData(['id' => $id]);
View::assign('data', $data);
return View::fetch('categoryadd');
}
}
/**
* 修改反馈类型
*/
public function categoryupdate()
{
return $this->categoryadd();
}
/**
* 意见反馈记录
*/
public function record()
{
$search = input('get.');
autoSearch(['keyword', 'time'], $search);
$feedback_model = new \app\feedback\model\Feedback();
$where [] = ['uid', '=', UID];
if ($search['keyword']) {
$where[] = ['linkman|mobile_phone|content', 'like', '%' . $search['keyword'] . '%'];
}
if ($search['time']) {
$time = explode('-', $search['time']);
$where[] = ['create_time', 'between time', [$time[0], $time[1]]];
}
$dataList = $feedback_model
->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) {
return $item;
});
$today_count = $feedback_model->where([['uid', '=', UID], ['create_time', 'between', [strtotime(date('Y-m-d')), strtotime(date('Y-m-d')) + 86400]]])->count();
$attach = [
'total_html' => [
['反馈总数', $dataList->total()],
['今日新增', $today_count],
],
];
View::assign('search', $search);
View::assign('attach', $attach);
View::assign('dataList', $dataList);
return View::fetch();
}
/**
* 反馈回复
*/
public function recordReply()
{
$feedback_reply_model = new FeedbackReply();
$feedback_model = new \app\feedback\model\Feedback();
if (request()->isPost()) {
$data = input('post.');
if (empty($data['img_url']) && empty($data['content'])) {
return sendErrorMessage(1, '请上传回复内容');
}
$reply_data = [
'uid' => UID,
'feedback_id' => $data['id'],
'img_url' => empty($data['img_url']) ? [] : $data['img_url'],
'content' => $data['content'],
];
$res = $feedback_reply_model->dataUpdate($reply_data);
if ($res === false) {
return sendErrorMessage();
}
$feedback_model->dataUpdate([
'is_reply' => 1
], [
['id', '=', $data['id']]
]);
return sendSuccessMessage();
} else {
$id = input('param.id/d', 0);
$data = $feedback_model->with('userInfo')->where([['id', '=', $id]])->find();
$replyList = $feedback_reply_model->getAllData(['feedback_id' => $id]);
// dump($replyList->toArray());exit();
View::assign('replyList', $replyList->toArray());
View::assign('data', $data);
return View::fetch('recordreply');
}
}
/**
* 反馈详情
*/
public function recordDetail()
{
$feedback_model = new \app\feedback\model\Feedback();
$reply_model = new FeedbackReply();
if (request()->isPost()) {
} else {
$id = input('param.id/d', 0);
$data = $feedback_model->with('userInfo')->where([['id', '=', $id]])->find();
View::assign('data', $data);
$dataList = $reply_model
->where([
['feedback_id', '=', $id]
])
->order('id desc')
->select();
View::assign('dataList', $dataList);
return View::fetch('recorddetail');
}
}
/**
* 全部回复
* @return string
*/
public function recordList()
{
$search = input('get.');
autoSearch(['keyword'], $search);
$reply_model = new FeedbackReply();
$where [] = ['uid', '=', UID];
$where [] = ['feedback_id', '=', $search['feedback_id']];
if ($search['keyword']) {
$where[] = ['content', 'like', '%' . $search['keyword'] . '%'];
}
$dataList = $reply_model
->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) {
return $item;
});
View::assign('search', $search);
View::assign('dataList', $dataList);
return View::fetch('recordlist');
}
}