99 lines
3.1 KiB
PHP
99 lines
3.1 KiB
PHP
<?php
|
||
|
||
namespace App\Models;
|
||
|
||
use Illuminate\Database\Eloquent\Model;
|
||
|
||
class MerchantRatio extends BaseModel
|
||
{
|
||
//
|
||
public static function add($parent_id = 0, $level = 1, $hierarchy = 1, $merchant_id, $radio, $is_self = 1)
|
||
{
|
||
return self::insert([
|
||
'level' => $level,//1级股东
|
||
'hierarchy' => $hierarchy,//层级1
|
||
'parent_id' => $parent_id,
|
||
'merchant_id' => $merchant_id,//当前商户ID
|
||
'is_self' => $is_self,
|
||
'ratio' => $radio
|
||
|
||
]);
|
||
}
|
||
|
||
//股东添加
|
||
public static function addTopLevel($merchant_id, $radio)
|
||
{
|
||
return self::add(0, 1, 1, $merchant_id, $radio);
|
||
}
|
||
|
||
//代理添加
|
||
public static function addProxyLevel($parent_id, $merchant_id, $radio)
|
||
{
|
||
//判断是否没有上级,如有就是普通代理
|
||
if ($parent_id == 0) {
|
||
return self::add($parent_id, 2, 1, $merchant_id, $radio);
|
||
}
|
||
//如果有上级,层级是2
|
||
return self::add($parent_id, 2, 2, $merchant_id, $radio);
|
||
}
|
||
//商户添加,商户可以有代理,可以有股东,也可以没有代理,直接是股东
|
||
//有3级的时候,需要添加2条记录,没有的话,2级都是条件一条记录
|
||
public static function addDefault($parent_id, $merchant_id, $radio)
|
||
{
|
||
if ($parent_id == 0) {
|
||
//没有上级那么就是独立商户
|
||
return self::add(0, 3, 1, $merchant_id, $radio);
|
||
|
||
}
|
||
//如果存在上级,先添加自己,然后再添加1级,如果上级还有股东,那么就需要添加3条记录
|
||
if ($parent_id != 0) {
|
||
//取得上级信息
|
||
$up_obj = self::where('merchant_id', $parent_id)->first();
|
||
|
||
//再来判断上级是否还有上级
|
||
//没有上级,则就是添加一个
|
||
if ($up_obj['parent_id'] == 0) {
|
||
return self::add($parent_id, 3, 2, $merchant_id, $radio);
|
||
} else {
|
||
//如果上级不等于0,则还有上级,
|
||
//需要添加2条记录
|
||
$data = [];
|
||
//股东
|
||
$data[] = [
|
||
'level' => 3,//3级商户
|
||
'hierarchy' => 3,//层级1
|
||
'parent_id' => $up_obj->parent_id,
|
||
'merchant_id' => $merchant_id,//当前商户ID
|
||
'is_self' => 0,
|
||
'ratio' => $radio
|
||
];
|
||
//找到上级的费率
|
||
|
||
////先添加自己
|
||
$data[] = [
|
||
'level' => 3,//3级商户
|
||
'hierarchy' => 2,//层级1
|
||
'parent_id' => $parent_id,
|
||
'merchant_id' => $merchant_id,//当前商户ID
|
||
'is_self' => 1,
|
||
'ratio' => $radio
|
||
];
|
||
|
||
return self::insert($data);
|
||
}
|
||
|
||
|
||
}
|
||
|
||
}
|
||
|
||
//取得上级信息
|
||
public function froms()
|
||
{
|
||
return $this->hasOne('App\Models\MerchantRatio', 'merchant_id', 'parent_id')->withDefault([
|
||
'name' => '',
|
||
|
||
]);
|
||
}
|
||
}
|