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