|
@@ -4,6 +4,7 @@ import cn.com.taiji.common.domain.PageResult;
|
|
import cn.com.taiji.common.domain.Result;
|
|
import cn.com.taiji.common.domain.Result;
|
|
import cn.com.taiji.cql.model.GeoDataSource;
|
|
import cn.com.taiji.cql.model.GeoDataSource;
|
|
import cn.com.taiji.cql.service.IECqlService;
|
|
import cn.com.taiji.cql.service.IECqlService;
|
|
|
|
+import cn.com.taiji.cql.service.ISqlService;
|
|
import cn.com.taiji.web.config.EnterpriseConfig;
|
|
import cn.com.taiji.web.config.EnterpriseConfig;
|
|
import cn.com.taiji.web.model.DeviceInfo;
|
|
import cn.com.taiji.web.model.DeviceInfo;
|
|
import cn.com.taiji.web.model.EnterpriseInfo;
|
|
import cn.com.taiji.web.model.EnterpriseInfo;
|
|
@@ -14,6 +15,7 @@ import cn.com.taiji.web.vo.EnterpriseVo;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.geotools.api.referencing.crs.CoordinateReferenceSystem;
|
|
import org.geotools.api.referencing.crs.CoordinateReferenceSystem;
|
|
|
|
+import org.geotools.data.jdbc.datasource.DBCPDataSourceFactory;
|
|
import org.geotools.feature.visitor.CountVisitor;
|
|
import org.geotools.feature.visitor.CountVisitor;
|
|
import org.geotools.geometry.jts.JTS;
|
|
import org.geotools.geometry.jts.JTS;
|
|
import org.geotools.jdbc.JDBCDataStoreFactory;
|
|
import org.geotools.jdbc.JDBCDataStoreFactory;
|
|
@@ -36,6 +38,9 @@ public class EnterpriseServiceImpl implements IEnterpriseService {
|
|
@Autowired
|
|
@Autowired
|
|
private IECqlService ecqlService;
|
|
private IECqlService ecqlService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private ISqlService sqlService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public PageResult enterpriseQuery(EnterpriseVo enterpriseVo) {
|
|
public PageResult enterpriseQuery(EnterpriseVo enterpriseVo) {
|
|
|
|
|
|
@@ -103,6 +108,51 @@ public class EnterpriseServiceImpl implements IEnterpriseService {
|
|
@Override
|
|
@Override
|
|
public Result deviceQuery(DeviceVo deviceVo) {
|
|
public Result deviceQuery(DeviceVo deviceVo) {
|
|
|
|
|
|
|
|
+ //构建mysql数据库连接数据源--DataSource
|
|
|
|
+ Map<String, Object> mapParams = new HashMap<String, Object>();
|
|
|
|
+ mapParams.put(DBCPDataSourceFactory.DSTYPE.key, "DBCP");
|
|
|
|
+ mapParams.put(DBCPDataSourceFactory.DRIVERCLASS.key, "com.mysql.cj.jdbc.Driver");
|
|
|
|
+ mapParams.put(DBCPDataSourceFactory.JDBC_URL.key, "jdbc:mysql://"+enterpriseConfig.getDsIp()+":"+enterpriseConfig.getDsPort()+"/"+enterpriseConfig.getDsBaseName()+"?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai");
|
|
|
|
+ mapParams.put(DBCPDataSourceFactory.USERNAME.key, enterpriseConfig.getDsUserName());
|
|
|
|
+ mapParams.put(DBCPDataSourceFactory.PASSWORD.key, enterpriseConfig.getDsPassword());
|
|
|
|
+ mapParams.put(DBCPDataSourceFactory.MAXACTIVE.key, Integer.valueOf(10));
|
|
|
|
+ mapParams.put(DBCPDataSourceFactory.MAXIDLE.key, Integer.valueOf(0));
|
|
|
|
+ mapParams.put(JDBCDataStoreFactory.HOST.key, enterpriseConfig.getDsIp());
|
|
|
|
+ mapParams.put(JDBCDataStoreFactory.DATABASE.key, enterpriseConfig.getDsBaseName());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ String sql = "SELECT *,(st_distance(point(longitude, latitude), point("+deviceVo.getLon()+","+deviceVo.getLat()+"))*111195) AS distance FROM "+enterpriseConfig.getDevice()+" having distance < "+deviceVo.getRadius()*1000+" order by distance asc";
|
|
|
|
+
|
|
|
|
+ PageResult pageResult = sqlService.sqlQuery4Mysql(mapParams,sql,null);
|
|
|
|
+
|
|
|
|
+ List<DeviceInfo> deviceInfoList = new ArrayList<DeviceInfo>();
|
|
|
|
+
|
|
|
|
+ if(pageResult.getResp_code() ==0) {
|
|
|
|
+
|
|
|
|
+ List<Map<String, Object>> dataList = (List<Map<String, Object>>) pageResult.getDatas();
|
|
|
|
+
|
|
|
|
+ for (Map<String, Object> dataMap : dataList) {
|
|
|
|
+
|
|
|
|
+ if (dataMap.containsKey("location")) {
|
|
|
|
+
|
|
|
|
+ dataMap.remove("location");
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ DeviceInfo deviceInfo = JSONObject.parseObject(JSONObject.toJSONString(dataMap), DeviceInfo.class);
|
|
|
|
+
|
|
|
|
+ deviceInfoList.add(deviceInfo);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return Result.of(deviceInfoList,pageResult.getResp_code(),pageResult.getResp_msg());
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public Result deviceQuery2(DeviceVo deviceVo) {
|
|
|
|
+
|
|
//数据源
|
|
//数据源
|
|
Map<String, Object> entDsParams = new HashMap<String, Object>();
|
|
Map<String, Object> entDsParams = new HashMap<String, Object>();
|
|
entDsParams.put(JDBCDataStoreFactory.DATABASE.key, enterpriseConfig.getDsBaseName());
|
|
entDsParams.put(JDBCDataStoreFactory.DATABASE.key, enterpriseConfig.getDsBaseName());
|