Exemple #1
0
 /**
  * 根据app_id获取相关信息
  */
 public function config()
 {
     $app_id = intval($this->input['id']);
     if (!$app_id) {
         $this->errorOutput(NO_APP_ID);
     }
     //获取APP信息
     $app_info = $this->api->detail('app_info', array('id' => $app_id, 'del' => 0));
     if (!$app_info) {
         $this->errorOutput(APP_NOT_EXISTS);
     }
     //分享平台数据
     if (isset($app_info['share_plant']) && $app_info['share_plant']) {
         $app_info['share_plant'] = @unserialize($app_info['share_plant']);
     } else {
         $app_info['share_plant'] = array();
     }
     if ($app_info['icon'] && unserialize($app_info['icon'])) {
         $app_info['icon'] = unserialize($app_info['icon']);
         if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
             $app_info['icon']['host'] = REPLACE_IMG_DOMAIN;
         }
         $app_icon = array('web' => $app_info['icon']);
         if ($this->settings['icon_size']) {
             $path = $app_info['icon']['host'] . $app_info['icon']['dir'];
             $file = $app_info['icon']['filepath'] . $app_info['icon']['filename'];
             if ($this->settings['icon_size']['android']) {
                 foreach ($this->settings['icon_size']['android'] as $android) {
                     $size = $android['width'] . 'x' . $android['height'];
                     $url = $path . $size . '/' . $file;
                     switch ($android['width']) {
                         case '36':
                             $key = 'drawable-ldpi';
                             break;
                         case '48':
                             $key = 'drawable-mdpi';
                             break;
                         case '72':
                             $key = 'drawable-hdpi';
                             break;
                         case '96':
                             $key = 'drawable-xhdpi';
                             break;
                         case '144':
                             $key = 'drawable-xxhdpi';
                             break;
                     }
                     if ($key) {
                         $app_icon['android'][$key] = $url;
                     }
                 }
             }
             if ($this->settings['icon_size']['ios']) {
                 foreach ($this->settings['icon_size']['ios'] as $ios) {
                     $size = $ios['width'] . 'x' . $ios['height'];
                     $url = $path . $size . '/' . $file;
                     switch ($ios['width']) {
                         case '57':
                             $key = 'Icon';
                             break;
                         case '114':
                             $key = 'Icon@2x';
                             break;
                         case '120':
                             $key = 'Icon-60@2x';
                             break;
                     }
                     if ($key) {
                         $app_icon['ios'][$key] = $url;
                     }
                 }
             }
         }
         if ($app_icon) {
             $app_info['icon'] = $app_icon;
         }
     }
     if ($app_info['startup_pic'] && unserialize($app_info['startup_pic'])) {
         $app_info['startup_pic'] = unserialize($app_info['startup_pic']);
         if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
             $app_info['startup_pic']['host'] = REPLACE_IMG_DOMAIN;
         }
         $startup_pic = array('web' => $app_info['startup_pic']);
         if ($this->settings['startup_size']) {
             $path = $app_info['startup_pic']['host'] . $app_info['startup_pic']['dir'];
             $file = $app_info['startup_pic']['filepath'] . $app_info['startup_pic']['filename'];
             if ($this->settings['startup_size']['android']) {
                 foreach ($this->settings['startup_size']['android'] as $android) {
                     $size = $android['width'] . 'x' . $android['height'];
                     $url = $path . $size . '/' . $file;
                     $startup_pic['android'] = $url;
                 }
             }
             if ($this->settings['startup_size']['ios']) {
                 foreach ($this->settings['startup_size']['ios'] as $ios) {
                     $size = $ios['width'] . 'x' . $ios['height'];
                     $url = $path . $size . '/' . $file;
                     switch ($size) {
                         case '640x960':
                             $key = 'Default@2x';
                             break;
                         case '640x1136':
                             $key = 'Default-568h@2x';
                             break;
                     }
                     if ($key) {
                         $startup_pic['ios'][$key] = $url;
                     }
                 }
             }
             //iOS有上传图片则覆盖
             if ($app_info['startup_pic2'] && unserialize($app_info['startup_pic2'])) {
                 $startup_pic2 = unserialize($app_info['startup_pic2']);
                 $path = $startup_pic2['host'] . $startup_pic2['dir'];
                 $file = $startup_pic2['filepath'] . $startup_pic2['filename'];
                 $startup_pic['ios']['Default-568h@2x'] = $path . '640x1136/' . $file;
             }
             if ($app_info['startup_pic3'] && unserialize($app_info['startup_pic3'])) {
                 $startup_pic3 = unserialize($app_info['startup_pic3']);
                 $path = $startup_pic3['host'] . $startup_pic3['dir'];
                 $file = $startup_pic3['filepath'] . $startup_pic3['filename'];
                 $startup_pic['ios']['Default@2x'] = $path . '640x960/' . $file;
             }
         }
         if ($startup_pic) {
             $app_info['startup_pic'] = $startup_pic;
         }
     }
     if ($app_info['is_show_guide']) {
         //获取APP引导图
         $guideCondition = array('app_id' => $app_id, 'effect' => $app_info['guide_effect']);
         $guide_pic = $this->api->app_pic($guideCondition);
         if ($guide_pic) {
             $guide_pic_arr = array();
             foreach ($guide_pic as $k => $guide) {
                 if ($guide['type'] == 1) {
                     $guide_type = 'fg';
                 } elseif ($guide['type'] == 2) {
                     $guide_type = 'bg';
                 }
                 if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
                     $guide['info']['host'] = REPLACE_IMG_DOMAIN;
                 }
                 $guide_pic_arr[$guide_type][$k]['web'] = $guide['info'];
                 if ($this->settings['guide_size']) {
                     $path = $guide['info']['host'] . $guide['info']['dir'];
                     $file = $guide['info']['filepath'] . $guide['info']['filename'];
                     if ($this->settings['guide_size']['android']) {
                         foreach ($this->settings['guide_size']['android'] as $android) {
                             if ($guide['type'] == 2 && $app_info['guide_effect'] == 'effect2') {
                                 $size = 'x800';
                             } else {
                                 $size = $android['width'] . 'x' . $android['height'];
                             }
                             $url = $path . $size . '/' . $file;
                             $guide_pic_arr[$guide_type][$k]['android'] = $url;
                         }
                     }
                     if ($this->settings['guide_size']['ios']) {
                         foreach ($this->settings['guide_size']['ios'] as $ios) {
                             if ($guide['type'] == 2 && $app_info['guide_effect'] == 'effect2') {
                                 $size = 'x1136';
                             } else {
                                 $size = $ios['width'] . 'x' . $ios['height'];
                             }
                             $url = $path . $size . '/' . $file;
                             $guide_pic_arr[$guide_type][$k]['ios'] = $url;
                         }
                     }
                 }
             }
             if (!$guide_pic_arr) {
                 $guide_pic_arr = $guide_pic;
             }
             $app_info['guide_pic'] = $guide_pic_arr;
         }
     }
     if ($this->settings['data_url']) {
         $app_info['base_url'] = trim($this->settings['data_url']['path'], '/') . '/' . $app_info['user_id'] . '/';
     }
     //天气接口
     if (WEATHER_API) {
         $app_info['weather_api'] = WEATHER_API;
     }
     //统计接口
     if (STATISTICS_API) {
         $app_info['statistics_api'] = STATISTICS_API;
     }
     //会员接口
     if (MEMBER_API) {
         $app_info['member_api'] = MEMBER_API;
     }
     //互助接口
     if (SEEKHELP_API) {
         $app_info['seekhelp_api'] = SEEKHELP_API;
     }
     //获取推送id和key
     include_once ROOT_PATH . 'lib/class/company.class.php';
     $companyApi = new company();
     $push_api = $companyApi->getPushApi($this->user['user_id']);
     if ($push_api) {
         $app_info['push_api'] = $push_api;
         $app_info['prov_id'] = $push_api['prov_id'];
     }
     //获取APP打包程序数据
     $app_info['client'] = $this->api->get_version_info($app_id);
     //获取APP模板信息
     $temp_info = $this->api->detail('app_template', array('id' => $app_info['temp_id']));
     if ($temp_info) {
         if (unserialize($temp_info['pic'])) {
             $temp_info['pic'] = unserialize($temp_info['pic']);
             if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
                 $temp_info['pic']['host'] = REPLACE_IMG_DOMAIN;
             }
         }
         $app_info['template'] = $temp_info;
         //获取APP模板的属性
         include_once CUR_CONF_PATH . 'lib/appTemplate.class.php';
         $tempApi = new appTemplate();
         $temp_attr = $tempApi->get_attribute($app_info['temp_id'], $app_id, true);
         if ($temp_attr) {
             $temp_attr = $temp_attr[$app_info['temp_id']];
             foreach ($temp_attr as $k => $attr) {
                 if ($attr['mark'] == 'homeBackground') {
                     unset($temp_attr[$k]);
                     continue;
                 }
                 if (is_string($attr['attr_value']) && strpos($attr['attr_value'], '|')) {
                     $arr = explode('|', $attr['attr_value']);
                     $arr_list = array();
                     foreach ($arr as $value) {
                         $vv = explode(':', $value);
                         $arr_list[$vv[0]] = $vv[1];
                     }
                     $temp_attr[$k]['attr_value'] = $arr_list;
                 }
             }
             $app_info['template']['attrs'] = $temp_attr;
         }
     }
     //获取APP模块信息
     include_once CUR_CONF_PATH . 'lib/appModule.class.php';
     $moduleApi = new appModule();
     include_once CUR_CONF_PATH . 'lib/appInterface.class.php';
     $ui_api = new appInterface();
     $condition = array('app_id' => $app_id);
     if ($this->user['user_id']) {
         $condition['uid'] = $this->user['user_id'];
     }
     $module_info = $moduleApi->show(array('count' => -1, 'condition' => $condition));
     if ($module_info) {
         $ui_id = array();
         foreach ($module_info as $k => $module) {
             if ($module['pic'] && is_array($module['pic']) && $this->settings['module_size']) {
                 if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
                     $module['pic']['host'] = REPLACE_IMG_DOMAIN;
                 }
                 $module_icon = array('web' => $module['pic']);
                 if ($this->settings['module_size']) {
                     $path = $module['pic']['host'] . $module['pic']['dir'];
                     $file = $module['pic']['filepath'] . $module['pic']['filename'];
                     if ($this->settings['module_size']['android']) {
                         foreach ($this->settings['module_size']['android'] as $android) {
                             $size = $android['width'] . 'x' . $android['height'];
                             $url = $path . $size . '/' . $file;
                             $module_icon['android'] = $url;
                         }
                     }
                     if ($this->settings['module_size']['ios']) {
                         foreach ($this->settings['module_size']['ios'] as $ios) {
                             $size = $ios['width'] . 'x' . $ios['height'];
                             $url = $path . $size . '/' . $file;
                             $module_icon['ios'] = $url;
                         }
                     }
                 }
                 if ($module_icon) {
                     $module_info[$k]['pic'] = $module_icon;
                 }
             }
             if ($module['press_pic'] && is_array($module['press_pic']) && $this->settings['module_size']) {
                 if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
                     $module['press_pic']['host'] = REPLACE_IMG_DOMAIN;
                 }
                 $module_icon = array('web' => $module['press_pic']);
                 if ($this->settings['module_size']) {
                     $path = $module['press_pic']['host'] . $module['press_pic']['dir'];
                     $file = $module['press_pic']['filepath'] . $module['press_pic']['filename'];
                     if ($this->settings['module_size']['android']) {
                         foreach ($this->settings['module_size']['android'] as $android) {
                             $size = $android['width'] . 'x' . $android['height'];
                             $url = $path . $size . '/' . $file;
                             $module_icon['android'] = $url;
                         }
                     }
                     if ($this->settings['module_size']['ios']) {
                         foreach ($this->settings['module_size']['ios'] as $ios) {
                             $size = $ios['width'] . 'x' . $ios['height'];
                             $url = $path . $size . '/' . $file;
                             $module_icon['ios'] = $url;
                         }
                     }
                 }
                 if ($module_icon) {
                     $module_info[$k]['press_pic'] = $module_icon;
                 }
             }
             if ($module['ui_id']) {
                 $ui_id[$module['ui_id']] = $module['ui_id'];
             }
         }
         if ($ui_id) {
             $ui_id = implode(',', $ui_id);
             $ui_info = $ui_api->show(array('count' => -1, 'condition' => array('id' => $ui_id)));
             if ($ui_info) {
                 foreach ($module_info as $k => $v) {
                     //获取界面对应的属性
                     $ui_attr = $ui_api->get_attribute($v['ui_id'], $v['id'], true);
                     if ($ui_attr && $ui_attr[$v['ui_id']]) {
                         $ui_info[$v['ui_id']]['attr'] = $ui_attr[$v['ui_id']];
                     }
                     if ($ui_info[$v['ui_id']]) {
                         $module_info[$k]['ui'] = $ui_info[$v['ui_id']];
                     }
                 }
             }
         }
         $app_info['module'] = $module_info;
     }
     if ($this->input['flag']) {
         $app_cache = $this->api->detail('app_cache', array('app_id' => $app_id));
         if (!$app_cache) {
             $insertData = array('app_id' => $app_id, 'data' => serialize($app_info));
             $this->api->create('app_cache', $insertData);
             $app_info['unpack'] = 1;
         } else {
             if ($app_cache && unserialize($app_cache['data'])) {
                 $app_cache_data = unserialize($app_cache['data']);
                 //暂时去除验证设置是否改动
                 //if ($this->compare_data($app_info, $app_cache_data))
                 //{
                 //    $app_info['unpack'] = 0;
                 //}
                 //else
                 //{
                 $this->api->update('app_cache', array('data' => serialize($app_info)), array('app_id' => $app_id));
                 if ($app_info['client']) {
                     /*
                     $updateData = array(
                         'file_url' => '',
                         'download_url' => '',
                         'file_size' => 0,
                         'state' => 0,
                         'publish_time' => 0,
                         'push' => 0
                     );
                     foreach ($app_info['client'] as $k => $client)
                     {
                         $updateData['version_name'] = $client['version_name'] + 1;
                         $updateData['version_code'] = $client['version_code'] + 1;
                         $updateCondition = array(
                                 		                'app_id' => $app_id,
                                 		                'client_id' => $client['client_id']
                                 		            );
                                 		            if ($this->api->update('client_relation', $updateData, $updateCondition))
                                 		            {
                                 		                $app_info['client'][$k]['version_name'] = $updateData['version_name'];
                                 		                $app_info['client'][$k]['version_code'] = $updateData['version_code'];
                                 		            }
                     }
                     */
                 }
                 $app_info['unpack'] = 2;
                 //}
             } else {
                 $app_info['unpack'] = 0;
             }
         }
     }
     $this->addItem($app_info);
     $this->output();
 }
