becomeAgentUser($order); // 消费达到金额成为分销商 $this->becomeAgentByOrder($order); // 购买指定商品成为分红用户 $this->becomeBonusUser($order); // 购买指定商品成为VIP用户 $this->becomeVipUser($order); // 购买指定商品成为运营中心 $this->becomeOperationsUser($order); // 分红订单 by lyzflash 2023.03.17 复购分红商品也产生奖励 BonusOrderModel::createBonusOrder($order); // 如果是虚拟商品,则标记为已完成,无需发货 if($order['delivery_type']['value'] == DeliveryTypeEnum::NO_EXPRESS && $order['virtual_auto'] == 1){ $order->save([ 'delivery_status' => 20, 'delivery_time' => time(), 'receipt_status' => 20, 'receipt_time' => time(), 'order_status' => 30, 'virtual_content' => $order['product'][0]['virtual_content'], ]); // 执行订单完成后的操作 $OrderCompleteService = new OrderCompleteService(OrderTypeEnum::MASTER); $OrderCompleteService->complete([$order], $order['app_id']); } return true; } /** * 购买指定商品成为分销商 */ private function becomeAgentUser($order) { // 整理商品id集 $productIds = helper::getArrayColumn($order['product'], 'product_id'); $model = new AgentApplyModel; return $model->becomeAgentUser($order['user_id'], $productIds, $order['app_id']); } private function becomeAgentByOrder($order) { $model = new AgentApplyModel; return $model->becomeAgentByOrder($order['user_id'], $order['pay_price'], $order['app_id']); } /** * 购买指定商品成为分红用户 */ private function becomeBonusUser($order) { // 整理商品id集 $productIds = helper::getArrayColumn($order['product'], 'product_id'); $model = new BonusApplyModel; return $model->becomeBonusUser($order['user_id'], $productIds, $order['app_id'], $order); } /** * 购买指定商品成为VIP用户 */ private function becomeVipUser($order) { // 整理商品id集 $productIds = helper::getArrayColumn($order['product'], 'product_id'); $model = new VipApplyModel; return $model->becomeVipUser($order['user_id'], $productIds, $order['app_id'], $order); } /** * 购买指定商品生成运营中心入驻申请 */ private function becomeOperationsUser($order) { // 整理商品id集 $productIds = helper::getArrayColumn($order['product'], 'product_id'); $model = new OperationsApplyModel; return $model->becomeOperationsUser($order['user_id'], $productIds, $order['app_id']); } }