完善地图模块功能

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.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<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);
/**
* 删除网格点
*
* @param gridId
*/
void deleteByGridId(String gridId);
/**
* 删除网格点
*

View File

@ -61,6 +61,15 @@ public interface IGridService {
*/
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.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<String> gridIds = new ArrayList<>();
gridIds.add(gridId);
deleteByGridIds(gridIds);
}
@Override
public void deleteByGridIds(List<String> gridIds) throws RemoveException {
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.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<String, Object> params = HashMapUtil.beanToMap(gridVO);
setUpdateInfo(params);
gridDao.update(params);
}
@Override
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
@ -143,12 +154,7 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
if (gridIds.isEmpty()) {
return new ArrayList<>();
}
List<GridDTO> gridDTOs = list(gridIds);
for (GridDTO gridDTO : gridDTOs) {
List<GridPointDTO> 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<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
* @return
@ -266,22 +302,15 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService
private List<GridDTO> listGridGroup(List<GridDTO> gridDTOs) {
Map<String, GridDTO> gridMap = new HashMap<>(16);
for (GridDTO gridDTO : gridDTOs) {
GridDTO grid = gridMap.get(gridDTO.getGridId());
if (grid == null) {
grid = gridDTO;
List<String> 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<GridDTO> gridGroups = new ArrayList<>();
for (Map.Entry<String, GridDTO> 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;

View File

@ -67,6 +67,23 @@
</if>
</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

View File

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