['total_commission' => 0,'is_install' => true, 'name' => '业绩奖励'], # 'Agent' => ['total_commission' => 0,'is_install' => true, 'name' => '经销分红'], # 'Area' => ['total_commission' => 0,'is_install' => true, 'name' => '区域管理'], # 'Boss' => ['total_commission' => 0,'is_install' => true, 'name' => 'Boss'], #]; ########################################################################################################## /** * 获取推广中心列表内容 * @param [type] $invokes * @param array $params * @return array */ public function getPromotion($invokes, $params = []) { $return = $name_arr = []; foreach ($invokes as $invoke) { try { // 检查是否安装插件 if (AddonsLimit::goodsModel($invoke['addons_name'], $params['mall_id']) == false) continue; // 获取跟人对应插件资产 $params['addons_name'] = $invoke['addons_name']; $data = $this->invoke($invoke['class'], $invoke['method'], $params); $is_success = $this->validateInvokeReturn($params['invoke_id'], $data); if ($is_success) { if(empty($data)){ continue; } } else { throw new \Exception('结果数据格式校验未通过'); } $return[$invoke['addons_name']] = $data; // 获取插件名称 $name_arr[] = $invoke['addons_name']; } catch (\Exception $e) { \Yii::error('全局调用(INVOKE_GET_WITHDRAW_COND)出错:' . $invoke['class'] . '->' . $invoke['method'] . 'msg:' . $e->getMessage()); continue; } } // 获取插件名称 $addons = Addons::find()->select('name,title')->where(['name' => $name_arr, 'status' => StatusEnum::ENABLED])->asArray()->indexBy('name')->all(); foreach ($addons as $name => $addon) { $return[$name]['name'] = $return[$name]['rename'] ?? $addon['title']; } return $return; } /** * 验证调用结果 * @param [type] $return * @return boolean */ protected function validateGetPromotion($return = null): bool { return true; } }