Exemple #2
0
 /**
  * 根据app_id获取相关信息
  */
 public function config()
 {
     $app_id = intval($this->input['id']);
     if ($app_id <= 0) {
         $this->errorOutput(PARAM_WRONG);
     }
     //获取APP信息
     $app_info = $this->api->detail('app_info', array('id' => $app_id, 'del' => 0));
     if (!$app_info) {
         $this->errorOutput(NO_APPID);
     }
     if ($app_info['icon'] && unserialize($app_info['icon'])) {
         $app_info['icon'] = unserialize($app_info['icon']);
         if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
             //XXX
             $app_info['icon']['host'] = REPLACE_IMG_DOMAIN;
         }
         $app_icon = array('web' => $app_info['icon']);
         if ($this->settings['icon_size']) {
             $path = $app_info['icon']['host'] . $app_info['icon']['dir'];
             $file = $app_info['icon']['filepath'] . $app_info['icon']['filename'];
             if ($this->settings['icon_size']['android']) {
                 foreach ($this->settings['icon_size']['android'] as $android) {
                     $size = $android['width'] . 'x' . $android['height'];
                     $url = $path . $size . '/' . $file;
                     switch ($android['width']) {
                         case '36':
                             $key = 'drawable-ldpi';
                             break;
                         case '48':
                             $key = 'drawable-mdpi';
                             break;
                         case '72':
                             $key = 'drawable-hdpi';
                             break;
                         case '96':
                             $key = 'drawable-xhdpi';
                             break;
                         case '144':
                             $key = 'drawable-xxhdpi';
                             break;
                     }
                     if ($key) {
                         $app_icon['android'][$key] = $url;
                     }
                 }
             }
             if ($this->settings['icon_size']['ios']) {
                 foreach ($this->settings['icon_size']['ios'] as $ios) {
                     $size = $ios['width'] . 'x' . $ios['height'];
                     $url = $path . $size . '/' . $file;
                     switch ($ios['width']) {
                         case '57':
                             $key = 'Icon';
                             break;
                         case '114':
                             $key = 'Icon@2x';
                             break;
                         case '120':
                             $key = 'Icon-60@2x';
                             break;
                     }
                     if ($key) {
                         $app_icon['ios'][$key] = $url;
                     }
                 }
             }
         }
         if ($app_icon) {
             $app_info['icon'] = $app_icon;
         }
     }
     if ($app_info['startup_pic'] && unserialize($app_info['startup_pic'])) {
         $app_info['startup_pic'] = unserialize($app_info['startup_pic']);
         if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
             //XXX
             $app_info['startup_pic']['host'] = REPLACE_IMG_DOMAIN;
         }
         $startup_pic = array('web' => $app_info['startup_pic']);
         if ($this->settings['startup_size']) {
             $path = $app_info['startup_pic']['host'] . $app_info['startup_pic']['dir'];
             $file = $app_info['startup_pic']['filepath'] . $app_info['startup_pic']['filename'];
             if ($this->settings['startup_size']['android']) {
                 foreach ($this->settings['startup_size']['android'] as $android) {
                     $size = $android['width'] . 'x' . $android['height'];
                     $url = $path . $size . '/' . $file;
                     $startup_pic['android'] = $url;
                 }
             }
             if ($this->settings['startup_size']['ios']) {
                 foreach ($this->settings['startup_size']['ios'] as $ios) {
                     $size = $ios['width'] . 'x' . $ios['height'];
                     $url = $path . $size . '/' . $file;
                     switch ($size) {
                         case '320x480':
                             $key = 'Default';
                             break;
                         case '640x960':
                             $key = 'Default@2x';
                             break;
                         case '640x1136':
                             $key = 'Default-568h@2x';
                             break;
                     }
                     if ($key) {
                         $startup_pic['ios'][$key] = $url;
                     }
                 }
             }
         }
         if ($startup_pic) {
             $app_info['startup_pic'] = $startup_pic;
         }
     }
     if (!USE_EFFECT) {
         unset($app_info['transition_effects']);
     }
     //获取APP引导图
     $guide_pic = $this->api->app_pic(array('app_id' => $app_id));
     if ($guide_pic) {
         $guide_pic_arr = array();
         foreach ($guide_pic as $k => $guide) {
             if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
                 //XXX
                 $guide['info']['host'] = REPLACE_IMG_DOMAIN;
             }
             $guide_pic_arr[$k]['web'] = $guide['info'];
             if ($this->settings['guide_size']) {
                 $path = $guide['info']['host'] . $guide['info']['dir'];
                 $file = $guide['info']['filepath'] . $guide['info']['filename'];
                 if ($this->settings['guide_size']['android']) {
                     foreach ($this->settings['guide_size']['android'] as $android) {
                         $size = $android['width'] . 'x' . $android['height'];
                         $url = $path . $size . '/' . $file;
                         $guide_pic_arr[$k]['android'][] = $url;
                     }
                 }
                 if ($this->settings['guide_size']['ios']) {
                     foreach ($this->settings['guide_size']['ios'] as $ios) {
                         $size = $ios['width'] . 'x' . $ios['height'];
                         $url = $path . $size . '/' . $file;
                         switch ($size) {
                             case '640x1136':
                                 $key = 'guide';
                                 break;
                             case '640x960':
                                 $key = 'guide_960';
                                 break;
                         }
                         if ($key) {
                             $guide_pic_arr[$k]['ios'][$key] = $url;
                         }
                     }
                 }
             }
         }
         if (!$guide_pic_arr) {
             $guide_pic_arr = $guide_pic;
         }
         $app_info['guide_pic'] = $guide_pic_arr;
     }
     if ($this->settings['data_url']) {
         $app_info['base_url'] = trim($this->settings['data_url']['path'], '/') . '/' . $app_info['user_id'] . '/';
     }
     if (WEATHER_API) {
         $app_info['weather_api'] = WEATHER_API;
     }
     //获取APP打包程序数据
     $app_info['client'] = $this->api->get_client($app_id, false, true);
     //获取APP模板信息
     $temp_info = $this->api->detail('app_template', array('id' => $app_info['temp_id']));
     if ($temp_info) {
         if (unserialize($temp_info['pic'])) {
             $temp_info['pic'] = unserialize($temp_info['pic']);
             if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
                 //XXX
                 $temp_info['pic']['host'] = REPLACE_IMG_DOMAIN;
             }
         }
         $app_info['template'] = $temp_info;
         //获取APP模板的属性
         include_once CUR_CONF_PATH . 'lib/appTemplate.class.php';
         $tempApi = new appTemplate();
         $temp_attr = $tempApi->get_attribute($app_info['temp_id'], $app_id, true);
         if ($temp_attr) {
             $temp_attr = $temp_attr[$app_info['temp_id']];
             foreach ($temp_attr as $k => $attr) {
                 if ($attr['mark'] == 'homeBackground') {
                     unset($temp_attr[$k]);
                     continue;
                 }
                 if (is_string($attr['attr_value']) && strpos($attr['attr_value'], '|')) {
                     $arr = explode('|', $attr['attr_value']);
                     $arr_list = array();
                     foreach ($arr as $value) {
                         $vv = explode(':', $value);
                         $arr_list[$vv[0]] = $vv[1];
                     }
                     $temp_attr[$k]['attr_value'] = $arr_list;
                 }
             }
             $app_info['template']['attrs'] = $temp_attr;
         }
     }
     //获取APP模块信息
     include_once CUR_CONF_PATH . 'lib/appModule.class.php';
     $moduleApi = new appModule();
     include_once CUR_CONF_PATH . 'lib/appInterface.class.php';
     $ui_api = new appInterface();
     $condition = array('app_id' => $app_id);
     if ($this->user['user_id']) {
         $condition['uid'] = $this->user['user_id'];
     }
     $module_info = $moduleApi->show(array('count' => -1, 'condition' => $condition));
     if ($module_info) {
         $ui_id = array();
         foreach ($module_info as $k => $module) {
             if ($module['pic'] && is_array($module['pic']) && $this->settings['module_size']) {
                 if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
                     //XXX
                     $module['pic']['host'] = REPLACE_IMG_DOMAIN;
                 }
                 $module_icon = array('web' => $module['pic']);
                 if ($this->settings['module_size']) {
                     $path = $module['pic']['host'] . $module['pic']['dir'];
                     $file = $module['pic']['filepath'] . $module['pic']['filename'];
                     if ($this->settings['module_size']['android']) {
                         foreach ($this->settings['module_size']['android'] as $android) {
                             $size = $android['width'] . 'x' . $android['height'];
                             $url = $path . $size . '/' . $file;
                             $module_icon['android'] = $url;
                         }
                     }
                     if ($this->settings['module_size']['ios']) {
                         foreach ($this->settings['module_size']['ios'] as $ios) {
                             $size = $ios['width'] . 'x' . $ios['height'];
                             $url = $path . $size . '/' . $file;
                             $module_icon['ios'] = $url;
                         }
                     }
                 }
                 if ($module_icon) {
                     $module_info[$k]['pic'] = $module_icon;
                 }
             }
             if ($this->settings['data_url']) {
                 $data_url = trim($this->settings['data_url']['path'], '/') . '/' . $app_info['user_id'] . '/';
                 if ($module['type'] == 'vote') {
                     $data_url .= trim($this->settings['data_url']['file']['vote']['url'], '/');
                 } else {
                     $data_url .= trim($this->settings['data_url']['file']['content']['url'], '/');
                     if ($module['type']) {
                         $type = implode(',', $module['type']);
                         $data_url .= '&app=' . $type;
                     }
                 }
                 $module_info[$k]['url'] = $data_url;
             }
             if ($module['ui_id']) {
                 $ui_id[$module['ui_id']] = $module['ui_id'];
             }
         }
         if ($ui_id) {
             $ui_id = implode(',', $ui_id);
             $ui_info = $ui_api->show(array('count' => -1, 'condition' => array('id' => $ui_id)));
             if ($ui_info) {
                 foreach ($module_info as $k => $v) {
                     //获取界面对应的属性
                     $ui_attr = $ui_api->get_attribute($v['ui_id'], $v['id'], true);
                     if ($ui_attr) {
                         $ui_info[$v['ui_id']]['attr'] = $ui_attr[$v['ui_id']];
                     }
                     $module_info[$k]['ui'] = $ui_info[$v['ui_id']];
                 }
             }
         }
         $app_info['module'] = $module_info;
     }
     if ($this->input['flag']) {
         $app_cache = $this->api->detail('app_cache', array('app_id' => $app_id));
         if (!$app_cache) {
             $insertData = array('app_id' => $app_id, 'data' => serialize($app_info));
             $this->api->create('app_cache', $insertData);
             $app_info['unpack'] = 1;
         } else {
             if ($app_cache && unserialize($app_cache['data'])) {
                 $app_cache_data = unserialize($app_cache['data']);
                 if ($this->compare_data($app_info, $app_cache_data)) {
                     $app_info['unpack'] = 0;
                 } else {
                     $this->api->update('app_cache', array('data' => serialize($app_info)), array('app_id' => $app_id));
                     if ($app_info['client']) {
                         $updateData = array('file_url' => '', 'download_url' => '', 'file_size' => 0, 'state' => 0, 'publish_time' => 0);
                         foreach ($app_info['client'] as $k => $client) {
                             if ($client['state'] > 0) {
                                 $updateData['version_name'] = $client['version_name'] + 1;
                                 $updateData['version_code'] = $client['version_code'] + 1;
                             }
                             $updateCondition = array('app_id' => $app_id, 'client_id' => $client['client_id']);
                             if ($this->api->update('client_relation', $updateData, $updateCondition)) {
                                 if ($client['state'] > 0) {
                                     $app_info['client'][$k]['version_name'] = $updateData['version_name'];
                                     $app_info['client'][$k]['version_code'] = $updateData['version_code'];
                                 }
                             }
                         }
                     }
                     $app_info['unpack'] = 2;
                 }
             } else {
                 $app_info['unpack'] = 0;
             }
         }
     }
     $this->addItem($app_info);
     $this->output();
 }
