From 83ee95ed2409aca5745581cf6b760d7dbee88156 Mon Sep 17 00:00:00 2001 From: wangxianzhang Date: Fri, 14 Jan 2022 16:26:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=201.=E7=A4=BE?= =?UTF-8?q?=E5=8C=BA=E6=9F=A5=E8=AF=A2-=E6=90=9C=E7=B4=A2=E6=88=BF?= =?UTF-8?q?=E5=B1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/form/ListIcNeighborHoodFormDTO.java | 5 ++ .../com/epmet/controller/HouseController.java | 47 ++++++++++++++++++- .../main/java/com/epmet/dao/IcHouseDao.java | 7 ++- .../java/com/epmet/service/HouseService.java | 9 +++- .../epmet/service/impl/HouseServiceImpl.java | 42 ++++++++++++----- .../src/main/resources/mapper/IcHouseDao.xml | 36 ++++++++++---- 6 files changed, 122 insertions(+), 24 deletions(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ListIcNeighborHoodFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ListIcNeighborHoodFormDTO.java index 80b95263b6..402c86c868 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ListIcNeighborHoodFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/ListIcNeighborHoodFormDTO.java @@ -76,5 +76,10 @@ public class ListIcNeighborHoodFormDTO implements Serializable{ */ private String neighborHoodId; + /** + * 搜索关键词,社区查询,搜索输入的关键词 + */ + private String keyword; + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java index 7b6c7e44c0..1edcfe206d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/HouseController.java @@ -34,6 +34,7 @@ import com.epmet.excel.IcHouseExcel; import com.epmet.service.HouseService; import com.epmet.util.ExcelPoiUtils; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; @@ -64,11 +65,55 @@ public class HouseController { public Result houseList(@RequestBody ListIcNeighborHoodFormDTO formDTO){ //效验数据 ValidatorUtils.validateEntity(formDTO); - IcNeighborHoodResultDTO icNeighborHoodResultDTO = houseService.listNeighborhood(formDTO); + + String queryScene = "house_manage"; + + IcNeighborHoodResultDTO icNeighborHoodResultDTO = houseService.listNeighborhood(formDTO.getBuildingId(), formDTO.getOwnerName(), + formDTO.getOwnerPhone(), null, + null, queryScene, + formDTO.getPageNo(), formDTO.getPageSize()); return new Result().ok(icNeighborHoodResultDTO); } + /** + *@Description 社区查询-搜索房屋 + *@Author wangxianzhang + *@Date 2022/1/14 11:00 上午 + *@Param + *@return + */ + @PostMapping("search") + public Result searchHouse(@RequestBody ListIcNeighborHoodFormDTO formDTO) { + String keyword = formDTO.getKeyword(); + if (StringUtils.isBlank(keyword)) { + IcNeighborHoodResultDTO r = new IcNeighborHoodResultDTO(); + r.setTotal(0); + r.setList(new ArrayList<>()); + return new Result().ok(r); + } + + String neighborhoodName; + String buildingName; + + int commaIndex = keyword.indexOf(","); + if (commaIndex != -1) { + neighborhoodName = keyword.substring(0, commaIndex); + buildingName = keyword.substring(commaIndex + 1); + } else { + neighborhoodName = keyword; + buildingName = null; + } + + // 使用场景:社区查询 + String scene = "community_search"; + + IcNeighborHoodResultDTO icNeighborHoodResultDTO = houseService.listNeighborhood(null, null, null, + neighborhoodName, buildingName, scene, formDTO.getPageNo(), formDTO.getPageSize()); + + return new Result().ok(icNeighborHoodResultDTO); + } + @NoRepeatSubmit @PostMapping("houseadd") public Result houseAdd(@LoginUser TokenDto tokenDTO, @RequestBody IcHouseFormDTO formDTO){ diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java index 1553cccc9d..a974510a38 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcHouseDao.java @@ -47,7 +47,12 @@ public interface IcHouseDao extends BaseDao { // @Param("building") IcBuildingEntity building, // @Param("house") IcHouseEntity house); IPage> searchHouseByPage(IPage page, - @Param("house") IcHouseEntity house); + @Param("buildingId") String buildingId, + @Param("ownerName") String ownerName, + @Param("ownerPhone") String ownerPhone, + @Param("neighborHoodName") String neighborHoodName, + @Param("buildingName") String buildingName, + @Param("queryScene") String queryScene); List searchAllHouse(@Param("house") IcHouseEntity house); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java index 48ab8c7d1b..e92fbd0e57 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/HouseService.java @@ -49,7 +49,14 @@ public interface HouseService { List importExcel(String customerId, List list, String staffId, List numList); - IcNeighborHoodResultDTO listNeighborhood(ListIcNeighborHoodFormDTO formDTO); + IcNeighborHoodResultDTO listNeighborhood(String buildingId, + String ownerName, + String ownerPhone, + String neighborHoodName, + String buildingName, + String queryScene, + Integer pageNo, + Integer pageSize); void exportBuildinginfo(ListIcNeighborHoodFormDTO formDTO, HttpServletResponse response) throws Exception; diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java index 69a2000d97..6f072441f9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/HouseServiceImpl.java @@ -207,12 +207,29 @@ public class HouseServiceImpl implements HouseService { } @Override - public IcNeighborHoodResultDTO listNeighborhood(ListIcNeighborHoodFormDTO formDTO) { + public IcNeighborHoodResultDTO listNeighborhood(String buildingId, + String ownerName, + String ownerPhone, + String neighborHoodName, + String buildingName, + String queryScene, + Integer pageNo, + Integer pageSize) { IcNeighborHoodResultDTO result = new IcNeighborHoodResultDTO(); //如果类型是house 查房屋 - IPage> resultMap = searchHouse(formDTO); - result.setTotal(Long.valueOf(resultMap.getTotal()).intValue()); - result.setList(resultMap.getRecords()); + //IPage> resultMap = searchHouse(buildingId, ownerName, ownerPhone, neighborHoodName, buildingName, pageNo, pageSize); + + IPage page = new Page(pageNo,pageSize); + + IPage> mapIPage = icHouseDao.searchHouseByPage(page, buildingId, ownerName, ownerPhone, neighborHoodName, buildingName, queryScene); + List> records = mapIPage.getRecords(); + records.forEach(item->{ + item.put("houseType", HouseTypeEnums.getTypeValue(item.get("houseTypeKey"))); + item.put("purpose", HousePurposeEnums.getTypeValue(item.get("purposeKey"))); + }); + + result.setTotal(Long.valueOf(mapIPage.getTotal()).intValue()); + result.setList(records); return result; } @@ -247,20 +264,23 @@ public class HouseServiceImpl implements HouseService { return icHouseExcels; } - private IPage> searchHouse(ListIcNeighborHoodFormDTO formDTO) { - IPage page = new Page(formDTO.getPageNo(),formDTO.getPageSize()); - - IcHouseEntity house = ConvertUtils.sourceToTarget(formDTO, IcHouseEntity.class); - house.setDelFlag("0"); + /*private IPage> searchHouse(String buildingId, + String ownerName, + String ownerPhone, + String neighborHoodName, + String buildingName, + Integer pageNo, + Integer pageSize) { + IPage page = new Page(pageNo,pageSize); - IPage> mapIPage = icHouseDao.searchHouseByPage(page, house); + IPage> mapIPage = icHouseDao.searchHouseByPage(page, buildingId, ownerName, ownerPhone, neighborHoodName, buildingName); List> records = mapIPage.getRecords(); records.forEach(item->{ item.put("houseType", HouseTypeEnums.getTypeValue(item.get("houseTypeKey"))); item.put("purpose", HousePurposeEnums.getTypeValue(item.get("purposeKey"))); }); return mapIPage; - } + }*/ @Override public List queryListHouseInfo(Set houseIdList) { diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml index f997a5cf3a..ab84f43e0f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcHouseDao.xml @@ -130,21 +130,37 @@ LEFT JOIN ic_building_unit d on a.BUILDING_UNIT_ID = d.ID and d.DEL_FLAG = '0' - - AND a.BUILDING_ID = #{house.buildingId} + + AND a.BUILDING_ID = #{buildingId} - - AND a.OWNER_NAME like concat('%',#{house.ownerName},'%') + + AND a.OWNER_NAME like concat('%',#{ownerName},'%') - - AND a.OWNER_PHONE like concat('%',#{house.ownerPhone},'%') + + AND a.OWNER_PHONE like concat('%',#{ownerPhone},'%') - - AND a.DEL_FLAG = #{house.delFlag} + + AND c.NEIGHBOR_HOOD_NAME like CONCAT('%',#{neighborHoodName},'%') + + + AND b.BUILDING_NAME like CONCAT('%',#{buildingName},'%') - - ORDER BY CAST(d.UNIT_NUM AS SIGNED), a.DOOR_NAME + /*排序规则:如果是社区查询则根据小区、楼栋、单元、房屋名字分别升序排序*/ + + + ORDER BY CONVERT(c.NEIGHBOR_HOOD_NAME using gbk) ASC, + CONVERT(b.BUILDING_NAME USING gbk) ASC, + CONVERT(d.UNIT_NAME USING gbk) ASC, + CONVERT(a.HOUSE_NAME using gbk) ASC + + + ORDER BY CAST(d.UNIT_NUM AS SIGNED), a.DOOR_NAME + + + ORDER BY CAST(d.UNIT_NUM AS SIGNED), a.DOOR_NAME + +