diff --git a/app/ticket/service/ConversationService.php b/app/ticket/service/ConversationService.php index ea97cef..5b0bef9 100644 --- a/app/ticket/service/ConversationService.php +++ b/app/ticket/service/ConversationService.php @@ -3,6 +3,7 @@ namespace app\ticket\service; use app\common\model\User; +use app\common\service\MessageNotificationsService; use app\common\service\OssService; use app\ticket\logic\CategorieLogic; use app\ticket\logic\ConversationLogic; @@ -55,41 +56,60 @@ class ConversationService $categorie= (new CategorieLogic())->find($ticket['categorie_id']); $categorieName = isset($categorie['translation']) ? $categorie['translation']['name'] : ''; - $notice = [ - 'code' => $ticket['code'], - 'category' => $categorieName, - 'content' => $data['content'], - 'reply' => '', - ]; +// $notice = [ +// 'code' => $ticket['code'], +// 'category' => $categorieName, +// 'content' => $data['content'], +// 'reply' => '', +// ]; //$emailDefault = 'app@hnxinyouhe.com'; //公共邮箱 //$emailDefault = 'support@hnxinyouhe.com'; //公共邮箱 $emailDefault = env('TICKET_EMAIL_DEFAULT'); - if (empty($conversation)) { + $userDefault = [1, 75, 78]; + if (empty($conversation)) { //没有沟通记录 + $title = '新工单提醒-'.$categorieName; $email = $emailDefault; + $notice_user_id = $userDefault; }else{ + $title = '工单回复'; $tiket = (new TicketLogic())->find($conversation['ticket_id']); if($data['user_id'] != $tiket['user_id']){ - $email = User::where('id',$tiket['user_id'])->value('email'); + //$email = User::where('id',$tiket['user_id'])->value('email'); + $notice_user_id = [$tiket['user_id']]; }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::where('id',$conversationLast['user_id'])->value('email',$emailDefault):$emailDefault; + //$email = (!empty($conversationLast['user_id']))?User::where('id',$conversationLast['user_id'])->value('email',$emailDefault):$emailDefault; + $notice_user_id = (!empty($conversationLast['user_id']))? [$conversationLast['user_id']]:$userDefault; } - $notice['content'] = $tiket['content']; + //$notice['content'] = $tiket['content']; + $tiket_content = $tiket['content']; $status_fanyi = array_map(fn($v) => "{{{$v}}}", array_flip(Constants::TICKET_STATUS)); $locale = locale(); $ticket_status = $locale == 'zh'? Constants::TICKET_STATUS_ZH:Constants::TICKET_STATUS_EN; $content = str_replace($status_fanyi,$ticket_status,$data['content']); - $notice['reply'] = '
  • 最新回复:' . $content . '
  • '; - } - if(!empty($emailDefault)){ - \app\common\utils\email\MailSend::send($email, '【XYH】新的工单提醒', replaceTpl($notice, 'work_order')); + //$notice['reply'] = '
  • 最新回复:' . $content . '
  • '; + $reply = $content?($content.'\n'.'工单内容:'):'' ; } +// if(!empty($emailDefault)){ +// \app\common\utils\email\MailSend::send($email, '【XYH】新的工单提醒', replaceTpl($notice, 'work_order')); +// } + $notice = ['sender_id' => 0, //发送人ID 0默认系统 + 'sender_type' => 'system', //发送者类型 user admin system + 'title' => $title, //标题 + 'content' => $reply . $tiket_content, //内容 + 'scene' => 1, //场景 0系统公共 1系统通知 + 'recipient' => $notice_user_id, //接收人 空为全部 + 'push_method' => 0 //推送方式0系统推送1手动推送 + ]; + + // 异步推送 + \Webman\RedisQueue\Redis::send('notice', $notice); unset($data['categorie_id']); unset($data['code']);