From 46f0777d5f93bf316821894552f8eaabafbd32f1 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 09 十一月 2023 14:50:25 +0800
Subject: [PATCH] 完善行政区划功能

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/BaseResponseUtils.java                  |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java       |   32 ++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java       |    3 +
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java     |   21 ++++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml                              |   38 ++++++++++--
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java                    |    8 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java               |   16 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java |    1 
 8 files changed, 112 insertions(+), 9 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/BaseResponseUtils.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/BaseResponseUtils.java
index b613d77..c55567e 100644
--- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/BaseResponseUtils.java
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/webUtil/BaseResponseUtils.java
@@ -3,8 +3,10 @@
 /**
  * 杩斿洖鍊兼搷浣滃伐鍏�
  */
+@SuppressWarnings("rawtypes")
 public class BaseResponseUtils{
 
+    @SuppressWarnings("unused")
     public static BaseResponse buildSuccess(){
         return buildSuccess(null);
     }
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java
index 9e342c8..80b0136 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaDistrictMapper.java
@@ -5,6 +5,8 @@
 import com.dy.pipIrrGlobal.pojoBa.BaPrivilege;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 @Mapper
 public interface BaDistrictMapper extends BaseMapper<BaPrivilege> {
     /**
@@ -36,6 +38,20 @@
     BaDistrict selectByPrimaryKey(Long id);
 
     /**
+     * 鏌ヨ鏌愪竴琛屾斂绾у埆鐨勮鏀垮尯鍒�
+     * @param level 琛屾斂鍖哄垝绾у埆
+     * @return 鏌愪竴琛屾斂绾у埆鐨勮鏀垮尯鍒�
+     */
+    List<BaDistrict> selectByLevel(byte level) ;
+
+    /**
+     * 鏌ヨ鏌愪竴琛屾斂绾у埆鐨勪笅绾ц鏀垮尯
+     * @param supperId 涓婄骇琛屾斂鍖篒D
+     * @return 鏌愪竴琛屾斂绾у埆鐨勪笅绾ц鏀垮尯
+     */
+    List<BaDistrict> selectBySupperId(Long supperId) ;
+
+    /**
      * update record selective
      * @param record the updated record
      * @return update count
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java
index ea2cc1d..9a0eb2c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaDistrict.java
@@ -3,11 +3,14 @@
 import com.alibaba.fastjson2.annotation.JSONField;
 import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.dy.common.po.BaseEntity;
 import com.dy.pipIrrGlobal.util.DistrictLevel;
 import lombok.*;
+
+import java.util.List;
 
 @TableName(value="ba_district", autoResultMap = true)
 @Data
@@ -23,8 +26,13 @@
     @TableId(type = IdType.INPUT)
     public Long id ;
 
+    public Long supperId;//涓婄骇琛屾斂鍖篒D
+
     public String name;
 
     public DistrictLevel level;
 
+    @TableField(exist = false)
+    public List<BaDistrict> subDistricts ;
+
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml
index e434616..0732885 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaDistrictMapper.xml
@@ -5,13 +5,13 @@
     <!--@mbg.generated-->
     <!--@Table ba_district-->
     <id column="id" jdbcType="BIGINT" property="id" />
+    <id column="supperId" jdbcType="BIGINT" property="supperId" />
     <result column="name" jdbcType="VARCHAR" property="name" />
     <result property="level" column="level" typeHandler="com.dy.common.mybatis.envm.EnumCodeTypeHandler" javaType="com.dy.pipIrrGlobal.util.DistrictLevel"/>
-
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, `name`, `level`
+    id, supperId, `name`, `level`
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -20,6 +20,20 @@
     from ba_district
     where id = #{id,jdbcType=BIGINT}
   </select>
+  <select id="selectByLevel" parameterType="java.lang.Byte" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select
+    <include refid="Base_Column_List" />
+    from ba_district
+    where level = #{level,jdbcType=TINYINT}
+  </select>
+  <select id="selectBySupperId" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select
+    <include refid="Base_Column_List" />
+    from ba_district
+    where supperId = #{supperId,jdbcType=BIGINT}
+  </select>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
     <!--@mbg.generated-->
     delete from ba_district
@@ -27,10 +41,8 @@
   </delete>
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoBa.BaDistrict">
     <!--@mbg.generated-->
-    insert into ba_district (id, `name`, `level`
-      )
-    values (#{id,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{level,jdbcType=TINYINT}
-      )
+    insert into ba_district (id, supperId, `name`, `level`)
+    values (#{id,jdbcType=BIGINT}, #{supperId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{level,jdbcType=TINYINT})
   </insert>
   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaDistrict">
     <!--@mbg.generated-->
@@ -38,6 +50,9 @@
     <trim prefix="(" suffix=")" suffixOverrides=",">
       <if test="id != null">
         id,
+      </if>
+      <if test="supperId != null">
+        supperId,
       </if>
       <if test="name != null">
         `name`,
@@ -49,6 +64,9 @@
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
         #{id,jdbcType=BIGINT},
+      </if>
+     <if test="supperId != null">
+        #{supperId,jdbcType=BIGINT},
       </if>
       <if test="name != null">
         #{name,jdbcType=VARCHAR},
@@ -65,6 +83,9 @@
       <if test="name != null">
         `name` = #{name,jdbcType=VARCHAR},
       </if>
+      <if test="supperId != null">
+        supperId = #{supperId,jdbcType=BIGINT},
+      </if>
       <if test="level != null">
         `level` = #{level,jdbcType=TINYINT},
       </if>
@@ -74,8 +95,9 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoBa.BaDistrict">
     <!--@mbg.generated-->
     update ba_district
-    set `name` = #{name,jdbcType=VARCHAR},
-      `level` = #{level,jdbcType=TINYINT}
+    set supperId = #{supperId,jdbcType=BIGINT},
+        `name` = #{name,jdbcType=VARCHAR},
+        `level` = #{level,jdbcType=TINYINT}
     where id = #{id,jdbcType=BIGINT}
   </update>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java
index a274591..eeb3fb0 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java
@@ -60,6 +60,25 @@
         return BaseResponseUtils.buildSuccess(list);
     }
 
+    /**
+     * 瀹㈡埛绔姹傚緱鍒版墍鏈夎鏀垮尯鏁版嵁
+     * @return 鎵�鏈夎鏀垮尯鏁版嵁
+     */
+    @Operation(summary = "鑾峰緱鎵�鏈夎鏀垮尯", description = "杩斿洖鎵�鏈夎鏀垮尯鏁版嵁")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖鎵�鏈夎鏀垮尯鏁版嵁锛圔aseResponse鏄熀绫伙級",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = BaDistrict.class))}
+            )
+    })
+    @GetMapping(path = "allDistricts")
+    public BaseResponse<List<BaDistrict>> allDistricts(){
+        List<BaDistrict> list = this.sv.getAll(DistrictLevel.City.code) ;
+        return BaseResponseUtils.buildSuccess(list);
+    }
+
 
     /**
      * 淇濆瓨琛屾斂鍖�
@@ -90,7 +109,7 @@
             return BaseResponseUtils.buildException(e.getMessage()) ;
         }
         if(count <= 0){
-            return BaseResponseUtils.buildSuccess(true) ;
+            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ;
         }else{
             return BaseResponseUtils.buildSuccess(true) ;
         }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java
index 9faba57..27c5a85 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictSv.java
@@ -6,6 +6,8 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Slf4j
 @Service
 public class DistrictSv {
@@ -21,4 +23,34 @@
     public int save(BaDistrict po){
         return this.baDistrictMapper.insert(po) ;
     }
+
+    /**
+     * 浠庣涓�绾ц鏀垮尯鍒掑紑濮嬶紝寰楀埌鎵�鏈夎鏀垮尯鍒掍俊鎭�
+     * @param firstLevel 绗竴绾ц涓嬪尯 level
+     * @return 鎵�鏈夎鏀垮尯鍒掗泦鍚�
+     */
+    public List<BaDistrict> getAll(byte firstLevel){
+        List<BaDistrict> list = this.baDistrictMapper.selectByLevel(firstLevel) ;
+        if(list != null && list.size() > 0){
+            for(BaDistrict po : list){
+                getSubDistrict(po) ;
+            }
+        }
+        return list ;
+    }
+
+    /**
+     * 寰楀埌涓嬬骇琛屾斂鍖哄垝
+     * @param po 涓婄骇琛屾斂鍖哄垝
+     */
+    private void getSubDistrict(BaDistrict po){
+        if(po != null && po.id != null){
+            po.subDistricts = this.baDistrictMapper.selectBySupperId(po.id) ;
+            if(po.subDistricts != null && po.subDistricts.size() > 0){
+                for(BaDistrict subPo : po.subDistricts){
+                    getSubDistrict(subPo) ;
+                }
+            }
+        }
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java
index 91d043c..06cdafa 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVo.java
@@ -15,6 +15,9 @@
 @Builder
 @Schema(name = "琛屾斂鍖哄垝鍊煎璞�")
 public class DistrictVo {
+    @Schema(description = "涓婄骇琛屾斂鍖篒D", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    public Long supperId ;
+
     @Schema(description = "琛屾斂鍖哄悕绉�", requiredMode = Schema.RequiredMode.REQUIRED)
     @NotEmpty(message = "琛屾斂鍖哄悕绉颁笉鑳戒负绌�") //涓嶈兘涓虹┖涔熶笉鑳戒负null
     @Length(message = "琛屾斂鍖哄悕绉板皬浜巤max}瀛�", min = 1, max = 25)
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java
index 3b79344..90b5d8f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictVoMapper.java
@@ -15,6 +15,7 @@
      * @return po
      */
     @Mapping(target = "id", ignore = true)
+    @Mapping(target = "supperId", source = "supperId")
     @Mapping(target = "name", source = "name")
     @Mapping(target = "level", source = "level", qualifiedByName = "districtLevelByteToObj")
     BaDistrict convert(DistrictVo vo);

--
Gitblit v1.8.0