From 740e46fe6e2be7f152cfeba697b311d568669201 Mon Sep 17 00:00:00 2001 From: "litao@lymsh.com" Date: Mon, 27 Nov 2017 18:16:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lyms/platform/common/utils/SystemConfig.java | 3 ++ .../operate/web/controller/TestController.java | 23 ++++++++++--- .../operate/web/facade/AreaCountFacade.java | 38 ++++++++++++---------- .../lyms/platform/operate/web/utils/MongoUtil.java | 9 +++++ 4 files changed, 51 insertions(+), 22 deletions(-) diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/SystemConfig.java b/platform-common/src/main/java/com/lyms/platform/common/utils/SystemConfig.java index 0c23f6c..e9add50 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/SystemConfig.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/SystemConfig.java @@ -5,6 +5,9 @@ package com.lyms.platform.common.utils; */ public class SystemConfig { + // 地址类型 + public static final String CHINA_TYPE_ID = "b7ea005c-dfac-4c2a-bdae-25239b3f44fd"; + public static final String CHINA_BASIC_ID = "f6c505dd-835a-43d7-b0bb-fdb9eb0b7b31"; //证件类型 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java index dd7dea4..254a596 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java @@ -8,10 +8,7 @@ import com.lyms.platform.biz.JdbcUtil; import com.lyms.platform.biz.service.*; import com.lyms.platform.common.enums.SieveStatusEnums; import com.lyms.platform.common.enums.YnEnums; -import com.lyms.platform.common.utils.CompressEncodeingUtil; -import com.lyms.platform.common.utils.DateUtil; -import com.lyms.platform.common.utils.ExceptionUtils; -import com.lyms.platform.common.utils.JsonUtil; +import com.lyms.platform.common.utils.*; import com.lyms.platform.operate.web.facade.AntenatalExaminationFacade; import com.lyms.platform.operate.web.facade.BabyCheckFacade; import com.lyms.platform.operate.web.facade.SieveFacade; @@ -33,6 +30,8 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.authentication.UserCredentials; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -114,6 +113,22 @@ public class TestController { private PatientServiceService patientServiceService; + @RequestMapping("/area") + @ResponseBody + public Object getArea() { + List basicConfigs = mongoTemplate.find(Query.query(Criteria.where("typeId").is("b7ea005c-dfac-4c2a-bdae-25239b3f44fd")), BasicConfig.class); + List> datas = new ArrayList<>(); + for (BasicConfig basicConfig : basicConfigs) { + Map temp = new HashMap<>(); + temp.put("id", basicConfig.getId()); + temp.put("name", basicConfig.getName()); + temp.put("pid", basicConfig.getParentId()); + datas.add(temp); + } + return datas; + } + + /** * * @param isSkip 是否增量添加 true:增量添加 diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java index 9ebb7a0..753dc95 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AreaCountFacade.java @@ -12,6 +12,7 @@ import com.lyms.platform.common.utils.*; import com.lyms.platform.common.utils.StringUtils; import com.lyms.platform.operate.web.utils.CommonsHelper; import com.lyms.platform.operate.web.utils.FunvCommonUtil; +import com.lyms.platform.operate.web.utils.MongoUtil; import com.lyms.platform.operate.web.utils.ResponseUtil; import com.lyms.platform.operate.web.worker.CheckPointCountWorker; import com.lyms.platform.permission.model.Organization; @@ -81,6 +82,9 @@ public class AreaCountFacade { @Qualifier("commonThreadPool") private ThreadPoolTaskExecutor commonThreadPool; + @Autowired + private MongoUtil mongoUtil; + /** * 获取当前用户拥有的医院权限列表并和查询条件取交集 @@ -871,28 +875,26 @@ public class AreaCountFacade { } public BaseResponse getAreaId(String provinceName, String cityName, String areaName) { - BasicConfig province = mongoTemplate.findOne(Query.query(Criteria.where("name").is(provinceName).and("typeId").is("b7ea005c-dfac-4c2a-bdae-25239b3f44fd")), BasicConfig.class); - if (province != null) { - if(StringUtils.isEmpty(cityName)) { - return RespBuilder.buildSuccess(province.getId()); - } - List citys = mongoTemplate.find(Query.query(Criteria.where("parentId").is(province.getId()).and("typeId").is("b7ea005c-dfac-4c2a-bdae-25239b3f44fd")), BasicConfig.class); - for (BasicConfig city : citys) { - if (cityName.equals(city.getName())) { - if (StringUtils.isEmpty(areaName)) { - return RespBuilder.buildSuccess(city.getId()); - } else { - List areas = mongoTemplate.find(Query.query(Criteria.where("parentId").is(city.getId()).and("typeId").is("b7ea005c-dfac-4c2a-bdae-25239b3f44fd")), BasicConfig.class); - for (BasicConfig area : areas) { - if (areaName.equals(area.getName())) { - return RespBuilder.buildSuccess(area.getId()); - } - } + List basicConfigs = mongoTemplate.find(Query.query(Criteria.where("name").regex(provinceName).and("typeId").is(SystemConfig.CHINA_TYPE_ID).and("parentId").is(SystemConfig.CHINA_BASIC_ID).and("yn").ne(0)), BasicConfig.class); + List> restList = new ArrayList<>(); + List parentIds = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(basicConfigs)) { + if(StringUtils.isNotEmpty(cityName)) { + for (BasicConfig config : basicConfigs) { + parentIds.add(config.getId()); + } + basicConfigs = mongoTemplate.find(Query.query(Criteria.where("name").regex(cityName).and("typeId").is(SystemConfig.CHINA_TYPE_ID).and("parentId").in(parentIds).and("yn").ne(0)), BasicConfig.class); + if(StringUtils.isNotEmpty(areaName)) { + parentIds.clear(); + for (BasicConfig config : basicConfigs) { + parentIds.add(config.getId()); } + basicConfigs = mongoTemplate.find(Query.query(Criteria.where("name").regex(areaName).and("typeId").is(SystemConfig.CHINA_TYPE_ID).and("parentId").in(parentIds).and("yn").ne(0)), BasicConfig.class); } } } - return RespBuilder.buildSuccess("not found"); + mongoUtil.setIdNames(basicConfigs, restList); + return RespBuilder.buildSuccess(restList); } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java index deebd21..966e45f 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/utils/MongoUtil.java @@ -51,6 +51,15 @@ public class MongoUtil { @Autowired private CouponMapper couponMapper; + public void setIdNames(List basicConfigs, List> restList) { + for (BasicConfig config : basicConfigs) { + Map temp = new HashMap<>(); + temp.put("id", config.getId()); + temp.put("name", config.getName()); + restList.add(temp); + } + } + public List> getChilds(String parentId,String childId) { List> childList = new ArrayList<>(); -- 1.8.3.1