bztang-admin/plugins/area-dividend/src/models/AreaDividendGoods.php

83 lines
2.6 KiB
PHP

<?php
namespace Yunshop\AreaDividend\models;
use app\common\facades\Setting;
use app\common\models\BaseModel;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\DB;
class AreaDividendGoods extends BaseModel
{
use SoftDeletes;
public $table = 'yz_goods_area_dividend';
public $timestamps = true;
protected $guarded = [''];
public $attributes = [
'is_dividend' => 1,
'has_dividend' => 0,
'has_dividend_price' => 0,
'has_dividend_rate' => 0,
];
public static function relationSave($goodsId, $data, $operate)
{
if (!$goodsId) {
return false;
}
// edit 2018-06-01 by Yy
// content 门店编辑商品没有区域分红选项, admin保存之后门店再保存widget没值,取默认.
if (!$data) {
return false;
}
$dividendModel = self::getModel($goodsId, $operate);
//判断deleted
if ($operate == 'deleted') {
return $dividendModel->delete();
}
$data['goods_id'] = $goodsId;
if(!$data['has_dividend']){
$data['has_dividend'] = 0;
}
$data['has_dividend_price'] = $data['has_dividend_price'] ?$data['has_dividend_price'] : 0;
$data['has_dividend_rate'] = $data['has_dividend_rate'] ?$data['has_dividend_rate'] : 0;
//开启了第一个独立规则,第二个就不能开启
if ($data['has_dividend']) {
$data['alone_rule'] = 0;
} else {
$data['alone_rule'] = $data['alone_rule'] ? $data['alone_rule'] : 0;
}
$data['province_rate'] = $data['province_rate'] ?$data['province_rate'] : 0;
$data['city_rate'] = $data['city_rate'] ?$data['city_rate'] : 0;
$data['area_rate'] = $data['area_rate'] ?$data['area_rate'] : 0;
$data['street_rate'] = $data['street_rate'] ?$data['street_rate'] : 0;
$dividendModel->setRawAttributes($data);
return $dividendModel->save();
}
public static function getModel($goodsId, $operate)
{
$model = false;
if ($operate != 'created') {
$model = static::where(['goods_id' => $goodsId])->first();
}
!$model && $model = new static;
return $model;
}
public static function getGoodsByGoodsId($goodsId)
{
return self::where('goods_id',$goodsId)
->where('is_dividend','1');
}
public static function getGoodsSet($goodsId)
{
$model = $goodsId ? static::where(['goods_id' => $goodsId])->first() : new static;
!$model && $model = ['is_dividend' => 0] ;
return $model;
}
}