/** * 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; }