where(['global_order_id' => $global_order_id]) ->whereIn('state', [OrderMain::ORDER_STATE_COMPLETE,OrderMain::ORDER_STATE_EVALUATED,OrderMain::ORDER_STATE_UNREFUND]) ->first(); if (empty($orderMain)) { return; } Db::beginTransaction(); try { // =======社区服务点分账 / Start======= // 前提:用户线上下单并且订单完成 // 奖励规则A:用户是平台新用户,奖励社区服务点平台新用户奖励x元+平台新用户首单奖励y元+订单商品金额z%的分成 // 奖励规则B:用户是非新用户,奖励社区服务点订单实际支付金额z%的分成 // =======社区服务点分账 / Start======= // 当前用户的社区服务点绑定关系 $communityBind = UserRelationBind::query() ->where(['bind_type' => UserRelationBind::BIND_TYPE_COMMUNITY, 'user_id' => $orderMain->user_id]) ->first(); if ($communityBind) { // 奖励/分账金额 $award = ServiceReward::query()->where(['type' => ServiceReward::TYPE_COMMUNITY])->first(); if (empty($award)) { Db::rollBack(); return false; } $award = $award->set_reward; // 平台新用户 if ($this->userService->isPlatformNewUser($orderMain->user_id, $orderMain->id)) { $this->financialRecordService->communityAwardByPlatNewUser($communityBind->source_id, $orderMain->global_order_id, $award['new_user_reward']); $this->financialRecordService->communityAwardByPlatNewUserFirstOLOrder($communityBind->source_id, $orderMain->global_order_id, $award['first_reward']); } // 账单分成 $money = bcmul($orderMain->money, $award['flow_reward']); $this->financialRecordService->communitySeparateAccountsByOrderComp($communityBind->source_id, $orderMain->global_order_id, $money); } // =======社区服务点分账 / End======= Db::commit(); return true; } catch (\Exception $e) { $this->log->event(LogLabel::SEPARATE_ACCOUNTS_LOG, ['exception' => $e->getMessage(), 'order_main' => json_encode($orderMain)]); Db::rollBack(); return false; } } /** * @inheritDoc */ public function orderOfflinePaid($global_order_id) { // TODO: Implement orderOfflinePaid() method. } }