[ ['name' => '金', 'level' => 'v3'], ['name' => '银', 'level' => 'v2'], ['name' => '铜', 'level' => 'v1'], ], 'agent' => [ ['name' => '省', 'level' => 'v3'], ['name' => '市', 'level' => 'v2'], ['name' => '区', 'level' => 'v1'], ] ]; /** * 用户下单后, 更新成长值, 添加返现记录 * * @param \App\Models\Order $order * * @return mixed */ public function storeByOrder(Order $order) { // 订单未取消 if ($order->isCancelled) { return false; } // 订单成长值 $sales_value = $order->sales_value; $user = $order->user; $user->salesValueLogs()->create([ 'order_id' => $order->id, 'order_user_id' => $user_id, 'type' => SalesValueLog::TYPE_INDIVIDUAL, 'change_sales_value' => $sales_value ]); $user->userInfo()->increment('growth_value', $sales_value); // 上级返现 $parent_ids = array_reverse($user->userInfo->parent_ids); $parents = User::with(['userInfo'])->whereIn('id', $parent_ids)->where('role', '!=', '')->get(); // 没有上级是代理身份 if ($parents->count() === 0) { return false; } $setting = new SettingService(); $conf = $setting->get('distribution'); foreach($parents as $item) { $slug = explode('-', $item->userInfo->role); $role = $slug[0]; $level = $slug[1]; $ratio = data_get($conf, $role . '-profit-' . $level); } } }