完善地图模块功能

This commit is contained in:
wanggeng 2021-09-12 23:06:56 +08:00
parent fc75b13e78
commit d93cd3042c
7 changed files with 99 additions and 20 deletions

View File

@ -3,6 +3,7 @@ package ink.wgink.module.map.dao.grid;
import ink.wgink.exceptions.RemoveException; import ink.wgink.exceptions.RemoveException;
import ink.wgink.exceptions.SaveException; import ink.wgink.exceptions.SaveException;
import ink.wgink.exceptions.SearchException; import ink.wgink.exceptions.SearchException;
import ink.wgink.exceptions.UpdateException;
import ink.wgink.interfaces.init.IInitBaseTable; import ink.wgink.interfaces.init.IInitBaseTable;
import ink.wgink.module.map.pojo.dto.grid.GridDTO; import ink.wgink.module.map.pojo.dto.grid.GridDTO;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -38,6 +39,14 @@ public interface IGridDao extends IInitBaseTable {
*/ */
void delete(Map<String, Object> params) throws RemoveException; void delete(Map<String, Object> params) throws RemoveException;
/**
* 更新网格
*
* @param params
* @throws UpdateException
*/
void update(Map<String, Object> params) throws UpdateException;
/** /**
* 获取网格列表 * 获取网格列表
* *

View File

@ -24,6 +24,13 @@ public interface IGridPointService {
*/ */
void save(String gridId, List<GridPointVO> pointArray); void save(String gridId, List<GridPointVO> pointArray);
/**
* 删除网格点
*
* @param gridId
*/
void deleteByGridId(String gridId);
/** /**
* 删除网格点 * 删除网格点
* *

View File

@ -61,6 +61,15 @@ public interface IGridService {
*/ */
void deleteEmpty(List<String> gridIds); void deleteEmpty(List<String> gridIds);
/**
* 更新网格
*
* @param gridId 网格ID
* @param gridVO 更新内容
* @throws Exception
*/
void update(String gridId, GridVO gridVO) throws Exception;
/** /**
* 网格列表 * 网格列表
* *

View File

@ -10,6 +10,7 @@ import ink.wgink.util.map.HashMapUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -40,6 +41,13 @@ public class GridPointServiceImpl extends DefaultBaseService implements IGridPoi
} }
} }
@Override
public void deleteByGridId(String gridId) {
List<String> gridIds = new ArrayList<>();
gridIds.add(gridId);
deleteByGridIds(gridIds);
}
@Override @Override
public void deleteByGridIds(List<String> gridIds) throws RemoveException { public void deleteByGridIds(List<String> gridIds) throws RemoveException {
Map<String, Object> params = getHashMap(2); Map<String, Object> params = getHashMap(2);

View File

@ -17,6 +17,7 @@ import ink.wgink.pojo.ListPage;
import ink.wgink.pojo.result.SuccessResultList; import ink.wgink.pojo.result.SuccessResultList;
import ink.wgink.util.UUIDUtil; import ink.wgink.util.UUIDUtil;
import ink.wgink.util.map.HashMapUtil; import ink.wgink.util.map.HashMapUtil;
import ink.wgink.util.string.WStringUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -122,9 +123,19 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
deleteByGridIds(emptyGridIds); deleteByGridIds(emptyGridIds);
} }
@Override
public void update(String gridId, GridVO gridVO) throws Exception {
Map<String, Object> params = HashMapUtil.beanToMap(gridVO);
setUpdateInfo(params);
gridDao.update(params);
}
@Override @Override
public List<GridDTO> list(Map<String, Object> params) { public List<GridDTO> list(Map<String, Object> params) {
return gridDao.list(params); List<GridDTO> gridDTOs = gridDao.list(params);
setGridPoints(gridDTOs);
setGridRelation(gridDTOs);
return gridDTOs;
} }
@Override @Override
@ -143,12 +154,7 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
if (gridIds.isEmpty()) { if (gridIds.isEmpty()) {
return new ArrayList<>(); return new ArrayList<>();
} }
List<GridDTO> gridDTOs = list(gridIds); return list(gridIds);
for (GridDTO gridDTO : gridDTOs) {
List<GridPointDTO> gridPointDTOs = gridPointService.list(gridDTO.getGridId());
gridDTO.setPointArray(gridPointDTOs);
}
return gridDTOs;
} }
@Override @Override
@ -190,7 +196,6 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
continue; continue;
} }
} }
setGridPoints(gridGroupDTOs);
return gridGroupDTOs; return gridGroupDTOs;
} }
@ -207,7 +212,6 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
if (gridDTOs.isEmpty()) { if (gridDTOs.isEmpty()) {
return gridDTOs; return gridDTOs;
} }
setGridPoints(gridDTOs);
return gridDTOs; return gridDTOs;
} }
@ -258,7 +262,39 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
} }
/** /**
* 得到聚合后的列表 * 设置关联
*
* @param gridDTOs 网格点
*/
private void setGridRelation(List<GridDTO> gridDTOs) {
if (gridDTOs.isEmpty()) {
return;
}
List<String> gridIds = new ArrayList<>();
for (GridDTO gridDTO : gridDTOs) {
gridIds.add(gridDTO.getGridId());
}
List<GridRelationDTO> gridRelationDTOs = gridRelationService.listByGridIds(gridIds);
if (gridRelationDTOs.isEmpty()) {
return;
}
for (GridDTO gridDTO : gridDTOs) {
for (GridRelationDTO gridRelationDTO : gridRelationDTOs) {
if (StringUtils.equals(gridDTO.getGridId(), gridRelationDTO.getGridId())) {
List<String> gridRelationIds = gridDTO.getRelationIdArray();
if (gridRelationIds == null || gridRelationIds.isEmpty()) {
gridRelationIds = new ArrayList<>();
gridDTO.setRelationIdArray(gridRelationIds);
}
gridRelationIds.add(gridRelationDTO.getRelationId());
break;
}
}
}
}
/**
* 得到聚合后的列表共有的
* *
* @param gridDTOs * @param gridDTOs
* @return * @return
@ -266,22 +302,15 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
private List<GridDTO> listGridGroup(List<GridDTO> gridDTOs) { private List<GridDTO> listGridGroup(List<GridDTO> gridDTOs) {
Map<String, GridDTO> gridMap = new HashMap<>(16); Map<String, GridDTO> gridMap = new HashMap<>(16);
for (GridDTO gridDTO : gridDTOs) { for (GridDTO gridDTO : gridDTOs) {
GridDTO grid = gridMap.get(gridDTO.getGridId()); if (gridMap.get(gridDTO.getGridId()) == null) {
if (grid == null) {
grid = gridDTO;
List<String> getRelationIdArray = new ArrayList<>();
getRelationIdArray.add(gridDTO.getRelationId());
gridDTO.setRelationIdArray(getRelationIdArray);
gridMap.put(gridDTO.getGridId(), gridDTO); gridMap.put(gridDTO.getGridId(), gridDTO);
} }
// 合并relationId
grid.getRelationIdArray().add(gridDTO.getRelationId());
} }
List<GridDTO> gridGroups = new ArrayList<>(); List<GridDTO> gridGroups = new ArrayList<>();
for (Map.Entry<String, GridDTO> kv : gridMap.entrySet()) { for (Map.Entry<String, GridDTO> kv : gridMap.entrySet()) {
GridDTO gridDTO = kv.getValue(); GridDTO gridDTO = kv.getValue();
Collections.sort(gridDTO.getRelationIdArray()); Collections.sort(gridDTO.getRelationIdArray());
gridDTO.setRelationId(gridDTO.getRelationIdArray().toString()); gridDTO.setRelationId(WStringUtil.listToStr(gridDTO.getRelationIdArray(), ","));
gridGroups.add(gridDTO); gridGroups.add(gridDTO);
} }
return gridGroups; return gridGroups;

View File

@ -67,6 +67,23 @@
</if> </if>
</delete> </delete>
<!-- 更新网格 -->
<delete id="update" parameterType="map" flushCache="true">
UPDATE
map_grid
SET
<if test="gridName != null and gridName != ''">
grid_name = #{gridName},
</if>
<if test="fillColor != null and fillColor != ''">
fill_color = #{fillColor},
</if>
gmt_modified = #{gmtModified},
modifier = #{modifier}
WHERE
grid_id = #{gridId}
</delete>
<!-- 网格列表 --> <!-- 网格列表 -->
<select id="list" parameterType="map" resultMap="gridDTO" useCache="true"> <select id="list" parameterType="map" resultMap="gridDTO" useCache="true">
SELECT SELECT

View File

@ -48,7 +48,7 @@ function BaiduMap(mapId, mapConfig) {
STROKE_BACKGROUND_COLOR: '#000000', STROKE_BACKGROUND_COLOR: '#000000',
STROKE_WEIGHT: 1, STROKE_WEIGHT: 1,
STROKE_BACKGROUND_WEIGHT: 1, STROKE_BACKGROUND_WEIGHT: 1,
STROKE_WEIGHT_FOCUS: 2, STROKE_WEIGHT_FOCUS: 5,
STROKE_OPACITY: 0.5, STROKE_OPACITY: 0.5,
STROKE_BACKGROUND_OPACITY: 0.5, STROKE_BACKGROUND_OPACITY: 0.5,
FILL_COLOR: '#000000', FILL_COLOR: '#000000',