2025-07-23 18:41:47 +08:00
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
namespace app\common\model;
|
|
|
|
|
|
|
|
|
|
|
|
use support\Model;
|
|
|
|
|
|
|
|
|
|
|
|
class CrmCustomer extends Model
|
|
|
|
|
|
{
|
|
|
|
|
|
/**
|
|
|
|
|
|
* The connection name for the model.
|
|
|
|
|
|
*
|
|
|
|
|
|
* @var string|null
|
|
|
|
|
|
*/
|
|
|
|
|
|
protected $connection = 'mysql';
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* The table associated with the model.
|
|
|
|
|
|
*
|
|
|
|
|
|
* @var string
|
|
|
|
|
|
*/
|
|
|
|
|
|
protected $table = 'crm_customer';
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* The primary key associated with the table.
|
|
|
|
|
|
*
|
|
|
|
|
|
* @var string
|
|
|
|
|
|
*/
|
|
|
|
|
|
protected $primaryKey = 'id';
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Indicates if the model should be timestamped.
|
|
|
|
|
|
*
|
|
|
|
|
|
* @var bool
|
|
|
|
|
|
*/
|
|
|
|
|
|
public $timestamps = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected $dateFormat = 'U';
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 允许自动填充模型字段
|
|
|
|
|
|
*/
|
2025-08-27 15:39:47 +08:00
|
|
|
|
protected $fillable = ['id', 'sn', 'corp_id', 'user_id', 'user_sn', 'type', 'grade', 'sex', 'channel_id', 'country_id', 'car_type_id', 'magnitude', 'email', 'phone', 'WhatsApp', 'contacts', 'describe', 'desc_collect', 'address', 'lat', 'lng', 'follow_last', 'follow_next', 'warn', 'follow_remark', 'enter_user_id', 'created_at', 'updated_at', 'deleted_at'];
|
2025-07-23 18:41:47 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 不允许自动填充模型字段
|
|
|
|
|
|
*/
|
|
|
|
|
|
protected $guarded = [];
|
2025-08-14 20:08:57 +08:00
|
|
|
|
|
|
|
|
|
|
protected static function booted()
|
|
|
|
|
|
{
|
|
|
|
|
|
static::saved(function ($customer) {
|
|
|
|
|
|
if (empty($customer->code)) {
|
|
|
|
|
|
$customer->code = self::generateCustomerCode($customer);
|
|
|
|
|
|
// 使用saveQuietly避免递归调用
|
|
|
|
|
|
$customer->saveQuietly();
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static function generateCustomerCode($customer)
|
|
|
|
|
|
{
|
|
|
|
|
|
// 生成唯一16位code,CM+14位
|
|
|
|
|
|
$unique = strtoupper(substr(md5($customer->id . microtime(true) . mt_rand(1000, 9999)), 8, 6));
|
|
|
|
|
|
$code = 'CM' . date('Ymd') .$unique;
|
|
|
|
|
|
return $code;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 静默保存方法,不触发事件
|
|
|
|
|
|
public function saveQuietly(array $options = [])
|
|
|
|
|
|
{
|
|
|
|
|
|
return static::withoutEvents(function () use ($options) {
|
|
|
|
|
|
return $this->save($options);
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
2025-07-23 18:41:47 +08:00
|
|
|
|
}
|