Merge branch 'feature/ticket0813' into develop
This commit is contained in:
@@ -80,6 +80,7 @@
|
|||||||
<li>工单编号:{{code}}</li>
|
<li>工单编号:{{code}}</li>
|
||||||
<li>工单分类:{{category}}</li>
|
<li>工单分类:{{category}}</li>
|
||||||
<li>问题描述:{{content}}</li>
|
<li>问题描述:{{content}}</li>
|
||||||
|
{{reply}}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>请点击下方按钮立即查看详情:</p>
|
<p>请点击下方按钮立即查看详情:</p>
|
||||||
|
|||||||
@@ -23,6 +23,14 @@ class CategorieLogic
|
|||||||
return Categorie::with('translation')->where($where)->get();
|
return Categorie::with('translation')->where($where)->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function find($id)
|
||||||
|
{
|
||||||
|
return Categorie::with(['translation' => function ($query) {
|
||||||
|
$query->where('locale', locale());
|
||||||
|
}])->where('status', 1)
|
||||||
|
->find($id);
|
||||||
|
}
|
||||||
|
|
||||||
public function add(array $data)
|
public function add(array $data)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ class ConversationLogic
|
|||||||
$current = $params['current'] ?? 1;
|
$current = $params['current'] ?? 1;
|
||||||
return Conversation::where($where)->paginate($size, ['*'], 'page', $current);
|
return Conversation::where($where)->paginate($size, ['*'], 'page', $current);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function add(array $data)
|
public function add(array $data)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
@@ -43,4 +44,17 @@ class ConversationLogic
|
|||||||
throw new BusinessException('会话编辑失败,请稍后重试', 500);
|
throw new BusinessException('会话编辑失败,请稍后重试', 500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取工单最新一条记录
|
||||||
|
* @param array $data
|
||||||
|
* @return Conversation|\Illuminate\Database\Eloquent\Model|object|null
|
||||||
|
*/
|
||||||
|
public function firstByTicket(int $ticketId)
|
||||||
|
{
|
||||||
|
$conversation = Conversation::where('ticket_id',$ticketId)
|
||||||
|
->orderBy('id','desc')
|
||||||
|
->first();
|
||||||
|
return $conversation;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -4,7 +4,10 @@ namespace app\ticket\service;
|
|||||||
|
|
||||||
use app\common\model\User;
|
use app\common\model\User;
|
||||||
use app\common\service\OssService;
|
use app\common\service\OssService;
|
||||||
|
use app\ticket\logic\CategorieLogic;
|
||||||
use app\ticket\logic\ConversationLogic;
|
use app\ticket\logic\ConversationLogic;
|
||||||
|
use app\ticket\logic\TicketLogic;
|
||||||
|
use app\ticket\model\Conversation;
|
||||||
use config\constants\Constants;
|
use config\constants\Constants;
|
||||||
use support\Db;
|
use support\Db;
|
||||||
use support\exception\BusinessException;
|
use support\exception\BusinessException;
|
||||||
@@ -44,6 +47,42 @@ class ConversationService
|
|||||||
if (empty($data['content'])) {
|
if (empty($data['content'])) {
|
||||||
throw new BusinessException('消息内容不能为空');
|
throw new BusinessException('消息内容不能为空');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$conversation = (new ConversationLogic())->firstByTicket($data['ticket_id']);
|
||||||
|
$ticket = (new TicketLogic())->find($data['ticket_id']);
|
||||||
|
$categorie= (new CategorieLogic())->find($ticket['categorie_id']);
|
||||||
|
$categorieName = isset($categorie['translation']) ? $categorie['translation']['name'] : '';
|
||||||
|
|
||||||
|
$notice = [
|
||||||
|
'code' => $ticket['code'],
|
||||||
|
'category' => $categorieName,
|
||||||
|
'content' => $data['content'],
|
||||||
|
'reply' => '',
|
||||||
|
];
|
||||||
|
//$emailDefault = 'app@hnxinyouhe.com'; //公共邮箱
|
||||||
|
$emailDefault = 'tuotuo@hnxinyouhe.com'; //范彩凤
|
||||||
|
if (empty($conversation)) {
|
||||||
|
$email = $emailDefault;
|
||||||
|
}else{
|
||||||
|
$tiket = (new TicketLogic)->find($conversation['ticket_id']);
|
||||||
|
if($data['user_id'] != $tiket['user_id']){
|
||||||
|
$email = User::find($tiket['user_id'])->value('email');
|
||||||
|
}else{
|
||||||
|
$conversationLast = Conversation::where('ticket_id', '=', $conversation['ticket_id'])
|
||||||
|
->where('user_id', '!=', $data['user_id'])
|
||||||
|
->orderBy('id', 'desc')
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$email = (!empty($conversationLast['user_id']))?User::find($conversationLast['user_id'])->value('email',$emailDefault):$emailDefault;
|
||||||
|
}
|
||||||
|
$notice['content'] = $tiket['content'];
|
||||||
|
$notice['reply'] = '<li>最新回复:' . $data['content'] . '</li>';
|
||||||
|
}
|
||||||
|
\app\common\utils\email\MailSend::send($email, '【XYH】新的工单提醒', replaceTpl($notice, 'work_order'));
|
||||||
|
|
||||||
|
unset($data['categorie_id']);
|
||||||
|
unset($data['code']);
|
||||||
|
|
||||||
return (new ConversationLogic())->add($data);
|
return (new ConversationLogic())->add($data);
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
throw $e;
|
throw $e;
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ class TicketService
|
|||||||
try {
|
try {
|
||||||
$attachment = $data['attachment']??[];
|
$attachment = $data['attachment']??[];
|
||||||
$logic = new TicketLogic();
|
$logic = new TicketLogic();
|
||||||
|
$data['code'] = $logic::generateSimpleTicketNo();
|
||||||
$result = $logic->add($data);
|
$result = $logic->add($data);
|
||||||
if(!empty($attachment)){
|
if(!empty($attachment)){
|
||||||
(new AttachmentLogic())->adds($attachment, $result->id, $data['user_id']);
|
(new AttachmentLogic())->adds($attachment, $result->id, $data['user_id']);
|
||||||
@@ -53,6 +54,8 @@ class TicketService
|
|||||||
$cleanContent = trim(preg_replace('/\s+/', ' ', strip_tags($data['content'] ?? '')));
|
$cleanContent = trim(preg_replace('/\s+/', ' ', strip_tags($data['content'] ?? '')));
|
||||||
$conversation = [
|
$conversation = [
|
||||||
'ticket_id' => $result->id,
|
'ticket_id' => $result->id,
|
||||||
|
'categorie_id' => $data['categorie_id'],
|
||||||
|
'code' => $data['code'],
|
||||||
'content' => $cleanContent,
|
'content' => $cleanContent,
|
||||||
'user_id' => $data['user_id'],
|
'user_id' => $data['user_id'],
|
||||||
'attachment' => $data['attachment'],
|
'attachment' => $data['attachment'],
|
||||||
|
|||||||
Reference in New Issue
Block a user