bztang-admin/plugins/team-dividend/src/models/GoodsTeamDividend.php

97 lines
3.2 KiB
PHP

<?php
namespace Yunshop\TeamDividend\models;
use app\common\models\BaseModel;
use Illuminate\Support\Facades\DB;
/**
* Class GoodsTeamDividend
* @package Yunshop\TeamDividend\models
* @property integer is_restrict
*/
class GoodsTeamDividend extends BaseModel
{
public $table = 'yz_goods_team_dividend';
public $timestamps = true;
protected $guarded = [''];
public $attributes = [
'is_dividend' => 1,
'is_hierarchy' => 1,
'is_restrict' => 0,
'has_dividend' => 0,
'has_dividend_price' => 0,
'has_dividend_rate' => 0,
'commission_rates' => 0
];
public static function getGoodsByGoodsId($giidsId){
return self::where('goods_id', $giidsId)->where('is_dividend', '1');
}
public static function relationSave($goodsId, $data, $operate)
{
if (!$goodsId || !$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_peers'] = $data['has_peers'] ?: 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;
// foreach ($data['has_dividend_prices'] as $key => $has_dividend_prices) {
// if (!$has_dividend_prices) {
// unset($data['has_dividend_prices'][$key]);
// }
// }
// foreach ($data['has_dividend_rates'] as $key => $has_dividend_rates) {
// if (!$has_dividend_rates) {
// unset($data['has_dividend_rates'][$key]);
// }
// }
$data['has_dividend_prices'] = $data['has_dividend_prices'] ? serialize($data['has_dividend_prices']) : '';
$data['has_dividend_rates'] = $data['has_dividend_rates'] ? serialize($data['has_dividend_rates']) : '';
$data['has_hierarchys'] = serialize($data['has_hierarchys']);
$data['has_dividend_extra'] = $data['has_dividend_extra'] ? serialize($data['has_dividend_extra']) : '';
$data['commission_rates'] = $data['commission_rates'] ? serialize($data['commission_rates']) : '';
$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 getGoodsSet($goodsId)
{
if (!$goodsId) {
return ['is_dividend' => 1, 'is_hierarchy' => 0, 'has_peers' => 0, 'is_restrict' => 0];
}
if ($model = static::where(['goods_id' => $goodsId])->first()) {
return $model->toArray();
};
return ['is_dividend' => 0, 'is_hierarchy' => 0, 'has_peers' => 0, 'is_restrict' => 0];
}
}