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
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');
|
|
}
|
|
} |