增加poi室内相关数据

This commit is contained in:
仙风道骨小半仙儿 2025-03-28 00:12:20 +08:00
parent 51d2ad3243
commit d38648d847
9 changed files with 155 additions and 5 deletions

View File

@ -27,7 +27,7 @@ public class PageParam implements Serializable {
@Min(value = 1, message = "页码最小值为 1")
private Integer pageNo = PAGE_NO;
@Schema(description = "每页条数,最大值为 100", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
@Schema(description = "每页条数,最大值为 100", requiredMode = Schema.RequiredMode.REQUIRED, example = "25")
@NotNull(message = "每页条数不能为空")
@Min(value = 1, message = "每页条数最小值为 1")
@Max(value = 100, message = "每页条数最大值为 100")

View File

@ -91,5 +91,4 @@ public class KeywordSearchController {
ExcelUtils.write(response, "搜索记录.xls", "数据", KeywordSearchRespVO.class,
BeanUtils.toBean(list, KeywordSearchRespVO.class));
}
}

View File

@ -30,6 +30,7 @@ import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisBusinessDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisNaviDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisPhotosDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisIndoorDO;
import cn.iocoder.yudao.module.map.service.pois.PoisService;
@Tag(name = "管理后台 - 高德POI基础信息")
@ -95,6 +96,16 @@ public class PoisController {
BeanUtils.toBean(list, PoisRespVO.class));
}
// ==================== 子表高德POI室内信息 ====================
@GetMapping("/pois-indoor/get-by-pois-id")
@Operation(summary = "获得高德POI室内信息")
@Parameter(name = "poisId", description = "pois表ID")
@PreAuthorize("@ss.hasPermission('map:pois:query')")
public CommonResult<PoisIndoorDO> getPoisIndoorByPoisId(@RequestParam("poisId") Long poisId) {
return success(poisService.getPoisIndoorByPoisId(poisId));
}
// ==================== 子表高德POI商业信息 ====================
@GetMapping("/pois-business/get-by-pois-id")

View File

