From 1f646399b643c8350535be9a4b0dea10032c3031 Mon Sep 17 00:00:00 2001 From: wuww <252740454@qq.com> Date: 星期三, 16 四月 2025 10:31:35 +0800 Subject: [PATCH] 添加区域、模拟的控制器 --- src/main/java/com/se/nsl/controller/SimuController.java | 97 +++++++++++++ src/main/java/com/se/nsl/controller/RegionController.java | 97 +++++++++++++ src/main/java/com/se/nsl/service/RegionService.java | 85 ++++++++++++ src/main/java/com/se/nsl/service/SimuPoService.java | 6 src/main/java/com/se/nsl/domain/po/Region.java | 5 data/init.sql | 8 src/main/java/com/se/nsl/domain/po/Simu.java | 10 + src/main/java/com/se/nsl/service/SimuFilesService.java | 6 src/main/java/com/se/nsl/domain/vo/SimulateVo.java | 2 src/main/java/com/se/nsl/service/SimuService.java | 94 +++++++++++++ src/main/java/com/se/nsl/controller/SimuPoController.java | 4 11 files changed, 403 insertions(+), 11 deletions(-) diff --git a/data/init.sql b/data/init.sql index 59cebd4..be5e868 100644 --- a/data/init.sql +++ b/data/init.sql @@ -41,7 +41,9 @@ comment on column nsl.simu.bak is '澶囨敞'; comment on column nsl.simu.geom is '绌洪棿浣嶇疆'; -select * from nsl.simu; +-- insert into nsl.simu (name, service_name, type, area_type, status, geom) values ('棰勬祴妯℃嫙-0416', '20250416100000', 1, 1, 0, ST_GeomFromText('MULTIPOLYGON(((116.666748 39.639859,116.659403 39.626287,116.665956 39.654698,116.666748 39.639859)))')); + +select *, st_astext(geom) geom from nsl.simu; ---------------------------------------------- 2.鎺ㄦ紨鍖哄煙 -- drop table if exists nsl.region; create table nsl.region ( @@ -59,7 +61,9 @@ comment on column nsl.region.type is '绫诲埆锛�1-琛屾斂鍖哄垝锛�2-閲嶇偣鍖哄煙锛�3-閲嶇偣娌�'; comment on column nsl.region.geom is '绌洪棿浣嶇疆'; -select * from nsl.region; +-- insert into nsl.region (name, type, geom) values ('澶у叴', 1, ST_GeomFromText('MULTIPOLYGON(((116.666748 39.639859,116.659403 39.626287,116.665956 39.654698,116.666748 39.639859)))')); + +select id, name, type, st_astext(geom) from nsl.region order by id; ---------------------------------------------- 3.闆ㄩ噺璁� * -- drop table if exists nsl.udometer; create table nsl.udometer ( diff --git a/src/main/java/com/se/nsl/controller/RegionController.java b/src/main/java/com/se/nsl/controller/RegionController.java new file mode 100644 index 0000000..7b1e824 --- /dev/null +++ b/src/main/java/com/se/nsl/controller/RegionController.java @@ -0,0 +1,97 @@ +package com.se.nsl.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.se.nsl.domain.po.Region; +import com.se.nsl.domain.vo.R; +import com.se.nsl.service.RegionService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.models.auth.In; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@Api(tags = "1锛嶆帹婕斿尯鍩�") +@Slf4j +@RestController +@RequestMapping("/region") +@SuppressWarnings("ALL") +public class RegionController extends BaseController { + @Resource + RegionService regionService; + + /** + * 鍒嗛〉鏌ヨ鎺ㄦ紨鍖哄煙 + * + * @param pageNum 椤电爜 + * @param pageSize 姣忛〉鏁伴噺 + * @return 鍒嗛〉鍚庣殑鎺ㄦ紨鍖哄煙 + */ + @ApiOperation(value = "selectPage") + @GetMapping("/selectPage") + public R<Object> selectPage(Region region, Integer pageNum, Integer pageSize) { + try { + if (null == pageNum || pageNum < 1) pageNum = 1; + if (null == pageSize || pageSize < 1) pageSize = 10; + if (pageSize > 1000) pageSize = 1000; + + IPage<Region> paged = regionService.selectPage(region, pageNum, pageSize); + if (null == paged) { + return success(null, 0); + } + + return success(paged.getRecords(), paged.getTotal()); + } catch (Exception ex) { + return fail(ex, null); + } + } + + /** + * 鏍规嵁ID鎵归噺鍒犻櫎鎺ㄦ紨鍖哄煙 + * + * @param ids 瑕佸垹闄ょ殑鎺ㄦ紨鍖哄煙ID鍒楄〃 + * @return 鍒犻櫎鎴愬姛鐨勮褰曟暟 + */ + @ApiOperation(value = "deleteByIds") + @DeleteMapping("/deleteByIds") + public R<Object> deleteByIds(java.util.List<Integer> ids) { + try { + return success(regionService.deleteByIds(ids)); + } catch (Exception ex) { + return fail(ex, null); + } + } + + /** + * 鏂板鎺ㄦ紨鍖哄煙 + * + * @param region 鎺ㄦ紨鍖哄煙瀵硅薄 + * @return 鏂板鎴愬姛鐨勮褰曟暟 + */ + @ApiOperation(value = "insert") + @PostMapping("/insert") + public R<Object> insert(Region region) { + try { + return success(regionService.insert(region)); + } catch (Exception ex) { + return fail(ex, null); + } + } + + /** + * 淇敼鎺ㄦ紨鍖哄煙 + * + * @param region 鎺ㄦ紨鍖哄煙瀵硅薄 + * @return 淇敼鎴愬姛鐨勮褰曟暟 + */ + @ApiOperation(value = "updateById") + @PutMapping("/updateById") + public R<Object> updateById(Region region) { + try { + return success(regionService.updateById(region)); + } catch (Exception ex) { + return fail(ex, null); + } + } +} diff --git a/src/main/java/com/se/nsl/controller/SimuController.java b/src/main/java/com/se/nsl/controller/SimuController.java new file mode 100644 index 0000000..f3cf371 --- /dev/null +++ b/src/main/java/com/se/nsl/controller/SimuController.java @@ -0,0 +1,97 @@ +package com.se.nsl.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.se.nsl.domain.po.Simu; +import com.se.nsl.domain.vo.R; +import com.se.nsl.service.SimuService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@Api(tags = "2锛嶆帹婕旀ā鎷�") +@Slf4j +@RestController +@RequestMapping("/simu") +@SuppressWarnings("ALL") +public class SimuController extends BaseController { + @Resource + SimuService simuService; + + /** + * 鍒嗛〉鏌ヨ鎺ㄦ紨妯℃嫙 + * + * @param pageNum 椤电爜 + * @param pageSize 姣忛〉鏁伴噺 + * @return 鍒嗛〉鍚庣殑鎺ㄦ紨妯℃嫙 + */ + @ApiOperation(value = "selectPage") + @GetMapping("/selectPage") + public R<Object> selectPage(Simu simu, Integer pageNum, Integer pageSize) { + try { + if (null == pageNum || pageNum < 1) pageNum = 1; + if (null == pageSize || pageSize < 1) pageSize = 10; + if (pageSize > 1000) pageSize = 1000; + + IPage<Simu> paged = simuService.selectPage(simu, pageNum, pageSize); + if (null == paged) { + return success(null, 0); + } + + return success(paged.getRecords(), paged.getTotal()); + } catch (Exception ex) { + return fail(ex, null); + } + } + + /** + * 鏍规嵁ID鎵归噺鍒犻櫎鎺ㄦ紨妯℃嫙 + * + * @param ids 瑕佸垹闄ょ殑鎺ㄦ紨妯℃嫙ID鍒楄〃 + * @return 鍒犻櫎鎴愬姛鐨勮褰曟暟 + */ + @ApiOperation(value = "deleteByIds") + @DeleteMapping("/deleteByIds") + public R<Object> deleteByIds(java.util.List<Integer> ids) { + try { + return success(simuService.deleteByIds(ids)); + } catch (Exception ex) { + return fail(ex, null); + } + } + + /** + * 鏂板鎺ㄦ紨妯℃嫙 + * + * @param simu 鎺ㄦ紨妯℃嫙瀵硅薄 + * @return 鏂板鎴愬姛鐨勮褰曟暟 + */ + @ApiOperation(value = "insert") + @PostMapping("/insert") + public R<Object> insert(Simu simu) { + try { + return success(simuService.insert(simu)); + } catch (Exception ex) { + return fail(ex, null); + } + } + + /** + * 淇敼鎺ㄦ紨妯℃嫙 + * + * @param simu 鎺ㄦ紨妯℃嫙瀵硅薄 + * @return 淇敼鎴愬姛鐨勮褰曟暟 + */ + @ApiOperation(value = "updateById") + @PutMapping("/updateById") + public R<Object> updateById(Simu simu) { + try { + return success(simuService.updateById(simu)); + } catch (Exception ex) { + return fail(ex, null); + } + } +} diff --git a/src/main/java/com/se/nsl/controller/SimuPoController.java b/src/main/java/com/se/nsl/controller/SimuPoController.java index 33a8755..b009d88 100644 --- a/src/main/java/com/se/nsl/controller/SimuPoController.java +++ b/src/main/java/com/se/nsl/controller/SimuPoController.java @@ -155,10 +155,10 @@ @ApiOperation(value = "鑾峰彇") @GetMapping("/get") - public R<Object> get(@ApiParam("浠跨湡瑙嗗浘绫�") SimuVo vo) { + public R<Object> get(@ApiParam("浠跨湡瑙嗗浘绫�") SimulateVo vo) { try { if (null == vo) { - vo = new SimuVo(); + vo = new SimulateVo(); } if (null == vo.getPageSize() || vo.getPageSize() < 1) { vo.setPageSize(10); diff --git a/src/main/java/com/se/nsl/domain/po/Region.java b/src/main/java/com/se/nsl/domain/po/Region.java index 6ce3c41..57a33c2 100644 --- a/src/main/java/com/se/nsl/domain/po/Region.java +++ b/src/main/java/com/se/nsl/domain/po/Region.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.netty.util.internal.StringUtil; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -63,4 +64,8 @@ public void setGeom(String geom) { this.geom = geom; } + + public void setGeomWkt(String wkt) { + this.geom = StringUtil.isNullOrEmpty(wkt) ? "null" : String.format("ST_GeomFromText('%s')", wkt.trim()); + } } diff --git a/src/main/java/com/se/nsl/domain/po/Simu.java b/src/main/java/com/se/nsl/domain/po/Simu.java index 548b756..1ba64ee 100644 --- a/src/main/java/com/se/nsl/domain/po/Simu.java +++ b/src/main/java/com/se/nsl/domain/po/Simu.java @@ -1,8 +1,11 @@ package com.se.nsl.domain.po; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.netty.util.internal.StringUtil; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -37,12 +40,14 @@ @ApiModelProperty("缁撴灉(JSON)") private String result; + @JSONField(format = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("鍒涘缓鏃堕棿") private Timestamp createTime; @ApiModelProperty("鍒涘缓浜�") private Timestamp createUser; + @JSONField(format = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("鏇存柊鏃堕棿") private Timestamp updateTime; @@ -52,6 +57,7 @@ @ApiModelProperty("澶囨敞") private String bak; + @TableField(select = false) @ApiModelProperty("绌洪棿浣嶇疆") private String geom; @@ -179,4 +185,8 @@ public void setGeom(String geom) { this.geom = geom; } + + public void setGeomWkt(String wkt) { + this.geom = StringUtil.isNullOrEmpty(wkt) ? "null" : String.format("ST_GeomFromText('%s')", wkt.trim()); + } } diff --git a/src/main/java/com/se/nsl/domain/vo/SimuVo.java b/src/main/java/com/se/nsl/domain/vo/SimulateVo.java similarity index 98% rename from src/main/java/com/se/nsl/domain/vo/SimuVo.java rename to src/main/java/com/se/nsl/domain/vo/SimulateVo.java index 7285c6a..97107a6 100644 --- a/src/main/java/com/se/nsl/domain/vo/SimuVo.java +++ b/src/main/java/com/se/nsl/domain/vo/SimulateVo.java @@ -7,7 +7,7 @@ @TableName("bs.simu") @SuppressWarnings("ALL") -public class SimuVo { +public class SimulateVo { @ApiModelProperty("ID") private Long id; diff --git a/src/main/java/com/se/nsl/service/RegionService.java b/src/main/java/com/se/nsl/service/RegionService.java new file mode 100644 index 0000000..319725e --- /dev/null +++ b/src/main/java/com/se/nsl/service/RegionService.java @@ -0,0 +1,85 @@ +package com.se.nsl.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.se.nsl.domain.po.Region; +import com.se.nsl.helper.StringHelper; +import com.se.nsl.mapper.RegionMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Slf4j +@Service +@SuppressWarnings("ALL") +public class RegionService { + @Resource + RegionMapper regionMapper; + + /** + * 鍒嗛〉鏌ヨ鎺ㄦ紨鍖哄煙 + * + * @param pageNum 椤电爜 + * @param pageSize 姣忛〉鏁伴噺 + * @return 鍒嗛〉鍚庣殑鎺ㄦ紨鍖哄煙 + */ + public IPage<Region> selectPage(Region vo, int pageNum, int pageSize) { + QueryWrapper<Region> wrapper = getPageWrapper(vo, pageNum, pageSize); + + Page<Region> page = new Page<>(pageNum, pageSize); + page.addOrder(OrderItem.desc("id")); + + IPage<Region> paged = regionMapper.selectPage(page, wrapper); + + return paged; + } + + private QueryWrapper<Region> getPageWrapper(Region vo, int pageNum, int pageSize) { + QueryWrapper<Region> wrapper = new QueryWrapper<>(); + if (null != vo.getId()) { + wrapper.eq("id", vo.getId()); + } + if (!StringHelper.isEmpty(vo.getName())) { + wrapper.like("lower(name)", vo.getName().trim().toLowerCase()); + } + if (null != vo.getType()) { + wrapper.eq("type", vo.getType()); + } + + return wrapper; + } + + /** + * 鏍规嵁ID鎵归噺鍒犻櫎鎺ㄦ紨鍖哄煙 + * + * @param ids 瑕佸垹闄ょ殑鍖哄煙ID鍒楄〃 + * @return 鍒犻櫎鎴愬姛鐨勮褰曟暟 + */ + public int deleteByIds(List<Integer> ids) { + return regionMapper.deleteByIds(ids); + } + + /** + * 鏂板鎺ㄦ紨鍖哄煙 + * + * @param region 鎺ㄦ紨鍖哄煙瀵硅薄 + * @return 鏂板鎴愬姛鐨勮褰曟暟 + */ + public int insert(Region region) { + return regionMapper.insert(region); + } + + /** + * 淇敼鎺ㄦ紨鍖哄煙 + * + * @param region 鎺ㄦ紨鍖哄煙瀵硅薄 + * @return 淇敼鎴愬姛鐨勮褰曟暟 + */ + public int updateById(Region region) { + return regionMapper.updateById(region); + } +} diff --git a/src/main/java/com/se/nsl/service/SimuFilesService.java b/src/main/java/com/se/nsl/service/SimuFilesService.java index b6a3fac..1d6255c 100644 --- a/src/main/java/com/se/nsl/service/SimuFilesService.java +++ b/src/main/java/com/se/nsl/service/SimuFilesService.java @@ -13,7 +13,7 @@ import com.se.nsl.domain.po.DataPo; import com.se.nsl.domain.po.SimuPo; import com.se.nsl.domain.vo.CreateFilesSimuVo; -import com.se.nsl.domain.vo.SimuVo; +import com.se.nsl.domain.vo.SimulateVo; import com.se.nsl.helper.StringHelper; import com.se.nsl.helper.WebHelper; import com.se.nsl.mapper.SimuPoMapper; @@ -54,7 +54,7 @@ @Resource ResultService resultService; - public IPage<SimuPo> get(SimuVo vo) { + public IPage<SimuPo> get(SimulateVo vo) { QueryWrapper<SimuPo> wrapper = getPageWrapper(vo); Page<SimuPo> page = new Page<>(vo.getPageIndex(), vo.getPageSize()); @@ -65,7 +65,7 @@ return paged; } - private QueryWrapper<SimuPo> getPageWrapper(SimuVo vo) { + private QueryWrapper<SimuPo> getPageWrapper(SimulateVo vo) { QueryWrapper<SimuPo> wrapper = new QueryWrapper<>(); if (null != vo.getId()) { wrapper.eq("id", vo.getId()); diff --git a/src/main/java/com/se/nsl/service/SimuPoService.java b/src/main/java/com/se/nsl/service/SimuPoService.java index 8d63663..f5e9e44 100644 --- a/src/main/java/com/se/nsl/service/SimuPoService.java +++ b/src/main/java/com/se/nsl/service/SimuPoService.java @@ -13,7 +13,7 @@ import com.se.nsl.domain.po.DataPo; import com.se.nsl.domain.po.SimuPo; import com.se.nsl.domain.vo.CreateSimuVo; -import com.se.nsl.domain.vo.SimuVo; +import com.se.nsl.domain.vo.SimulateVo; import com.se.nsl.helper.StringHelper; import com.se.nsl.helper.WebHelper; import com.se.nsl.mapper.SimuPoMapper; @@ -48,7 +48,7 @@ @Resource ResultService resultService; - public IPage<SimuPo> get(SimuVo vo) { + public IPage<SimuPo> get(SimulateVo vo) { QueryWrapper<SimuPo> wrapper = getPageWrapper(vo); Page<SimuPo> page = new Page<>(vo.getPageIndex(), vo.getPageSize()); @@ -59,7 +59,7 @@ return paged; } - private QueryWrapper<SimuPo> getPageWrapper(SimuVo vo) { + private QueryWrapper<SimuPo> getPageWrapper(SimulateVo vo) { QueryWrapper<SimuPo> wrapper = new QueryWrapper<>(); if (null != vo.getId()) { wrapper.eq("id", vo.getId()); diff --git a/src/main/java/com/se/nsl/service/SimuService.java b/src/main/java/com/se/nsl/service/SimuService.java new file mode 100644 index 0000000..b1b5b75 --- /dev/null +++ b/src/main/java/com/se/nsl/service/SimuService.java @@ -0,0 +1,94 @@ +package com.se.nsl.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.se.nsl.domain.po.Simu; +import com.se.nsl.helper.StringHelper; +import com.se.nsl.mapper.SimuMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +@Slf4j +@Service +@SuppressWarnings("ALL") +public class SimuService { + @Resource + SimuMapper simuMapper; + + /** + * 鍒嗛〉鏌ヨ鎺ㄦ紨妯℃嫙 + * + * @param pageNum 椤电爜 + * @param pageSize 姣忛〉鏁伴噺 + * @return 鍒嗛〉鍚庣殑鎺ㄦ紨妯℃嫙 + */ + public IPage<Simu> selectPage(Simu vo, int pageNum, int pageSize) { + QueryWrapper<Simu> wrapper = getPageWrapper(vo, pageNum, pageSize); + + Page<Simu> page = new Page<>(pageNum, pageSize); + page.addOrder(OrderItem.desc("id")); + + IPage<Simu> paged = simuMapper.selectPage(page, wrapper); + + return paged; + } + + private QueryWrapper<Simu> getPageWrapper(Simu vo, int pageNum, int pageSize) { + QueryWrapper<Simu> wrapper = new QueryWrapper<>(); + if (null != vo.getId()) { + wrapper.eq("id", vo.getId()); + } + if (!StringHelper.isEmpty(vo.getName())) { + wrapper.like("lower(name)", vo.getName().trim().toLowerCase()); + } + if (!StringHelper.isEmpty(vo.getServiceName())) { + wrapper.like("service_name", vo.getServiceName().trim()); + } + if (null != vo.getType()) { + wrapper.eq("type", vo.getType()); + } + if (null != vo.getAreaType()) { + wrapper.eq("area_type", vo.getAreaType()); + } + if (null != vo.getStatus()) { + wrapper.eq("status", vo.getStatus()); + } + + return wrapper; + } + + /** + * 鏍规嵁ID鎵归噺鍒犻櫎鎺ㄦ紨妯℃嫙 + * + * @param ids 瑕佸垹闄ょ殑鍖哄煙ID鍒楄〃 + * @return 鍒犻櫎鎴愬姛鐨勮褰曟暟 + */ + public int deleteByIds(List<Integer> ids) { + return simuMapper.deleteByIds(ids); + } + + /** + * 鏂板鎺ㄦ紨妯℃嫙 + * + * @param Simu 鎺ㄦ紨妯℃嫙瀵硅薄 + * @return 鏂板鎴愬姛鐨勮褰曟暟 + */ + public int insert(Simu Simu) { + return simuMapper.insert(Simu); + } + + /** + * 淇敼鎺ㄦ紨妯℃嫙 + * + * @param Simu 鎺ㄦ紨妯℃嫙瀵硅薄 + * @return 淇敼鎴愬姛鐨勮褰曟暟 + */ + public int updateById(Simu Simu) { + return simuMapper.updateById(Simu); + } +} -- Gitblit v1.9.3