Esempio n. 1
0
 /**
  * MakeRouteIndexAct::act_makeAreaIndex()
  * 生成区域索引
  * @author Gary
  * @return
  */
 public function act_makeAreaIndex()
 {
     $areaInfo = WhWaveAreaInfoModel::get_area_by_floorId();
     if (empty($areaInfo)) {
         self::$errCode = 201;
         self::$errMsg = '没有关联区域信息!';
         return FALSE;
     }
     //print_r($areaInfo);exit;
     $new_arr = array();
     foreach ($areaInfo as $area) {
         //按照楼层和纵坐标生成新区域数组
         $y = $area['start_y_alixs'];
         $new_arr[$area['floorId']][$y][] = $area;
     }
     unset($areaInfo);
     $i = 1;
     $insert_data = array();
     //print_r($new_arr);exit;
     foreach ($new_arr as $val1) {
         //遍历排序
         foreach ($val1 as $val2) {
             foreach ($val2 as $area) {
                 $insert_data[] = array('routeId' => $area['id'], 'name' => $area['areaName'], 'route' => $i, 'routeType' => 3);
                 $i++;
             }
         }
     }
     WhBaseModel::begin();
     $where = 'routeType = 3';
     $info = WhWaveRouteRelationModel::delete_relation($where);
     if (!$info) {
         WhBaseModel::rollback();
         self::$errCode = 202;
         self::$errMsg = '删除旧区域索引失败!';
         return FALSE;
     }
     $info = WhWaveRouteRelationModel::insert_data($insert_data);
     if (!$info) {
         WhBaseModel::rollback();
         self::$errCode = 203;
         self::$errMsg = '插入新区域索引失败!';
         return FALSE;
     }
     WhBaseModel::commit();
     self::$errCode = 200;
     self::$errMsg = '更新区域索引成功!';
     return TRUE;
 }