| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?php
- namespace common\globals;
- use common\enums\StatusEnum;
- use common\logic\common\AddonsLimit;
- use common\models\common\Addons;
- class Promotion extends BaseGlobal
- {
- ##########################################################################################################
- # 推广中心返回数据格式
- // #[
- # 'Achievement' => ['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;
- }
- }
|