Ejemplo n.º 1
0
 /**
  * 根据权限数组拼接出数据库查询用的语句
  * @param $AppId
  * @param $parnter_id
  * @param $数据库前缀用以拼在条件中
  * @return array
  *
  **/
 public function getWherePermittedPartner($data_groups, $AppId, $PartnerId, $app_type, $partner_type, $AreaList, $AreaId, $is_abroad)
 {
     $oPartnerApp = new Config_Partner_App();
     $oApp = new Config_App();
     $oArea = new Config_Area();
     $data_groups = trim($data_groups);
     $AppId = intval($AppId);
     $PartnerId = intval($PartnerId);
     $AreaId = intval($AreaId);
     //根据所在区域筛选
     if ($AreaId) {
         $AreaList = $oArea->getArea($AreaId, $AreaList);
     }
     $is_abroad = intval($is_abroad);
     $partner_type = intval($partner_type);
     $app_list = $this->getApp($data_groups, 'AppId');
     //根据产品类型筛选
     $app_list = $oApp->getApp($app_type, $app_list);
     $permission_array = array();
     if (count($app_list)) {
         foreach ($app_list as $app => $app_value) {
             if ($AppId == $app || $AppId == 0) {
                 $partner_list = $this->getPartner($data_groups, $app, 'PartnerId,name,AreaId');
                 //根据合作方式筛选
                 $partner_list = $oPartnerApp->getPermittedPartnerByPartnerType($partner_type, $partner_list);
                 //根据所在地区筛选
                 $partner_list = $oPartnerApp->getPermittedPartnerByPartnerArea($AreaList, $partner_list);
                 //将允许的合作商列表分组
                 if (count($partner_list)) {
                     $p_list = array();
                     foreach ($partner_list as $partner => $partner_value) {
                         if ($PartnerId == 0 || $PartnerId == $partner) {
                             $p_list[] = $partner;
                         }
                     }
                     $permission_array[$app]['partner'] = $p_list;
                 }
             }
         }
     }
     if (isset($permission_array)) {
         //根据游戏拼接成数组
         foreach ($permission_array as $app => $app_data) {
             $app_arr[$app] = "(AppId = {$app} and PartnerId in (" . implode(",", $app_data['partner']) . ")) ";
         }
         //组合数组
         if (isset($app_arr)) {
             $wherePermittedPartner = "(" . implode(" or ", $app_arr) . ")";
         } else {
             $wherePermittedPartner = "(0)";
         }
     } else {
         $wherePermittedPartner = "(0)";
     }
     return $wherePermittedPartner;
 }