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.
185 lines
5.1 KiB
185 lines
5.1 KiB
<?php
|
|
|
|
namespace app\feedback\logic;
|
|
|
|
|
|
use app\feedback\model\FeedbackCategory;
|
|
use app\feedback\model\FeedbackConfig;
|
|
use app\feedback\model\FeedbackReply;
|
|
|
|
class Feedback extends Base
|
|
{
|
|
|
|
/**
|
|
* 获取意见反馈类别
|
|
* @date 2022-12-20
|
|
*/
|
|
public function listCategory()
|
|
{
|
|
$category_model = new FeedbackCategory();
|
|
|
|
$category_list = $category_model->getAllData([
|
|
['uid', '=', $this->mid]
|
|
], 'id,name');
|
|
|
|
return sendSuccessArray([
|
|
'category_list' => $category_list
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 提交意见反馈
|
|
* @param int $category_id 分类ID
|
|
* @param string $content 内容
|
|
* @param array $image_path 图片
|
|
* @param string $mobile_phone 手机号
|
|
* @param string $linkman 联系人
|
|
* @date 2022-12-20
|
|
*/
|
|
public function insertFeedback($category_id, $content, $image_path, $mobile_phone, $linkman)
|
|
{
|
|
$category_model = new FeedbackCategory();
|
|
$feedback_model = new \app\feedback\model\Feedback();
|
|
|
|
$category = $category_model->getOneData([
|
|
['id', '=', $category_id]
|
|
], 'id,name');
|
|
if (!$category) {
|
|
return sendErrorArray(3001, '反馈类型不存在');
|
|
}
|
|
|
|
|
|
$feedback_data = [
|
|
'uid' => $this->mid,
|
|
'user_id' => $this->userId,
|
|
'category_id' => $category['id'],
|
|
'category_name' => $category['name'],
|
|
'linkman' => $linkman,
|
|
'mobile_phone' => $mobile_phone,
|
|
'content' => $content,
|
|
'image_path' => $image_path,
|
|
'status' => 1
|
|
];
|
|
$res = $feedback_model->dataUpdate($feedback_data);
|
|
if (!$res) {
|
|
return sendErrorArray(3002, '反馈失败');
|
|
}
|
|
|
|
return sendSuccessArray([], '反馈成功');
|
|
}
|
|
|
|
/**
|
|
* 反馈记录列表
|
|
* @param int $page 第X页
|
|
* @date 2022-12-20
|
|
*/
|
|
public function listFeedback($page)
|
|
{
|
|
$feedback_model = new \app\feedback\model\Feedback();
|
|
|
|
$where = [
|
|
['user_id', '=', $this->userId],
|
|
['is_user_delete', '=', 0]
|
|
];
|
|
$field = 'id,content,status,category_name,linkman,mobile_phone,create_time';
|
|
$list = $feedback_model->listFeedbackWithPage($where, $page, $field);
|
|
|
|
return sendSuccessArray([
|
|
'list' => $list
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 反馈记录删除
|
|
* @param int $feedback_id 意见反馈ID
|
|
* @date 2022-12-20
|
|
*/
|
|
public function deleteFeedback($feedback_id)
|
|
{
|
|
$feedback_model = new \app\feedback\model\Feedback();
|
|
|
|
$feedback = $feedback_model->getOneData([
|
|
['id', '=', $feedback_id],
|
|
['is_user_delete', '=', 0]
|
|
]);
|
|
|
|
if (!$feedback) {
|
|
return sendErrorArray(3001, '反馈意见不存在');
|
|
}
|
|
|
|
$update_data = [
|
|
'id' => $feedback_id,
|
|
'is_user_delete' => 1,
|
|
'user_delete_time' => time()
|
|
];
|
|
$res = $feedback_model->dataUpdate($update_data);
|
|
if (!$res) {
|
|
return sendErrorArray(3002, '删除失败');
|
|
}
|
|
|
|
return sendSuccessArray([], '删除成功');
|
|
}
|
|
|
|
/**
|
|
* 反馈意见详情
|
|
* @param int $feedback_id 意见反馈ID
|
|
* @date 2022-12-20
|
|
*/
|
|
public function getFeedback($feedback_id)
|
|
{
|
|
$feedback_model = new \app\feedback\model\Feedback();
|
|
$feedback_reply_model = new FeedbackReply();
|
|
|
|
// 查找详情
|
|
$field = 'id,category_name,linkman,mobile_phone,content,image_path,is_reply,create_time,status';
|
|
$detail = $feedback_model->getOneData([
|
|
['id', '=', $feedback_id],
|
|
['is_user_delete', '=', 0]
|
|
], $field);
|
|
if (empty($detail)) {
|
|
return sendErrorArray(3001, '反馈意见不存在');
|
|
}
|
|
|
|
// 图片展示格式转化为前端组件可展示样式
|
|
if ($detail['image_path']) {
|
|
$image_path = [];
|
|
foreach ($detail['image_path'] as $v) {
|
|
$image_path[] = [
|
|
'type' => 1,
|
|
'image_url' => $v
|
|
];
|
|
}
|
|
$detail['image_path'] = $image_path;
|
|
}
|
|
|
|
$detail['show_create_time'] = date('Y.m.d H:i', strtotime($detail['create_time']));
|
|
$detail['status_text'] = $detail->status_text;
|
|
unset($detail['create_time']);
|
|
|
|
// 全部回复
|
|
$where = [
|
|
['feedback_id', '=', $feedback_id]
|
|
];
|
|
$field = 'id,content,img_url,create_time';
|
|
$reply_list = $feedback_reply_model->listFeedbackReply($where, $field);
|
|
$reply_list = empty($reply_list) ? [] : $reply_list;
|
|
|
|
foreach ($reply_list as $k=>$v){
|
|
$img = [];
|
|
foreach ($v['img_url'] as $v) {
|
|
$img[] = [
|
|
'type' => 1,
|
|
'image_url' => $v
|
|
];
|
|
}
|
|
$reply_list[$k]['img_url'] = $img;
|
|
}
|
|
|
|
return sendSuccessArray([
|
|
// 数据
|
|
'feedback' => $detail,
|
|
// 回复列表
|
|
'reply_list' => $reply_list
|
|
]);
|
|
}
|
|
} |