Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

[user3] 4 rokov pred
rodič
commit
c4b7b4b2f0

+ 2 - 0
src/main/java/com/jeeplus/modules/sys/dao/AreaDao.java

@@ -27,4 +27,6 @@ public interface AreaDao extends TreeDao<Area> {
 	List<Area> getChildren(String parentId);
 
     Area findAraeByid(String id);
+
+	List<Area> findAraeByParentId(String id);
 }

+ 19 - 0
src/main/java/com/jeeplus/modules/sys/service/AreaService.java

@@ -40,6 +40,25 @@ public class AreaService extends TreeService<AreaDao, Area> {
 		return UserUtils.findAraeByid(pid);
 	}
 
+
+	/**
+	 * 根据id查该地区下所有子集
+	 * @param areaList
+	 * @param id
+	 * @return
+	 */
+	public List<Area> findAraeListByParentId(List<Area> areaList,String id){
+		List<Area> areas = UserUtils.findAraeListByParentId(id);
+		if(null != areas){
+			areaList.addAll(areas);
+			for (Area area: areas) {
+				this.findAraeListByParentId(areaList,area.getId());
+			}
+		}
+		return areaList;
+	}
+
+
 	@Transactional(readOnly = false)
 	public void save(Area area) {
 		super.save(area);

+ 11 - 0
src/main/java/com/jeeplus/modules/sys/utils/UserUtils.java

@@ -119,6 +119,17 @@ public class UserUtils {
 		return area;
 	}
 
+
+	/**
+	 * 根据ID获取区域
+	 * @param id
+	 * @return
+	 */
+	public static List<Area> findAraeListByParentId(String id){
+		List<Area> areas=areaDao.findAraeByParentId(id);
+		return areas;
+	}
+
 	public static User getNoSession(String id){
 		User user = userDao.get(id);
 		if (user == null){

+ 12 - 0
src/main/java/com/jeeplus/modules/sys/web/AreaController.java

@@ -180,6 +180,18 @@ public class AreaController extends BaseController {
 							prantsSet.add(prantsmap);
 						}
 					}
+					List<Area> areaList = Lists.newArrayList();
+					//根据id查该地区下所有子集
+					areaList = areaService.findAraeListByParentId(areaList,e.getId());
+					for (Area info: areaList) {
+						Map<String, Object> prantsmap = Maps.newHashMap();
+						prantsmap.put("id", info.getId());
+						prantsmap.put("pId", info.getParentId());
+						prantsmap.put("pIds", info.getParentIds());
+						prantsmap.put("name", info.getName());
+						prantsmap.put("selectName", selectName);
+						prantsSet.add(prantsmap);
+					}
 				}
 				map.put("id", e.getId());
 				map.put("pId", e.getParentId());

+ 20 - 4
src/main/resources/mappings/modules/sys/AreaDao.xml

@@ -87,10 +87,15 @@
 		FROM sys_area a
 		<include refid="areaJoins"/>
 		WHERE a.del_flag = #{DEL_FLAG_NORMAL}
-		<if test="typeStr != null and typeStr != ''">
-			and a.name like concat('%',#{typeStr},'%')
-		</if>
-		ORDER BY a.sort=29 desc, a.code
+		<choose>
+			<when test="typeStr != null and typeStr != ''">
+				and a.name like concat('%',#{typeStr},'%')
+				ORDER BY p.sort=29 desc, a.code
+			</when>
+			<otherwise>
+				ORDER BY a.sort=29 desc, a.code
+			</otherwise>
+		</choose>
 	</select>
 
 	<select id="getChildren" parameterType="String" resultMap="areaResult">
@@ -205,4 +210,15 @@
 			a.id= #{id}
 		</where>
 	</select>
+
+
+	<select id="findAraeByParentId" resultType="com.jeeplus.modules.sys.entity.Area">
+		SELECT
+		<include refid="areaColumns"/>
+		FROM sys_area a
+		<include refid="areaJoins"/>
+		<where>
+			a.parent_id LIKE concat('%',#{id},'%')
+		</where>
+	</select>
 </mapper>