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.
147 lines
4.9 KiB
147 lines
4.9 KiB
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | 天诚科技 [ 刘海东 17600099397赋能开发者,助力企业发展 ]
|
|
// +----------------------------------------------------------------------
|
|
// | Copyright (c) 2016~2020 https://www.tczxkj.com All rights reserved.
|
|
// +----------------------------------------------------------------------
|
|
// | Licensed 该系统并不是自由软件,未经许可不能去掉相关版权
|
|
// +----------------------------------------------------------------------
|
|
// | Author: CRMEB Team <admin@crmeb.com>
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace app\kefu\controller;
|
|
|
|
use app\kefu\controller\AuthController;
|
|
use app\kefu\model\KefuModel;
|
|
use app\kefu\services\KefuChatService;
|
|
use service\FormBuilder as Form;
|
|
use service\JsonService as Json;
|
|
use service\UploadService as Upload;
|
|
use think\Request;
|
|
use think\Url;
|
|
use app\admin\model\article\ArticleCategory as ArticleCategoryModel;
|
|
use app\admin\model\article\Article as ArticleModel;
|
|
use app\admin\model\user\User;
|
|
use app\kefu\model\user\UserGroupModel;
|
|
use think\Session;
|
|
use service\JwtService;
|
|
use app\kefu\services\KefuRecordService;
|
|
use app\admin\model\kefu\KefuSpeechCraftCate;
|
|
use app\admin\model\kefu\KefuSpeechCraft;
|
|
|
|
class Speech extends AuthController
|
|
{
|
|
/**
|
|
* 白名单
|
|
*/
|
|
public function cate($type)
|
|
{
|
|
$data = (new KefuSpeechCraftCate)->where([
|
|
'type' => 1,
|
|
'owner_id' => $type == 1 ? $this->kefuId : 0
|
|
])->select();
|
|
|
|
return Json::successful($data);
|
|
}
|
|
|
|
public function list($page = 1, $limit = 20, $title = '', $cate_id = 0, $type)
|
|
{
|
|
$data = (new KefuSpeechCraft)
|
|
->where(function ($q) use ($title, $cate_id) {
|
|
if (trim($title)) {
|
|
$q->where("title", 'like', '%' . trim($title) . '%');
|
|
}
|
|
if ($cate_id) {
|
|
$q->where('cate_id', $cate_id);
|
|
}
|
|
})
|
|
->where([
|
|
'kefu_id' => $type == 1 ? $this->kefuId : 0
|
|
])
|
|
->order('sort desc')
|
|
->page($page, $limit)
|
|
->select();
|
|
|
|
return Json::successful($data);
|
|
}
|
|
|
|
public function save_cate($id = '', $name = '', $sort = 0)
|
|
{
|
|
$name = trim($name);
|
|
if (!$name || mb_strlen($name) > 10) return Json::fail("请输入合适的分类名称!");
|
|
|
|
$saveData = [
|
|
'name' => $name,
|
|
'sort' => $sort,
|
|
'type' => 1,
|
|
'add_time' => time(),
|
|
'owner_id' => $this->kefuId
|
|
];
|
|
|
|
if ($id) {
|
|
$speech_cate = KefuSpeechCraftCate::get($id);
|
|
if (!$speech_cate) return Json::fail("分类不存在!");
|
|
$speech_cate->update($saveData, ['id' => $id]);
|
|
} else {
|
|
KefuSpeechCraftCate::create($saveData);
|
|
}
|
|
|
|
return Json::successful('保存成功!');
|
|
}
|
|
|
|
public function save($title = "", $cate_id = "", $message = "", $id = '')
|
|
{
|
|
$title = trim($title);
|
|
$message = trim($message);
|
|
if (!$cate_id) return Json::fail("请选择话术分类!");
|
|
$cate = KefuSpeechCraftCate::get($cate_id);
|
|
if (!$cate) return Json::fail("话术分类不存在!");
|
|
if (!$title || mb_strlen($title) > 15) return Json::fail("请输入合适的话术标题!");
|
|
if (!$message || mb_strlen($message) > 80) return Json::fail("请输入合适的话术内容!");
|
|
|
|
if ($id) {
|
|
$speech = KefuSpeechCraft::get($id);
|
|
if (!$speech) return Json::fail("话术不存在!");
|
|
$speech->update([
|
|
'cate_id' => $cate_id,
|
|
'title' => $title,
|
|
'message' => $message,
|
|
'kefu_id' => $this->kefuId,
|
|
], ['id' => $id]);
|
|
} else {
|
|
KefuSpeechCraft::create([
|
|
'kefu_id' => $this->kefuId,
|
|
'cate_id' => $cate_id,
|
|
'title' => $title,
|
|
'message' => $message,
|
|
'add_time' => time()
|
|
]);
|
|
}
|
|
|
|
return Json::successful('保存成功!');
|
|
}
|
|
|
|
public function delete($id)
|
|
{
|
|
$speech = (new KefuSpeechCraft)->hasWhere('category', ['owner_id' => $this->kefuId])->find($id);
|
|
if (!$speech) return Json::fail("话术不存在!");
|
|
$speech->delete();
|
|
return Json::successful('删除成功!');
|
|
}
|
|
|
|
public function delete_cate($id)
|
|
{
|
|
$speech_cate = (new KefuSpeechCraftCate)->where([
|
|
'owner_id' => $this->kefuId,
|
|
'id' => $id
|
|
])->find();
|
|
if (!$speech_cate) return Json::fail("分类不存在!");
|
|
$speech = (new KefuSpeechCraft)->where('cate_id', $id)->find();
|
|
if ($speech) {
|
|
return Json::fail("分类正在使用,无法删除!");
|
|
}
|
|
|
|
$speech_cate->delete();
|
|
return Json::successful('删除成功!');
|
|
}
|
|
}
|
|
|