$data['source_table_id']]); if($log){ throw new \Exception('已生成分佣记录'); } //获取对应代理商所属销售公司 $salesCompanyAgent = SalesCompanyAgent::findOne(['user_id' => $data['user_id'],'status'=>StatusEnum::ENABLED,'mall_id'=>$data['mall_id']]); if(!$salesCompanyAgent){ throw new \Exception('该代理商未绑定销售公司,user_id:'.$data['user_id']); } $salesCompany = SalesCompany::findOne(['id' =>$salesCompanyAgent->company_id,'status'=>StatusEnum::ENABLED,'mall_id'=>$data['mall_id']]); if(!$salesCompany){ throw new \Exception('销售公司不存在'); } //平台抽佣 $management_fee = 0; //获取配置 $config = \Yii::$app->services->setting->addons->get($data['mall_id'], SalesCompanyEnum::ADDONS_NAME, 'basic'); if($config && $config['management_fee']){ $management_fee = $config['management_fee']; } $total_money = $data['price'] * $data['num']; $money = bcsub($total_money,$total_money * $management_fee / 100,2); //生成冻结日志 $params = [ 'mall_id' => $data['mall_id'], 'user_id' => $salesCompany->user_id, 'source_table' => $data['source_table'], 'source_table_id' => $data['source_table_id'], 'money' => $money, 'total_money' => $total_money, 'is_frozen' => $data['is_frozen'], 'rate' => $management_fee, 'agent_user_id' => $data['user_id'], 'desc' => $data['desc'], 'unit_goods_price' => $data['price'], 'num' => $data['num'], ]; $res = CommissionLog::setData($params); if ($res === false){ throw new \Exception('销售公司生成佣金记录失败'.CommissionLog::getStaticError()); } if(!$data['is_frozen']){ $insert_wallet[] = [ 'mall_id' => $data['mall_id'], 'user_id' => $salesCompany->user_id, 'is_frozen' => false, 'wallet_type' => 'commission', 'money' => $money, 'desc' => '补货货款结算', 'source_table' => $data['source_table'], 'source_table_id' => $data['source_table_id'], 'from_type' => SalesCompanyEnum::ADDONS_NAME, 'capital_type' => 'sales_company', ]; $res = UserWalletService::batchHandleByQueue($insert_wallet); if ($res === false){ throw new \Exception('销售公司生成佣金记录失败'.CommissionLog::getStaticError()); } } return true; } }