Просмотр исходного кода

Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

java110 лет назад: 3
Родитель
Сommit
916fcda1d6

+ 35 - 0
java110-db/src/main/resources/mapper/common/AreaServiceDaoImplMapper.xml

@@ -34,6 +34,41 @@
         </if>
     </select>
 
+    <!--查询地区数据-->
+    <select id="getWholeArea" resultType="Map" parameterType="Map">
+        select
+        t.id ,
+        t.area_code areaCode,
+        t.area_name areaName,
+        t.area_level areaLevel,
+        t.parent_area_code parentAreaCode,
+        t.parent_area_name parentAreaName,
+        t.lon,
+        t.lat,
+        t.create_time createTime
+        from city_area t
+        where 1=1
+        and t.status_cd = '0'
+        <if test="areaCode != null and areaCode !=''">
+            and t.area_code = concat(#{areaCode},'%')
+        </if>
+        <if test="areaName != null and areaName != ''">
+            and t.area_name like concat('%',#{areaName},'%')
+        </if>
+        <if test="areaLevel != null and areaLevel !=''">
+            and t.area_level = #{areaLevel}
+        </if>
+        <if test="parentAreaCode != null and parentAreaCode !=''">
+            and t.parent_area_code = #{parentAreaCode}
+        </if>
+        <if test="parentAreaName != null and parentAreaName !=''">
+            and t.parent_area_name like concat('%',#{parentAreaName},'%')
+        </if>
+        ORDER BY t.area_code asc
+    </select>
+
+
+
     <select id="getProvCityArea" parameterType="Map" resultType="Map">
         SELECT
             par.parent_area_code provCode,

+ 2 - 0
java110-interface/src/main/java/com/java110/intf/common/IAreaInnerServiceSMO.java

@@ -27,5 +27,7 @@ public interface IAreaInnerServiceSMO {
     @RequestMapping(value = "/getProvCityArea", method = RequestMethod.POST)
     public List<AreaDto> getProvCityArea(@RequestBody AreaDto areaDto);
 
+    @RequestMapping(value = "/getWholeArea", method = RequestMethod.POST)
+    public List<AreaDto> getWholeArea(@RequestBody AreaDto areaDto);
 
 }

+ 10 - 0
service-common/src/main/java/com/java110/common/dao/IAreaServiceDao.java

@@ -22,4 +22,14 @@ public interface IAreaServiceDao {
      * @throws DAOException DAO异常
      */
     public List<Map> getProvCityArea(Map info) throws DAOException;
+
+    /**
+     * 查询完整省份 城市 区域   如:传入区,返回市省,传入  街道,返回区,市,省
+     * @param info bId 信息
+     * @return 应用信息
+     * @throws DAOException DAO异常
+     */
+    public List<Map> getWholeArea(Map info) throws DAOException;
+
+
 }

+ 15 - 0
service-common/src/main/java/com/java110/common/dao/impl/AreaServiceDaoImpl.java

@@ -53,6 +53,21 @@ public class AreaServiceDaoImpl extends BaseServiceDao implements IAreaServiceDa
         return businessAppInfos;
     }
 
+    /**
+     * 查询完整省份 城市 区域
+     * @param info bId 信息
+     * @return 应用信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public List<Map> getWholeArea(Map info) throws DAOException {
+
+        logger.debug("getWholeArea 入参 info : {}",info);
+
+        List<Map> businessAppInfos = sqlSessionTemplate.selectList("areaServiceDaoImpl.getWholeArea",info);
+
+        return businessAppInfos;
+    }
 
 
 }

+ 43 - 0
service-common/src/main/java/com/java110/common/smo/impl/AreaInnerServiceSMOImpl.java

@@ -9,6 +9,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 
 @RestController
@@ -32,4 +35,44 @@ public class AreaInnerServiceSMOImpl extends BaseServiceSMO implements IAreaInne
 
         return areas;
     }
+
+    @Override
+    public List<AreaDto> getWholeArea(@RequestBody AreaDto areaDto) {
+        String areacode = "";
+        if (areaDto.getAreaCode() != null && areaDto.getAreaCode().length() > 5){
+            areacode = areaDto.getAreaCode();
+        }else{
+            areacode = "110101";
+        }
+        areaDto.setAreaCode(areacode);
+        List<AreaDto> areas = BeanConvertUtil.covertBeanList(areaServiceDaoImpl.getWholeArea(BeanConvertUtil.beanCovertMap(areaDto)), AreaDto.class);
+        List<AreaDto> newlist = new ArrayList();
+        AreaDto nowarea = new AreaDto();
+        for (AreaDto area :areas){
+            if (areacode.equals(area.getAreaCode())){
+                newlist.add(area);
+                nowarea = area;
+                break;
+            }
+        }
+        getTree(areas,nowarea,newlist);
+        Collections.reverse(newlist);
+        return newlist;
+    }
+
+    private static void getTree(List<AreaDto> areas,AreaDto area,List<AreaDto> newlist){
+        for (AreaDto a :areas){
+            if (area.getParentAreaCode().equals(a.getAreaCode())){
+                newlist.add(a);
+                area = a;
+                areas.remove(a);
+                getTree(areas,area,newlist);
+                break;
+            }
+        }
+    }
+
+
+
+
 }