package com.flightfeather.uav.domain.repository
|
|
import com.flightfeather.uav.domain.entity.SceneInfo
|
import com.flightfeather.uav.domain.mapper.SceneInfoMapper
|
import com.flightfeather.uav.lightshare.bean.AreaVo
|
import org.springframework.stereotype.Repository
|
import tk.mybatis.mapper.entity.Example
|
|
/**
|
* 场景信息数据库相关操作
|
*/
|
@Repository
|
class SceneInfoRep(private val sceneInfoMapper: SceneInfoMapper) {
|
|
fun findByArea(areaVo: AreaVo): List<SceneInfo?> {
|
return sceneInfoMapper.selectByExample(Example(SceneInfo::class.java).apply {
|
createCriteria().andEqualTo("provinceCode", areaVo.provinceCode)
|
.andEqualTo("provinceName", areaVo.provinceName)
|
.andEqualTo("cityCode", areaVo.cityCode)
|
.andEqualTo("cityName", areaVo.cityName)
|
.andEqualTo("districtCode", areaVo.districtCode)
|
.andEqualTo("districtName", areaVo.districtName)
|
.andEqualTo("townCode", areaVo.townCode)
|
.andEqualTo("townName", areaVo.townName)
|
.andEqualTo("areaCode", areaVo.areaCode)
|
.andEqualTo("area", areaVo.area)
|
.andEqualTo("managementCompanyId", areaVo.managementCompanyId)
|
.andEqualTo("managementCompany", areaVo.managementCompany)
|
.andEqualTo("typeId", areaVo.sceneTypeId)
|
})
|
}
|
|
/**
|
* 根据经纬度范围筛选场景
|
*/
|
fun findByCoordinateRange(range: List<Double>):List<SceneInfo?>{
|
return sceneInfoMapper.selectByExample(Example(SceneInfo::class.java).apply {
|
createCriteria().andGreaterThanOrEqualTo("longitude", range[0])
|
.andLessThanOrEqualTo("longitude", range[1])
|
.andGreaterThanOrEqualTo("latitude", range[2])
|
.andLessThanOrEqualTo("latitude", range[3])
|
})
|
}
|
}
|