sifangpay/app/Models/MerchantRatio.php

99 lines
3.1 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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' => '',
]);
}
}