From 5de06c73416275934bcfce7cb0e04562c9462ce8 Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期六, 06 一月 2024 10:12:52 +0800
Subject: [PATCH] 2024-01-06 朱宝民 三级行政区划获取

---
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java       |   96 ++++++++++++++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java      |   16 ++-
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/district/DistrictCtrl.java        |   51 ++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoToDividePojo.java |   32 ++++++++
 4 files changed, 188 insertions(+), 7 deletions(-)

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 dbec7d5..8a41586 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
@@ -1,5 +1,8 @@
 package com.dy.pipIrrBase.district;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
 import com.dy.common.aop.SsoAop;
 import com.dy.common.mybatis.envm.Deleted;
 import com.dy.common.webUtil.BaseResponse;
@@ -263,4 +266,52 @@
         }
         return BaseResponseUtils.buildSuccess(map_Districts);
     }
+
+    /**
+     * 鑾峰彇涓夌骇琛屾斂鍖哄垝
+     * @return 鍘块晣鏉戜笁绾ц鏀垮尯鍒�
+     */
+    @GetMapping(path = "/three")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<Map<String, Object>>>> getThreeDistrict() {
+        JSONArray array_counties = new JSONArray();
+        JSONArray array_towns = new JSONArray();
+        JSONArray array_villages = new JSONArray();
+
+        List<Map<String, Object>> list_counties = Optional.ofNullable(sv.getDistrictgsByLevel(2)).orElse(new ArrayList<>());
+        if(list_counties.size() > 0) {
+            array_counties = JSONArray.parseArray(JSON.toJSONString(list_counties));
+            // 閬嶅巻姣忎竴涓幙锛屽皢鍘夸笅鐨勯晣鏉戝姞鍒板幙鐨勫瓙闆�
+            for(int i = 0; i < array_counties.size(); i++) {
+                JSONObject job_county = array_counties.getJSONObject(i);
+                    Long countyId = job_county.getLong("id");
+                    List<Map<String, Object>> list_towns = Optional.ofNullable(sv.getDistrictsBySupperId(countyId)).orElse(new ArrayList<>());
+                    if(list_towns.size() > 0) {
+                        array_towns = JSONArray.parseArray(JSON.toJSONString(list_towns));
+                        // 閬嶅巻姣忎竴涓晣锛屽皢闀囦笅鏉戝垪琛ㄥ姞鍒伴晣鐨勫瓙闆�
+                        for(int j = 0; j < array_towns.size(); j++) {
+                            JSONObject job_town = array_towns.getJSONObject(j);
+                            Long townId = job_town.getLong("id");
+                            List<Map<String, Object>> list_villages = Optional.ofNullable(sv.getDistrictsBySupperId(townId)).orElse(new ArrayList<>());
+                            if(list_villages.size() > 0) {
+                                array_villages = JSONArray.parseArray(JSON.toJSONString(list_villages));
+                                job_town.put("children", array_villages);
+                            }
+                        }
+                        //System.out.println("----" + array_towns);
+                    }
+                    // 闀囨潙缁勮瀹屾瘯锛屽皢闀囨潙鍔犲埌鍘夸笅
+                    job_county.put("children", array_towns);
+            }
+            // 鍘跨粍瑁呭畬姣�
+            //String a = array_counties.toJSONString();
+            //System.out.println(a);
+            return BaseResponseUtils.buildSuccess(array_counties);
+        }else {
+            return BaseResponseUtils.buildFail("鍘跨骇琛屾斂鍖哄垝涓嶅瓨鍦�");
+        }
+
+
+        //return BaseResponseUtils.buildSuccess();
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java
index 64e007f..5483b23 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DivideCtrl.java
@@ -119,12 +119,12 @@
     @PostMapping(path = "add", consumes = MediaType.APPLICATION_JSON_VALUE)
     @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> add(@RequestBody @Valid PrDivide po, BindingResult bindingResult){
+    public BaseResponse<Boolean> add(@RequestBody @Valid DtoDivide po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
         // 鎺ユ敹鏉戠紪鍙凤紙涓婚敭锛�
-        Long villageId = po.getVillageid();
+        Long villageId = po.getVillageId();
 
         /**
          * 鑾峰彇5绾ц鏀垮尯鍒掍俊鎭�
@@ -134,15 +134,17 @@
             return BaseResponseUtils.buildFail("鍖哄垝淇℃伅鏈夎");
         }
 
+        PrDivide prDivide = DtoToDividePojo.INSTANCT.po2vo(po);
+
         Long countryId = Long.parseLong(map_districts.get("countryId").toString());
         Long townId = Long.parseLong(map_districts.get("townId").toString());
-        po.setCountyid(countryId);
-        po.setTownid(townId);
+        prDivide.setCountyid(countryId);
+        prDivide.setTownid(townId);
 
         Date operateTime = new Date();
-        po.setOperatedt(operateTime);
-        po.setDeleted((byte)0);
-        Integer rec = Optional.ofNullable(divideSv.addDivide(po)).orElse(0);
+        prDivide.setOperatedt(operateTime);
+        prDivide.setDeleted((byte)0);
+        Integer rec = Optional.ofNullable(divideSv.addDivide(prDivide)).orElse(0);
         if(rec == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.DIVIDE_FAIL.getMessage());
         }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java
new file mode 100644
index 0000000..ee84f0c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoDivide.java
@@ -0,0 +1,96 @@
+package com.dy.pipIrrProject.divide;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 17:00
+ * @LastEditTime 2024-01-05 17:00
+ * @Description
+ */
+
+@Data
+@Schema(name = "鍒嗘按鎴夸紶鍏ュ璞�")
+public class DtoDivide {
+    public static final long serialVersionUID = 1L;
+
+    /**
+     * 鎵�鍦ㄦ潙
+     */
+    @Schema(description = "鎵�鍦ㄦ潙ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鎵�鍦ㄦ潙涓嶈兘涓虹┖")
+    private Long villageId;
+
+    /**
+     * 鎵�鍦ㄧ墖鍖�
+     */
+    @Schema(description = "鎵�鍦ㄧ墖鍖篒D", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "鎵�鍦ㄧ墖鍖轰笉鑳戒负绌�")
+    private Long blockId;
+
+    /**
+     * 鍒嗘按鍙e悕绉版垨缂栧彿
+     */
+    @Schema(description = "鍒嗘按鍙e悕绉�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "鍒嗘按鎴垮悕绉颁笉鑳戒负绌�")
+    @Length(max = 25, message = "鍒嗘按鍙e悕绉版渶澶�25瀛�")
+    private String name;
+
+    /**
+     * 瑕嗙洊鏉�
+     */
+    @Schema(description = "瑕嗙洊鏉�", requiredMode = Schema.RequiredMode.REQUIRED)
+    @Length(max = 100, message = "瑕嗙洊鏉戞渶澶�100瀛�")
+    private String villages;
+
+    /**
+     * 瑕嗙洊闈㈢Н锛堝钩鏂瑰叕閲岋級
+     */
+    @Schema(description = "瑕嗙洊闈㈢Н", requiredMode = Schema.RequiredMode.REQUIRED)
+    private Double area;
+
+    /**
+     * 璐熻矗浜�
+     */
+    @Schema(description = "璐熻矗浜�", requiredMode = Schema.RequiredMode.REQUIRED)
+    private String header;
+
+    /**
+     * 鑱旂郴鐢佃瘽
+     */
+    @Schema(description = "鑱旂郴鐢佃瘽", requiredMode = Schema.RequiredMode.REQUIRED)
+    @Length(max = 11, message = "鑱旂郴鐢佃瘽鏈�澶�11浣�")
+    private String phone;
+
+    /**
+     * 缁忓害
+     */
+    @Schema(description = "缁忓害", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "缁忓害涓嶈兘涓虹┖")
+    private Double lng;
+
+    /**
+     * 绾害
+     */
+    @Schema(description = "缁忓害", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "缁忓害涓嶈兘涓虹┖")
+    private Double lat;
+
+    /**
+     * 澶囨敞淇℃伅
+     */
+    @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(max = 200, message = "澶囨敞鏈�澶�200瀛�")
+    private String remarks;
+
+    /**
+     * 鎿嶄綔浜虹紪鍙�
+     */
+    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotNull(message = "鎿嶄綔浜虹紪鍙蜂笉鑳戒负绌�")
+    private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoToDividePojo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoToDividePojo.java
new file mode 100644
index 0000000..9fbdc5e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/divide/DtoToDividePojo.java
@@ -0,0 +1,32 @@
+package com.dy.pipIrrProject.divide;
+
+import com.dy.pipIrrGlobal.pojoPr.PrDivide;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-05 17:10
+ * @LastEditTime 2024-01-05 17:10
+ * @Description
+ */
+
+@Mapper
+public interface DtoToDividePojo {
+    DtoToDividePojo INSTANCT = Mappers.getMapper(DtoToDividePojo.class);
+
+    @Mapping(target = "villageid", source = "villageId")
+    @Mapping(target = "blockid", source = "blockId")
+    @Mapping(target = "name", source = "name")
+    @Mapping(target = "villages", source = "villages")
+    @Mapping(target = "area", source = "area")
+    @Mapping(target = "header", source = "header")
+    @Mapping(target = "phone", source = "phone")
+    @Mapping(target = "lng", source = "lng")
+    @Mapping(target = "lat", source = "lat")
+    @Mapping(target = "remarks", source = "remarks")
+    @Mapping(target = "operator", source = "operator")
+
+    PrDivide po2vo(DtoDivide po);
+}

--
Gitblit v1.8.0