73 lines
1.4 KiB
PHP
73 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace app\store\model;
|
|
|
|
use think\Model;
|
|
|
|
/**
|
|
* 供应商套餐模型
|
|
*/
|
|
class VendorPackageModel extends Model
|
|
{
|
|
// 设置表名
|
|
protected $name = 'vendor_package';
|
|
|
|
// 主键
|
|
protected $pk = 'id';
|
|
|
|
// 自动写入时间戳
|
|
protected $autoWriteTimestamp = true;
|
|
protected $createTime = 'createTime';
|
|
protected $updateTime = 'updateTime';
|
|
|
|
// 类型转换
|
|
protected $type = [
|
|
'tags' => 'array',
|
|
];
|
|
|
|
/**
|
|
* 与项目的关联
|
|
*/
|
|
public function projects()
|
|
{
|
|
return $this->hasMany('VendorProjectModel', 'packageId', 'id')
|
|
->where('isDel', 0);
|
|
}
|
|
|
|
/**
|
|
* 标签获取器
|
|
*/
|
|
public function getTagsAttr($value)
|
|
{
|
|
if (empty($value)) {
|
|
return [];
|
|
}
|
|
if (is_array($value)) {
|
|
return $value;
|
|
}
|
|
return array_filter(explode(',', $value));
|
|
}
|
|
|
|
/**
|
|
* 标签修改器
|
|
*/
|
|
public function setTagsAttr($value)
|
|
{
|
|
return is_array($value) ? implode(',', $value) : $value;
|
|
}
|
|
|
|
/**
|
|
* 折扣获取器
|
|
*/
|
|
public function getDiscountAttr($value, $data)
|
|
{
|
|
if (empty($data['originalPrice']) || $data['originalPrice'] <= 0) {
|
|
return '原价';
|
|
}
|
|
$discount = round((floatval($data['price']) / floatval($data['originalPrice'])) * 10, 1);
|
|
return $discount . '折';
|
|
}
|
|
}
|
|
|
|
|