Exemple #3
0
 /**
  * 删除APP
  */
 public function delete()
 {
     $id = trim(urldecode($this->input['id']));
     $id_arr = explode(',', $id);
     $id_arr = array_filter($id_arr, 'filter_arr');
     if (!$id_arr) {
         $this->errorOutput(PARAM_WRONG);
     }
     $ids = implode(',', $id_arr);
     $app_info = $this->api->show(array('count' => -1, 'condition' => array('id' => $ids)));
     if (!$app_info) {
         $this->errorOutput(PARAM_WRONG);
     }
     $validate_ids = array();
     foreach ($app_info as $app) {
         $validate_ids[$app['id']] = $app['id'];
     }
     $validate_ids = implode(',', $validate_ids);
     //删除APP对应的引导图
     $this->api->delete('app_pic', array('app_id' => $validate_ids));
     //删除APP对应的模板属性值
     $this->api->delete('temp_value', array('app_id' => $validate_ids));
     //删除打包客户端关系
     $this->api->delete('client_relation', array('app_id' => $validate_ids));
     //删除打包记录
     $this->api->delete('publish_log', array('app_id' => $validate_ids));
     //删除缓存数据
     $this->api->delete('app_cache', array('app_id' => $validate_ids));
     //删除意见反馈
     $this->api->deleteFeedback($validate_ids);
     //删除模块
     include_once CUR_CONF_PATH . 'lib/appModule.class.php';
     $mod_api = new appModule();
     $mod_info = $mod_api->show(array('count' => -1, 'condition' => array('app_id' => $validate_ids)));
     if ($mod_info) {
         $mod_ids = array();
         foreach ($mod_info as $mod) {
             $mod_ids[$mod['id']] = $mod['id'];
         }
         $mod_ids = implode(',', $mod_ids);
         //删除模块对应的界面属性值
         $this->api->delete('ui_value', array('module_id' => $mod_ids));
         //删除关联模块
         $this->api->delete('app_module', array('app_id' => $validate_ids));
     }
     //删除APP
     $result = $this->api->delete('app_info', array('id' => $validate_ids));
     $this->addItem($result);
     $this->output();
 }