@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisIndoorDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisBusinessDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisNaviDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisPhotosDO;
@ -64,6 +65,9 @@ public class PoisSaveReqVO {
@NotEmpty(message = "poi唯一标识不能为空")
private String poiId;
@Schema(description = "高德POI室内信息")
private PoisIndoorDO poisIndoor;
@Schema(description = "高德POI商业信息")
private PoisBusinessDO poisBusiness;

View File

@ -0,0 +1,50 @@
package cn.iocoder.yudao.module.map.dal.dataobject.pois;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* 高德POI室内信息 DO
*
* @author AN
*/
@TableName("map_pois_indoor")
@KeySequence("map_pois_indoor_seq") // 用于 OraclePostgreSQLKingbaseDB2H2 数据库的主键自增如果是 MySQL 等数据库可不写
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PoisIndoorDO extends BaseDO {
/**
* 主键
*/
@TableId
private Long id;
/**
* pois表ID
*/
private Long poisId;
/**
* 室内地图标志1有0无
*/
private Boolean indoorMap;
/**
* 如果当前 POI 为建筑物类 POI cpid 为自身 POI ID如果当前 POI 为商铺类 POI cpid 为其所在建筑物的 POI IDindoor_map 为0时不返回
*/
private String cpid;
/**
* 楼层索引一般会用数字表示例如8indoor_map 为0时不返回
*/
private String floor;
/**
* 实际楼层一般会带有字母例如F8indoor_map 为0时不返回
*/
private String truefloor;
}

View File

@ -0,0 +1,28 @@
package cn.iocoder.yudao.module.map.dal.mysql.pois;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisIndoorDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 高德POI室内信息 Mapper
*
* @author AN
*/
@Mapper
public interface PoisIndoorMapper extends BaseMapperX<PoisIndoorDO> {
default PoisIndoorDO selectByPoisId(Long poisId) {
return selectOne(PoisIndoorDO::getPoisId, poisId);
}
default int deleteByPoisId(Long poisId) {
return delete(PoisIndoorDO::getPoisId, poisId);
}
}

View File

@ -4,6 +4,7 @@ import java.util.*;
import jakarta.validation.*;
import cn.iocoder.yudao.module.map.controller.admin.pois.vo.*;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisIndoorDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisBusinessDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisNaviDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisPhotosDO;
@ -55,6 +56,16 @@ public interface PoisService {
*/
PageResult<PoisDO> getPoisPage(PoisPageReqVO pageReqVO);
// ==================== 子表高德POI室内信息 ====================
/**
* 获得高德POI室内信息
*
* @param poisId pois表ID
* @return 高德POI室内信息
*/
PoisIndoorDO getPoisIndoorByPoisId(Long poisId);
// ==================== 子表高德POI商业信息 ====================
/**

View File

@ -8,6 +8,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import cn.iocoder.yudao.module.map.controller.admin.pois.vo.*;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisIndoorDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisBusinessDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisNaviDO;
import cn.iocoder.yudao.module.map.dal.dataobject.pois.PoisPhotosDO;
@ -16,6 +17,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.map.dal.mysql.pois.PoisMapper;
import cn.iocoder.yudao.module.map.dal.mysql.pois.PoisIndoorMapper;
import cn.iocoder.yudao.module.map.dal.mysql.pois.PoisBusinessMapper;
import cn.iocoder.yudao.module.map.dal.mysql.pois.PoisNaviMapper;
import cn.iocoder.yudao.module.map.dal.mysql.pois.PoisPhotosMapper;
@ -35,6 +37,8 @@ public class PoisServiceImpl implements PoisService {
@Resource
private PoisMapper poisMapper;
@Resource
private PoisIndoorMapper poisIndoorMapper;
@Resource
private PoisBusinessMapper poisBusinessMapper;
@Resource
private PoisNaviMapper poisNaviMapper;
@ -49,6 +53,7 @@ public class PoisServiceImpl implements PoisService {
poisMapper.insert(pois);
// 插入子表
createPoisIndoor(pois.getId(), createReqVO.getPoisIndoor());
createPoisBusiness(pois.getId(), createReqVO.getPoisBusiness());
createPoisNavi(pois.getId(), createReqVO.getPoisNavi());
createPoisPhotos(pois.getId(), createReqVO.getPoisPhotos());
@ -66,6 +71,7 @@ public class PoisServiceImpl implements PoisService {
poisMapper.updateById(updateObj);
// 更新子表
updatePoisIndoor(updateReqVO.getId(), updateReqVO.getPoisIndoor());
updatePoisBusiness(updateReqVO.getId(), updateReqVO.getPoisBusiness());
updatePoisNavi(updateReqVO.getId(), updateReqVO.getPoisNavi());
updatePoisPhotos(updateReqVO.getId(), updateReqVO.getPoisPhotos());
@ -80,6 +86,7 @@ public class PoisServiceImpl implements PoisService {
poisMapper.deleteById(id);
// 删除子表
deletePoisIndoorByPoisId(id);
deletePoisBusinessByPoisId(id);
deletePoisNaviByPoisId(id);
deletePoisPhotosByPoisId(id);
@ -101,6 +108,34 @@ public class PoisServiceImpl implements PoisService {
return poisMapper.selectPage(pageReqVO);
}
// ==================== 子表高德POI室内信息 ====================
@Override
public PoisIndoorDO getPoisIndoorByPoisId(Long poisId) {
return poisIndoorMapper.selectByPoisId(poisId);
}
private void createPoisIndoor(Long poisId, PoisIndoorDO poisIndoor) {
if (poisIndoor == null) {
return;
}
poisIndoor.setPoisId(poisId);
poisIndoorMapper.insert(poisIndoor);
}
private void updatePoisIndoor(Long poisId, PoisIndoorDO poisIndoor) {
if (poisIndoor == null) {
return;
}
poisIndoor.setPoisId(poisId);
poisIndoor.setUpdater(null).setUpdateTime(null); // 解决更新情况下updateTime 不更新
poisIndoorMapper.insertOrUpdate(poisIndoor);
}
private void deletePoisIndoorByPoisId(Long poisId) {
poisIndoorMapper.deleteByPoisId(poisId);
}
// ==================== 子表高德POI商业信息 ====================
@Override

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.map.dal.mysql.keywordsearch.KeywordSearchMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>