-1 && $model = $model->where('is_settled', '=', !!$is_settled); $data = $model->with(['user']) ->where('heads_id', '=', $user_id) ->order(['create_time' => 'desc']) ->paginate(15); if ($data->isEmpty()) { return $data; } // 整理订单信息 $with = ['product' => ['image', 'refund'], 'address', 'user']; return OrderService::getOrderList($data, 'order_master', $with); } /** * 创建队长订单记录 */ public static function createOrder($order, $order_type = OrderTypeEnum::MASTER) { // 分红订单模型 $model = new self; // 队长基本设置 $setting = Setting::getItem('basic', $order['app_id']); // 是否开启分红功能 if (!$setting['is_open']) { return false; } // 订单总金额(不含运费) $orderPrice= bcsub($order['pay_price'], $order['express_price'], 2); // 获取当前买家的所有上级队长用户id $teamUser = $model->getTeamUser($order['user_id'], $setting); //log_write($teamUser); // 非分销订单 if (!$teamUser) { return false; } // 计算订单分红 $capital = $model->getCapitalByOrder($order, $teamUser, 'create'); //log_write($capital); // 如果没有分红,则不写入订单 if(!$capital){ return false; } foreach ($teamUser as $user) { $model::create([ 'user_id' => $order['user_id'], 'order_id' => $order['order_id'], 'order_type' => $order_type, 'order_price' => $capital['orderPrice'], 'bonus_money' => $capital['user'][$user['heads_id']], 'heads_id' => $user['heads_id'], 'bonus_percent' => $user['bonus_percent'], 'bonus_type' => $user['bonus_type'], 'is_settled' => 0, 'shop_supplier_id' => $order['shop_supplier_id'], 'app_id' => $order['app_id'] ]); } return true; } /** * 获取当前买家的所有需分红队长用户id */ private function getTeamUser($user_id, $setting) { $teamUser = []; $heads_id = RefereeModel::getHeadsId($user_id); if($heads_id) { //log_write($user_id .':' . $heads_id); $headsUser = UserModel::detail($heads_id, ['grade']); $teamUser[] = [ 'heads_id' => $heads_id, 'bonus_type' => 10, 'bonus_percent' => floatval($headsUser['grade']['equity']) //分红比例 ]; } else { return false; } // 如果开启级差奖,获取所有级差奖用户 $jcUser = []; if($setting['jcaward']) { $jcUser = RefereeModel::getAllJcUser($heads_id); } //log_write('jc:'.$heads_id); //log_write($jcUser); // 如果开启平级奖,获取所有平级奖用户 $pjUser = []; if($setting['pjaward']) { $pjUser = RefereeModel::getAllPjUser($heads_id, $setting['pjaward_level']); } //log_write('pj:'.$heads_id); //log_write($pjUser); return array_merge($teamUser, $jcUser, $pjUser); } }