Exemple #4
0
 public function getAppAllInfo()
 {
     $app_id = intval($this->input['id']);
     if (!$app_id) {
         $this->errorOutput(NO_APP_ID);
     }
     //获取APP信息
     $app_info = $this->api->detail('app_info', array('id' => $app_id, 'del' => 0));
     if (!$app_info) {
         $this->errorOutput(APP_NOT_EXISTS);
     }
     $app_info['is_open_weather'] = 1;
     //天气默认都开启
     // 获取融云的 production_app_key
     $rcAppKey = $this->_im->get_rckey($app_id);
     if ($rcAppKey) {
         $app_info['rcAppKey'] = $rcAppKey;
     } else {
         //创建融云应用
         $rc_info = $this->_im->apply_signature($app_id, $app_info['name'], $app_info['brief']);
         $app_info['rcAppKey'] = $rc_info['rc_key'];
     }
     if ($this->user['user_id']) {
         $user_info = $this->companyApi->getUserInfoByUserId($this->user['user_id']);
     } elseif ($app_info['user_id']) {
         $user_info = $this->companyApi->getUserInfoByUserId($app_info['user_id']);
     }
     if (!$user_info) {
         $this->errorOutput(USER_NOT_EXISTS);
     }
     $app_info['user_info'] = $user_info;
     if ($app_info['guide_effect']) {
         $app_info['guide_effect_num'] = $this->settings['guide_effect_setting'][$app_info['guide_effect']];
     }
     //处理默认城市
     if (!$app_info['city']) {
         $app_info['city'] = $this->settings['default_city']['city'];
     }
     //分享平台数据
     if (isset($app_info['share_plant']) && $app_info['share_plant']) {
         $app_info['share_plant'] = @unserialize($app_info['share_plant']);
     } else {
         $app_info['share_plant'] = array();
     }
     //额外配置数据
     if (isset($app_info['extras']) && $app_info['extras']) {
         $app_info['extras'] = @unserialize($app_info['extras']);
     } else {
         $app_info['extras'] = $this->settings['app_extras'];
     }
     //获取推送id和key
     $pushInfo = $this->_company->getPushApi($this->user['user_id']);
     if ($pushInfo && is_array($pushInfo)) {
         $app_info['push_info'] = $pushInfo;
     }
     //应用图标
     if ($app_info['icon'] && unserialize($app_info['icon'])) {
         $app_info['icon'] = unserialize($app_info['icon']);
         if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
             $app_info['icon']['host'] = REPLACE_IMG_DOMAIN;
         }
         $app_icon = array('web' => $app_info['icon']);
         if ($this->settings['icon_size']) {
             $path = $app_info['icon']['host'] . $app_info['icon']['dir'];
             $file = $app_info['icon']['filepath'] . $app_info['icon']['filename'];
             if ($this->settings['icon_size']['android']) {
                 foreach ($this->settings['icon_size']['android'] as $android) {
                     //兼容原来的附件,dir存在就说明是原来的附件
                     if ($app_info['icon']['dir']) {
                         $size = $android['width'] . 'x' . $android['height'];
                         $url = $path . $size . '/' . $file;
                     } else {
                         $url = $path . $file . '!' . $android['thumb'];
                     }
                     $app_icon['android'][$android['key']] = $url;
                 }
             }
             if ($this->settings['icon_size']['ios']) {
                 foreach ($this->settings['icon_size']['ios'] as $ios) {
                     //兼容原来的附件,dir存在就说明是原来的附件
                     if ($app_info['icon']['dir']) {
                         $size = $ios['width'] . 'x' . $ios['height'];
                         $url = $path . $size . '/' . $file;
                     } else {
                         $url = $path . $file . '!' . $ios['thumb'];
                     }
                     $app_icon['ios'][$ios['key']] = $url;
                 }
             }
         }
         if ($app_icon) {
             $app_info['icon'] = $app_icon;
         }
     }
     //启动图
     if ($app_info['startup_pic'] && unserialize($app_info['startup_pic'])) {
         $app_info['startup_pic'] = unserialize($app_info['startup_pic']);
         if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
             $app_info['startup_pic']['host'] = REPLACE_IMG_DOMAIN;
         }
         $startup_pic = array('web' => $app_info['startup_pic']);
         if ($this->settings['startup_size']) {
             $path = $app_info['startup_pic']['host'] . $app_info['startup_pic']['dir'];
             $file = $app_info['startup_pic']['filepath'] . $app_info['startup_pic']['filename'];
             if ($this->settings['startup_size']['android']) {
                 foreach ($this->settings['startup_size']['android'] as $android) {
                     //兼容原来的附件,dir存在就说明是原来的附件
                     if ($app_info['startup_pic']['dir']) {
                         $size = $android['width'] . 'x' . $android['height'];
                         $url = $path . $size . '/' . $file;
                     } else {
                         $url = $path . $file . '!' . $android['thumb'];
                     }
                     $startup_pic['android'] = $url;
                     //此处因为安卓只有一个
                 }
             }
             if ($this->settings['startup_size']['ios']) {
                 foreach ($this->settings['startup_size']['ios'] as $ios) {
                     //兼容原来的附件,dir存在就说明是原来的附件
                     if ($app_info['startup_pic']['dir']) {
                         $size = $ios['width'] . 'x' . $ios['height'];
                         $url = $path . $size . '/' . $file;
                     } else {
                         $url = $path . $file . '!' . $ios['thumb'];
                     }
                     $startup_pic['ios'][$ios['key']] = $url;
                 }
             }
             //iOS有上传图片则覆盖
             if ($app_info['startup_pic2'] && unserialize($app_info['startup_pic2'])) {
                 $startup_pic2 = unserialize($app_info['startup_pic2']);
                 $path = $startup_pic2['host'] . $startup_pic2['dir'];
                 $file = $startup_pic2['filepath'] . $startup_pic2['filename'];
                 //兼容原来的附件,dir存在就说明是原来的附件
                 if ($startup_pic2['dir']) {
                     $startup_pic['ios']['Default-568h@2x'] = $path . '640x1136/' . $file;
                 } else {
                     $startup_pic['ios']['Default-568h@2x'] = $path . $file . '!default568x2';
                 }
             }
             if ($app_info['startup_pic3'] && unserialize($app_info['startup_pic3'])) {
                 $startup_pic3 = unserialize($app_info['startup_pic3']);
                 $path = $startup_pic3['host'] . $startup_pic3['dir'];
                 $file = $startup_pic3['filepath'] . $startup_pic3['filename'];
                 //兼容原来的附件,dir存在就说明是原来的附件
                 if ($startup_pic3['dir']) {
                     $startup_pic['ios']['Default@2x'] = $path . '640x960/' . $file;
                 } else {
                     $startup_pic['ios']['Default@2x'] = $path . $file . '!defaultx2';
                 }
             }
         }
         if ($startup_pic) {
             $app_info['startup_pic'] = $startup_pic;
         }
     }
     //是否显示引导图
     if ($app_info['is_show_guide']) {
         //获取APP引导图
         $guideCondition = array('app_id' => $app_id, 'effect' => $app_info['guide_effect']);
         $guide_pic = $this->api->app_pic($guideCondition);
         if ($guide_pic) {
             $guide_pic_arr = array();
             foreach ($guide_pic as $k => $guide) {
                 if ($guide['type'] == 1) {
                     $guide_type = 'fg';
                 } elseif ($guide['type'] == 2) {
                     $guide_type = 'bg';
                 }
                 if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
                     $guide['info']['host'] = REPLACE_IMG_DOMAIN;
                 }
                 $guide_pic_arr[$guide_type][$k]['web'] = $guide['info'];
                 if ($this->settings['guide_size']) {
                     $path = $guide['info']['host'] . $guide['info']['dir'];
                     $file = $guide['info']['filepath'] . $guide['info']['filename'];
                     if ($this->settings['guide_size']['android']) {
                         foreach ($this->settings['guide_size']['android'] as $android) {
                             //兼容原来的附件
                             if ($guide['info']['dir']) {
                                 if ($guide['type'] == 2 && $app_info['guide_effect'] == 'effect2') {
                                     $size = 'x800';
                                 } else {
                                     $size = $android['width'] . 'x' . $android['height'];
                                 }
                                 $url = $path . $size . '/' . $file;
                             } else {
                                 if ($guide['type'] == 2 && $app_info['guide_effect'] == 'effect2') {
                                     $thumb = $android['effect2'];
                                 } else {
                                     $thumb = $android['thumb'];
                                 }
                                 $url = $path . $file . '!' . $thumb;
                             }
                             $guide_pic_arr[$guide_type][$k]['android'] = $url;
                         }
                     }
                     if ($this->settings['guide_size']['ios']) {
                         foreach ($this->settings['guide_size']['ios'] as $ios) {
                             //兼容原来的附件
                             if ($guide['info']['dir']) {
                                 if ($guide['type'] == 2 && $app_info['guide_effect'] == 'effect2') {
                                     $size = 'x800';
                                 } else {
                                     $size = $ios['width'] . 'x' . $ios['height'];
                                 }
                                 $url = $path . $size . '/' . $file;
                             } else {
                                 if ($guide['type'] == 2 && $app_info['guide_effect'] == 'effect2') {
                                     $thumb = $ios['effect2'];
                                 } else {
                                     $thumb = $ios['thumb'];
                                 }
                                 $url = $path . $file . '!' . $thumb;
                             }
                             $guide_pic_arr[$guide_type][$k]['ios'] = $url;
                         }
                     }
                 }
             }
             if (!$guide_pic_arr) {
                 $guide_pic_arr = $guide_pic;
             }
             $app_info['guide_pic'] = $guide_pic_arr;
         }
     }
     if ($this->settings['data_url']) {
         $app_info['base_url'] = trim($this->settings['data_url']['path'], '/') . '/' . $app_info['user_id'] . '/';
     }
     //天气接口
     if (WEATHER_API) {
         $app_info['weather_api'] = WEATHER_API;
     }
     //统计接口
     if (STATISTICS_API) {
         $app_info['statistics_api'] = STATISTICS_API;
     }
     //会员接口
     if (MEMBER_API) {
         $app_info['member_api'] = MEMBER_API;
     }
     //互助接口
     if (SEEKHELP_API) {
         $app_info['seekhelp_api'] = SEEKHELP_API;
     }
     //获取推送id和key
     include_once ROOT_PATH . 'lib/class/company.class.php';
     $companyApi = new company();
     $push_api = $companyApi->getPushApi($this->user['user_id']);
     if ($push_api) {
         $app_info['push_api'] = $push_api;
         $app_info['prov_id'] = $push_api['prov_id'];
     }
     //获取APP打包程序数据
     $app_info['client'] = $this->api->get_version_info($app_id);
     /*****************************************获取MAIN_UI信息********************************************/
     $appUIInfo = $this->ui_mode->detail($app_info['temp_id']);
     if ($appUIInfo) {
         if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
             if ($appUIInfo['img_info']) {
                 $appUIInfo['img_info']['host'] = REPLACE_IMG_DOMAIN;
             }
         }
         //查询出该UI下对应的属性
         $attrData = $this->ui_value_mode->getAttributeData($app_info['temp_id'], TRUE, $app_id, 0, 1, $user_info['dingdone_role_id']);
         if ($attrData) {
             //获取分组数据
             $groupData = $this->ui_value_mode->getGroupData();
             //输出配置型
             $uiConfig = $this->buildTreeDataConfig(0, $groupData, $attrData);
             foreach ($uiConfig as $kk => $vv) {
                 foreach ($vv as $_kk => $_vv) {
                     if ($_kk == 'main_ui') {
                         $appUIInfo['attr'] = $_vv;
                         //判断全局导航栏标题有没有值
                         if (!$appUIInfo['attr']['navBar']['titleContent']['text'] && !$appUIInfo['attr']['navBar']['titleContent']['drawable']) {
                             $appUIInfo['attr']['navBar']['titleContent']['text'] = $app_info['name'];
                             //如果全局导航栏标题没有设置,就取应用名称
                         }
                         //经典风格做的特殊处理(只有经典风格才有more节点)
                         if ($appUIInfo['uniqueid'] == 'MainUI1') {
                             if (isset($_vv['more']) && $_vv['more'] && is_array($_vv['more'])) {
                                 //more里面的文字默认色取外面的文字默认色
                                 if (isset($_vv['textNorBg']) && $_vv['textNorBg']) {
                                     $appUIInfo['attr']['more']['textNorBg'] = $_vv['textNorBg'];
                                 }
                                 //more里面的文字点击色取外面的文字点击色
                                 if (isset($_vv['textPreBg']) && $_vv['textPreBg']) {
                                     $appUIInfo['attr']['more']['textPreBg'] = $_vv['textPreBg'];
                                 }
                                 //more里面的模块默认色透明
                                 $appUIInfo['attr']['more']['layoutNorBg'] = Common::convertColor('#ffffff', 0);
                                 //more里面的模块点击色取外面的遮罩色
                                 if (isset($_vv['tabedBg']) && $_vv['tabedBg']) {
                                     $appUIInfo['attr']['more']['layoutPreBg'] = $_vv['tabedBg'];
                                 }
                                 //more里面的导航栏相关设置
                                 if (isset($_vv['more']['navBar'])) {
                                     $appUIInfo['attr']['more']['navBar']['height'] = 50;
                                     //所有导航栏的高度固定值50,不用用户配置
                                     //根据是否开启导航栏天气
                                     if ($app_info['is_open_navBar_weather']) {
                                         $appUIInfo['attr']['more']['navBar']['navLeftComponent'] = 1;
                                     } else {
                                         $appUIInfo['attr']['more']['navBar']['navLeftComponent'] = 0;
                                     }
                                     //右边控件的判断,是否开启会员
                                     if ($app_info['is_open_member']) {
                                         $appUIInfo['attr']['more']['navBar']['navRightComponent'] = 1;
                                     } else {
                                         $appUIInfo['attr']['more']['navBar']['navRightComponent'] = 2;
                                     }
                                     //更多模块的导航栏高斯模糊根据全局的来
                                     if (isset($appUIInfo['attr']['navBar']['isBlur'])) {
                                         $appUIInfo['attr']['more']['navBar']['isBlur'] = (bool) $appUIInfo['attr']['navBar']['isBlur'];
                                     } else {
                                         $appUIInfo['attr']['more']['navBar']['isBlur'] = $this->settings['module_default']['isBlur'];
                                     }
                                     //如果more里面没有设置导航栏标题就取全局的
                                     if (!$appUIInfo['attr']['more']['navBar']['titleContent']['text'] && !$appUIInfo['attr']['more']['navBar']['titleContent']['drawable']) {
                                         if (isset($appUIInfo['attr']['navBar']['titleContent']['text'])) {
                                             $appUIInfo['attr']['more']['navBar']['titleContent']['text'] = $appUIInfo['attr']['navBar']['titleContent']['text'];
                                         } else {
                                             $appUIInfo['attr']['more']['navBar']['titleContent']['text'] = $app_info['name'];
                                         }
                                     }
                                     //more里面的导航栏背景取全局的导航栏背景
                                     if ($_vv['navBar']['bg']) {
                                         $appUIInfo['attr']['more']['navBar']['bg'] = $_vv['navBar']['bg'];
                                     }
                                 }
                                 //经典风格里面模块的页面距下面的距离后台取tabHeight的高度+10
                                 if (isset($_vv['tabHeight'])) {
                                     $appUIInfo['attr']['more']['uiPaddingBottom'] = (int) $_vv['tabHeight'] + (int) $_vv['dividerSpace'];
                                 }
                                 //如果more里面到模块主色没有设置
                                 if (isset($_vv['more']['mainColor']['noColor']) && $_vv['more']['mainColor']['noColor']) {
                                     if (isset($appUIInfo['attr']['mainColor']) && is_array($appUIInfo['attr']['mainColor']) && !isset($appUIInfo['attr']['mainColor']['noColor'])) {
                                         $appUIInfo['attr']['more']['main_color'] = $appUIInfo['attr']['mainColor']['color'];
                                     } else {
                                         $appUIInfo['attr']['more']['main_color'] = Common::convertColor($this->settings['module_default']['main_color']);
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
         $app_info['main_ui'] = $appUIInfo;
     }
     /*****************************************获取MAIN_UI信息********************************************/
     //获取APP模块信息
     include_once CUR_CONF_PATH . 'lib/appModule.class.php';
     $moduleApi = new appModule();
     include_once CUR_CONF_PATH . 'lib/appInterface.class.php';
     $ui_api = new appInterface();
     $condition = array('app_id' => $app_id);
     if ($this->user['user_id']) {
         $condition['uid'] = $this->user['user_id'];
     }
     $module_info = $moduleApi->show(array('count' => -1, 'condition' => $condition));
     if ($module_info) {
         $ui_id = array();
         foreach ($module_info as $k => $module) {
             if ($module['pic'] && is_array($module['pic']) && $this->settings['module_size']) {
                 if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
                     $module['pic']['host'] = REPLACE_IMG_DOMAIN;
                 }
                 $module_icon = array('web' => $module['pic']);
                 if ($this->settings['module_size']) {
                     $path = $module['pic']['host'] . $module['pic']['dir'];
                     $file = $module['pic']['filepath'] . $module['pic']['filename'];
                     if ($this->settings['module_size']['android']) {
                         foreach ($this->settings['module_size']['android'] as $android) {
                             //此处为了兼容原来的附件
                             if ($module['pic']['dir']) {
                                 $size = $android['width'] . 'x' . $android['height'];
                                 $url = $path . $size . '/' . $file;
                             } else {
                                 $url = $path . $file . '!' . $android['thumb'];
                             }
                             $module_icon['android'] = $url;
                         }
                     }
                     if ($this->settings['module_size']['ios']) {
                         foreach ($this->settings['module_size']['ios'] as $ios) {
                             //此处为了兼容原来的附件
                             if ($module['pic']['dir']) {
                                 $size = $ios['width'] . 'x' . $ios['height'];
                                 $url = $path . $size . '/' . $file;
                             } else {
                                 $url = $path . $file . '!' . $ios['thumb'];
                             }
                             $module_icon['ios'] = $url;
                         }
                     }
                 }
                 if ($module_icon) {
                     $module_info[$k]['pic'] = $module_icon;
                 }
             }
             if ($module['press_pic'] && is_array($module['press_pic']) && $this->settings['module_size']) {
                 if (IS_REPLACE && REPLACE_IMG_DOMAIN) {
                     $module['press_pic']['host'] = REPLACE_IMG_DOMAIN;
                 }
                 $module_icon = array('web' => $module['press_pic']);
                 if ($this->settings['module_size']) {
                     $path = $module['press_pic']['host'] . $module['press_pic']['dir'];
                     $file = $module['press_pic']['filepath'] . $module['press_pic']['filename'];
                     if ($this->settings['module_size']['android']) {
                         foreach ($this->settings['module_size']['android'] as $android) {
                             //此处为了兼容原来的附件
                             if ($module['press_pic']['dir']) {
                                 $size = $android['width'] . 'x' . $android['height'];
                                 $url = $path . $size . '/' . $file;
                             } else {
                                 $url = $path . $file . '!' . $android['thumb'];
                             }
                             $module_icon['android'] = $url;
                         }
                     }
                     if ($this->settings['module_size']['ios']) {
                         foreach ($this->settings['module_size']['ios'] as $ios) {
                             //此处为了兼容原来的附件
                             if ($module['press_pic']['dir']) {
                                 $size = $ios['width'] . 'x' . $ios['height'];
                                 $url = $path . $size . '/' . $file;
                             } else {
                                 $url = $path . $file . '!' . $ios['thumb'];
                             }
                             $module_icon['ios'] = $url;
                         }
                     }
                 }
                 if ($module_icon) {
                     $module_info[$k]['press_pic'] = $module_icon;
                 }
             }
             //经典风格的时候,所有模块里面的模块点击色,文字点击色,模块默认色,文字默认色此处做特殊处理
             if ($appUIInfo['uniqueid'] == 'MainUI1') {
                 //模块里面的文字默认色取外面的文字默认色
                 if (isset($appUIInfo['attr']['textNorBg'])) {
                     $module_info[$k]['text_nor_bg'] = $appUIInfo['attr']['textNorBg'];
                 } elseif ($module['text_nor_bg']) {
                     $module_info[$k]['text_nor_bg'] = Common::convertColor($module['text_nor_bg']);
                 } else {
                     $module_info[$k]['text_nor_bg'] = Common::convertColor($this->settings['module_default']['text_nor_bg']);
                 }
                 //模块里面的文字点击色取外面的文字点击色
                 if (isset($appUIInfo['attr']['textPreBg'])) {
                     $module_info[$k]['text_pre_bg'] = $appUIInfo['attr']['textPreBg'];
                 } elseif ($module['text_pre_bg']) {
                     $module_info[$k]['text_pre_bg'] = Common::convertColor($module['text_pre_bg']);
                 } else {
                     $module_info[$k]['text_pre_bg'] = Common::convertColor($this->settings['module_default']['text_pre_bg']);
                 }
                 //模块里面的模块默认色透明
                 $module_info[$k]['layout_nor_bg'] = Common::convertColor('#ffffff', 0);
                 //模块里面的模块点击色取外面的遮罩色
                 if (isset($appUIInfo['attr']['tabedBg'])) {
                     $module_info[$k]['layout_pre_bg'] = $appUIInfo['attr']['tabedBg'];
                 } elseif ($module['layout_pre_bg']) {
                     $module_info[$k]['layout_pre_bg'] = Common::convertColor($module['layout_pre_bg'], $module['layout_pre_alpha']);
                 } else {
                     $module_info[$k]['layout_pre_bg'] = Common::convertColor($this->settings['module_default']['layout_pre_bg'], $this->settings['module_default']['layout_pre_alpha']);
                 }
             } else {
                 //其他风格如果用户没有设置值,就取默认值
                 //文字默认背景
                 if (!$module['text_nor_bg']) {
                     if (isset($appUIInfo['attr']['textNorBg']) && is_array($appUIInfo['attr']['textNorBg'])) {
                         $module_info[$k]['text_nor_bg'] = $appUIInfo['attr']['textNorBg']['color'];
                     } else {
                         $module_info[$k]['text_nor_bg'] = $this->settings['module_default']['text_nor_bg'];
                     }
                 }
                 //文字点击背景
                 if (!$module['text_pre_bg']) {
                     if (isset($appUIInfo['attr']['textPreBg']) && is_array($appUIInfo['attr']['textPreBg'])) {
                         $module_info[$k]['text_pre_bg'] = $appUIInfo['attr']['textPreBg']['color'];
                     } else {
                         $module_info[$k]['text_pre_bg'] = $this->settings['module_default']['text_pre_bg'];
                     }
                 }
                 //模块默认背景
                 $is_global_nor = 0;
                 //用于标识是否取得是全局的默认背景
                 if (!$module['layout_nor_bg']) {
                     if (isset($appUIInfo['attr']['layoutNorBg']) && is_array($appUIInfo['attr']['layoutNorBg'])) {
                         $module_info[$k]['layout_nor_bg'] = $appUIInfo['attr']['layoutNorBg']['color'];
                         $module_info[$k]['layout_nor_alpha'] = $appUIInfo['attr']['layoutNorBg']['alpha'];
                         $is_global_nor = 1;
                     } else {
                         $module_info[$k]['layout_nor_bg'] = $this->settings['module_default']['layout_nor_bg'];
                     }
                 }
                 //模块点击背景
                 $is_global_pre = 0;
                 //用于标识是否取得是全局的模块点击背景
                 if (!$module['layout_pre_bg']) {
                     if (isset($appUIInfo['attr']['layoutPreBg']) && is_array($appUIInfo['attr']['layoutPreBg'])) {
                         $module_info[$k]['layout_pre_bg'] = $appUIInfo['attr']['layoutPreBg']['color'];
                         $module_info[$k]['layout_pre_alpha'] = $appUIInfo['attr']['layoutPreBg']['alpha'];
                         $is_global_pre = 1;
                     } else {
                         $module_info[$k]['layout_pre_bg'] = $this->settings['module_default']['layout_pre_bg'];
                     }
                 }
                 if (!$is_global_nor && !$module['layout_nor_alpha'] && $module['layout_nor_alpha'] !== 0.0) {
                     $module_info[$k]['layout_nor_alpha'] = $this->settings['module_default']['layout_nor_alpha'];
                 }
                 if (!$is_global_pre && !$module['layout_pre_alpha'] && $module['layout_pre_alpha'] !== 0.0) {
                     $module_info[$k]['layout_pre_alpha'] = $this->settings['module_default']['layout_pre_alpha'];
                 }
             }
             //处理导航栏配置
             if ($module['navbar'] && unserialize($module['navbar'])) {
                 $navBar = unserialize($module['navbar']);
                 //处理导航栏背景
                 if (isset($navBar['bg']) && isset($navBar['bg']['img'])) {
                     $_img_info = $this->app_material->detail('app_material', array('id' => $navBar['bg']['img']));
                     $navBar['bg']['img'] = $_img_info;
                 }
                 //处理导航栏标题
                 if (isset($navBar['titleContent']) && isset($navBar['titleContent']['img'])) {
                     $_img_info = $this->app_material->detail('app_material', array('id' => $navBar['titleContent']['img']));
                     $navBar['titleContent']['img'] = $_img_info;
                 }
                 //如果模块本身没有设置导航栏背景的值
                 if (!isset($navBar['bg']) || !is_array($navBar['bg'])) {
                     //全局导航栏背景
                     if (isset($appUIInfo['attr']['navBar']['bg']) && is_array($appUIInfo['attr']['navBar']['bg'])) {
                         //如果全局首页背景设置的是颜色
                         if ($appUIInfo['attr']['navBar']['bg']['color']) {
                             $navBar['bg'] = array('color' => $appUIInfo['attr']['navBar']['bg']['color'], 'alpha' => $appUIInfo['attr']['navBar']['bg']['alpha']);
                         } elseif ($appUIInfo['attr']['navBar']['bg']['img_id']) {
                             $_img_info = $this->app_material->detail('app_material', array('id' => $appUIInfo['attr']['navBar']['bg']['img_id']));
                             $navBar['bg'] = array('img' => $_img_info, 'is_tile' => $appUIInfo['attr']['navBar']['bg']['isRepeat']);
                         }
                     }
                     if (!isset($navBar['bg']) || !$navBar['bg']) {
                         $navBar['bg'] = array('color' => $this->settings['module_default']['navbar']['bg'], 'alpha' => 1);
                     }
                 }
                 //如果模块本身没有设置导航栏标题内容
                 if (!isset($navBar['titleContent']) || !is_array($navBar['titleContent'])) {
                     //全局导航栏标题内容
                     if (isset($appUIInfo['attr']['navBar']['titleContent']) && is_array($appUIInfo['attr']['navBar']['titleContent'])) {
                         //如果全局导航栏标题是文字
                         if ($appUIInfo['attr']['navBar']['titleContent']['text']) {
                             $navBar['titleContent'] = array('text' => $appUIInfo['attr']['navBar']['titleContent']['text']);
                         } elseif ($appUIInfo['attr']['navBar']['titleContent']['img_id']) {
                             $_img_info = $this->app_material->detail('app_material', array('id' => $appUIInfo['attr']['navBar']['titleContent']['img_id']));
                             $navBar['titleContent'] = array('img' => $_img_info);
                         }
                     }
                     if (!isset($navBar['titleContent']) || !$navBar['titleContent']) {
                         //导航栏标题取应用的名称
                         $navBar['titleContent']['text'] = $app_info['name'];
                     }
                 }
                 //导航栏高斯模糊根据全局的来
                 if (isset($appUIInfo['attr']['navBar']['isBlur'])) {
                     $navBar['isBlur'] = (bool) $appUIInfo['attr']['navBar']['isBlur'];
                 } else {
                     $navBar['isBlur'] = $this->settings['module_default']['isBlur'];
                 }
                 $module_info[$k]['navbar'] = $navBar;
             } else {
                 $navBar = array();
                 //全局导航栏背景
                 if (isset($appUIInfo['attr']['navBar']['bg']) && is_array($appUIInfo['attr']['navBar']['bg'])) {
                     //如果全局首页背景设置的是颜色
                     if ($appUIInfo['attr']['navBar']['bg']['color']) {
                         $navBar['bg'] = array('color' => $appUIInfo['attr']['navBar']['bg']['color'], 'alpha' => $appUIInfo['attr']['navBar']['bg']['alpha']);
                     } elseif ($appUIInfo['attr']['navBar']['bg']['img_id']) {
                         $_img_info = $this->app_material->detail('app_material', array('id' => $appUIInfo['attr']['navBar']['bg']['img_id']));
                         $navBar['bg'] = array('img' => $_img_info, 'is_tile' => $appUIInfo['attr']['navBar']['bg']['isRepeat']);
                     }
                 }
                 //全局导航栏标题内容
                 if (isset($appUIInfo['attr']['navBar']['titleContent']) && is_array($appUIInfo['attr']['navBar']['titleContent'])) {
                     //如果全局导航栏标题是文字
                     if ($appUIInfo['attr']['navBar']['titleContent']['text']) {
                         $navBar['titleContent'] = array('text' => $appUIInfo['attr']['navBar']['titleContent']['text']);
                     } elseif ($appUIInfo['attr']['navBar']['titleContent']['img_id']) {
                         $_img_info = $this->app_material->detail('app_material', array('id' => $appUIInfo['attr']['navBar']['titleContent']['img_id']));
                         $navBar['titleContent'] = array('img' => $_img_info);
                     }
                 }
                 if (!isset($navBar['bg']) || !$navBar['bg']) {
                     $navBar['bg'] = array('color' => $this->settings['module_default']['navbar']['bg'], 'alpha' => 1);
                 }
                 if (!isset($navBar['titleContent']) || !$navBar['titleContent']) {
                     //导航栏标题取应用的名称
                     $navBar['titleContent']['text'] = $app_info['name'];
                 }
                 //导航栏高斯模糊根据全局的来
                 if (isset($appUIInfo['attr']['navBar']['isBlur'])) {
                     $navBar['isBlur'] = (bool) $appUIInfo['attr']['navBar']['isBlur'];
                 } else {
                     $navBar['isBlur'] = $this->settings['module_default']['isBlur'];
                 }
                 $module_info[$k]['navbar'] = $navBar;
             }
             //处理页面背景
             if ($module['ui_bg']) {
                 $_uiBg = explode('|', $module['ui_bg']);
                 if (isset($_uiBg[0]) && $_uiBg[0]) {
                     if ($_uiBg[0] == 'img') {
                         $_img_info = $this->app_material->detail('app_material', array('id' => $_uiBg[1]));
                         $module_info[$k]['ui_bg'] = array('img' => $_img_info, 'is_tile' => $_uiBg[2]);
                     } elseif ($_uiBg[0] == 'color') {
                         $module_info[$k]['ui_bg'] = array('color' => $_uiBg[1], 'alpha' => $_uiBg[2]);
                     }
                 }
             } else {
                 //全局的页面背景
                 if (isset($appUIInfo['attr']['uiBg']) && is_array($appUIInfo['attr']['uiBg'])) {
                     //如果全局首页背景设置的是颜色
                     if ($appUIInfo['attr']['uiBg']['color']) {
                         $module_info[$k]['ui_bg'] = array('color' => $appUIInfo['attr']['uiBg']['color'], 'alpha' => $appUIInfo['attr']['uiBg']['alpha']);
                     } elseif ($appUIInfo['attr']['uiBg']['img_id']) {
                         $_img_info = $this->app_material->detail('app_material', array('id' => $appUIInfo['attr']['uiBg']['img_id']));
                         $module_info[$k]['ui_bg'] = array('img' => $_img_info, 'is_tile' => $appUIInfo['attr']['uiBg']['isRepeat']);
                     }
                 }
                 //经过上面的洗礼,还是没有值的话,那就只能取默认的了
                 if (!$module_info[$k]['ui_bg']) {
                     $module_info[$k]['ui_bg'] = array('color' => $this->settings['module_default']['ui_bg'], 'alpha' => 1);
                 }
             }
             //如果用户没有在module_list里面设置,就取外面到main_ui里面到main_color
             if (!$module['main_color']) {
                 if (isset($appUIInfo['attr']['mainColor']) && is_array($appUIInfo['attr']['mainColor']) && !isset($appUIInfo['attr']['mainColor']['noColor'])) {
                     $module_info[$k]['main_color'] = $appUIInfo['attr']['mainColor']['color'];
                 } else {
                     $module_info[$k]['main_color'] = $this->settings['module_default']['main_color'];
                 }
             }
             //if ($module['ui_id']) $ui_id[$module['ui_id']] = $module['ui_id'];
             if ($module['ui_id']) {
                 //获取该LIST_UI的信息
                 $listUIInfo = $this->ui_mode->detail($module['ui_id']);
                 if ($listUIInfo) {
                     //获取分组数据
                     $groupData = $this->ui_value_mode->getGroupData();
                     //如果用户选择的时自由组合
                     if ($listUIInfo['uniqueid'] == 'ListUI10') {
                         $_comp_ui = $this->createCompConfig($module['id']);
                         if ($_comp_ui) {
                             $listUIInfo['attr']['components'] = $_comp_ui;
                         } else {
                             $listUIInfo['attr']['components'] = array();
                         }
                     } else {
                         //获取属性
                         $listAttrData = $this->ui_value_mode->getAttributeData($module['ui_id'], TRUE, 0, $module['id'], 1, $user_info['dingdone_role_id']);
                         if ($listAttrData) {
                             $listUIConfig = $this->buildTreeDataConfig(0, $groupData, $listAttrData);
                             foreach ($listUIConfig as $kk => $vv) {
                                 foreach ($vv as $_kk => $_vv) {
                                     if ($_kk == 'list_ui') {
                                         $listUIInfo['attr'] = $_vv;
                                         //看看该有没有组件插入到该listUI
                                         if (in_array($listUIInfo['uniqueid'], array('ListUI1', 'ListUI2', 'ListUI7'))) {
                                             $_comp_ui = $this->createCompConfig($module['id']);
                                             if ($_comp_ui) {
                                                 $listUIInfo['attr']['components'] = $_comp_ui;
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                         //获取模块扩展字段
                         $extend_fields = $this->extend_mode->getExtendFieldByModuleId($module['id'], " AND is_display = 1 ");
                         if ($extend_fields) {
                             $listUIInfo['extend_fields'] = $extend_fields;
                         }
                         //获取新扩展字段
                         $new_extends = array();
                         //先获取这个模块扩展区域的基本信息 //自适应还是固定高度
                         $new_extends['showType'] = $module['extend_area_position'];
                         //获取上下部分区域   $module['extend_area_position'] =2时 只取UP部分
                         $up_area = array();
                         $up_area_lines = $this->new_extend->getInfos('new_extend_line', array('module_id' => $module['id'], 'line_position' => $this->settings['new_extend']['line_position']['up']), 'order by order_id asc');
                         if ($up_area_lines) {
                             foreach ($up_area_lines as $___k => $___v) {
                                 $one_line = array();
                                 //获取这个行的后台属性
                                 $line_attr = $this->new_extend->getExtendLineAttributeData($___v['id']);
                                 if ($line_attr) {
                                     $lineAttrConfig = $this->buildTreeDataConfig(0, $groupData, $line_attr);
                                     if ($lineAttrConfig && $lineAttrConfig[0]['extendLine']) {
                                         $one_line = $lineAttrConfig[0]['extendLine'];
                                     }
                                 }
                                 $one_line['lineNum'] = $___v['line_num'];
                                 //取对应扩展行里的扩展单元
                                 //单行 多行区分
                                 if ($___v['line_type'] == 1) {
                                     $left_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['left'], 'line_id' => $___v['id'], 'module_id' => $module['id']), 'order by order_id asc');
                                     if ($left_line_fields) {
                                         $left_fields = array();
                                         foreach ($left_line_fields as $f_k => $f_v) {
                                             $one_left_field = array();
                                             //对左边单元进行处理,取出属性
                                             //取出对应单元的后台属性
                                             $left_field_attr = $this->new_extend->getExtendFieldAttributeData($f_v['id']);
                                             if ($left_field_attr) {
                                                 $left_field_config = $this->buildTreeDataConfig(0, $groupData, $left_field_attr);
                                                 $one_left_field = $left_field_config[0]['extendLine']['extendField'];
                                             }
                                             $one_left_field['type'] = $f_v['field_type'];
                                             $one_left_field['style'] = $this->settings['new_extend']['price_style'];
                                             //处理显示样式
                                             $display_arr = $this->processFieldStyle($f_v['id'], $f_v['style_type']);
                                             if ($display_arr && is_array($display_arr)) {
                                                 foreach ($display_arr as $kk => $vv) {
                                                     $one_left_field[$kk] = $vv;
                                                 }
                                             }
                                             //处理颜色
                                             if (array_key_exists('textColor', $one_left_field)) {
                                                 $color_arr = $this->processExtendColor($one_left_field['textColor']);
                                                 unset($one_left_field['textColor']);
                                                 foreach ($color_arr as $ck => $cv) {
                                                     $one_left_field['textColor'][$ck] = $cv;
                                                 }
                                             }
                                             //处理indexContent
                                             if ($one_left_field['indexContent'] == '空格') {
                                                 $one_left_field['indexContent'] = ' ';
                                             }
                                             if ($f_v['style_type'] == 2 || $f_v['style_type'] == 4) {
                                                 $one_left_field['indexContent'] = '';
                                             }
                                             if ($one_left_field['marginLeft'] !== '') {
                                                 $left_fields[] = $one_left_field;
                                             }
                                         }
                                         $one_line['left'] = $left_fields;
                                     }
                                     $right_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['right'], 'line_id' => $___v['id'], 'module_id' => $module['id']), 'order by order_id asc');
                                     if ($right_line_fields) {
                                         $right_fields = array();
                                         foreach ($right_line_fields as $r_k => $r_v) {
                                             $one_right_field = array();
                                             //对左边单元进行处理,取出属性
                                             //取出对应单元的后台属性
                                             $right_field_attr = $this->new_extend->getExtendFieldAttributeData($r_v['id']);
                                             if ($right_field_attr) {
                                                 $right_field_config = $this->buildTreeDataConfig(0, $groupData, $right_field_attr);
                                                 $one_right_field = $right_field_config[0]['extendLine']['extendField'];
                                             }
                                             $one_right_field['type'] = $r_v['field_type'];
                                             //处理显示样式
                                             $display_arr = $this->processFieldStyle($r_v['id'], $r_v['style_type']);
                                             if ($display_arr && is_array($display_arr)) {
                                                 foreach ($display_arr as $kk => $vv) {
                                                     $one_right_field[$kk] = $vv;
                                                 }
                                             }
                                             //处理颜色
                                             if (array_key_exists('textColor', $one_right_field)) {
                                                 $color_arr = $this->processExtendColor($one_right_field['textColor']);
                                                 unset($one_right_field['textColor']);
                                                 foreach ($color_arr as $ck => $cv) {
                                                     $one_right_field['textColor'][$ck] = $cv;
                                                 }
                                             }
                                             //处理indexContent
                                             if ($one_right_field['indexContent'] == '空格') {
                                                 $one_right_field['indexContent'] = ' ';
                                             }
                                             if ($r_v['style_type'] == 2 || $r_v['style_type'] == 4) {
                                                 $one_right_field['indexContent'] = '';
                                             }
                                             $one_right_field['style'] = $this->settings['new_extend']['price_style'];
                                             if ($one_right_field['marginLeft'] !== '') {
                                                 $right_fields[] = $one_right_field;
                                             }
                                         }
                                         $one_line['right'] = $right_fields;
                                     }
                                 } elseif ($___v['line_type'] == 2) {
                                     //左边一个为left 取出
                                     $left_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['left'], 'line_id' => $___v['id'], 'module_id' => $module['id']), 'order by order_id asc');
                                     if ($left_line_fields) {
                                         $left_fields = array();
                                         $one_left_field = array();
                                         //对左边单元进行处理,取出属性
                                         //取出对应单元的后台属性
                                         $left_field_attr = $this->new_extend->getExtendFieldAttributeData($left_line_fields[0]['id']);
                                         if ($left_field_attr) {
                                             $left_field_config = $this->buildTreeDataConfig(0, $groupData, $left_field_attr);
                                             $one_left_field = $left_field_config[0]['extendLine']['extendField'];
                                         }
                                         $one_left_field['type'] = $left_line_fields[0]['field_type'];
                                         //处理显示样式
                                         $display_arr = $this->processFieldStyle($left_line_fields[0]['id'], $left_line_fields[0]['style_type']);
                                         if ($display_arr && is_array($display_arr)) {
                                             foreach ($display_arr as $kk => $vv) {
                                                 $one_left_field[$kk] = $vv;
                                             }
                                         }
                                         //处理颜色
                                         if (array_key_exists('textColor', $one_left_field)) {
                                             $color_arr = $this->processExtendColor($one_left_field['textColor']);
                                             unset($one_left_field['textColor']);
                                             foreach ($color_arr as $ck => $cv) {
                                                 $one_left_field['textColor'][$ck] = $cv;
                                             }
                                         }
                                         //处理indexContent
                                         if ($one_left_field['indexContent'] == '空格') {
                                             $one_left_field['indexContent'] = ' ';
                                         }
                                         if ($left_line_fields[0]['style_type'] == 2 || $left_line_fields[0]['style_type'] == 4) {
                                             $one_left_field['indexContent'] = '';
                                         }
                                         $one_left_field['style'] = $this->settings['new_extend']['price_style'];
                                         if ($one_left_field['marginLeft'] !== '') {
                                             $left_fields[] = $one_left_field;
                                         }
                                         $one_line['left'] = $left_fields;
                                     }
                                     //其他都为right
                                     $right_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['right'], 'line_id' => $___v['id'], 'module_id' => $module['id']), 'order by order_id asc');
                                     if ($right_line_fields) {
                                         $right_fields = array();
                                         foreach ($right_line_fields as $r__k => $r__v) {
                                             $one_right_field = array();
                                             //对左边单元进行处理,取出属性
                                             //取出对应单元的后台属性
                                             $right_field_attr = $this->new_extend->getExtendFieldAttributeData($r__v['id']);
                                             if ($right_field_attr) {
                                                 $right_field_config = $this->buildTreeDataConfig(0, $groupData, $right_field_attr);
                                                 $one_right_field = $right_field_config[0]['extendLine']['extendField'];
                                             }
                                             $one_right_field['type'] = $r__v['field_type'];
                                             //处理显示样式
                                             $display_arr = $this->processFieldStyle($r__v['id'], $r__v['style_type']);
                                             if ($display_arr && is_array($display_arr)) {
                                                 foreach ($display_arr as $kk => $vv) {
                                                     $one_right_field[$kk] = $vv;
                                                 }
                                             }
                                             //处理颜色
                                             if (array_key_exists('textColor', $one_right_field)) {
                                                 $color_arr = $this->processExtendColor($one_right_field['textColor']);
                                                 unset($one_right_field['textColor']);
                                                 foreach ($color_arr as $ck => $cv) {
                                                     $one_right_field['textColor'][$ck] = $cv;
                                                 }
                                             }
                                             //处理indexContent
                                             if ($one_right_field['indexContent'] == '空格') {
                                                 $one_right_field['indexContent'] = ' ';
                                             }
                                             if ($r__v['style_type'] == 2 || $r__v['style_type'] == 4) {
                                                 $one_right_field['indexContent'] = '';
                                             }
                                             $one_right_field['style'] = $this->settings['new_extend']['price_style'];
                                             if ($one_right_field['marginLeft'] !== '') {
                                                 $right_fields[] = $one_right_field;
                                             }
                                         }
                                         $one_line['right'] = $right_fields;
                                     }
                                 }
                                 $up_area[] = $one_line;
                             }
                             $new_extends['up'] = $up_area;
                         }
                         //如果固定高度情况下,考虑下部区域
                         if ($module['extend_area_position'] == 1) {
                             $down_area = array();
                             //获取down部分
                             $down_area_lines = $this->new_extend->getInfos('new_extend_line', array('module_id' => $module['id'], 'line_position' => $this->settings['new_extend']['line_position']['down']), 'order by order_id asc');
                             if ($down_area_lines) {
                                 foreach ($down_area_lines as $____k => $____v) {
                                     $one_line = array();
                                     //获取这个行的后台属性
                                     $down_line_attr = $this->new_extend->getExtendLineAttributeData($____v['id']);
                                     if ($down_line_attr) {
                                         $downLineAttrConfig = $this->buildTreeDataConfig(0, $groupData, $down_line_attr);
                                         if ($downLineAttrConfig && $downLineAttrConfig[0]['extendLine']) {
                                             $one_line = $downLineAttrConfig[0]['extendLine'];
                                         }
                                     }
                                     $one_line['lineNum'] = $____v['line_num'];
                                     //处理扩展单元
                                     //单行模式
                                     if ($____v['line_type'] == 1) {
                                         $left_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['left'], 'line_id' => $____v['id'], 'module_id' => $module['id']), 'order by order_id asc');
                                         if ($left_line_fields) {
                                             $left_fields = array();
                                             foreach ($left_line_fields as $f__k => $f__v) {
                                                 $one_left_field = array();
                                                 //对左边单元进行处理,取出属性
                                                 //取出对应单元的后台属性
                                                 $left_field_attr = $this->new_extend->getExtendFieldAttributeData($f__v['id']);
                                                 if ($left_field_attr) {
                                                     $left_field_config = $this->buildTreeDataConfig(0, $groupData, $left_field_attr);
                                                     $one_left_field = $left_field_config[0]['extendLine']['extendField'];
                                                 }
                                                 $one_left_field['type'] = $f__v['field_type'];
                                                 $one_left_field['style'] = $this->settings['new_extend']['price_style'];
                                                 //处理显示样式
                                                 $display_arr = $this->processFieldStyle($f__v['id'], $f__v['style_type']);
                                                 if ($display_arr && is_array($display_arr)) {
                                                     foreach ($display_arr as $kkk => $vvv) {
                                                         $one_left_field[$kkk] = $vvv;
                                                     }
                                                 }
                                                 //处理颜色
                                                 if (array_key_exists('textColor', $one_left_field)) {
                                                     $color_arr = $this->processExtendColor($one_left_field['textColor']);
                                                     unset($one_left_field['textColor']);
                                                     foreach ($color_arr as $ck => $cv) {
                                                         $one_left_field['textColor'][$ck] = $cv;
                                                     }
                                                 }
                                                 //处理indexContent
                                                 if ($one_left_field['indexContent'] == '空格') {
                                                     $one_left_field['indexContent'] = ' ';
                                                 }
                                                 if ($f__v['style_type'] == 2 || $f__v['style_type'] == 4) {
                                                     $one_left_field['indexContent'] = '';
                                                 }
                                                 if ($one_left_field['marginLeft'] !== '') {
                                                     $left_fields[] = $one_left_field;
                                                 }
                                             }
                                             $one_line['left'] = $left_fields;
                                         }
                                         $right_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['right'], 'line_id' => $____v['id'], 'module_id' => $module['id']), 'order by order_id asc');
                                         if ($right_line_fields) {
                                             $right_fields = array();
                                             foreach ($right_line_fields as $r__k => $r__v) {
                                                 $one_right_field = array();
                                                 //对左边单元进行处理,取出属性
                                                 //取出对应单元的后台属性
                                                 $right_field_attr = $this->new_extend->getExtendFieldAttributeData($r__v['id']);
                                                 if ($right_field_attr) {
                                                     $right_field_config = $this->buildTreeDataConfig(0, $groupData, $right_field_attr);
                                                     $one_right_field = $right_field_config[0]['extendLine']['extendField'];
                                                 }
                                                 $one_right_field['type'] = $r__v['field_type'];
                                                 //处理显示样式
                                                 $display_arr = $this->processFieldStyle($r__v['id'], $r__v['style_type']);
                                                 if ($display_arr && is_array($display_arr)) {
                                                     foreach ($display_arr as $kkkk => $vvvv) {
                                                         $one_right_field[$kkkk] = $vvvv;
                                                     }
                                                 }
                                                 //处理颜色
                                                 if (array_key_exists('textColor', $one_right_field)) {
                                                     $color_arr = $this->processExtendColor($one_right_field['textColor']);
                                                     unset($one_right_field['textColor']);
                                                     foreach ($color_arr as $ck => $cv) {
                                                         $one_right_field['textColor'][$ck] = $cv;
                                                     }
                                                 }
                                                 //处理indexContent
                                                 if ($one_right_field['indexContent'] == '空格') {
                                                     $one_right_field['indexContent'] = ' ';
                                                 }
                                                 if ($r__v['style_type'] == 2 || $r__v['style_type'] == 4) {
                                                     $one_right_field['indexContent'] = '';
                                                 }
                                                 $one_right_field['style'] = $this->settings['new_extend']['price_style'];
                                                 if ($one_right_field['marginLeft'] !== '') {
                                                     $right_fields[] = $one_right_field;
                                                 }
                                             }
                                             $one_line['right'] = $right_fields;
                                         }
                                     } elseif ($____v['line_type'] == 2) {
                                         //左边一个为left 取出
                                         $left_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['left'], 'line_id' => $____v['id'], 'module_id' => $module['id']), 'order by order_id asc');
                                         if ($left_line_fields) {
                                             $left_fields = array();
                                             $one_left_field = array();
                                             //对左边单元进行处理,取出属性
                                             //取出对应单元的后台属性
                                             $left_field_attr = $this->new_extend->getExtendFieldAttributeData($left_line_fields[0]['id']);
                                             if ($left_field_attr) {
                                                 $left_field_config = $this->buildTreeDataConfig(0, $groupData, $left_field_attr);
                                                 $one_left_field = $left_field_config[0]['extendLine']['extendField'];
                                             }
                                             $one_left_field['type'] = $left_line_fields[0]['field_type'];
                                             //处理显示样式
                                             $display_arr = $this->processFieldStyle($left_line_fields[0]['id'], $left_line_fields[0]['style_type']);
                                             if ($display_arr && is_array($display_arr)) {
                                                 foreach ($display_arr as $_kk => $_vv) {
                                                     $one_left_field[$_kk] = $_vv;
                                                 }
                                             }
                                             //处理颜色
                                             if (array_key_exists('textColor', $one_left_field)) {
                                                 $color_arr = $this->processExtendColor($one_left_field['textColor']);
                                                 unset($one_left_field['textColor']);
                                                 foreach ($color_arr as $ck => $cv) {
                                                     $one_left_field['textColor'][$ck] = $cv;
                                                 }
                                             }
                                             //处理indexContent
                                             if ($one_left_field['indexContent'] == '空格') {
                                                 $one_left_field['indexContent'] = ' ';
                                             }
                                             if ($left_line_fields[0]['style_type'] == 2 || $left_line_fields[0]['style_type'] == 4) {
                                                 $one_left_field['indexContent'] = '';
                                             }
                                             $one_left_field['style'] = $this->settings['new_extend']['price_style'];
                                             if ($one_left_field['marginLeft'] !== '') {
                                                 $left_fields[] = $one_left_field;
                                             }
                                             $one_line['left'] = $left_fields;
                                         }
                                         //其他都为right
                                         $right_line_fields = $this->new_extend->getInfos('new_extend_field', array('field_position' => $this->settings['new_extend']['field_position']['right'], 'line_id' => $____v['id'], 'module_id' => $module['id']), 'order by order_id asc');
                                         if ($right_line_fields) {
                                             $right_fields = array();
                                             foreach ($right_line_fields as $r__k => $r__v) {
                                                 $one_right_field = array();
                                                 //对左边单元进行处理,取出属性
                                                 //取出对应单元的后台属性
                                                 $right_field_attr = $this->new_extend->getExtendFieldAttributeData($r__v['id']);
                                                 if ($right_field_attr) {
                                                     $right_field_config = $this->buildTreeDataConfig(0, $groupData, $right_field_attr);
                                                     $one_right_field = $right_field_config[0]['extendLine']['extendField'];
                                                 }
                                                 $one_right_field['type'] = $r__v['field_type'];
                                                 //处理显示样式
                                                 $display_arr = $this->processFieldStyle($r__v['id'], $r__v['style_type']);
                                                 if ($display_arr && is_array($display_arr)) {
                                                     foreach ($display_arr as $kk => $vv) {
                                                         $one_right_field[$kk] = $vv;
                                                     }
                                                 }
                                                 //处理颜色
                                                 if (array_key_exists('textColor', $one_right_field)) {
                                                     $color_arr = $this->processExtendColor($one_right_field['textColor']);
                                                     unset($one_right_field['textColor']);
                                                     foreach ($color_arr as $ck => $cv) {
                                                         $one_right_field['textColor'][$ck] = $cv;
                                                     }
                                                 }
                                                 //处理indexContent
                                                 if ($one_right_field['indexContent'] == '空格') {
                                                     $one_right_field['indexContent'] = ' ';
                                                 }
                                                 if ($r__v['style_type'] == 2 || $r__v['style_type'] == 4) {
                                                     $one_right_field['indexContent'] = '';
                                                 }
                                                 $one_right_field['style'] = $this->settings['new_extend']['price_style'];
                                                 if ($one_right_field['marginLeft'] !== '') {
                                                     $right_fields[] = $one_right_field;
                                                 }
                                             }
                                             $one_line['right'] = $right_fields;
                                         }
                                     }
                                     $down_area[] = $one_line;
                                 }
                             }
                             $new_extends['down'] = $down_area;
                         }
                         $listUIInfo['extendLayout'] = $new_extends;
                         //获取角标样式
                         $cornerStyle = $this->extend_mode->getCornerData($module['id']);
                         if ($cornerStyle) {
                             $listUIInfo['corner_style'] = $cornerStyle;
                         }
                         //构建新角标的配置
                         //首先获取当前模块使用角标的情况
                         $cornerUseInfo = $this->_corner_mode->getUseCornerInfoByModId($module['id']);
                         if ($cornerUseInfo && !array_key_exists('ErrorCode', $cornerUseInfo)) {
                             $corners = array('showType' => (int) $module['corner_show_type']);
                             foreach ($cornerUseInfo as $_key => $_value) {
                                 //获取该用户这次使用的角标对应的属性
                                 $_corner_attr = $this->ui_value_mode->getCornerAttributeData($_value['mod_corner_id'], MODULE_USE_SUPERSCRIPT);
                                 if ($_corner_attr) {
                                     //对数据整一下型
                                     $cornerAttrConfig = $this->buildTreeDataConfig(0, $groupData, $_corner_attr);
                                     if ($cornerAttrConfig && isset($cornerAttrConfig[0]['corner'])) {
                                         $_itemCornerAttr = $cornerAttrConfig[0]['corner'];
                                         $_itemCornerAttr['key'] = $_value['field_type'];
                                         $_itemCornerAttr['text'] = $_value['text'];
                                         $_itemCornerAttr['mod_corner_id'] = $_value['mod_corner_id'];
                                         //增加superscript_id
                                         $_itemCornerAttr['superscript_id'] = $_value['id'];
                                         //系统图标
                                         if (intval($_value['img_type']) == 1) {
                                             $_icon_arr = explode('.', $_value['img_info']);
                                             $_itemCornerAttr['icon'] = 'dd_' . $_icon_arr[0];
                                             $_itemCornerAttr['url'] = $this->settings['base_url'] . $this->settings['superscript']['save_path'] . $_value['img_info'];
                                         } elseif (intval($_value['img_type']) == 2) {
                                             if ($_value['img_info'] && is_array($_value['img_info'])) {
                                                 $_icon_arr = explode('.', $_value['img_info']['filename']);
                                                 $_itemCornerAttr['icon'] = 'dd_' . $_icon_arr[0];
                                                 //此处记录url,以便后期提交打包服务器是把图片下载到工程里面
                                                 $_itemCornerAttr['url'] = $_value['img_info']['host'] . $_value['img_info']['filepath'] . $_value['img_info']['filename'];
                                             } else {
                                                 $_itemCornerAttr['icon'] = '';
                                                 $_itemCornerAttr['url'] = '';
                                             }
                                         } else {
                                             $_itemCornerAttr['icon'] = '';
                                             $_itemCornerAttr['url'] = '';
                                         }
                                         //计算图片宽高比
                                         $_itemCornerAttr['hwScale'] = Common::getImageAspect($_itemCornerAttr['url']);
                                         $corners['corner' . ($_key + 1)] = $_itemCornerAttr;
                                     }
                                 }
                             }
                             $listUIInfo['attr']['corners'] = $corners;
                         }
                     }
                     $module_info[$k]['ui'] = $listUIInfo;
                 }
             }
         }
         $app_info['module'] = $module_info;
     }
     if ($this->input['flag']) {
         $app_info['unpack'] = 1;
         /*
         $app_cache = $this->api->detail('app_cache', array('app_id' => $app_id));
         if (!$app_cache)
         {
             $insertData = array(
             		        'app_id' => $app_id,
             		        'data' => serialize($app_info)
             );
             $this->api->create('app_cache', $insertData);
             $app_info['unpack'] = 1;
         }
         else
         {
             if ($app_cache && unserialize($app_cache['data']))
             {
                 $app_cache_data = unserialize($app_cache['data']);
                 //暂时去除验证设置是否改动
                 //if ($this->compare_data($app_info, $app_cache_data))
                 //{
                 //    $app_info['unpack'] = 0;
                 //}
                 //else
                 //{
                 $this->api->update('app_cache', array('data' => serialize($app_info)), array('app_id' => $app_id));
                 if ($app_info['client'])
                 {
                     
                      $updateData = array(
                      'file_url' => '',
                      'download_url' => '',
                      'file_size' => 0,
                      'state' => 0,
                      'publish_time' => 0,
                      'push' => 0
                      );
                      foreach ($app_info['client'] as $k => $client)
                      {
                      $updateData['version_name'] = $client['version_name'] + 1;
                      $updateData['version_code'] = $client['version_code'] + 1;
                      $updateCondition = array(
                      'app_id' => $app_id,
                      'client_id' => $client['client_id']
                      );
                      if ($this->api->update('client_relation', $updateData, $updateCondition))
                      {
                      $app_info['client'][$k]['version_name'] = $updateData['version_name'];
                      $app_info['client'][$k]['version_code'] = $updateData['version_code'];
                      }
                      }
                      
                 }
                 $app_info['unpack'] = 2;
                 //}
             }
             else
             {
                 $app_info['unpack'] = 0;
             }
         }
         */
     }
     $this->addItem($app_info);
     $this->output();
 }