From d93cd3042c5fb587d3acefeab45bf59c4973f4f0 Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Sun, 12 Sep 2021 23:06:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=9C=B0=E5=9B=BE=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wgink/module/map/dao/grid/IGridDao.java | 9 +++ .../map/service/grid/IGridPointService.java | 7 ++ .../module/map/service/grid/IGridService.java | 9 +++ .../grid/impl/GridPointServiceImpl.java | 8 +++ .../service/grid/impl/GridServiceImpl.java | 67 +++++++++++++------ .../mybatis/mapper/grid/grid-mapper.xml | 17 +++++ .../static/baidu-map/baidu-map-1.0.0.min.js | 2 +- 7 files changed, 99 insertions(+), 20 deletions(-) diff --git a/module-map/src/main/java/ink/wgink/module/map/dao/grid/IGridDao.java b/module-map/src/main/java/ink/wgink/module/map/dao/grid/IGridDao.java index 0b370b1e..82ddc573 100644 --- a/module-map/src/main/java/ink/wgink/module/map/dao/grid/IGridDao.java +++ b/module-map/src/main/java/ink/wgink/module/map/dao/grid/IGridDao.java @@ -3,6 +3,7 @@ package ink.wgink.module.map.dao.grid; import ink.wgink.exceptions.RemoveException; import ink.wgink.exceptions.SaveException; import ink.wgink.exceptions.SearchException; +import ink.wgink.exceptions.UpdateException; import ink.wgink.interfaces.init.IInitBaseTable; import ink.wgink.module.map.pojo.dto.grid.GridDTO; import org.springframework.stereotype.Repository; @@ -38,6 +39,14 @@ public interface IGridDao extends IInitBaseTable { */ void delete(Map params) throws RemoveException; + /** + * 更新网格 + * + * @param params + * @throws UpdateException + */ + void update(Map params) throws UpdateException; + /** * 获取网格列表 * diff --git a/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridPointService.java b/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridPointService.java index 8d541bd4..1f55ee4e 100644 --- a/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridPointService.java +++ b/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridPointService.java @@ -24,6 +24,13 @@ public interface IGridPointService { */ void save(String gridId, List pointArray); + /** + * 删除网格点 + * + * @param gridId + */ + void deleteByGridId(String gridId); + /** * 删除网格点 * diff --git a/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridService.java b/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridService.java index 39eda2fd..5991ef84 100644 --- a/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridService.java +++ b/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridService.java @@ -61,6 +61,15 @@ public interface IGridService { */ void deleteEmpty(List gridIds); + /** + * 更新网格 + * + * @param gridId 网格ID + * @param gridVO 更新内容 + * @throws Exception + */ + void update(String gridId, GridVO gridVO) throws Exception; + /** * 网格列表 * diff --git a/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridPointServiceImpl.java b/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridPointServiceImpl.java index fd73a521..3d035e26 100644 --- a/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridPointServiceImpl.java +++ b/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridPointServiceImpl.java @@ -10,6 +10,7 @@ import ink.wgink.util.map.HashMapUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -40,6 +41,13 @@ public class GridPointServiceImpl extends DefaultBaseService implements IGridPoi } } + @Override + public void deleteByGridId(String gridId) { + List gridIds = new ArrayList<>(); + gridIds.add(gridId); + deleteByGridIds(gridIds); + } + @Override public void deleteByGridIds(List gridIds) throws RemoveException { Map params = getHashMap(2); diff --git a/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridServiceImpl.java b/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridServiceImpl.java index e6a77409..cdd77f58 100644 --- a/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridServiceImpl.java +++ b/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridServiceImpl.java @@ -17,6 +17,7 @@ import ink.wgink.pojo.ListPage; import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.util.UUIDUtil; import ink.wgink.util.map.HashMapUtil; +import ink.wgink.util.string.WStringUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -122,9 +123,19 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService deleteByGridIds(emptyGridIds); } + @Override + public void update(String gridId, GridVO gridVO) throws Exception { + Map params = HashMapUtil.beanToMap(gridVO); + setUpdateInfo(params); + gridDao.update(params); + } + @Override public List list(Map params) { - return gridDao.list(params); + List gridDTOs = gridDao.list(params); + setGridPoints(gridDTOs); + setGridRelation(gridDTOs); + return gridDTOs; } @Override @@ -143,12 +154,7 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService if (gridIds.isEmpty()) { return new ArrayList<>(); } - List gridDTOs = list(gridIds); - for (GridDTO gridDTO : gridDTOs) { - List gridPointDTOs = gridPointService.list(gridDTO.getGridId()); - gridDTO.setPointArray(gridPointDTOs); - } - return gridDTOs; + return list(gridIds); } @Override @@ -190,7 +196,6 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService continue; } } - setGridPoints(gridGroupDTOs); return gridGroupDTOs; } @@ -207,7 +212,6 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService if (gridDTOs.isEmpty()) { return gridDTOs; } - setGridPoints(gridDTOs); return gridDTOs; } @@ -258,7 +262,39 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService } /** - * 得到聚合后的列表 + * 设置关联 + * + * @param gridDTOs 网格点 + */ + private void setGridRelation(List gridDTOs) { + if (gridDTOs.isEmpty()) { + return; + } + List gridIds = new ArrayList<>(); + for (GridDTO gridDTO : gridDTOs) { + gridIds.add(gridDTO.getGridId()); + } + List gridRelationDTOs = gridRelationService.listByGridIds(gridIds); + if (gridRelationDTOs.isEmpty()) { + return; + } + for (GridDTO gridDTO : gridDTOs) { + for (GridRelationDTO gridRelationDTO : gridRelationDTOs) { + if (StringUtils.equals(gridDTO.getGridId(), gridRelationDTO.getGridId())) { + List gridRelationIds = gridDTO.getRelationIdArray(); + if (gridRelationIds == null || gridRelationIds.isEmpty()) { + gridRelationIds = new ArrayList<>(); + gridDTO.setRelationIdArray(gridRelationIds); + } + gridRelationIds.add(gridRelationDTO.getRelationId()); + break; + } + } + } + } + + /** + * 得到聚合后的列表(共有的 * * @param gridDTOs * @return @@ -266,22 +302,15 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService private List listGridGroup(List gridDTOs) { Map gridMap = new HashMap<>(16); for (GridDTO gridDTO : gridDTOs) { - GridDTO grid = gridMap.get(gridDTO.getGridId()); - if (grid == null) { - grid = gridDTO; - List getRelationIdArray = new ArrayList<>(); - getRelationIdArray.add(gridDTO.getRelationId()); - gridDTO.setRelationIdArray(getRelationIdArray); + if (gridMap.get(gridDTO.getGridId()) == null) { gridMap.put(gridDTO.getGridId(), gridDTO); } - // 合并relationId - grid.getRelationIdArray().add(gridDTO.getRelationId()); } List gridGroups = new ArrayList<>(); for (Map.Entry kv : gridMap.entrySet()) { GridDTO gridDTO = kv.getValue(); Collections.sort(gridDTO.getRelationIdArray()); - gridDTO.setRelationId(gridDTO.getRelationIdArray().toString()); + gridDTO.setRelationId(WStringUtil.listToStr(gridDTO.getRelationIdArray(), ",")); gridGroups.add(gridDTO); } return gridGroups; diff --git a/module-map/src/main/resources/mybatis/mapper/grid/grid-mapper.xml b/module-map/src/main/resources/mybatis/mapper/grid/grid-mapper.xml index cafa3f45..009128c7 100644 --- a/module-map/src/main/resources/mybatis/mapper/grid/grid-mapper.xml +++ b/module-map/src/main/resources/mybatis/mapper/grid/grid-mapper.xml @@ -67,6 +67,23 @@ + + + UPDATE + map_grid + SET + + grid_name = #{gridName}, + + + fill_color = #{fillColor}, + + gmt_modified = #{gmtModified}, + modifier = #{modifier} + WHERE + grid_id = #{gridId} + +