where('sender_identify', 'user'); } public function scopeCustomerService($query) { $query->where('sender_identify', 'customer_service'); } /** * 批量处理消息发送人 * * @param [type] $messageData * @return void */ public static function formatIdentify($messageData) { $userIds = []; $customerServiceIds = []; foreach ($messageData as $key => $item) { if ($item['sender_identify'] == 'customer_service') { $customerServiceIds[] = $item['sender_id']; } else if ($item['sender_identify'] == 'user') { $userIds[] = $item['sender_id']; } } $customerServices = \addons\shopro\model\chat\CustomerService::where('id', 'in', $customerServiceIds)->select(); $users = \addons\shopro\model\chat\User::where('id', 'in', $userIds)->select(); $customerServices = array_column($customerServices, null, 'id'); $users = array_column($users, null, 'id'); foreach ($messageData as $key => &$item) { $identify = null; if ($item['sender_identify'] == 'customer_service') { $identify = $customerServices[$item['sender_id']] ?? null; } else if ($item['sender_identify'] == 'user') { $identify = $users[$item['sender_id']] ?? null; } $item->identify = $identify; } return $messageData; } /** * 全部拼接 cdnurl * * @param string $value * @param array $data * @return string */ public function getMessageAttr($value, $data) { if ($data['message_type'] == 'image') { $message = Online::cdnurl($value); } else if (in_array($data['message_type'], ['order', 'goods'])){ $messageArr = json_decode($value, true); if (isset($messageArr['image']) && $messageArr['image']) { $messageArr['image'] = Online::cdnurl($messageArr['image']); } $message = json_encode($messageArr); } else if ($data['message_type'] == 'text') { // 全文匹配图片拼接 cdnurl $url = Online::cdnurl('/uploads'); $message = str_replace("morphTo(['sender_identify', 'sender_id'], [ // 'user' => \addons\shopro\model\chat\User::class, // 'customer_service' => \addons\shopro\model\chat\CustomerService::class, // ]); // } }