diff --git a/module-map/src/main/java/ink/wgink/module/map/controller/api/grid/GridController.java b/module-map/src/main/java/ink/wgink/module/map/controller/api/grid/GridController.java index 7f5a6b5b..f5e36e44 100644 --- a/module-map/src/main/java/ink/wgink/module/map/controller/api/grid/GridController.java +++ b/module-map/src/main/java/ink/wgink/module/map/controller/api/grid/GridController.java @@ -83,6 +83,14 @@ public class GridController extends DefaultBaseController { return gridService.list(params); } + @ApiOperation(value = "网格(排除查询网格)列表", notes = "网格(排除查询网格)列表接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list/except/{gridId}") + public List listExcept(@PathVariable("gridId") String gridId) { + Map params = requestParams(); + return gridService.listExcept(gridId, params); + } + @ApiOperation(value = "网格分页列表", notes = "网格分页列表接口") @ApiImplicitParams({ @ApiImplicitParam(name = "page", value = "当前页码", paramType = "query", dataType = "int", defaultValue = "1"), diff --git a/module-map/src/main/java/ink/wgink/module/map/controller/api/grid/GridUserController.java b/module-map/src/main/java/ink/wgink/module/map/controller/api/grid/GridUserController.java new file mode 100644 index 00000000..16282ecb --- /dev/null +++ b/module-map/src/main/java/ink/wgink/module/map/controller/api/grid/GridUserController.java @@ -0,0 +1,91 @@ +package ink.wgink.module.map.controller.api.grid; + +import ink.wgink.annotation.CheckRequestBodyAnnotation; +import ink.wgink.common.base.DefaultBaseController; +import ink.wgink.interfaces.consts.ISystemConstant; +import ink.wgink.module.map.pojo.dtos.grid.GridUserDTO; +import ink.wgink.module.map.service.grid.IGridUserService; +import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.result.ErrorResult; +import ink.wgink.pojo.result.SuccessResult; +import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.pojo.vos.IdsVO; +import io.swagger.annotations.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * @ClassName: GridUserController + * @Description: 网格用户 + * @Author: wanggeng + * @Date: 2021/10/20 5:42 下午 + * @Version: 1.0 + */ +@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "网格用户接口") +@RestController +@RequestMapping(ISystemConstant.API_PREFIX + "/grid/user") +public class GridUserController extends DefaultBaseController { + + @Autowired + private IGridUserService gridUserService; + + @ApiOperation(value = "删除网格用户", notes = "删除网格用户接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "ids", value = "ID列表,用下划线分隔", paramType = "path", example = "1_2_3") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @DeleteMapping("delete/{gridId}/{ids}") + public SuccessResult delete(@PathVariable("gridId") String gridId, @PathVariable("ids") String ids) { + gridUserService.delete(gridId, Arrays.asList(ids.split("\\_"))); + return new SuccessResult(); + } + + @ApiOperation(value = "修改网格用户", notes = "修改网格用户接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "gridIdId", value = "网格ID", paramType = "path") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @PutMapping("update/{gridId}") + @CheckRequestBodyAnnotation + public SuccessResult update(@PathVariable("gridId") String gridId, @RequestBody IdsVO idsVO) throws Exception { + gridUserService.update(gridId, idsVO); + return new SuccessResult(); + } + + @ApiOperation(value = "网格用户ID列表", notes = "网格用户ID列表接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list-user-id/{gridId}") + public List listUserId(@PathVariable("gridId") String gridId) { + Map params = requestParams(); + return gridUserService.listUserId(gridId, params); + } + + @ApiOperation(value = "网格用户列表", notes = "网格用户列表接口") + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("list/{gridId}") + public List list(@PathVariable("gridId") String gridId) { + Map params = requestParams(); + return gridUserService.list(gridId, params); + } + + @ApiOperation(value = "网格用户分页列表", notes = "网格用户分页列表接口") + @ApiImplicitParams({ + @ApiImplicitParam(name = "page", value = "当前页码", paramType = "query", dataType = "int", defaultValue = "1"), + @ApiImplicitParam(name = "rows", value = "显示数量", paramType = "query", dataType = "int", defaultValue = "20"), + @ApiImplicitParam(name = "keywords", value = "关键字", paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "startTime", value = "开始时间", paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "endTime", value = "结束时间", paramType = "query", dataType = "String") + }) + @ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)}) + @GetMapping("listpage/{gridId}") + public SuccessResultList> listPage(@PathVariable("gridId") String gridId, ListPage page) { + Map params = requestParams(); + page.setParams(params); + return gridUserService.listPage(gridId, page); + } + +} diff --git a/module-map/src/main/java/ink/wgink/module/map/controller/route/grid/GridGroupRouteController.java b/module-map/src/main/java/ink/wgink/module/map/controller/route/grid/GridGroupRouteController.java index 32702d7d..3bacd1a7 100644 --- a/module-map/src/main/java/ink/wgink/module/map/controller/route/grid/GridGroupRouteController.java +++ b/module-map/src/main/java/ink/wgink/module/map/controller/route/grid/GridGroupRouteController.java @@ -14,7 +14,7 @@ import org.springframework.web.servlet.ModelAndView; * @Date: 2021/10/19 11:54 下午 * @Version: 1.0 */ -@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "网格组接口") +@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "网格组") @Controller @RequestMapping(ISystemConstant.ROUTE_PREFIX + "/grid-group") public class GridGroupRouteController { diff --git a/module-map/src/main/java/ink/wgink/module/map/controller/route/grid/GridRouteController.java b/module-map/src/main/java/ink/wgink/module/map/controller/route/grid/GridRouteController.java new file mode 100644 index 00000000..da2595af --- /dev/null +++ b/module-map/src/main/java/ink/wgink/module/map/controller/route/grid/GridRouteController.java @@ -0,0 +1,42 @@ +package ink.wgink.module.map.controller.route.grid; + +import ink.wgink.interfaces.consts.ISystemConstant; +import io.swagger.annotations.Api; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +/** + * @ClassName: GridRouteController + * @Description: 网格路由 + * @Author: wanggeng + * @Date: 2021/10/20 9:33 上午 + * @Version: 1.0 + */ +@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "网格") +@Controller +@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/grid") +public class GridRouteController { + + @GetMapping("save") + public ModelAndView save() { + return new ModelAndView("grid/grid/save"); + } + + @GetMapping("update") + public ModelAndView update() { + return new ModelAndView("grid/grid/update"); + } + + @GetMapping("get") + public ModelAndView get() { + return new ModelAndView("grid/grid/get"); + } + + @GetMapping("list") + public ModelAndView list() { + return new ModelAndView("grid/grid/list"); + } + +} diff --git a/module-map/src/main/java/ink/wgink/module/map/controller/route/grid/GridUserRouteController.java b/module-map/src/main/java/ink/wgink/module/map/controller/route/grid/GridUserRouteController.java new file mode 100644 index 00000000..37ffb2e7 --- /dev/null +++ b/module-map/src/main/java/ink/wgink/module/map/controller/route/grid/GridUserRouteController.java @@ -0,0 +1,27 @@ +package ink.wgink.module.map.controller.route.grid; + +import ink.wgink.interfaces.consts.ISystemConstant; +import io.swagger.annotations.Api; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +/** + * @ClassName: GridUserRouteController + * @Description: 网格用户路由 + * @Author: wanggeng + * @Date: 2021/10/20 5:44 下午 + * @Version: 1.0 + */ +@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "网格用户") +@Controller +@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/grid/user") +public class GridUserRouteController { + + @GetMapping("list") + public ModelAndView list() { + return new ModelAndView("grid/grid/user/list"); + } + +} diff --git a/module-map/src/main/java/ink/wgink/module/map/controller/staticfile/BaiduMapStaticController.java b/module-map/src/main/java/ink/wgink/module/map/controller/staticfile/BaiduMapStaticController.java new file mode 100644 index 00000000..01429e5e --- /dev/null +++ b/module-map/src/main/java/ink/wgink/module/map/controller/staticfile/BaiduMapStaticController.java @@ -0,0 +1,31 @@ +package ink.wgink.module.map.controller.staticfile; + +import ink.wgink.util.ResourceUtil; +import ink.wgink.util.request.StaticResourceRequestUtil; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; + +/** + * @ClassName: BaiduMapStaticController + * @Description: 百度地图静态文件 + * @Author: wanggeng + * @Date: 2021/10/20 10:13 上午 + * @Version: 1.0 + */ +@Controller +@RequestMapping("static/baidu-map") +public class BaiduMapStaticController { + + @GetMapping("{fileName}") + public void root(HttpServletResponse httpServletResponse, @PathVariable("fileName") String fileName) throws IOException { + File file = ResourceUtil.getResourceFile("static/baidu-map/" + fileName); + StaticResourceRequestUtil.download(httpServletResponse, file, fileName); + } + +} 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 a7f0401a..6e012ed1 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 @@ -92,5 +92,12 @@ public interface IGridDao extends IInitBaseTable { */ List listGroup(Map params) throws SearchException; - + /** + * 区域最后网格 + * + * @param params + * @return + * @throws SearchException + */ + GridPO getAreaLastPO(Map params) throws SearchException; } diff --git a/module-map/src/main/java/ink/wgink/module/map/pojo/dtos/grid/GridDTO.java b/module-map/src/main/java/ink/wgink/module/map/pojo/dtos/grid/GridDTO.java index 96c58fc6..d2ce5168 100644 --- a/module-map/src/main/java/ink/wgink/module/map/pojo/dtos/grid/GridDTO.java +++ b/module-map/src/main/java/ink/wgink/module/map/pojo/dtos/grid/GridDTO.java @@ -45,6 +45,8 @@ public class GridDTO implements Serializable { private String relationId; @ApiModelProperty(name = "gmtCreate", value = "添加时间") private String gmtCreate; + @ApiModelProperty(name = "gmtModified", value = "修改时间") + private String gmtModified; @ApiModelProperty(name = "relationIdArray", value = "关联ID列表") private List relationIdArray; @ApiModelProperty(name = "pointArray", value = "网格点列表") @@ -146,6 +148,14 @@ public class GridDTO implements Serializable { this.gmtCreate = gmtCreate; } + public String getGmtModified() { + return gmtModified == null ? "" : gmtModified.trim(); + } + + public void setGmtModified(String gmtModified) { + this.gmtModified = gmtModified; + } + public List getRelationIdArray() { if (relationIdArray == null) { return new ArrayList<>(); diff --git a/module-map/src/main/java/ink/wgink/module/map/pojo/dtos/grid/GridPointDTO.java b/module-map/src/main/java/ink/wgink/module/map/pojo/dtos/grid/GridPointDTO.java index 629d0875..ad594328 100644 --- a/module-map/src/main/java/ink/wgink/module/map/pojo/dtos/grid/GridPointDTO.java +++ b/module-map/src/main/java/ink/wgink/module/map/pojo/dtos/grid/GridPointDTO.java @@ -21,10 +21,10 @@ public class GridPointDTO implements Serializable { private static final long serialVersionUID = -2367199018377785048L; @ApiModelProperty(name = "gridId", value = "网格ID") private String gridId; - @ApiModelProperty(name = "pointLng", value = "点经度") - private String pointLng; - @ApiModelProperty(name = "pointLat", value = "点纬度") - private String pointLat; + @ApiModelProperty(name = "lng", value = "点经度") + private String lng; + @ApiModelProperty(name = "lat", value = "点纬度") + private String lat; public String getGridId() { return gridId == null ? "" : gridId.trim(); @@ -34,20 +34,20 @@ public class GridPointDTO implements Serializable { this.gridId = gridId; } - public String getPointLng() { - return pointLng == null ? "" : pointLng.trim(); + public String getLng() { + return lng == null ? "" : lng.trim(); } - public void setPointLng(String pointLng) { - this.pointLng = pointLng; + public void setLng(String lng) { + this.lng = lng; } - public String getPointLat() { - return pointLat == null ? "" : pointLat.trim(); + public String getLat() { + return lat == null ? "" : lat.trim(); } - public void setPointLat(String pointLat) { - this.pointLat = pointLat; + public void setLat(String lat) { + this.lat = lat; } @Override @@ -56,9 +56,9 @@ public class GridPointDTO implements Serializable { sb.append("\"gridId\":\"") .append(gridId).append('\"'); sb.append(",\"lng\":\"") - .append(pointLng).append('\"'); + .append(lng).append('\"'); sb.append(",\"lat\":\"") - .append(pointLat).append('\"'); + .append(lat).append('\"'); sb.append('}'); return sb.toString(); } diff --git a/module-map/src/main/java/ink/wgink/module/map/pojo/dtos/grid/GridUserDTO.java b/module-map/src/main/java/ink/wgink/module/map/pojo/dtos/grid/GridUserDTO.java new file mode 100644 index 00000000..1f275fc7 --- /dev/null +++ b/module-map/src/main/java/ink/wgink/module/map/pojo/dtos/grid/GridUserDTO.java @@ -0,0 +1,76 @@ +package ink.wgink.module.map.pojo.dtos.grid; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @ClassName: GridUserDTO + * @Description: 网格用户 + * @Author: wanggeng + * @Date: 2021/10/20 5:46 下午 + * @Version: 1.0 + */ +@ApiModel +public class GridUserDTO { + + @ApiModelProperty(name = "gridId", value = "网格ID") + private String gridId; + @ApiModelProperty(name = "userId", value = "用户ID") + private String userId; + @ApiModelProperty(name = "userUsername", value = "用户名") + private String userUsername; + @ApiModelProperty(name = "userName", value = "用户昵称") + private String userName; + @ApiModelProperty(name = "userPhone", value = "用户电话") + private String userPhone; + @ApiModelProperty(name = "gmtCreate", value = "添加时间") + private String gmtCreate; + + public String getGridId() { + return gridId == null ? "" : gridId.trim(); + } + + public void setGridId(String gridId) { + this.gridId = gridId; + } + + public String getUserId() { + return userId == null ? "" : userId.trim(); + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserUsername() { + return userUsername == null ? "" : userUsername.trim(); + } + + public void setUserUsername(String userUsername) { + this.userUsername = userUsername; + } + + public String getUserName() { + return userName == null ? "" : userName.trim(); + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getUserPhone() { + return userPhone == null ? "" : userPhone.trim(); + } + + public void setUserPhone(String userPhone) { + this.userPhone = userPhone; + } + + public String getGmtCreate() { + return gmtCreate == null ? "" : gmtCreate.trim(); + } + + public void setGmtCreate(String gmtCreate) { + this.gmtCreate = gmtCreate; + } +} diff --git a/module-map/src/main/java/ink/wgink/module/map/pojo/vos/grid/GridPointVO.java b/module-map/src/main/java/ink/wgink/module/map/pojo/vos/grid/GridPointVO.java index 17580c7b..a235d9e3 100644 --- a/module-map/src/main/java/ink/wgink/module/map/pojo/vos/grid/GridPointVO.java +++ b/module-map/src/main/java/ink/wgink/module/map/pojo/vos/grid/GridPointVO.java @@ -18,10 +18,10 @@ public class GridPointVO { @ApiModelProperty(name = "gridId", value = "网格ID") private String gridId; - @ApiModelProperty(name = "pointLng", value = "经度") - private String pointLng; - @ApiModelProperty(name = "pointLat", value = "纬度") - private String pointLat; + @ApiModelProperty(name = "lng", value = "经度") + private String lng; + @ApiModelProperty(name = "lat", value = "纬度") + private String lat; public String getGridId() { return gridId == null ? "" : gridId.trim(); @@ -31,20 +31,20 @@ public class GridPointVO { this.gridId = gridId; } - public String getPointLng() { - return pointLng == null ? "" : pointLng.trim(); + public String getLng() { + return lng == null ? "" : lng.trim(); } - public void setPointLng(String pointLng) { - this.pointLng = pointLng; + public void setLng(String lng) { + this.lng = lng; } - public String getPointLat() { - return pointLat == null ? "" : pointLat.trim(); + public String getLat() { + return lat == null ? "" : lat.trim(); } - public void setPointLat(String pointLat) { - this.pointLat = pointLat; + public void setLat(String lat) { + this.lat = lat; } @Override @@ -53,9 +53,9 @@ public class GridPointVO { sb.append("\"gridId\":\"") .append(gridId).append('\"'); sb.append(",\"lng\":\"") - .append(pointLng).append('\"'); + .append(lng).append('\"'); sb.append(",\"lat\":\"") - .append(pointLat).append('\"'); + .append(lat).append('\"'); sb.append('}'); return sb.toString(); } diff --git a/module-map/src/main/java/ink/wgink/module/map/pojo/vos/grid/GridVO.java b/module-map/src/main/java/ink/wgink/module/map/pojo/vos/grid/GridVO.java index 26542a54..7289b04e 100644 --- a/module-map/src/main/java/ink/wgink/module/map/pojo/vos/grid/GridVO.java +++ b/module-map/src/main/java/ink/wgink/module/map/pojo/vos/grid/GridVO.java @@ -1,5 +1,8 @@ package ink.wgink.module.map.pojo.vos.grid; +import ink.wgink.annotation.CheckBeanAnnotation; +import ink.wgink.annotation.CheckEmptyAnnotation; +import ink.wgink.annotation.CheckNullAnnotation; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -7,9 +10,6 @@ import java.util.ArrayList; import java.util.List; /** - * When you feel like quitting. Think about why you started - * 当你想要放弃的时候,想想当初你为何开始 - * * @ClassName: BaiduGridVO * @Description: 百度地图网格 * @Author: WangGeng @@ -21,14 +21,23 @@ public class GridVO { @ApiModelProperty(name = "id", value = "网格ID") private String id; - @ApiModelProperty(name = "fillColor", value = "填充颜色") - private String fillColor; @ApiModelProperty(name = "gridName", value = "网格名称") + @CheckEmptyAnnotation(name = "网格名称") private String gridName; - @ApiModelProperty(name = "relationIdArray", value = "关联ID列表") - private List relationIdArray; - @ApiModelProperty(name = "pointArray", value = "网格点列表") - private List pointArray; + @ApiModelProperty(name = "gridSummary", value = "网格描述") + private String gridSummary; + @ApiModelProperty(name = "gridGroupId", value = "网格组ID") + private String gridGroupId; + @ApiModelProperty(name = "gridDuty", value = "网格职责") + private String gridDuty; + @ApiModelProperty(name = "areaCode", value = "区域编码") + private String areaCode; + @ApiModelProperty(name = "areaName", value = "区域名称") + private String areaName; + @ApiModelProperty(name = "grids", value = "网格列表") + @CheckNullAnnotation(name = "网格") + @CheckBeanAnnotation + private Grid grid; public String getId() { return id == null ? "" : id.trim(); @@ -38,14 +47,6 @@ public class GridVO { this.id = id; } - public String getFillColor() { - return fillColor == null ? "" : fillColor.trim(); - } - - public void setFillColor(String fillColor) { - this.fillColor = fillColor; - } - public String getGridName() { return gridName == null ? "" : gridName.trim(); } @@ -54,42 +55,86 @@ public class GridVO { this.gridName = gridName; } - public List getRelationIdArray() { - if (relationIdArray == null) { - return new ArrayList<>(); + public String getGridSummary() { + return gridSummary == null ? "" : gridSummary.trim(); + } + + public void setGridSummary(String gridSummary) { + this.gridSummary = gridSummary; + } + + public String getGridGroupId() { + return gridGroupId == null ? "" : gridGroupId.trim(); + } + + public void setGridGroupId(String gridGroupId) { + this.gridGroupId = gridGroupId; + } + + public String getGridDuty() { + return gridDuty == null ? "" : gridDuty.trim(); + } + + public void setGridDuty(String gridDuty) { + this.gridDuty = gridDuty; + } + + public String getAreaCode() { + return areaCode == null ? "" : areaCode.trim(); + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getAreaName() { + return areaName == null ? "" : areaName.trim(); + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public Grid getGrid() { + return grid; + } + + public void setGrid(Grid grid) { + this.grid = grid; + } + + public static class Grid { + @ApiModelProperty(name = "fillColor", value = "填充颜色") + private String fillColor; + @ApiModelProperty(name = "relationIdArray", value = "关联ID列表") + private List relationIdArray; + @ApiModelProperty(name = "pointArray", value = "网格点列表") + @CheckEmptyAnnotation(name = "网格点列表") + private List pointArray; + + public String getFillColor() { + return fillColor == null ? "" : fillColor.trim(); } - return relationIdArray; - } - public void setRelationIdArray(List relationIdArray) { - this.relationIdArray = relationIdArray; - } - - public List getPointArray() { - if (pointArray == null) { - return new ArrayList<>(); + public void setFillColor(String fillColor) { + this.fillColor = fillColor; + } + + public List getRelationIdArray() { + return relationIdArray == null ? new ArrayList<>() : relationIdArray; + } + + public void setRelationIdArray(List relationIdArray) { + this.relationIdArray = relationIdArray; + } + + public List getPointArray() { + return pointArray == null ? new ArrayList<>() : pointArray; + } + + public void setPointArray(List pointArray) { + this.pointArray = pointArray; } - return pointArray; } - public void setPointArray(List pointArray) { - this.pointArray = pointArray; - } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder("{"); - sb.append("\"id\":\"") - .append(id).append('\"'); - sb.append(",\"fillColor\":\"") - .append(fillColor).append('\"'); - sb.append(",\"gridName\":\"") - .append(gridName).append('\"'); - sb.append(",\"relationIdArray\":") - .append(relationIdArray); - sb.append(",\"pointArray\":") - .append(pointArray); - sb.append('}'); - return sb.toString(); - } } diff --git a/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridRelationService.java b/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridRelationService.java index 61623ee0..37bbf78a 100644 --- a/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridRelationService.java +++ b/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridRelationService.java @@ -23,13 +23,28 @@ public interface IGridRelationService { void save(String gridId, List relationIdArray); /** - * 删除网格 + * 删除网格关联 + * + * @param gridId + */ + void delete(String gridId); + + /** + * 删除网格关联 * * @param gridId 网格ID * @param relationId 关联ID */ void delete(String gridId, String relationId); + /** + * 删除网格关联 + * + * @param gridId 网格ID + * @param relationIds 关联ID列表 + */ + void delete(String gridId, List relationIds); + /** * 删除网格关联 * @@ -99,4 +114,13 @@ public interface IGridRelationService { * @return */ List listGridId(List relationIds); + + /** + * 网格关联ID列表 + * + * @param gridId + * @return + */ + List listRelationId(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 492c5a3f..36574f24 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 @@ -165,4 +165,13 @@ public interface IGridService { * @return */ SuccessResultList> listPage(ListPage page); + + /** + * 网格(排除查询网格) + * + * @param gridId 排除的网格ID + * @param params + * @return + */ + List listExcept(String gridId, Map params); } diff --git a/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridUserService.java b/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridUserService.java new file mode 100644 index 00000000..80af5755 --- /dev/null +++ b/module-map/src/main/java/ink/wgink/module/map/service/grid/IGridUserService.java @@ -0,0 +1,63 @@ +package ink.wgink.module.map.service.grid; + +import ink.wgink.module.map.pojo.dtos.grid.GridUserDTO; +import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.pojo.vos.IdsVO; + +import java.util.List; +import java.util.Map; + +/** + * @ClassName: IGridUserService + * @Description: 网格用户 + * @Author: wanggeng + * @Date: 2021/10/20 5:43 下午 + * @Version: 1.0 + */ +public interface IGridUserService { + + /** + * 删除网格用户 + * + * @param gridId + * @param userIds + */ + void delete(String gridId, List userIds); + + /** + * 修改网格用户 + * + * @param gridId + * @param idsVO + */ + void update(String gridId, IdsVO idsVO); + + /** + * 网格用户ID列表 + * + * @param gridId + * @param params + * @return + */ + List listUserId(String gridId, Map params); + + /** + * 网格用户列表 + * + * @param gridId + * @param params + * @return + */ + List list(String gridId, Map params); + + /** + * 网格用户分页列表 + * + * @param gridId + * @param page + * @return + */ + SuccessResultList> listPage(String gridId, ListPage page); + +} 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 803ee85e..acab9ce8 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 @@ -35,8 +35,8 @@ public class GridPointServiceImpl extends DefaultBaseService implements IGridPoi Map params = getHashMap(4); params.put("gridId", gridId); for (GridPointVO gridPointVO : pointArray) { - params.put("lng", gridPointVO.getPointLng()); - params.put("lat", gridPointVO.getPointLat()); + params.put("lng", gridPointVO.getLng()); + params.put("lat", gridPointVO.getLat()); gridPointDao.save(params); } } diff --git a/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridRelationServiceImpl.java b/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridRelationServiceImpl.java index 729f20b9..f2255cf1 100644 --- a/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridRelationServiceImpl.java +++ b/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridRelationServiceImpl.java @@ -30,12 +30,20 @@ public class GridRelationServiceImpl extends DefaultBaseService implements IGrid } Map params = getHashMap(4); params.put("gridId", gridId); + setSaveInfo(params); for (String relationId : relationIdArray) { params.put("relationId", relationId); gridRelationDao.save(params); } } + @Override + public void delete(String gridId) { + Map params = getHashMap(2); + params.put("gridId", gridId); + gridRelationDao.delete(params); + } + @Override public void delete(String gridId, String relationId) throws RemoveException { Map params = getHashMap(4); @@ -44,6 +52,14 @@ public class GridRelationServiceImpl extends DefaultBaseService implements IGrid gridRelationDao.delete(params); } + @Override + public void delete(String gridId, List relationIds) { + Map params = getHashMap(4); + params.put("gridId", gridId); + params.put("relationIds", relationIds); + gridRelationDao.delete(params); + } + @Override public void deleteByGridIds(List gridIds) { Map params = getHashMap(2); @@ -103,6 +119,12 @@ public class GridRelationServiceImpl extends DefaultBaseService implements IGrid return listGridIdByGridRelation(gridRelationDTOs); } + @Override + public List listRelationId(String gridId) { + List gridRelationDTOs = listByGridId(gridId); + return listRelationIdByGridRelation(gridRelationDTOs); + } + /** * 获取网格ID列表 * @@ -120,4 +142,21 @@ public class GridRelationServiceImpl extends DefaultBaseService implements IGrid return new ArrayList<>(gridIdSet); } + /** + * 获取网格ID列表 + * + * @param gridRelationDTOs + * @return + */ + private List listRelationIdByGridRelation(List gridRelationDTOs) { + if (gridRelationDTOs.isEmpty()) { + return new ArrayList<>(); + } + Set relationIdSet = new HashSet<>(); + gridRelationDTOs.forEach(gridRelationDTO -> { + relationIdSet.add(gridRelationDTO.getRelationId()); + }); + return new ArrayList<>(relationIdSet); + } + } 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 1fc08354..5f7a9bc1 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 @@ -16,8 +16,11 @@ import ink.wgink.module.map.service.grid.IGridRelationService; import ink.wgink.module.map.service.grid.IGridService; import ink.wgink.pojo.ListPage; import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.util.ArrayListUtil; import ink.wgink.util.UUIDUtil; import ink.wgink.util.map.HashMapUtil; +import ink.wgink.util.point.Point; +import ink.wgink.util.point.PointUtil; import ink.wgink.util.string.WStringUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -53,13 +56,18 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService @Override public String saveAndReturnId(GridVO gridVO) throws Exception { String gridId = UUIDUtil.getUUID(); - List relationIdArray = gridVO.getRelationIdArray(); - List pointArray = gridVO.getPointArray(); + List relationIdArray = gridVO.getGrid().getRelationIdArray(); + List pointArray = gridVO.getGrid().getPointArray(); // 保存网格 Map params = HashMapUtil.beanToMap(gridVO); + params.put("gridSquare", getSquare(pointArray)); + params.put("fillColor", gridVO.getGrid().getFillColor()); + GridPO areaLastPO = getAreaLastPO(gridVO.getAreaCode()); + params.put("gridCode", areaLastPO == null ? String.format("%s001", gridVO.getAreaCode().substring(0, 12)) : Long.valueOf(areaLastPO.getGridCode()) + 1); params.put("gridId", gridId); params.remove("relationIdArray"); params.remove("pointArray"); + params.remove("grid"); setSaveInfo(params); gridDao.save(params); // 保存拓展属性 @@ -134,14 +142,26 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService @Override public void update(String gridId, GridVO gridVO) throws Exception { + GridVO.Grid grid = gridVO.getGrid(); Map params = HashMapUtil.beanToMap(gridVO); + params.put("fillColor", gridVO.getGrid().getFillColor()); + params.put("gridSquare", getSquare(grid.getPointArray())); + params.put("gridId", gridId); setUpdateInfo(params); gridDao.update(params); + + // 删除原有节点 + gridPointService.deleteByGridId(gridId); + // 新增原有节点 + gridPointService.save(gridId, grid.getPointArray()); } @Override public GridDTO get(Map params) { - return gridDao.get(params); + GridDTO gridDTO = gridDao.get(params); + setGridPoints(gridDTO); + setGridRelation(gridDTO); + return gridDTO; } @Override @@ -165,7 +185,7 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService @Override public List list(Map params) { - List gridDTOs = gridDao.list(params); + List gridDTOs = ArrayListUtil.deepClone(gridDao.list(params), GridDTO.class); setGridPoints(gridDTOs); setGridRelation(gridDTOs); return gridDTOs; @@ -271,6 +291,34 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService return new SuccessResultList<>(gridDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); } + @Override + public List listExcept(String gridId, Map params) { + List gridDTOs = list(params); + for (GridDTO gridDTO : gridDTOs) { + if (StringUtils.equals(gridId, gridDTO.getGridId())) { + gridDTOs.remove(gridDTO); + break; + } + } + return gridDTOs; + } + + /** + * 设置网格点 + * + * @param gridDTO + */ + private void setGridPoints(GridDTO gridDTO) { + if (gridDTO == null) { + return; + } + List gridPointDTOs = gridPointService.list(gridDTO.getGridId()); + List pointArray = new ArrayList<>(); + for (GridPointDTO gridPointDTO : gridPointDTOs) { + pointArray.add(gridPointDTO); + } + gridDTO.setPointArray(pointArray); + } /** * 设置网格点 @@ -302,6 +350,23 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService } } + /** + * 设置关联 + * + * @param gridDTO + */ + private void setGridRelation(GridDTO gridDTO) { + if (gridDTO == null) { + return; + } + List gridRelationDTOs = gridRelationService.listByGridId(gridDTO.getGridId()); + List gridRelationIds = gridDTO.getRelationIdArray(); + for (GridRelationDTO gridRelationDTO : gridRelationDTOs) { + gridRelationIds.add(gridRelationDTO.getRelationId()); + } + gridDTO.setRelationIdArray(gridRelationIds); + } + /** * 设置关联 * @@ -357,4 +422,31 @@ public class GridServiceImpl extends DefaultBaseService implements IGridService return gridGroups; } + /** + * 得到面积,单位平方米 + * + * @param gridPointVOs + * @return + */ + private Double getSquare(List gridPointVOs) { + List points = new ArrayList<>(); + for (GridPointVO gridPointVO : gridPointVOs) { + Point point = new Point(Double.valueOf(gridPointVO.getLng()), Double.valueOf(gridPointVO.getLat())); + points.add(point); + } + return PointUtil.getSqua(points); + } + + /** + * 区域最后网格 + * + * @param areaCode + * @return + */ + private GridPO getAreaLastPO(String areaCode) { + Map params = getHashMap(2); + params.put("areaCode", areaCode); + return gridDao.getAreaLastPO(params); + } + } diff --git a/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridUserServiceImpl.java b/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridUserServiceImpl.java new file mode 100644 index 00000000..7178a340 --- /dev/null +++ b/module-map/src/main/java/ink/wgink/module/map/service/grid/impl/GridUserServiceImpl.java @@ -0,0 +1,96 @@ +package ink.wgink.module.map.service.grid.impl; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import ink.wgink.common.base.DefaultBaseService; +import ink.wgink.interfaces.user.IUserBaseService; +import ink.wgink.module.map.pojo.dtos.grid.GridRelationDTO; +import ink.wgink.module.map.pojo.dtos.grid.GridUserDTO; +import ink.wgink.module.map.service.grid.IGridRelationService; +import ink.wgink.module.map.service.grid.IGridUserService; +import ink.wgink.pojo.ListPage; +import ink.wgink.pojo.dtos.user.UserDTO; +import ink.wgink.pojo.result.SuccessResultList; +import ink.wgink.pojo.vos.IdsVO; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; + +/** + * @ClassName: GridUserServiceImpl + * @Description: 网格用户 + * @Author: wanggeng + * @Date: 2021/10/20 5:43 下午 + * @Version: 1.0 + */ +@Service +public class GridUserServiceImpl extends DefaultBaseService implements IGridUserService { + + @Autowired + private IUserBaseService userBaseService; + @Autowired + private IGridRelationService gridRelationService; + + @Override + public void delete(String gridId, List userIds) { + gridRelationService.delete(gridId, userIds); + } + + @Override + public void update(String gridId, IdsVO idsVO) { + // 删除全部关联关系 + gridRelationService.delete(gridId); + List userIds = idsVO.getIds(); + if (userIds.isEmpty()) { + return; + } + gridRelationService.save(gridId, userIds); + } + + @Override + public List listUserId(String gridId, Map params) { + return gridRelationService.listRelationId(gridId); + } + + @Override + public List list(String gridId, Map params) { + List gridRelationDTOs = gridRelationService.listByGridId(gridId); + if (gridRelationDTOs.isEmpty()) { + return new ArrayList(); + } + Set userIdSet = new HashSet<>(); + for (GridRelationDTO gridRelationDTO : gridRelationDTOs) { + userIdSet.add(gridRelationDTO.getRelationId()); + } + List userDTOs = userBaseService.listByUserIds(new ArrayList<>(userIdSet)); + if (userDTOs.isEmpty()) { + return new ArrayList<>(); + } + List gridUserDTOs = new ArrayList<>(); + for (UserDTO userDTO : userDTOs) { + GridUserDTO gridUserDTO = new GridUserDTO(); + gridUserDTO.setGridId(gridId); + BeanUtils.copyProperties(userDTO, gridUserDTO); + for (GridRelationDTO gridRelationDTO : gridRelationDTOs) { + if (StringUtils.equals(gridUserDTO.getUserId(), gridRelationDTO.getRelationId())) { + gridUserDTO.setGmtCreate(gridRelationDTO.getGmtCreate()); + break; + } + } + gridUserDTOs.add(gridUserDTO); + } + return gridUserDTOs; + } + + @Override + public SuccessResultList> listPage(String gridId, ListPage page) { + PageHelper.startPage(page.getPage(), page.getRows()); + List gridUserDTOs = list(gridId, page.getParams()); + PageInfo pageInfo = new PageInfo<>(gridUserDTOs); + return new SuccessResultList<>(gridUserDTOs, pageInfo.getPageNum(), pageInfo.getTotal()); + } + +} 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 3f752a3b..6b04115b 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 @@ -18,6 +18,7 @@ + @@ -109,7 +110,12 @@ modifier = #{modifier}, gmt_modified = #{gmtModified} WHERE - grid_id = #{gridId} + + grid_id IN + + #{gridIds[${index}]} + + @@ -136,6 +142,18 @@ grid_name = #{gridName}, + + grid_summary = #{gridSummary}, + + + grid_group_id = #{gridGroupId}, + + + grid_duty = #{gridDuty}, + + + grid_square = #{gridSquare}, + fill_color = #{fillColor}, @@ -194,6 +212,11 @@ AND grid_id = #{gridId} + + AND ( + grid_name LIKE CONCAT('%', #{keywords}, '%') + ) + @@ -208,7 +231,9 @@ t1.grid_square, t1.area_code, t1.area_name, - t1.fill_color + t1.fill_color, + LEFT(t1.gmt_create, 19) gmt_create, + LEFT(t1.gmt_modified, 19) gmt_modified FROM map_grid t1 WHERE @@ -220,6 +245,10 @@ #{gridIds[${index}]} + + AND + t1.area_code = #{areaCode} + @@ -245,4 +274,33 @@ t1.grid_name + + + \ No newline at end of file diff --git a/module-map/src/main/resources/mybatis/mapper/grid/grid-point-mapper.xml b/module-map/src/main/resources/mybatis/mapper/grid/grid-point-mapper.xml index 273dd917..a700b8ea 100644 --- a/module-map/src/main/resources/mybatis/mapper/grid/grid-point-mapper.xml +++ b/module-map/src/main/resources/mybatis/mapper/grid/grid-point-mapper.xml @@ -15,8 +15,8 @@ CREATE TABLE IF NOT EXISTS `map_grid_point` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `grid_id` char(36) DEFAULT NULL COMMENT '网格ID', - `point_lng` varchar(255) DEFAULT NULL COMMENT '点经度', - `point_lat` varchar(255) DEFAULT NULL COMMENT '点维度', + `lng` varchar(255) DEFAULT NULL COMMENT '点经度', + `lat` varchar(255) DEFAULT NULL COMMENT '点维度', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='网格点'; @@ -25,12 +25,12 @@ INSERT INTO map_grid_point( grid_id, - point_lng, - point_lat + lng, + lat ) VALUES( #{gridId}, - #{pointLng}, - #{pointLat} + #{lng}, + #{lat} ) @@ -54,8 +54,8 @@ SELECT relation_id, - LEFT(gmt_create, 19) gmt_create + LEFT(gmt_create, 19) gmt_create, grid_id FROM map_grid_relation diff --git a/module-map/src/main/resources/static/baidu-map/baidu-map-1.0.0.min.js b/module-map/src/main/resources/static/baidu-map/baidu-map-1.0.0.min.js index 1fcf83be..8f8f60b4 100644 --- a/module-map/src/main/resources/static/baidu-map/baidu-map-1.0.0.min.js +++ b/module-map/src/main/resources/static/baidu-map/baidu-map-1.0.0.min.js @@ -7,8 +7,6 @@ var mapConfig = { onGridStopEdit: function (gridArray) { } } -// BMap -// BMapGL function BaiduMap(mapId, mapConfig) { this.map = new BMap.Map(mapId, {enableMapClick: false}); @@ -849,6 +847,10 @@ BaiduMap.prototype.initGridOptionEvent = function () { if (self.gridOption.editGrid.isEdit) { return; } + // 判断是否只能绘制一个网格 + if(self.mapConfig.single && self.gridOption.gridArray.length > 0) { + return; + } // 隐藏结束编辑按钮 self.hideStopOptionBtn(); var point = new BMap.Point(event.point.lng, event.point.lat); diff --git a/module-map/src/main/resources/templates/grid/grid/get.html b/module-map/src/main/resources/templates/grid/grid/get.html new file mode 100644 index 00000000..0e922755 --- /dev/null +++ b/module-map/src/main/resources/templates/grid/grid/get.html @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/module-map/src/main/resources/templates/grid/grid/list.html b/module-map/src/main/resources/templates/grid/grid/list.html new file mode 100644 index 00000000..7d8cd2c2 --- /dev/null +++ b/module-map/src/main/resources/templates/grid/grid/list.html @@ -0,0 +1,325 @@ + + + + + + + + + + + + + +
+
+
+
+
+
+
+ +
+ +
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/module-map/src/main/resources/templates/grid/grid/save.html b/module-map/src/main/resources/templates/grid/grid/save.html new file mode 100644 index 00000000..a56d5b15 --- /dev/null +++ b/module-map/src/main/resources/templates/grid/grid/save.html @@ -0,0 +1,351 @@ + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ +
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/module-map/src/main/resources/templates/grid/grid/update.html b/module-map/src/main/resources/templates/grid/grid/update.html new file mode 100644 index 00000000..8375b17a --- /dev/null +++ b/module-map/src/main/resources/templates/grid/grid/update.html @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+ +
+ +
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/module-map/src/main/resources/templates/grid/grid/user/list.html b/module-map/src/main/resources/templates/grid/grid/user/list.html new file mode 100644 index 00000000..bee3b7d5 --- /dev/null +++ b/module-map/src/main/resources/templates/grid/grid/user/list.html @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + +
+
+
+
+
+
+
+ +
+ +
+
+ + +
+
+
+
+
+ + + + + \ No newline at end of file