Log.php
1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
namespace addons\shopro\model\chat;
use think\Model;
use addons\shopro\library\chat\Online;
/**
* 消息记录表
*/
class Log extends Model
{
// 表名,不含前缀
protected $name = 'shopro_chat_log';
// 自动写入时间戳字段
protected $autoWriteTimestamp = 'int';
// 定义时间戳字段名
protected $createTime = 'createtime';
protected $updateTime = 'updatetime';
// 追加属性
protected $append = [
];
public function scopeUser($query) {
$query->where('sender_identify', 'user');
}
public function scopeCustomerService($query)
{
$query->where('sender_identify', 'customer_service');
}
/**
* 全部拼接 cdnurl
*
* @param string $value
* @param array $data
* @return string
*/
public function getMessageAttr($value, $data)
{
if ($data['message_type'] == 'image') {
$message = cdnurl($value, Online::getDomain());
} else if (in_array($data['message_type'], ['order', 'goods'])){
$messageArr = json_decode($value, true);
$messageArr['image'] = cdnurl($messageArr['image'], Online::getDomain());
$message = json_encode($messageArr);
} else if ($data['message_type'] == 'text') {
// 全文匹配图片拼接 cdnurl
$url = cdnurl('/uploads', Online::getDomain());
$message = str_replace("<img src=\"/uploads", "<img style=\"width: 100%;!important\" src=\"" . $url, $value);
} else {
$message = $value;
}
return $message;
}
// 多对多关联发消息人身份
public function identify()
{
return $this->morphTo(['sender_identify', 'sender_id'], [
'user' => \addons\shopro\model\chat\User::class,
'customer_service' => \addons\shopro\model\chat\CustomerService::class,
]);
}
}