Compare commits

..

No commits in common. 'master' and 'package' have entirely different histories.

4
.gitignore vendored

@ -56,7 +56,3 @@ pnpm-debug.log*
package-lock.json package-lock.json
conf/data/ehcache
data/

@ -23,6 +23,6 @@ create database smartbi
//变更系统管理菜单显示权限 //变更系统管理菜单显示权限
update sys_menu set hidden=1 where menu_id=40; update sys_menu set hidden=1 where menu_id=40;
update sys_menu set hidden=1 where menu_id=58; update sys_menu set hidden=1 where menu_id=58;
update sys_menu set title='数据源' where menu_id=34; update sys_menu set title='数据探索' where menu_id=10;
update sys_menu set title='Dashboard' where menu_id=30; update sys_menu set title='Dashboard' where menu_id=30;
``` ```

@ -67,8 +67,6 @@
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.18</version>
<scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
@ -94,7 +92,6 @@
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
<scope>runtime</scope> <scope>runtime</scope>
</dependency> </dependency>
<dependency> <dependency>
@ -198,6 +195,8 @@
<version>2.9.1</version> <version>2.9.1</version>
</dependency> </dependency>
<!--由于暂时插件接口未注册到公司仓库请先down下代码安装到本地仓库
https://github.com/dataease/dataease-plugins-->
<dependency> <dependency>
<groupId>com.ipsos</groupId> <groupId>com.ipsos</groupId>
<artifactId>plugin-interface</artifactId> <artifactId>plugin-interface</artifactId>
@ -254,12 +253,6 @@
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
<version>42.2.14</version> <version>42.2.14</version>
</dependency> </dependency>
<dependency>
<groupId>com.ipsos</groupId>
<artifactId>plugin-common</artifactId>
<version>1.3-LOCAL</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
@ -288,11 +281,10 @@
<configuration> <configuration>
<addResources>true</addResources> <addResources>true</addResources>
<excludes> <excludes>
<!-- <exclude>--> <exclude>
<!-- <groupId>org.projectlombok</groupId>--> <groupId>org.projectlombok</groupId>
<!-- <artifactId>lombok</artifactId>--> <artifactId>lombok</artifactId>
</exclude>
<!-- </exclude>-->
<exclude> <exclude>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId> <artifactId>spring-boot-configuration-processor</artifactId>
@ -341,13 +333,6 @@
<configuration> <configuration>
<source>1.8</source> <source>1.8</source>
<target>1.8</target> <target>1.8</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.18</version>
</path>
</annotationProcessorPaths>
</configuration> </configuration>
</plugin> </plugin>
@ -424,11 +409,6 @@
<updatePolicy>always</updatePolicy> <updatePolicy>always</updatePolicy>
</snapshots> </snapshots>
</repository> </repository>
<!-- <repository>-->
<!-- <id>AliRepo-aliyun</id>-->
<!-- <name>Alirepo.</name>-->
<!-- <url>https://maven.aliyun.com/repository/public</url>-->
<!-- </repository>-->
</repositories> </repositories>
</project> </project>

@ -15,7 +15,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
}) })
@ServletComponentScan @ServletComponentScan
@EnableScheduling @EnableScheduling
@PropertySource(value = {"file:conf/ipsos.properties"}, encoding = "UTF-8", ignoreResourceNotFound = true) @PropertySource(value = {"file:conf/smartbi.properties"}, encoding = "UTF-8", ignoreResourceNotFound = true)
public class Application { public class Application {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(Application.class, args); SpringApplication.run(Application.class, args);

@ -7,7 +7,7 @@ import com.ipsos.base.domain.SysMenu;
import com.ipsos.base.domain.SysMenuExample; import com.ipsos.base.domain.SysMenuExample;
import com.ipsos.base.mapper.SysMenuMapper; import com.ipsos.base.mapper.SysMenuMapper;
import com.ipsos.base.mapper.ext.ExtPluginSysMenuMapper; import com.ipsos.base.mapper.ext.ExtPluginSysMenuMapper;
import com.ipsos.common.dto.PluginSysMenu; import com.ipsos.plugins.common.dto.PluginSysMenu;
import com.ipsos.plugins.util.PluginUtils; import com.ipsos.plugins.util.PluginUtils;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

@ -1,6 +1,6 @@
package com.ipsos.base.mapper.ext; package com.ipsos.base.mapper.ext;
import com.ipsos.common.dto.PluginSysMenu; import com.ipsos.plugins.common.dto.PluginSysMenu;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;

@ -5,6 +5,7 @@ import com.ipsos.base.domain.Datasource;
import com.ipsos.commons.utils.CompressUtils; import com.ipsos.commons.utils.CompressUtils;
import com.ipsos.commons.utils.MybatisInterceptorConfig; import com.ipsos.commons.utils.MybatisInterceptorConfig;
import com.ipsos.interceptor.MybatisInterceptor; import com.ipsos.interceptor.MybatisInterceptor;
import com.ipsos.base.domain.*;
import com.ipsos.base.domain.AuthSource; import com.ipsos.base.domain.AuthSource;
import com.ipsos.base.domain.FileContent; import com.ipsos.base.domain.FileContent;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;

@ -9,7 +9,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration @Configuration
public class WebMvcConfig implements WebMvcConfigurer { public class WebMvcConfig implements WebMvcConfigurer {
@Value("${geo.rootpath:file:conf/data/feature/full/}") @Value("${geo.rootpath:file:/opt/dataease/data/feature/full/}")
private String geoPath; private String geoPath;
@Override @Override

@ -1,6 +1,6 @@
package com.ipsos.controller.sys.request; package com.ipsos.controller.sys.request;
import com.ipsos.common.entity.XpackLdapUserEntity; import com.ipsos.plugins.common.entity.XpackLdapUserEntity;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;

@ -4,7 +4,6 @@ import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.xiaoymin.knife4j.annotations.ApiSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import com.ipsos.base.domain.Datasource; import com.ipsos.base.domain.Datasource;
import com.ipsos.datasource.dto.TableFiled;
import com.ipsos.dto.DatasourceDTO; import com.ipsos.dto.DatasourceDTO;
import com.ipsos.commons.utils.AuthUtils; import com.ipsos.commons.utils.AuthUtils;
import com.ipsos.commons.utils.PageUtils; import com.ipsos.commons.utils.PageUtils;
@ -21,7 +20,6 @@ import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List; import java.util.List;
import java.util.Map;
@Api(tags = "数据源:数据源管理") @Api(tags = "数据源:数据源管理")
@ApiSupport(order = 30) @ApiSupport(order = 30)
@ -85,18 +83,6 @@ public class DatasourceController {
return datasourceService.getTables(datasource); return datasourceService.getTables(datasource);
} }
@ApiOperation("查询表字段")
@PostMapping("/getFields/{tableName}")
public List<TableFiled> getFields(@RequestBody Datasource datasource, @PathVariable String tableName) throws Exception {
return datasourceService.getFields(datasource, tableName);
}
@ApiOperation("查询表字段")
@PostMapping("/getData/{tableName}/{fetchSize}")
public Map<String, List> getData(@RequestBody Datasource datasource, @PathVariable String tableName, @PathVariable Integer fetchSize) throws Exception {
return datasourceService.getDataByDatasource(datasource, tableName, 0, fetchSize);
}
@ApiIgnore @ApiIgnore
@PostMapping("/getSchema") @PostMapping("/getSchema")
public List<String> getSchema(@RequestBody Datasource datasource) throws Exception { public List<String> getSchema(@RequestBody Datasource datasource) throws Exception {

@ -30,7 +30,6 @@ import com.ipsos.datasource.dto.*;
import com.ipsos.datasource.request.DatasourceRequest; import com.ipsos.datasource.request.DatasourceRequest;
import com.ipsos.exception.DataEaseException; import com.ipsos.exception.DataEaseException;
import com.ipsos.i18n.Translator; import com.ipsos.i18n.Translator;
import com.ipsos.provider.QueryProvider;
import com.ipsos.service.dataset.DataSetGroupService; import com.ipsos.service.dataset.DataSetGroupService;
import com.ipsos.service.message.DeMsgutil; import com.ipsos.service.message.DeMsgutil;
@ -97,31 +96,30 @@ public class DatasourceService {
List<DatasourceDTO> datasourceDTOS = extDataSourceMapper.queryUnion(request); List<DatasourceDTO> datasourceDTOS = extDataSourceMapper.queryUnion(request);
datasourceDTOS.forEach(datasourceDTO -> { datasourceDTOS.forEach(datasourceDTO -> {
DatasourceTypes datasourceType = DatasourceTypes.valueOf(datasourceDTO.getType()); DatasourceTypes datasourceType = DatasourceTypes.valueOf(datasourceDTO.getType());
try { try{
switch (datasourceType) { switch (datasourceType) {
case mysql: case mysql:
case mariadb: case mariadb:
case de_doris: case de_doris:
case ds_doris: case ds_doris:
datasourceDTO.setConfiguration(JSONObject.toJSONString(new Gson().fromJson(datasourceDTO.getConfiguration(), MysqlConfiguration.class))); datasourceDTO.setConfiguration(JSONObject.toJSONString(new Gson().fromJson(datasourceDTO.getConfiguration(), MysqlConfiguration.class)) );
break; break;
case sqlServer: case sqlServer:
datasourceDTO.setConfiguration(JSONObject.toJSONString(new Gson().fromJson(datasourceDTO.getConfiguration(), SqlServerConfiguration.class))); datasourceDTO.setConfiguration(JSONObject.toJSONString(new Gson().fromJson(datasourceDTO.getConfiguration(), SqlServerConfiguration.class)) );
break; break;
case oracle: case oracle:
datasourceDTO.setConfiguration(JSONObject.toJSONString(new Gson().fromJson(datasourceDTO.getConfiguration(), OracleConfiguration.class))); datasourceDTO.setConfiguration(JSONObject.toJSONString(new Gson().fromJson(datasourceDTO.getConfiguration(), OracleConfiguration.class)) );
break; break;
case pg: case pg:
datasourceDTO.setConfiguration(JSONObject.toJSONString(new Gson().fromJson(datasourceDTO.getConfiguration(), PgConfiguration.class))); datasourceDTO.setConfiguration(JSONObject.toJSONString(new Gson().fromJson(datasourceDTO.getConfiguration(), PgConfiguration.class)) );
break; break;
case ck: case ck:
datasourceDTO.setConfiguration(JSONObject.toJSONString(new Gson().fromJson(datasourceDTO.getConfiguration(), CHConfiguration.class))); datasourceDTO.setConfiguration(JSONObject.toJSONString(new Gson().fromJson(datasourceDTO.getConfiguration(), CHConfiguration.class)) );
break; break;
default: default:
break; break;
} }
} catch (Exception ignore) { }catch (Exception ignore){}
}
}); });
return datasourceDTOS; return datasourceDTOS;
@ -145,7 +143,7 @@ public class DatasourceService {
DatasetTableExample example = new DatasetTableExample(); DatasetTableExample example = new DatasetTableExample();
example.createCriteria().andDataSourceIdEqualTo(datasourceId); example.createCriteria().andDataSourceIdEqualTo(datasourceId);
List<DatasetTable> datasetTables = datasetTableMapper.selectByExample(example); List<DatasetTable> datasetTables = datasetTableMapper.selectByExample(example);
if (CollectionUtils.isNotEmpty(datasetTables)) { if(CollectionUtils.isNotEmpty(datasetTables)){
DataEaseException.throwException(datasetTables.size() + Translator.get("i18n_datasource_not_allow_delete_msg")); DataEaseException.throwException(datasetTables.size() + Translator.get("i18n_datasource_not_allow_delete_msg"));
} }
Datasource datasource = datasourceMapper.selectByPrimaryKey(datasourceId); Datasource datasource = datasourceMapper.selectByPrimaryKey(datasourceId);
@ -168,8 +166,8 @@ public class DatasourceService {
DatasourceRequest datasourceRequest = new DatasourceRequest(); DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(datasource); datasourceRequest.setDatasource(datasource);
datasourceProvider.checkStatus(datasourceRequest); datasourceProvider.checkStatus(datasourceRequest);
return ResultHolder.success(datasourceProvider.getTables(datasourceRequest)); return ResultHolder.success("Success");
} catch (Exception e) { }catch (Exception e){
return ResultHolder.error("Datasource is invalid: " + e.getMessage()); return ResultHolder.error("Datasource is invalid: " + e.getMessage());
} }
@ -177,8 +175,8 @@ public class DatasourceService {
public ResultHolder validate(String datasourceId) { public ResultHolder validate(String datasourceId) {
Datasource datasource = datasourceMapper.selectByPrimaryKey(datasourceId); Datasource datasource = datasourceMapper.selectByPrimaryKey(datasourceId);
if (datasource == null) { if(datasource == null){
return ResultHolder.error("Can not find datasource: " + datasourceId); return ResultHolder.error("Can not find datasource: "+ datasourceId);
} }
try { try {
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType()); DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType());
@ -186,11 +184,11 @@ public class DatasourceService {
datasourceRequest.setDatasource(datasource); datasourceRequest.setDatasource(datasource);
datasourceProvider.checkStatus(datasourceRequest); datasourceProvider.checkStatus(datasourceRequest);
datasource.setStatus("Success"); datasource.setStatus("Success");
return ResultHolder.success(datasourceProvider.getTables(datasourceRequest)); return ResultHolder.success("Success");
} catch (Exception e) { }catch (Exception e){
datasource.setStatus("Error"); datasource.setStatus("Error");
return ResultHolder.error("Datasource is invalid: " + e.getMessage()); return ResultHolder.error("Datasource is invalid: " + e.getMessage());
} finally { }finally {
datasourceMapper.updateByPrimaryKey(datasource); datasourceMapper.updateByPrimaryKey(datasource);
} }
} }
@ -202,14 +200,6 @@ public class DatasourceService {
return datasourceProvider.getSchema(datasourceRequest); return datasourceProvider.getSchema(datasourceRequest);
} }
public ResultHolder getTablesByDS(Datasource datasource) throws Exception {
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType());
DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(datasource);
datasourceProvider.checkStatus(datasourceRequest);
return ResultHolder.success(datasourceProvider.getTables(datasourceRequest));
}
public List<DBTableDTO> getTables(Datasource datasource) throws Exception { public List<DBTableDTO> getTables(Datasource datasource) throws Exception {
Datasource ds = datasourceMapper.selectByPrimaryKey(datasource.getId()); Datasource ds = datasourceMapper.selectByPrimaryKey(datasource.getId());
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType()); DatasourceProvider datasourceProvider = ProviderFactory.getProvider(ds.getType());
@ -254,24 +244,6 @@ public class DatasourceService {
return datasourceMapper.selectByPrimaryKey(id); return datasourceMapper.selectByPrimaryKey(id);
} }
public List<TableFiled> getFields(Datasource datasource, String tableName) throws Exception {
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType());
DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(datasource);
QueryProvider qp = ProviderFactory.getQueryProvider(datasource.getType());
datasourceRequest.setQuery(qp.convertTableToSql(tableName, datasource));
return datasourceProvider.fetchResultField(datasourceRequest);
}
public Map<String, List> getDataByDatasource(Datasource datasource, String tableName, Integer offset, Integer fetchSize) throws Exception {
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType());
DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(datasource);
QueryProvider qp = ProviderFactory.getQueryProvider(datasource.getType());
datasourceRequest.setQuery(qp.createSQLPreview(qp.convertTableToSql(tableName, datasource), null, offset, fetchSize));
return datasourceProvider.fetchResultAndField(datasourceRequest);
}
public void initAllDataSourceConnectionPool() { public void initAllDataSourceConnectionPool() {
List<Datasource> datasources = datasourceMapper.selectByExampleWithBLOBs(new DatasourceExample()); List<Datasource> datasources = datasourceMapper.selectByExampleWithBLOBs(new DatasourceExample());
datasources.forEach(datasource -> { datasources.forEach(datasource -> {
@ -295,7 +267,7 @@ public class DatasourceService {
} }
} }
public void updateDatasourceStatus() { public void updateDatasourceStatus(){
List<Datasource> datasources = datasourceMapper.selectByExampleWithBLOBs(new DatasourceExample()); List<Datasource> datasources = datasourceMapper.selectByExampleWithBLOBs(new DatasourceExample());
datasources.forEach(datasource -> { datasources.forEach(datasource -> {
// checkAndUpdateDatasourceStatus(datasource); // checkAndUpdateDatasourceStatus(datasource);
@ -303,7 +275,7 @@ public class DatasourceService {
}); });
} }
private void checkAndUpdateDatasourceStatus(Datasource datasource) { private void checkAndUpdateDatasourceStatus(Datasource datasource){
try { try {
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType()); DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType());
DatasourceRequest datasourceRequest = new DatasourceRequest(); DatasourceRequest datasourceRequest = new DatasourceRequest();
@ -315,7 +287,7 @@ public class DatasourceService {
} }
} }
private void checkAndUpdateDatasourceStatus(Datasource datasource, Boolean withMsg) { private void checkAndUpdateDatasourceStatus(Datasource datasource, Boolean withMsg){
try { try {
DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType()); DatasourceProvider datasourceProvider = ProviderFactory.getProvider(datasource.getType());
DatasourceRequest datasourceRequest = new DatasourceRequest(); DatasourceRequest datasourceRequest = new DatasourceRequest();

@ -4,8 +4,6 @@ import com.ipsos.base.domain.Datasource;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* Author: wangjiahao * Author: wangjiahao
* Date: 2021-05-18 * Date: 2021-05-18
@ -17,6 +15,4 @@ public class DatasourceDTO extends Datasource {
@ApiModelProperty("权限") @ApiModelProperty("权限")
private String privileges; private String privileges;
private List<String> tables;
} }

@ -1,6 +1,6 @@
package com.ipsos.plugins.loader; package com.ipsos.plugins.loader;
import com.ipsos.common.annotation.PluginResultMap; import com.ipsos.plugins.common.annotation.PluginResultMap;
import com.ipsos.plugins.config.SpringContextUtil; import com.ipsos.plugins.config.SpringContextUtil;
import org.apache.ibatis.session.Configuration; import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactory;

@ -1,9 +1,9 @@
package com.ipsos.plugins.server; package com.ipsos.plugins.server;
import com.ipsos.commons.utils.ServletUtils; import com.ipsos.commons.utils.ServletUtils;
import com.ipsos.common.dto.PluginSysMenu; import com.ipsos.plugins.common.dto.PluginSysMenu;
import com.ipsos.common.service.PluginComponentService; import com.ipsos.plugins.common.service.PluginComponentService;
import com.ipsos.common.service.PluginMenuService; import com.ipsos.plugins.common.service.PluginMenuService;
import com.ipsos.plugins.config.SpringContextUtil; import com.ipsos.plugins.config.SpringContextUtil;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;

@ -3,7 +3,7 @@ package com.ipsos.plugins.server;
import com.ipsos.controller.sys.response.DeptNodeResponse; import com.ipsos.controller.sys.response.DeptNodeResponse;
import com.ipsos.commons.utils.BeanUtils; import com.ipsos.commons.utils.BeanUtils;
import com.ipsos.common.entity.XpackGridRequest; import com.ipsos.plugins.common.entity.XpackGridRequest;
import com.ipsos.plugins.config.SpringContextUtil; import com.ipsos.plugins.config.SpringContextUtil;
import com.ipsos.plugins.xpack.dept.dto.request.XpackCreateDept; import com.ipsos.plugins.xpack.dept.dto.request.XpackCreateDept;
import com.ipsos.plugins.xpack.dept.dto.request.XpackDeleteDept; import com.ipsos.plugins.xpack.dept.dto.request.XpackDeleteDept;

@ -1,7 +1,7 @@
package com.ipsos.plugins.server; package com.ipsos.plugins.server;
import com.ipsos.common.entity.XpackLdapUserEntity; import com.ipsos.plugins.common.entity.XpackLdapUserEntity;
import com.ipsos.plugins.config.SpringContextUtil; import com.ipsos.plugins.config.SpringContextUtil;
import com.ipsos.plugins.xpack.display.dto.response.SysSettingDto; import com.ipsos.plugins.xpack.display.dto.response.SysSettingDto;
import com.ipsos.plugins.xpack.ldap.dto.response.LdapInfo; import com.ipsos.plugins.xpack.ldap.dto.response.LdapInfo;

@ -5,7 +5,7 @@ import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.ipsos.commons.utils.PageUtils; import com.ipsos.commons.utils.PageUtils;
import com.ipsos.commons.utils.Pager; import com.ipsos.commons.utils.Pager;
import com.ipsos.common.entity.XpackGridRequest; import com.ipsos.plugins.common.entity.XpackGridRequest;
import com.ipsos.plugins.config.SpringContextUtil; import com.ipsos.plugins.config.SpringContextUtil;
import com.ipsos.plugins.xpack.role.dto.response.XpackRoleDto; import com.ipsos.plugins.xpack.role.dto.response.XpackRoleDto;
import com.ipsos.plugins.xpack.role.dto.response.XpackRoleItemDto; import com.ipsos.plugins.xpack.role.dto.response.XpackRoleItemDto;

@ -3,8 +3,8 @@ package com.ipsos.plugins.util;
import com.ipsos.plugins.config.SpringContextUtil; import com.ipsos.plugins.config.SpringContextUtil;
import com.ipsos.commons.license.DefaultLicenseService; import com.ipsos.commons.license.DefaultLicenseService;
import com.ipsos.commons.license.F2CLicenseResponse; import com.ipsos.commons.license.F2CLicenseResponse;
import com.ipsos.common.dto.PluginSysMenu; import com.ipsos.plugins.common.dto.PluginSysMenu;
import com.ipsos.common.service.PluginMenuService; import com.ipsos.plugins.common.service.PluginMenuService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

@ -7,7 +7,6 @@ import com.ipsos.datasource.dto.JdbcConfiguration;
import com.ipsos.dto.chart.ChartCustomFilterDTO; import com.ipsos.dto.chart.ChartCustomFilterDTO;
import com.ipsos.dto.chart.ChartViewFieldDTO; import com.ipsos.dto.chart.ChartViewFieldDTO;
import com.ipsos.dto.sqlObj.SQLObj; import com.ipsos.dto.sqlObj.SQLObj;
import com.ipsos.provider.mysql.MySQLConstants;
import com.ipsos.provider.pg.PgConstants; import com.ipsos.provider.pg.PgConstants;
import com.ipsos.base.domain.DatasetTableField; import com.ipsos.base.domain.DatasetTableField;
@ -23,8 +22,6 @@ public abstract class QueryProvider {
public abstract String createSQLPreview(String sql, String orderBy); public abstract String createSQLPreview(String sql, String orderBy);
public abstract String createSQLPreview(String sql, String orderBy, Integer offset, Integer limit);
public abstract String createQuerySQL(String table, List<DatasetTableField> fields, boolean isGroup, Datasource ds); public abstract String createQuerySQL(String table, List<DatasetTableField> fields, boolean isGroup, Datasource ds);
public abstract String createQuerySQLAsTmp(String sql, List<DatasetTableField> fields, boolean isGroup); public abstract String createQuerySQLAsTmp(String sql, List<DatasetTableField> fields, boolean isGroup);

@ -101,12 +101,7 @@ public class CKQueryProvider extends QueryProvider {
@Override @Override
public String createSQLPreview(String sql, String orderBy) { public String createSQLPreview(String sql, String orderBy) {
return createSQLPreview(sql, orderBy, 0, 1000); return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp " + " LIMIT 0,1000";
}
@Override
public String createSQLPreview(String sql, String orderBy, Integer offset, Integer limit) {
return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp " + " LIMIT " + offset + "," + limit;
} }
@Override @Override

@ -73,12 +73,7 @@ public class DorisQueryProvider extends QueryProvider {
@Override @Override
public String createSQLPreview(String sql, String orderBy) { public String createSQLPreview(String sql, String orderBy) {
return createSQLPreview(sql, orderBy, 0, 1000); return "SELECT * FROM (" + sql + ") AS tmp ORDER BY " + orderBy + " LIMIT 0,1000";
}
@Override
public String createSQLPreview(String sql, String orderBy, Integer offset, Integer limit) {
return "SELECT * FROM (" + sql + ") AS tmp ORDER BY " + orderBy + " LIMIT " + offset + "," + limit;
} }
@Override @Override

@ -105,12 +105,7 @@ public class EsQueryProvider extends QueryProvider {
@Override @Override
public String createSQLPreview(String sql, String orderBy) { public String createSQLPreview(String sql, String orderBy) {
return createSQLPreview(sql, orderBy, 0, 1000); return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp " + " LIMIT 1000";
}
@Override
public String createSQLPreview(String sql, String orderBy, Integer offset, Integer limit) {
return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp " + " LIMIT " + limit;
} }
@Override @Override

@ -73,12 +73,7 @@ public class MysqlQueryProvider extends QueryProvider {
@Override @Override
public String createSQLPreview(String sql, String orderBy) { public String createSQLPreview(String sql, String orderBy) {
return createSQLPreview(sql, orderBy, 0, 1000); return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp " + " LIMIT 0,1000";
}
@Override
public String createSQLPreview(String sql, String orderBy, Integer offset, Integer limit) {
return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp " + " LIMIT " + offset + "," + limit;
} }
@Override @Override
@ -88,7 +83,6 @@ public class MysqlQueryProvider extends QueryProvider {
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0)) .tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
.build(); .build();
List<SQLObj> xFields = new ArrayList<>(); List<SQLObj> xFields = new ArrayList<>();
String groupBySum = "";
if (CollectionUtils.isNotEmpty(fields)) { if (CollectionUtils.isNotEmpty(fields)) {
for (int i = 0; i < fields.size(); i++) { for (int i = 0; i < fields.size(); i++) {
DatasetTableField f = fields.get(i); DatasetTableField f = fields.get(i);
@ -96,13 +90,6 @@ public class MysqlQueryProvider extends QueryProvider {
if (ObjectUtils.isNotEmpty(f.getExtField()) && f.getExtField() == 2) { if (ObjectUtils.isNotEmpty(f.getExtField()) && f.getExtField() == 2) {
// 解析origin name中有关联的字段生成sql表达式 // 解析origin name中有关联的字段生成sql表达式
originField = calcFieldRegex(f.getOriginName(), tableObj); originField = calcFieldRegex(f.getOriginName(), tableObj);
if (originField.substring(0,3).toLowerCase().equals("sum")) {
String[] originFields = originField.split("\\|");
if (originFields.length > 1) {
originField = originFields[0];
groupBySum = originFields[1];
}
}
} else if (ObjectUtils.isNotEmpty(f.getExtField()) && f.getExtField() == 1) { } else if (ObjectUtils.isNotEmpty(f.getExtField()) && f.getExtField() == 1) {
originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), f.getOriginName()); originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), f.getOriginName());
} else { } else {
@ -149,7 +136,6 @@ public class MysqlQueryProvider extends QueryProvider {
st_sql.add("isGroup", isGroup); st_sql.add("isGroup", isGroup);
if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields); if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields);
if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj); if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj);
if (StringUtils.isNotEmpty(groupBySum)) st_sql.add("groupBy", groupBySum);
return st_sql.render(); return st_sql.render();
} }
@ -231,7 +217,7 @@ public class MysqlQueryProvider extends QueryProvider {
} }
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i); String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i);
// 处理纵轴字段 // 处理纵轴字段
yFields.add(getYFields(y, originField, fieldAlias, table)); yFields.add(getYFields(y, originField, fieldAlias));
// 处理纵轴过滤 // 处理纵轴过滤
yWheres.addAll(getYWheres(y, originField, fieldAlias)); yWheres.addAll(getYWheres(y, originField, fieldAlias));
// 处理纵轴排序 // 处理纵轴排序
@ -423,7 +409,7 @@ public class MysqlQueryProvider extends QueryProvider {
} }
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i); String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i);
// 处理纵轴字段 // 处理纵轴字段
yFields.add(getYFields(y, originField, fieldAlias, table)); yFields.add(getYFields(y, originField, fieldAlias));
// 处理纵轴过滤 // 处理纵轴过滤
yWheres.addAll(getYWheres(y, originField, fieldAlias)); yWheres.addAll(getYWheres(y, originField, fieldAlias));
// 处理纵轴排序 // 处理纵轴排序
@ -537,7 +523,7 @@ public class MysqlQueryProvider extends QueryProvider {
} }
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i); String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i);
// 处理纵轴字段 // 处理纵轴字段
yFields.add(getYFields(y, originField, fieldAlias, table)); yFields.add(getYFields(y, originField, fieldAlias));
// 处理纵轴过滤 // 处理纵轴过滤
yWheres.addAll(getYWheres(y, originField, fieldAlias)); yWheres.addAll(getYWheres(y, originField, fieldAlias));
// 处理纵轴排序 // 处理纵轴排序
@ -624,7 +610,7 @@ public class MysqlQueryProvider extends QueryProvider {
} }
String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i); String fieldAlias = String.format(SQLConstants.FIELD_ALIAS_Y_PREFIX, i);
// 处理纵轴字段 // 处理纵轴字段
yFields.add(getYFields(y, originField, fieldAlias, table)); yFields.add(getYFields(y, originField, fieldAlias));
// 处理纵轴过滤 // 处理纵轴过滤
yWheres.addAll(getYWheres(y, originField, fieldAlias)); yWheres.addAll(getYWheres(y, originField, fieldAlias));
// 处理纵轴排序 // 处理纵轴排序
@ -985,7 +971,7 @@ public class MysqlQueryProvider extends QueryProvider {
return list; return list;
} }
private SQLObj getYFields(ChartViewFieldDTO y, String originField, String fieldAlias, String tableName) { private SQLObj getYFields(ChartViewFieldDTO y, String originField, String fieldAlias) {
String fieldName = ""; String fieldName = "";
if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) { if (StringUtils.equalsIgnoreCase(y.getOriginName(), "*")) {
fieldName = MySQLConstants.AGG_COUNT; fieldName = MySQLConstants.AGG_COUNT;
@ -996,8 +982,6 @@ public class MysqlQueryProvider extends QueryProvider {
String cast = String.format(MySQLConstants.CAST, originField, y.getDeType() == 2 ? MySQLConstants.DEFAULT_INT_FORMAT : MySQLConstants.DEFAULT_FLOAT_FORMAT); String cast = String.format(MySQLConstants.CAST, originField, y.getDeType() == 2 ? MySQLConstants.DEFAULT_INT_FORMAT : MySQLConstants.DEFAULT_FLOAT_FORMAT);
String agg = String.format(MySQLConstants.AGG_FIELD, y.getSummary(), cast); String agg = String.format(MySQLConstants.AGG_FIELD, y.getSummary(), cast);
fieldName = String.format(MySQLConstants.CAST, agg, MySQLConstants.DEFAULT_FLOAT_FORMAT); fieldName = String.format(MySQLConstants.CAST, agg, MySQLConstants.DEFAULT_FLOAT_FORMAT);
} else if (StringUtils.equalsIgnoreCase(y.getSummary(), "ratio")) {
fieldName = "sum(" + originField + ")/(SELECT sum(" + y.getOriginName() + ") FROM " + tableName + ")*100";
} else { } else {
String cast = String.format(MySQLConstants.CAST, originField, y.getDeType() == 2 ? MySQLConstants.DEFAULT_INT_FORMAT : MySQLConstants.DEFAULT_FLOAT_FORMAT); String cast = String.format(MySQLConstants.CAST, originField, y.getDeType() == 2 ? MySQLConstants.DEFAULT_INT_FORMAT : MySQLConstants.DEFAULT_FLOAT_FORMAT);
fieldName = String.format(MySQLConstants.AGG_FIELD, y.getSummary(), cast); fieldName = String.format(MySQLConstants.AGG_FIELD, y.getSummary(), cast);
@ -1008,9 +992,6 @@ public class MysqlQueryProvider extends QueryProvider {
.fieldAlias(fieldAlias) .fieldAlias(fieldAlias)
.build(); .build();
} }
private SQLObj getYFields(ChartViewFieldDTO y, String originField, String fieldAlias) {
return this.getYFields(y, originField, fieldAlias, null);
}
private List<SQLObj> getYWheres(ChartViewFieldDTO y, String originField, String fieldAlias) { private List<SQLObj> getYWheres(ChartViewFieldDTO y, String originField, String fieldAlias) {
List<SQLObj> list = new ArrayList<>(); List<SQLObj> list = new ArrayList<>();

@ -88,12 +88,7 @@ public class OracleQueryProvider extends QueryProvider {
@Override @Override
public String createSQLPreview(String sql, String orderBy) { public String createSQLPreview(String sql, String orderBy) {
return createSQLPreview(sql, orderBy, 0, 1000); return "SELECT * FROM (" + sqlFix(sql) + ") DE_TMP " + " WHERE rownum <= 1000";
}
@Override
public String createSQLPreview(String sql, String orderBy, Integer offset, Integer limit) {
return "SELECT * FROM (" + sqlFix(sql) + ") DE_TMP " + " WHERE rownum <= " + limit;
} }
@Override @Override

@ -93,12 +93,7 @@ public class PgQueryProvider extends QueryProvider {
@Override @Override
public String createSQLPreview(String sql, String orderBy) { public String createSQLPreview(String sql, String orderBy) {
return createSQLPreview(sql, orderBy, 0, 1000); return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp " + " LIMIT 1000 offset 0";
}
@Override
public String createSQLPreview(String sql, String orderBy, Integer offset, Integer limit) {
return "SELECT * FROM (" + sqlFix(sql) + ") AS tmp " + " LIMIT " + limit + " offset " + offset;
} }
@Override @Override

@ -81,12 +81,7 @@ public class SqlserverQueryProvider extends QueryProvider {
@Override @Override
public String createSQLPreview(String sql, String orderBy) { public String createSQLPreview(String sql, String orderBy) {
return createSQLPreview(sql, orderBy, 0, 1000); return "SELECT top 1000 * FROM (" + sqlFix(sql) + ") AS tmp";
}
@Override
public String createSQLPreview(String sql, String orderBy, Integer offset, Integer limit) {
return "SELECT top " + limit + " * FROM (" + sqlFix(sql) + ") AS tmp";
} }
@Override @Override

@ -197,11 +197,6 @@ public class ChartViewService {
}.getType()); }.getType());
yAxis.addAll(yAxisExt); yAxis.addAll(yAxisExt);
} }
if (StringUtils.equalsIgnoreCase(view.getType(), "table-normal")) {
List<ChartViewFieldDTO> yAxisExt = new Gson().fromJson(view.getYAxisExt(), new TypeToken<List<ChartViewFieldDTO>>() {
}.getType());
xAxis.addAll(yAxisExt);
}
List<ChartViewFieldDTO> extStack = new Gson().fromJson(view.getExtStack(), new TypeToken<List<ChartViewFieldDTO>>() { List<ChartViewFieldDTO> extStack = new Gson().fromJson(view.getExtStack(), new TypeToken<List<ChartViewFieldDTO>>() {
}.getType()); }.getType());
List<ChartViewFieldDTO> extBubble = new Gson().fromJson(view.getExtBubble(), new TypeToken<List<ChartViewFieldDTO>>() { List<ChartViewFieldDTO> extBubble = new Gson().fromJson(view.getExtBubble(), new TypeToken<List<ChartViewFieldDTO>>() {

@ -1,7 +1,6 @@
package com.ipsos.service.sys; package com.ipsos.service.sys;
import com.ipsos.auth.api.dto.CurrentUserDto; import com.ipsos.auth.api.dto.CurrentUserDto;
import com.ipsos.common.entity.XpackLdapUserEntity;
import com.ipsos.controller.sys.base.BaseGridRequest; import com.ipsos.controller.sys.base.BaseGridRequest;
import com.ipsos.controller.sys.request.LdapAddRequest; import com.ipsos.controller.sys.request.LdapAddRequest;
import com.ipsos.controller.sys.request.SysUserCreateRequest; import com.ipsos.controller.sys.request.SysUserCreateRequest;
@ -22,6 +21,7 @@ import com.ipsos.commons.utils.AuthUtils;
import com.ipsos.commons.utils.BeanUtils; import com.ipsos.commons.utils.BeanUtils;
import com.ipsos.commons.utils.CodingUtil; import com.ipsos.commons.utils.CodingUtil;
import com.ipsos.i18n.Translator; import com.ipsos.i18n.Translator;
import com.ipsos.plugins.common.entity.XpackLdapUserEntity;
import com.ipsos.plugins.xpack.oidc.dto.SSOUserInfo; import com.ipsos.plugins.xpack.oidc.dto.SSOUserInfo;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;

@ -1,7 +1,7 @@
spring.application.name=ipsos spring.application.name=dataease
server.port=8081 server.port=8081
#spring.aop.proxy-target-class=true
# Hikari # Hikari
spring.datasource.type=com.zaxxer.hikari.HikariDataSource spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.minimum-idle=5 spring.datasource.hikari.minimum-idle=5
@ -36,9 +36,7 @@ knife4j.setting.enableAfterScript=false
app.version=@project.version@ app.version=@project.version@
logging.file.path=/opt/smartbi/logs/${spring.application.name}
logging.file.path=conf/logs/${spring.application.name}
# view # view
spring.resources.static-locations=classpath:/templates/,classpath:/static/ spring.resources.static-locations=classpath:/templates/,classpath:/static/
@ -75,7 +73,8 @@ spring.cache.ehcache.config=classpath:/ehcache/ehcache.xml
#logging.level.org.springframework.boot.web=trace #logging.level.org.springframework.boot.web=trace
#spring.mvc.log-request-details=true #spring.mvc.log-request-details=true
pagehelper.PageRowBounds=true pagehelper.PageRowBounds=true
#excel等用户上传文件路径
upload.file.path=/opt/smartbi/data/kettle/
dataease.sqlinjection.whitelists=/dataset/table/sqlPreview,/dataset/table/update dataease.sqlinjection.whitelists=/dataset/table/sqlPreview,/dataset/table/update

@ -71,7 +71,7 @@ CREATE TABLE `sys_msg_setting` (
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT=''; ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='';
BEGIN; BEGIN;
INSERT INTO `sys_menu` VALUES (53, 1, 3, 1, '', 'sys-msg-web', 'msg/index', 1000, 'all-msg', 'system-msg-web', b'0', b'0', b'1', NULL, NULL, NULL, NULL, NULL); INSERT INTO `sys_menu` VALUES (53, 1, 3, 1, '', 'sys-msg-web', 'msg/index', 1000, 'all-msg', 'system-msg-web', b'0', b'0', b'0', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `sys_menu` VALUES (54, 53, 0, 1, '', 'sys-msg-web-all', 'msg/all', 1, 'web-msg', 'all', b'0', b'0', b'0', NULL, NULL, NULL, NULL, NULL); INSERT INTO `sys_menu` VALUES (54, 53, 0, 1, '', 'sys-msg-web-all', 'msg/all', 1, 'web-msg', 'all', b'0', b'0', b'0', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `sys_menu` VALUES (55, 53, 0, 1, '', 'sys-msg-web-unread', 'msg/unread', 2, 'unread-msg', 'unread', b'0', b'0', b'0', NULL, NULL, NULL, NULL, NULL); INSERT INTO `sys_menu` VALUES (55, 53, 0, 1, '', 'sys-msg-web-unread', 'msg/unread', 2, 'unread-msg', 'unread', b'0', b'0', b'0', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `sys_menu` VALUES (56, 53, 0, 1, '', 'sys-msg-web-readed', 'msg/readed', 3, 'readed-msg', 'readed', b'0', b'0', b'0', NULL, NULL, NULL, NULL, NULL); INSERT INTO `sys_menu` VALUES (56, 53, 0, 1, '', 'sys-msg-web-readed', 'msg/readed', 3, 'readed-msg', 'readed', b'0', b'0', b'0', NULL, NULL, NULL, NULL, NULL);

@ -1,4 +1,4 @@
INSERT INTO `sys_menu` VALUES (58, 1, 0, 1, 'i18n_timed_task', 'sys-task-dataset', 'system/task/dataset', 1001, 'task', 'dataset', b'0', b'0', b'1', 'task:read', NULL, NULL, NULL, NULL); INSERT INTO `sys_menu` VALUES (58, 1, 0, 1, 'i18n_timed_task', 'sys-task-dataset', 'system/task/dataset', 1001, 'task', 'dataset', b'0', b'0', b'0', 'task:read', NULL, NULL, NULL, NULL);
ALTER TABLE `dataset_table_task` ALTER TABLE `dataset_table_task`
ADD COLUMN `last_exec_time` BIGINT(13) NULL DEFAULT NULL COMMENT '' AFTER `create_time`, ADD COLUMN `last_exec_time` BIGINT(13) NULL DEFAULT NULL COMMENT '' AFTER `create_time`,

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -8,27 +8,27 @@ COMMIT;
BEGIN; BEGIN;
INSERT INTO `sys_menu` VALUES (1, 0, 3, 0, '', 'system', 'Layout', 6, 'system', '/system', NULL, b'0', b'0', 'dir:sys', NULL, NULL, NULL, 1614916695777); INSERT INTO `sys_menu` VALUES (1, 0, 3, 0, '', 'system', 'Layout', 6, 'system', '/system', NULL, b'0', b'0', 'dir:sys', NULL, NULL, NULL, 1614916695777);
INSERT INTO `sys_menu` VALUES (2, 1, 4, 1, '', 'system-user', 'system/user/index', 1, 'peoples', 'user', NULL, b'0', b'0', 'user:read', NULL, NULL, NULL, 1620281952752); INSERT INTO `sys_menu` VALUES (2, 1, 4, 1, '', 'system-user', 'system/user/index', 1, 'peoples', 'user', NULL, b'0', b'0', 'user:read', NULL, NULL, NULL, 1620281952752);
INSERT INTO `sys_menu` VALUES (8, 0, 0, 1, '', 'dataset', 'dataset/index', 2, '', '/dataset', NULL, b'0', b'0', 'data:read', NULL, NULL, NULL, 1614916684821); INSERT INTO `sys_menu` VALUES (8, 0, 0, 1, '', 'dataset', 'dataset/index', 3, '', '/dataset', NULL, b'0', b'0', 'data:read', NULL, NULL, NULL, 1614916684821);
INSERT INTO `sys_menu` VALUES (10, 0, 0, 1, '', 'view', 'chart/index', 3, '', '/chart', NULL, b'0', b'0', 'chart:read', NULL, NULL, NULL, 1614915491036); INSERT INTO `sys_menu` VALUES (10, 0, 0, 1, '', 'view', 'chart/index', 2, '', '/chart', NULL, b'0', b'0', 'chart:read', NULL, NULL, NULL, 1614915491036);
INSERT INTO `sys_menu` VALUES (15, 2, 0, 2, '', NULL, NULL, 999, NULL, NULL, b'0', b'0', b'0', 'user:add', NULL, NULL, 1614930862373, 1614930862373); INSERT INTO `sys_menu` VALUES (15, 2, 0, 2, '', NULL, NULL, 999, NULL, NULL, b'0', b'0', b'0', 'user:add', NULL, NULL, 1614930862373, 1614930862373);
INSERT INTO `sys_menu` VALUES (16, 2, 0, 2, '', NULL, NULL, 999, NULL, NULL, b'0', b'0', b'0', 'user:del', NULL, NULL, 1614930903502, 1614930903502); INSERT INTO `sys_menu` VALUES (16, 2, 0, 2, '', NULL, NULL, 999, NULL, NULL, b'0', b'0', b'0', 'user:del', NULL, NULL, 1614930903502, 1614930903502);
INSERT INTO `sys_menu` VALUES (17, 2, 0, 2, '', NULL, NULL, 999, NULL, NULL, b'0', b'0', b'0', 'user:edit', NULL, NULL, 1614930935529, 1614930935529); INSERT INTO `sys_menu` VALUES (17, 2, 0, 2, '', NULL, NULL, 999, NULL, NULL, b'0', b'0', b'0', 'user:edit', NULL, NULL, 1614930935529, 1614930935529);
INSERT INTO `sys_menu` VALUES (24, 34, 0, 2, '', NULL, NULL, 997, NULL, NULL, b'0', b'0', b'0', 'datasource:add', NULL, NULL, 1614931168956, 1615783705537); INSERT INTO `sys_menu` VALUES (24, 34, 0, 2, '', NULL, NULL, 997, NULL, NULL, b'0', b'0', b'0', 'datasource:add', NULL, NULL, 1614931168956, 1615783705537);
INSERT INTO `sys_menu` VALUES (28, 2, 0, 2, '', NULL, NULL, 999, NULL, NULL, b'0', b'0', b'0', 'user:editPwd', NULL, NULL, 1615275128262, 1615275128262); INSERT INTO `sys_menu` VALUES (28, 2, 0, 2, '', NULL, NULL, 999, NULL, NULL, b'0', b'0', b'0', 'user:editPwd', NULL, NULL, 1615275128262, 1615275128262);
INSERT INTO `sys_menu` VALUES (30, 0, 0, 1, 'Dashboard', 'panel', 'panel/index', 4, NULL, '/panel', b'0', b'0', b'0', NULL, NULL, NULL, NULL, 1619081449067); INSERT INTO `sys_menu` VALUES (30, 0, 0, 1, 'Dashboard', 'panel', 'panel/index', 1, NULL, '/panel', b'0', b'0', b'0', NULL, NULL, NULL, NULL, 1619081449067);
INSERT INTO `sys_menu` VALUES (34, 0, 4, 1, '', 'datasource', 'system/datasource/index', 1, NULL, '/datasource', b'0', b'0', b'0', 'datasource:read', NULL, NULL, NULL, NULL); INSERT INTO `sys_menu` VALUES (34, 0, 4, 1, '', 'datasource', 'system/datasource/index', 4, NULL, '/datasource', b'0', b'0', b'0', 'datasource:read', NULL, NULL, NULL, NULL);
INSERT INTO `sys_menu` VALUES (35, 1, 0, 1, '', 'system-user-form', 'system/user/form', 10, '', 'user-form', b'0', b'0', b'1', NULL, NULL, NULL, NULL, NULL); INSERT INTO `sys_menu` VALUES (35, 1, 0, 1, '', 'system-user-form', 'system/user/form', 10, '', 'user-form', b'0', b'0', b'1', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `sys_menu` VALUES (39, 0, 0, 1, '', 'datasource-form', 'system/datasource/form', 5, NULL, '/ds-form', b'0', b'0', b'1', NULL, NULL, NULL, NULL, NULL); INSERT INTO `sys_menu` VALUES (39, 0, 0, 1, '', 'datasource-form', 'system/datasource/form', 5, NULL, '/ds-form', b'0', b'0', b'1', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `sys_menu` VALUES (40, 1, 0, 1, '', 'system-template', 'panel/template/index', 13, 'dashboard', 'panel/template/index', NULL, b'0', b'1', 'template:read', NULL, NULL, NULL, 1620444227389); INSERT INTO `sys_menu` VALUES (40, 1, 0, 1, '', 'system-template', 'panel/template/index', 13, 'dashboard', 'panel/template/index', NULL, b'0', b'0', 'template:read', NULL, NULL, NULL, 1620444227389);
INSERT INTO `sys_menu` VALUES (50, 0, 0, 1, '', 'person-info', 'system/user/privateForm', 999, NULL, '/person-info', b'0', b'0', b'1', NULL, NULL, NULL, NULL, NULL); INSERT INTO `sys_menu` VALUES (50, 0, 0, 1, '', 'person-info', 'system/user/privateForm', 999, NULL, '/person-info', b'0', b'0', b'1', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `sys_menu` VALUES (51, 0, 0, 1, '', 'person-pwd-reset', 'system/user/personPwd', 999, NULL, '/person-pwd', b'0', b'0', b'1', NULL, NULL, NULL, NULL, NULL); INSERT INTO `sys_menu` VALUES (51, 0, 0, 1, '', 'person-pwd-reset', 'system/user/personPwd', 999, NULL, '/person-pwd', b'0', b'0', b'1', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `sys_menu` VALUES (52, 0, 0, 1, '', 'about', 'system/about/index', 16, 'system', '/about', b'0', b'0', b'1', NULL, NULL, NULL, NULL, 1620897406691); INSERT INTO `sys_menu` VALUES (52, 0, 0, 1, '', 'about', 'system/about/index', 16, 'system', '/about', b'0', b'0', b'1', NULL, NULL, NULL, NULL, 1620897406691);
COMMIT; COMMIT;
BEGIN; BEGIN;
INSERT INTO `sys_user` VALUES (1, 0, 'admin', '', '男', NULL, 'admin@163com', '1ea361fd39b4c387a63b7c4d787845a3', b'1', 1, NULL, NULL, NULL, NULL, 1615184951534, 'zh_CN'); INSERT INTO `sys_user` VALUES (1, 0, 'admin', '', '男', NULL, 'admin@163com', '40b8893ea9ebc2d631c4bb42bb1e8996', b'1', 1, NULL, NULL, NULL, NULL, 1615184951534, 'zh_CN');
INSERT INTO `sys_user` VALUES (2, 1, 'demo', 'demo', '男', NULL, 'demo@163.com', '1ea361fd39b4c387a63b7c4d787845a3', b'0', 1, NULL, NULL, NULL, NULL, 1622533509697, 'zh_CN'); INSERT INTO `sys_user` VALUES (2, 1, 'demo', 'demo', '男', NULL, 'demo@163.com', '40b8893ea9ebc2d631c4bb42bb1e8996', b'0', 1, NULL, NULL, NULL, 1619086036234, 1622533509697, 'zh_CN');
COMMIT; COMMIT;

File diff suppressed because one or more lines are too long

@ -7,8 +7,7 @@
user.dir - 用户当前工作目录 user.dir - 用户当前工作目录
java.io.tmpdir - 默认临时文件路径 java.io.tmpdir - 默认临时文件路径
--> -->
<diskStore path="conf/data/ehcache"/> <diskStore path="/home/mispower/opt/dataease/data/ehcache"/>
<!-- <!--
name:缓存名称。 name:缓存名称。
maxElementsInMemory:jvm缓存最大数目 maxElementsInMemory:jvm缓存最大数目

@ -3,7 +3,7 @@
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" > "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" >
<generatorConfiguration> <generatorConfiguration>
<!--配置数据库连接的位置--> <!--配置数据库连接的位置-->
<properties url="file://conf/ipsos.properties"/> <properties url="file://conf/smartbi.properties"/>
<!-- 设置mysql驱动路径 --> <!-- 设置mysql驱动路径 -->
<!--<classPathEntry location="/Users/liuruibin/.m2/repository/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar"/>--> <!--<classPathEntry location="/Users/liuruibin/.m2/repository/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar"/>-->
<!-- 此处指定生成针对MyBatis3的DAO --> <!-- 此处指定生成针对MyBatis3的DAO -->

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true"> <configuration debug="true">
<property resource="application.properties"/> <property resource="application.properties"/>
<property file="conf/ipsos.properties"/> <property file="conf/smartbi.properties"/>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder> <encoder>
<pattern>%d %5p %40.40c:%4L - %m%n</pattern> <pattern>%d %5p %40.40c:%4L - %m%n</pattern>

@ -28,7 +28,7 @@ ORDER BY
>> >>
previewSql(groups, aggregators, filters, orders, table, isGroup, groupBy) previewSql(groups, aggregators, filters, orders, table, isGroup)
::=<< ::=<<
SELECT SELECT
<if(!groups && !aggregators)> <if(!groups && !aggregators)>
@ -51,9 +51,6 @@ WHERE
GROUP BY GROUP BY
<groups:{group|<if(group)><group.fieldName><endif>}; separator=",\n"> <groups:{group|<if(group)><group.fieldName><endif>}; separator=",\n">
<endif> <endif>
<if(groupBy)>
<groupBy>
<endif>
<if(orders)> <if(orders)>
ORDER BY ORDER BY
<orders:{order|<if(order)><order.orderAlias> <order.orderDirection><endif>}; separator=",\n"> <orders:{order|<if(order)><order.orderAlias> <order.orderDirection><endif>}; separator=",\n">

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120101,"name":"和平区","center":[117.195907,39.118327],"centroid":[117.196207,39.118993],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.222506,39.117484],[117.222299,39.117706],[117.219749,39.11979],[117.217625,39.121933],[117.215465,39.124525],[117.21414,39.126429],[117.21362,39.128244],[117.213457,39.130464],[117.213257,39.132029],[117.212797,39.132888],[117.211853,39.13348],[117.211038,39.133673],[117.208454,39.133394],[117.206452,39.132798],[117.202482,39.130902],[117.200039,39.130451],[117.198956,39.1305],[117.198194,39.13081],[117.196989,39.131463],[117.196034,39.132246],[117.194762,39.133612],[117.194206,39.134669],[117.193748,39.13457],[117.193202,39.134467],[117.192316,39.134329],[117.19224,39.134377],[117.19205,39.135337],[117.191868,39.135871],[117.191634,39.136081],[117.191442,39.13615],[117.190395,39.136283],[117.190395,39.136737],[117.190355,39.136844],[117.184923,39.136998],[117.181168,39.13709],[117.181003,39.133829],[117.180872,39.132361],[117.180681,39.130134],[117.180491,39.127971],[117.180301,39.126091],[117.180222,39.125279],[117.180014,39.123282],[117.179953,39.122756],[117.179901,39.122444],[117.179806,39.121257],[117.179744,39.119716],[117.179676,39.117129],[117.179659,39.114404],[117.179546,39.110206],[117.179535,39.109498],[117.179422,39.104469],[117.179292,39.10199],[117.179846,39.101975],[117.180722,39.101857],[117.181527,39.101777],[117.182402,39.101671],[117.184603,39.101654],[117.185314,39.101527],[117.186535,39.101294],[117.187956,39.101044],[117.188804,39.100943],[117.190052,39.100954],[117.190842,39.101021],[117.191568,39.101099],[117.194109,39.101441],[117.194645,39.101488],[117.195295,39.10153],[117.196291,39.101576],[117.196595,39.101624],[117.196508,39.101832],[117.19637,39.102053],[117.196187,39.102198],[117.196319,39.102307],[117.197413,39.102917],[117.197651,39.103116],[117.198189,39.103349],[117.198756,39.103794],[117.198784,39.103791],[117.199144,39.104065],[117.199147,39.104101],[117.200182,39.104914],[117.201491,39.105502],[117.202341,39.106439],[117.202991,39.107033],[117.204364,39.107998],[117.205739,39.108917],[117.207065,39.10918],[117.207619,39.109258],[117.208114,39.109374],[117.209631,39.110284],[117.210588,39.110914],[117.210756,39.110994],[117.211382,39.111424],[117.212423,39.111813],[117.213072,39.11199],[117.213118,39.11204],[117.213185,39.112207],[117.213264,39.112711],[117.213255,39.1131],[117.213273,39.113643],[117.213297,39.113694],[117.213568,39.113866],[117.215014,39.114402],[117.215803,39.114652],[117.216688,39.114779],[117.218171,39.115479],[117.219024,39.115862],[117.219893,39.116287],[117.22111,39.116822],[117.221674,39.117116],[117.222506,39.117484]]]]}}]}

@ -1 +0,0 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120102,"name":"河东区","center":[117.226568,39.122125],"centroid":[117.256682,39.122406],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.260629,39.159009],[117.259942,39.158922],[117.259005,39.158866],[117.258248,39.158782],[117.256095,39.15867],[117.254071,39.158491],[117.253333,39.158409],[117.252543,39.158409],[117.251449,39.158309],[117.250668,39.158254],[117.249209,39.158229],[117.248723,39.158397],[117.248793,39.157894],[117.248784,39.15771],[117.248982,39.155509],[117.249286,39.154272],[117.249572,39.152134],[117.249928,39.149546],[117.249195,39.149575],[117.248607,39.149578],[117.243521,39.1497],[117.240797,39.149979],[117.234888,39.149905],[117.229545,39.149832],[117.229145,39.149784],[117.228772,39.14968],[117.228365,39.149519],[117.220923,39.144813],[117.21631,39.149808],[117.215218,39.151407],[117.215339,39.150508],[117.215312,39.14997],[117.21521,39.14951],[117.215072,39.149262],[117.214741,39.148786],[117.214221,39.148318],[117.213648,39.14797],[117.211759,39.147275],[117.207832,39.145906],[117.206402,39.145349],[117.205743,39.144917],[117.204989,39.144225],[117.204625,39.143648],[117.203845,39.142126],[117.20355,39.141284],[117.203515,39.140685],[117.20362,39.140155],[117.203896,39.139522],[117.204208,39.139229],[117.206227,39.137593],[117.207709,39.136895],[117.211107,39.135673],[117.210275,39.134233],[117.209998,39.133913],[117.209773,39.133536],[117.211038,39.133673],[117.211852,39.13348],[117.212797,39.132887],[117.213257,39.132028],[117.213456,39.130464],[117.213621,39.128244],[117.214141,39.126429],[117.215465,39.124525],[117.217625,39.121933],[117.219749,39.11979],[117.222299,39.117706],[117.22457,39.115306],[117.227606,39.111742],[117.230397,39.108344],[117.241347,39.09861],[117.242075,39.097478],[117.243454,39.093065],[117.245023,39.089246],[117.24604,39.087921],[117.246518,39.087499],[117.248558,39.086222],[117.252819,39.084064],[117.257067,39.082104],[117.260148,39.080914],[117.265491,39.079926],[117.266977,39.079796],[117.266865,39.080504],[117.266917,39.08103],[117.267108,39.082536],[117.267361,39.084209],[117.267873,39.08529],[117.269307,39.086807],[117.271176,39.088962],[117.272332,39.09053],[117.274235,39.088794],[117.275339,39.089929],[117.276339,39.090772],[117.27799,39.090707],[117.278843,39.090591],[117.278782,39.08938],[117.278843,39.088163],[117.279878,39.088542],[117.279945,39.086884],[117.285023,39.087132],[117.286093,39.087154],[117.286137,39.087525],[117.286268,39.089092],[117.28658,39.089072],[117.292922,39.087651],[117.298183,39.086475],[117.297183,39.083746],[117.298261,39.083438],[117.297991,39.082671],[117.298401,39.082548],[117.30011,39.082114],[117.301949,39.086269],[117.304819,39.085572],[117.306128,39.087938],[117.306911,39.089376],[117.307634,39.092087],[117.306907,39.092241],[117.306847,39.092418],[117.30808,39.096358],[117.306512,39.09666],[117.306459,39.097831],[117.309654,39.100946],[117.302911,39.102564],[117.294688,39.104116],[117.275914,39.108052],[117.27582,39.108069],[117.27523,39.108951],[117.274403,39.111291],[117.273953,39.112606],[117.272762,39.116906],[117.272336,39.117965],[117.271866,39.119498],[117.271276,39.121515],[117.269869,39.126367],[117.269939,39.127109],[117.270294,39.127857],[117.271103,39.128833],[117.271762,39.129324],[117.27624,39.12981],[117.281317,39.130449],[117.283326,39.130889],[117.286647,39.13174],[117.279937,39.147354],[117.284907,39.148224],[117.293404,39.15062],[117.290831,39.155546],[117.290315,39.157142],[117.287398,39.158474],[117.281389,39.160737],[117.27684,39.162999],[117.27242,39.161728],[117.271211,39.161345],[117.267301,39.160431],[117.264599,39.159687],[117.262382,39.159096],[117.261654,39.159018],[117.260629,39.159009]]]]}}]}

@ -1 +0,0 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120103,"name":"河西区","center":[117.217536,39.101897],"centroid":[117.232522,39.072613],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.26729,39.039449],[117.267069,39.03996],[117.266953,39.040048],[117.266505,39.041231],[117.269791,39.041989],[117.272479,39.042778],[117.272532,39.042953],[117.272261,39.043423],[117.270475,39.044921],[117.268985,39.047166],[117.267691,39.050364],[117.278046,39.05354],[117.279183,39.051464],[117.280462,39.048924],[117.286822,39.051028],[117.284402,39.055491],[117.283094,39.058995],[117.280571,39.058304],[117.280475,39.059302],[117.282943,39.059446],[117.285537,39.059778],[117.288004,39.060122],[117.288473,39.0602],[117.287952,39.062467],[117.287621,39.063826],[117.2871,39.066071],[117.286543,39.067156],[117.285891,39.06894],[117.285839,39.069735],[117.285995,39.070468],[117.286205,39.07076],[117.286674,39.071286],[117.288701,39.072478],[117.292076,39.075414],[117.292423,39.07587],[117.29245,39.077424],[117.284945,39.077747],[117.277807,39.078765],[117.274304,39.07935],[117.267986,39.079705],[117.265492,39.079926],[117.260149,39.080914],[117.257067,39.082104],[117.25282,39.084064],[117.248557,39.086223],[117.246518,39.0875],[117.24604,39.087921],[117.245023,39.089246],[117.243454,39.093064],[117.242074,39.097477],[117.241346,39.098611],[117.230398,39.108343],[117.227605,39.111742],[117.224571,39.115306],[117.222506,39.117484],[117.221674,39.117117],[117.22111,39.116822],[117.219892,39.116287],[117.219024,39.115861],[117.218171,39.115478],[117.216687,39.114778],[117.215804,39.114652],[117.215013,39.114402],[117.213568,39.113866],[117.213273,39.113643],[117.213264,39.112711],[117.213184,39.112207],[117.213072,39.11199],[117.212422,39.111813],[117.211382,39.111424],[117.210756,39.110994],[117.210588,39.110914],[117.209631,39.110284],[117.208114,39.109373],[117.207618,39.109258],[117.207065,39.10918],[117.205738,39.108917],[117.204364,39.107998],[117.202991,39.107033],[117.202341,39.106439],[117.201491,39.105502],[117.200182,39.104914],[117.199147,39.104101],[117.199145,39.104065],[117.198756,39.103794],[117.198189,39.103349],[117.19765,39.103116],[117.197413,39.102918],[117.196318,39.102307],[117.196188,39.102198],[117.196369,39.102054],[117.196595,39.101623],[117.196291,39.101576],[117.195295,39.10153],[117.194108,39.10144],[117.191568,39.101099],[117.190842,39.101021],[117.190051,39.100953],[117.188804,39.100943],[117.187956,39.101044],[117.186535,39.101293],[117.185314,39.101527],[117.184603,39.101654],[117.182402,39.101671],[117.181528,39.101777],[117.180722,39.101857],[117.179845,39.101975],[117.179292,39.10199],[117.179248,39.10103],[117.179232,39.09918],[117.17923,39.098012],[117.179213,39.097483],[117.179065,39.097291],[117.179082,39.09605],[117.17911,39.095324],[117.179239,39.094067],[117.179334,39.09326],[117.179394,39.092613],[117.179463,39.092096],[117.179688,39.089798],[117.179723,39.089329],[117.17993,39.088048],[117.18019,39.086771],[117.180658,39.084751],[117.181082,39.083112],[117.181541,39.081277],[117.18213,39.078706],[117.182452,39.077016],[117.182728,39.075623],[117.183066,39.074205],[117.183465,39.072876],[117.18382,39.072002],[117.184096,39.07148],[117.184451,39.070993],[117.185456,39.069719],[117.185863,39.069314],[117.187007,39.068465],[117.187491,39.067999],[117.187864,39.067682],[117.188532,39.066925],[117.189005,39.067091],[117.192075,39.068052],[117.196286,39.069329],[117.203879,39.071719],[117.204902,39.07057],[117.208524,39.066513],[117.212477,39.062056],[117.214145,39.060193],[117.213847,39.06007],[117.213334,39.059961],[117.212746,39.06002],[117.211884,39.060401],[117.21158,39.060472],[117.211352,39.060467],[117.211204,39.060356],[117.211172,39.060245],[117.211152,39.05842],[117.211184,39.058155],[117.211444,39.057766],[117.211747,39.057592],[117.212668,39.057234],[117.213089,39.057137],[117.215178,39.057181],[117.216943,39.057065],[117.217713,39.056218],[117.217784,39.053223],[117.217725,39.034319],[117.218849,39.034103],[117.221346,39.033657],[117.222965,39.033469],[117.229496,39.03307],[117.232907,39.033152],[117.233742,39.033259],[117.234043,39.033194],[117.234148,39.033362],[117.234228,39.033205],[117.23457,39.03337],[117.243159,39.034847],[117.250115,39.036267],[117.251907,39.036993],[117.253,39.037226],[117.2542,39.03716],[117.259906,39.038062],[117.26729,39.039449]]]]}}]}

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120105,"name":"河北区","center":[117.201569,39.156632],"centroid":[117.213791,39.167182],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.233479,39.193053],[117.23228,39.192072],[117.229662,39.18999],[117.224709,39.185531],[117.22398,39.184968],[117.223234,39.185771],[117.221941,39.184696],[117.219982,39.186448],[117.216116,39.191282],[117.213809,39.189857],[117.212702,39.190727],[117.211886,39.191553],[117.211827,39.191717],[117.211723,39.191754],[117.21077,39.192926],[117.210712,39.192959],[117.209953,39.192613],[117.206701,39.190881],[117.204246,39.189603],[117.203495,39.189196],[117.202718,39.188822],[117.199953,39.187383],[117.199165,39.18694],[117.197264,39.186103],[117.191919,39.191924],[117.18996,39.190838],[117.1886,39.190234],[117.183739,39.189147],[117.183512,39.189103],[117.182656,39.190352],[117.181772,39.190328],[117.180478,39.189418],[117.180482,39.189301],[117.1812,39.188383],[117.179528,39.187974],[117.17712,39.187427],[117.17368,39.186699],[117.171782,39.186309],[117.169789,39.185803],[117.169373,39.185665],[117.168905,39.185427],[117.168636,39.185172],[117.168056,39.184512],[117.167553,39.184001],[117.170248,39.182381],[117.171149,39.181823],[117.172093,39.181508],[117.173081,39.181423],[117.176009,39.181957],[117.176773,39.182074],[117.177223,39.182042],[117.177664,39.181954],[117.178063,39.181671],[117.17848,39.180948],[117.178738,39.179954],[117.178808,39.178512],[117.178677,39.176858],[117.178304,39.174236],[117.178408,39.173388],[117.178633,39.172575],[117.179785,39.170172],[117.179941,39.169707],[117.180028,39.169182],[117.180044,39.168413],[117.179603,39.167293],[117.178842,39.1666],[117.177168,39.165616],[117.176129,39.165024],[117.175825,39.164768],[117.175721,39.164374],[117.175903,39.163622],[117.176622,39.162574],[117.177176,39.162056],[117.178893,39.160924],[117.18195,39.15909],[117.18492,39.156656],[117.186481,39.155099],[117.189167,39.151941],[117.190466,39.150332],[117.193082,39.148381],[117.193836,39.147643],[117.194442,39.146993],[117.194737,39.146454],[117.194928,39.145199],[117.194356,39.140028],[117.194008,39.136441],[117.194008,39.135251],[117.194207,39.134669],[117.194761,39.133612],[117.196035,39.132246],[117.19699,39.131463],[117.198193,39.13081],[117.198956,39.1305],[117.200039,39.130451],[117.202482,39.130902],[117.206452,39.132798],[117.208455,39.133394],[117.209773,39.133536],[117.209998,39.133914],[117.210275,39.134234],[117.211107,39.135673],[117.207708,39.136896],[117.206226,39.137593],[117.204209,39.139229],[117.203896,39.139522],[117.203619,39.140155],[117.203515,39.140685],[117.20355,39.141284],[117.203845,39.142126],[117.204626,39.143648],[117.204989,39.144226],[117.205742,39.144916],[117.206402,39.145349],[117.207832,39.145907],[117.211759,39.147274],[117.213648,39.14797],[117.214221,39.148318],[117.214741,39.148785],[117.215072,39.149262],[117.215209,39.14951],[117.215313,39.14997],[117.21534,39.150508],[117.215218,39.151408],[117.21631,39.149808],[117.220922,39.144812],[117.221189,39.144979],[117.228365,39.14952],[117.228772,39.14968],[117.229145,39.149784],[117.229545,39.149832],[117.234887,39.149905],[117.240796,39.149979],[117.243521,39.149699],[117.248607,39.149578],[117.249194,39.149575],[117.249928,39.149546],[117.249572,39.152134],[117.249285,39.154271],[117.248983,39.155509],[117.248784,39.15771],[117.248793,39.157894],[117.248723,39.158397],[117.249209,39.158228],[117.250669,39.158253],[117.251449,39.15831],[117.252543,39.158409],[117.253333,39.158409],[117.25407,39.158492],[117.256094,39.15867],[117.258248,39.158783],[117.259004,39.158866],[117.259942,39.158922],[117.260629,39.159009],[117.260456,39.163268],[117.260534,39.167551],[117.260421,39.16809],[117.260266,39.168398],[117.260056,39.168711],[117.258658,39.169958],[117.256905,39.169032],[117.2564,39.168597],[117.25606,39.16825],[117.255439,39.168163],[117.255029,39.16814],[117.253907,39.168111],[117.251703,39.168094],[117.251059,39.169649],[117.250782,39.170908],[117.246736,39.170414],[117.246519,39.171378],[117.242111,39.170925],[117.240956,39.170751],[117.241841,39.17129],[117.242699,39.171914],[117.243691,39.172739],[117.245184,39.17418],[117.247553,39.176452],[117.249966,39.178452],[117.249616,39.178696],[117.249352,39.178819],[117.24829,39.179612],[117.247268,39.180572],[117.24586,39.181871],[117.244932,39.182763],[117.244621,39.183106],[117.244481,39.183196],[117.242927,39.184603],[117.241616,39.18577],[117.240353,39.186874],[117.239597,39.187429],[117.238136,39.188721],[117.237044,39.189841],[117.235075,39.191679],[117.233862,39.192696],[117.233479,39.193053]]]]}}]}

@ -1 +0,0 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":120106,"name":"红桥区","center":[117.163301,39.175066],"centroid":[117.155648,39.164723],"childrenNum":0,"level":"district","acroutes":[100000,120000],"parent":{"adcode":120000}},"geometry":{"type":"MultiPolygon","coordinates":[[[[117.194442,39.146993],[117.193836,39.147643],[117.193082,39.148381],[117.190466,39.150332],[117.189166,39.151941],[117.186481,39.155099],[117.18492,39.156656],[117.18195,39.15909],[117.178893,39.160924],[117.177176,39.162056],[117.176622,39.162574],[117.175903,39.163622],[117.17572,39.164374],[117.175825,39.164768],[117.17613,39.165024],[117.177168,39.165616],[117.178842,39.1666],[117.179603,39.167293],[117.180044,39.168414],[117.180028,39.169182],[117.179941,39.169707],[117.179785,39.170172],[117.178634,39.172575],[117.178408,39.173389],[117.178303,39.174236],[117.178676,39.176858],[117.178808,39.178512],[117.178738,39.179954],[117.17848,39.180948],[117.178063,39.181671],[117.177664,39.181954],[117.177223,39.182042],[117.176772,39.182073],[117.176009,39.181957],[117.173082,39.181424],[117.172093,39.181508],[117.171149,39.181823],[117.170247,39.182381],[117.167553,39.184001],[117.167077,39.184249],[117.163931,39.185753],[117.162571,39.186694],[117.161948,39.187277],[117.161601,39.187773],[117.161106,39.189428],[117.160657,39.189989],[117.16004,39.190237],[117.159296,39.190348],[117.154963,39.189951],[117.148566,39.189097],[117.147743,39.189068],[117.146867,39.189156],[117.146051,39.189357],[117.145489,39.189623],[117.145124,39.189984],[117.144786,39.190401],[117.144024,39.191901],[117.143252,39.191676],[117.142316,39.19136],[117.141762,39.191126],[117.139247,39.18961],[117.138015,39.188573],[117.136775,39.187824],[117.136057,39.18718],[117.135815,39.187022],[117.135231,39.186462],[117.134311,39.185351],[117.133228,39.183216],[117.131135,39.178866],[117.130807,39.178016],[117.130633,39.177374],[117.130503,39.176692],[117.130451,39.175536],[117.130365,39.173951],[117.129895,39.171906],[117.129652,39.171038],[117.129392,39.170165],[117.129157,39.169435],[117.128905,39.168585],[117.128612,39.167398],[117.127892,39.164654],[117.127413,39.162962],[117.127213,39.162168],[117.12698,39.161325],[117.126667,39.160395],[117.126433,39.159458],[117.126318,39.158924],[117.126285,39.158273],[117.126433,39.157812],[117.126658,39.156891],[117.126865,39.156123],[117.127239,39.154889],[117.127594,39.154107],[117.127941,39.153169],[117.128279,39.152526],[117.128479,39.152243],[117.128965,39.152294],[117.129797,39.152086],[117.130673,39.151476],[117.131541,39.150494],[117.133648,39.147942],[117.134273,39.147338],[117.134984,39.146915],[117.135807,39.146642],[117.136761,39.146467],[117.140022,39.147105],[117.142909,39.148066],[117.14376,39.148316],[117.144321,39.148577],[117.145414,39.147697],[117.145537,39.147415],[117.145647,39.146333],[117.145527,39.146081],[117.144729,39.145453],[117.144018,39.144368],[117.144034,39.144173],[117.144122,39.144068],[117.145595,39.144053],[117.147919,39.143364],[117.150545,39.143073],[117.151915,39.142723],[117.152366,39.14257],[117.152626,39.142531],[117.154177,39.142385],[117.155251,39.142314],[117.15617,39.142212],[117.15721,39.142002],[117.15773,39.141554],[117.158023,39.14118],[117.159073,39.141496],[117.159567,39.141577],[117.160234,39.141589],[117.161665,39.141595],[117.165096,39.141663],[117.171836,39.141937],[117.171681,39.146467],[117.174047,39.146319],[117.180619,39.146148],[117.180991,39.146073],[117.181273,39.146132],[117.185538,39.145935],[117.189027,39.145866],[117.189946,39.14589],[117.190587,39.145967],[117.192684,39.146449],[117.193559,39.146661],[117.194442,39.146993]]],[[[117.13036,39.189872],[117.133173,39.191312],[117.133323,39.191036],[117.135416,39.192016],[117.136057,39.192307],[117.135855,39.192685],[117.136416,39.192848],[117.140771,39.193229],[117.1406,39.194444],[117.138788,39.196467],[117.140022,39.19715],[117.140366,39.197325],[117.140805,39.197511],[117.141212,39.197742],[117.139547,39.200147],[117.138644,39.199849],[117.138366,39.200356],[117.138192,39.20103],[117.135909,39.200032],[117.134964,39.201172],[117.133827,39.20266],[117.132851,39.202302],[117.132036,39.203466],[117.125617,39.200879],[117.126304,39.199891],[117.12566,39.1996],[117.128575,39.195657],[117.125945,39.194942],[117.127223,39.193163],[117.127702,39.192706],[117.128705,39.191432],[117.129263,39.190684],[117.130004,39.190102],[117.13036,39.189872]]]]}}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130102,"name":"长安区","center":[114.548151,38.047501],"centroid":[114.583482,38.080599],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.536771,38.127953],[114.533376,38.129304],[114.529779,38.130409],[114.526714,38.13107],[114.523427,38.131471],[114.522627,38.131659],[114.521273,38.132405],[114.520616,38.132386],[114.518814,38.131541],[114.517501,38.131379],[114.51566,38.131367],[114.512934,38.131608],[114.511321,38.131619],[114.509717,38.131817],[114.507313,38.131759],[114.504809,38.131352],[114.503623,38.130868],[114.48411,38.114064],[114.489056,38.113343],[114.487527,38.112643],[114.486186,38.111775],[114.48578,38.111707],[114.485312,38.106728],[114.485019,38.106623],[114.480867,38.10667],[114.480331,38.106472],[114.480168,38.106238],[114.480202,38.10597],[114.482208,38.102943],[114.489356,38.102366],[114.490826,38.102393],[114.492167,38.102724],[114.495132,38.104546],[114.494882,38.101639],[114.495116,38.101639],[114.494725,38.096923],[114.494932,38.091932],[114.493357,38.082764],[114.502141,38.081578],[114.498717,38.072558],[114.498215,38.07256],[114.494323,38.055938],[114.494521,38.05573],[114.493398,38.049757],[114.492583,38.043611],[114.492735,38.04339],[114.493798,38.043457],[114.498808,38.043314],[114.501255,38.04339],[114.502175,38.043042],[114.502846,38.042843],[114.503207,38.042636],[114.503886,38.042517],[114.503932,38.042437],[114.504847,38.04251],[114.505079,38.042399],[114.50524,38.042556],[114.505999,38.042577],[114.506199,38.042737],[114.506745,38.042758],[114.507301,38.042619],[114.507822,38.042758],[114.507753,38.043003],[114.508262,38.043016],[114.508392,38.042745],[114.509301,38.042652],[114.51031,38.042695],[114.510314,38.042353],[114.510689,38.04215],[114.511825,38.042119],[114.511868,38.035595],[114.517726,38.035701],[114.522865,38.035754],[114.524301,38.035781],[114.526235,38.035855],[114.531931,38.035958],[114.53277,38.035942],[114.535073,38.036017],[114.591154,38.0371],[114.591313,38.055922],[114.591174,38.058887],[114.609944,38.054698],[114.67704,38.041433],[114.676597,38.04236],[114.67622,38.042784],[114.676406,38.046182],[114.678313,38.045975],[114.678928,38.046291],[114.679019,38.051584],[114.679355,38.05158],[114.679274,38.053839],[114.681716,38.059273],[114.683645,38.058276],[114.684138,38.060488],[114.687574,38.060046],[114.687724,38.061481],[114.687683,38.06239],[114.689744,38.064666],[114.691191,38.065332],[114.693047,38.065169],[114.694547,38.063536],[114.695378,38.063386],[114.699366,38.070146],[114.705096,38.078554],[114.707378,38.091356],[114.707253,38.091554],[114.705417,38.091739],[114.705462,38.0939],[114.705117,38.094168],[114.703794,38.094157],[114.703781,38.097203],[114.693852,38.097153],[114.69342,38.102353],[114.680921,38.101245],[114.673173,38.099604],[114.663798,38.10284],[114.656871,38.103098],[114.65334,38.104175],[114.647498,38.105929],[114.641297,38.10807],[114.633958,38.109545],[114.621039,38.110268],[114.611199,38.109227],[114.599986,38.111299],[114.596089,38.113045],[114.592133,38.115598],[114.589925,38.116472],[114.588441,38.116538],[114.582674,38.115735],[114.577319,38.115846],[114.571416,38.116388],[114.566331,38.117653],[114.561623,38.120305],[114.556227,38.121699],[114.550674,38.122497],[114.547463,38.123208],[114.544305,38.124575],[114.541729,38.126044],[114.539781,38.126687],[114.536771,38.127953]]]]}}]}

@ -1 +0,0 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130104,"name":"桥西区","center":[114.462931,38.028383],"centroid":[114.449351,38.025685],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.376652,38.073279],[114.377209,38.07012],[114.378591,38.067296],[114.380319,38.065448],[114.381247,38.063486],[114.382845,38.063403],[114.382894,38.062493],[114.385204,38.062215],[114.385347,38.056901],[114.385246,38.056528],[114.384592,38.056534],[114.388193,38.052608],[114.386613,38.052655],[114.386632,38.048601],[114.384258,38.048315],[114.384305,38.045992],[114.38433,38.045884],[114.38628,38.042742],[114.389019,38.041083],[114.392771,38.041056],[114.39332,38.039724],[114.393333,38.038643],[114.397208,38.038449],[114.397645,38.037592],[114.397725,38.036246],[114.398335,38.035864],[114.398421,38.034413],[114.395963,38.027892],[114.395845,38.024808],[114.398187,38.022852],[114.399195,38.02241],[114.402154,38.020863],[114.404275,38.02051],[114.405612,38.020787],[114.407693,38.02156],[114.408686,38.021627],[114.409142,38.021437],[114.409852,38.020665],[114.411035,38.016444],[114.41158,38.015359],[114.412473,38.014605],[114.414956,38.014434],[114.417384,38.014752],[114.419357,38.012109],[114.426236,38.012464],[114.428007,38.011203],[114.428194,38.010035],[114.427846,38.005767],[114.425836,38.00411],[114.425204,38.004074],[114.425981,38.003039],[114.42486,38.002975],[114.424742,38.002643],[114.424913,38.001776],[114.425821,38.00114],[114.425775,37.998899],[114.427485,37.996154],[114.427899,37.996265],[114.427692,37.997502],[114.4286,37.998018],[114.428827,37.995139],[114.431087,37.995117],[114.431559,37.994722],[114.431519,37.992657],[114.432534,37.992645],[114.432486,37.994286],[114.433338,37.994292],[114.434231,37.994515],[114.437906,37.994779],[114.438001,37.993959],[114.451331,37.994549],[114.451483,37.994046],[114.451482,37.992147],[114.459957,37.990827],[114.460498,37.990234],[114.461136,37.98421],[114.462785,37.98428],[114.463343,37.981185],[114.459754,37.979462],[114.455303,37.979447],[114.45549,37.97931],[114.458266,37.979232],[114.458131,37.976926],[114.461788,37.974222],[114.464227,37.974285],[114.468329,37.973975],[114.468668,37.972421],[114.470157,37.972268],[114.472917,37.97238],[114.472273,37.97343],[114.474582,37.973868],[114.474985,37.976623],[114.478645,37.976934],[114.481619,37.976486],[114.482098,37.977205],[114.484768,37.977365],[114.485772,37.975903],[114.490425,37.974015],[114.490082,37.975861],[114.496233,37.976757],[114.492508,37.998656],[114.493175,37.998787],[114.492372,38.001429],[114.492214,38.002106],[114.493825,38.002725],[114.494421,38.003085],[114.495331,38.003979],[114.49808,38.006755],[114.49913,38.007739],[114.500143,38.008779],[114.512256,38.020849],[114.51219,38.021645],[114.512217,38.022298],[114.51211,38.026404],[114.512058,38.027335],[114.512064,38.028252],[114.512119,38.028271],[114.512022,38.029784],[114.511868,38.035595],[114.511825,38.04212],[114.510689,38.04215],[114.510314,38.042353],[114.510309,38.042695],[114.509301,38.042652],[114.508391,38.042745],[114.508263,38.043017],[114.507753,38.043002],[114.507822,38.042757],[114.507303,38.042619],[114.506744,38.042757],[114.506199,38.042738],[114.505999,38.042577],[114.50524,38.042556],[114.505079,38.0424],[114.504643,38.042526],[114.50393,38.042438],[114.503887,38.042518],[114.503206,38.042636],[114.502845,38.042843],[114.502177,38.043043],[114.501255,38.04339],[114.498808,38.043314],[114.493798,38.043457],[114.492736,38.04339],[114.492584,38.043611],[114.490327,38.043459],[114.489045,38.043407],[114.484353,38.043448],[114.484467,38.045014],[114.481007,38.045069],[114.477263,38.044879],[114.477263,38.045663],[114.469547,38.045509],[114.469523,38.047826],[114.469364,38.047896],[114.462083,38.048234],[114.454392,38.048492],[114.454126,38.048537],[114.451399,38.048629],[114.451159,38.048597],[114.44968,38.048688],[114.44885,38.048673],[114.446036,38.048765],[114.439525,38.049077],[114.437997,38.049242],[114.436736,38.049211],[114.435851,38.049253],[114.434839,38.052581],[114.434751,38.053181],[114.434751,38.054266],[114.43489,38.055516],[114.436641,38.063706],[114.432907,38.064631],[114.426511,38.065826],[114.405197,38.069501],[114.397429,38.070835],[114.386512,38.072704],[114.376652,38.073279]]]]}}]}

@ -1 +0,0 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130105,"name":"新华区","center":[114.465974,38.067142],"centroid":[114.447636,38.099975],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.492584,38.043611],[114.493398,38.049756],[114.494521,38.05573],[114.494323,38.055938],[114.498215,38.07256],[114.498717,38.072558],[114.502141,38.081577],[114.493357,38.082763],[114.494932,38.091932],[114.494725,38.096923],[114.495115,38.101638],[114.494882,38.101638],[114.495132,38.104546],[114.492166,38.102723],[114.490826,38.102393],[114.489357,38.102367],[114.482207,38.102943],[114.480201,38.105969],[114.480167,38.106237],[114.480331,38.106472],[114.480867,38.10667],[114.485018,38.106623],[114.485311,38.106728],[114.485778,38.111707],[114.486186,38.111776],[114.487526,38.112644],[114.489057,38.113343],[114.48411,38.114064],[114.501874,38.129363],[114.501523,38.129686],[114.502489,38.130335],[114.502079,38.130803],[114.500526,38.131615],[114.500148,38.132459],[114.501236,38.138232],[114.498671,38.14157],[114.497644,38.142002],[114.496072,38.141965],[114.494288,38.141581],[114.494393,38.140739],[114.491167,38.140538],[114.481589,38.142197],[114.482211,38.145144],[114.476834,38.146114],[114.474497,38.145917],[114.463968,38.15264],[114.452959,38.160762],[114.450836,38.164218],[114.448647,38.16647],[114.445688,38.168145],[114.438662,38.162307],[114.433407,38.155783],[114.428076,38.148337],[114.426256,38.146279],[114.424454,38.14712],[114.423288,38.146901],[114.422547,38.141412],[114.418824,38.140981],[114.415276,38.137791],[114.414839,38.136347],[114.414335,38.136119],[114.413751,38.135404],[114.414036,38.131395],[114.412169,38.129511],[114.410157,38.129496],[114.408883,38.126623],[114.409603,38.11769],[114.410434,38.117333],[114.416655,38.117997],[114.417137,38.113599],[114.417608,38.111615],[114.416781,38.110921],[114.416581,38.110119],[114.416312,38.10958],[114.40363,38.108036],[114.40343,38.106527],[114.402622,38.106193],[114.400478,38.105519],[114.398056,38.105319],[114.396719,38.106255],[114.395035,38.106658],[114.387141,38.106548],[114.379167,38.105762],[114.378663,38.104456],[114.378392,38.104017],[114.377994,38.103614],[114.376777,38.103109],[114.375769,38.102808],[114.375333,38.102304],[114.3751,38.101866],[114.375065,38.101128],[114.375369,38.100056],[114.375768,38.099584],[114.376211,38.09942],[114.38192,38.09956],[114.382223,38.099192],[114.382423,38.098754],[114.382562,38.091773],[114.382493,38.090092],[114.382622,38.089711],[114.383197,38.089473],[114.383361,38.089104],[114.383395,38.088132],[114.383162,38.086557],[114.382402,38.085333],[114.382153,38.085076],[114.381753,38.085011],[114.37488,38.085328],[114.374271,38.084988],[114.376018,38.076703],[114.376652,38.073279],[114.386511,38.072704],[114.397429,38.070836],[114.405198,38.0695],[114.426512,38.065826],[114.432907,38.064632],[114.436641,38.063707],[114.434891,38.055516],[114.434751,38.054265],[114.434751,38.053182],[114.434838,38.052581],[114.435851,38.049253],[114.436736,38.049211],[114.437996,38.049242],[114.439526,38.049077],[114.446037,38.048765],[114.44885,38.048673],[114.449679,38.048688],[114.451159,38.048597],[114.4514,38.048629],[114.454126,38.048537],[114.454391,38.048492],[114.462083,38.048235],[114.469364,38.047895],[114.469524,38.047826],[114.469547,38.045509],[114.477263,38.045663],[114.477263,38.044878],[114.481007,38.045069],[114.484465,38.045014],[114.484354,38.043448],[114.489044,38.043407],[114.490327,38.043458],[114.492584,38.043611]]]]}}]}

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130108,"name":"裕华区","center":[114.533257,38.027696],"centroid":[114.584117,38.009464],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.490425,37.974015],[114.498575,37.970461],[114.498292,37.971851],[114.505773,37.973048],[114.506112,37.970992],[114.507485,37.969415],[114.511847,37.969952],[114.511601,37.971798],[114.520877,37.972294],[114.52029,37.968858],[114.529028,37.969348],[114.529926,37.969314],[114.552554,37.970908],[114.552999,37.968227],[114.557419,37.968432],[114.557285,37.970129],[114.557793,37.970999],[114.558585,37.971596],[114.560203,37.971845],[114.561655,37.971772],[114.561401,37.974149],[114.565555,37.973645],[114.565979,37.973667],[114.566014,37.974581],[114.572726,37.973977],[114.574541,37.97456],[114.574793,37.979878],[114.579061,37.980204],[114.578986,37.978651],[114.583062,37.978686],[114.584109,37.976547],[114.584327,37.973453],[114.586937,37.972204],[114.591802,37.972095],[114.593201,37.967899],[114.593584,37.968418],[114.592136,37.972475],[114.592702,37.973558],[114.608504,37.973343],[114.608735,37.979582],[114.608752,37.982356],[114.610411,37.982481],[114.610384,37.98564],[114.609675,37.98566],[114.609486,37.986728],[114.609696,37.988929],[114.611807,37.990757],[114.61736,37.990947],[114.61714,37.992099],[114.618182,37.992665],[114.621848,37.992758],[114.621875,37.994895],[114.625089,37.994931],[114.625257,37.997773],[114.627722,37.997657],[114.627509,37.996232],[114.627932,37.995735],[114.632653,37.995574],[114.632759,37.992366],[114.637153,37.99209],[114.639678,37.988884],[114.646192,37.985417],[114.647055,37.984873],[114.647057,37.982538],[114.647798,37.981162],[114.650112,37.980392],[114.650121,37.977126],[114.65715,37.977083],[114.657284,37.974246],[114.657381,37.974207],[114.660243,37.973828],[114.660091,37.971133],[114.669506,37.971171],[114.670338,37.969271],[114.673811,37.968953],[114.673959,37.969682],[114.670914,37.978873],[114.669743,37.984588],[114.669708,37.986381],[114.668082,37.986342],[114.668107,37.988461],[114.665796,37.988563],[114.66553,37.991703],[114.662435,37.992034],[114.658874,37.994729],[114.657082,38.000712],[114.657007,38.002725],[114.655844,38.002574],[114.655724,38.008339],[114.654126,38.010027],[114.652546,38.010014],[114.65261,38.012273],[114.655414,38.01337],[114.656859,38.015315],[114.659619,38.015622],[114.66146,38.016805],[114.662473,38.018018],[114.662418,38.019856],[114.664723,38.019766],[114.664669,38.021801],[114.667152,38.021965],[114.667013,38.024891],[114.670307,38.025894],[114.674059,38.025686],[114.674036,38.029468],[114.674989,38.029519],[114.681188,38.030326],[114.682692,38.031391],[114.681877,38.034855],[114.680712,38.03663],[114.678558,38.038167],[114.677578,38.040142],[114.677041,38.041433],[114.609944,38.054698],[114.591174,38.058887],[114.591313,38.055922],[114.591153,38.037099],[114.535073,38.036017],[114.533146,38.035953],[114.532896,38.035977],[114.532769,38.035942],[114.531931,38.035958],[114.526236,38.035855],[114.524302,38.035781],[114.522865,38.035754],[114.517726,38.035701],[114.511869,38.035595],[114.512021,38.029785],[114.512119,38.028272],[114.512063,38.028253],[114.512057,38.027336],[114.512109,38.026404],[114.512217,38.022297],[114.512188,38.021645],[114.512242,38.021337],[114.512256,38.020849],[114.502352,38.010983],[114.501558,38.010173],[114.500143,38.00878],[114.499129,38.00774],[114.49808,38.006756],[114.495331,38.003979],[114.49442,38.003085],[114.493825,38.002726],[114.492213,38.002105],[114.492373,38.001429],[114.493176,37.998788],[114.492509,37.998656],[114.496232,37.976757],[114.490082,37.97586],[114.490425,37.974015]]]]}}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1 +0,0 @@
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"adcode":130127,"name":"高邑县","center":[114.610699,37.605714],"centroid":[114.598306,37.616239],"childrenNum":0,"level":"district","acroutes":[100000,130000,130100],"parent":{"adcode":130100}},"geometry":{"type":"MultiPolygon","coordinates":[[[[114.725981,37.630678],[114.723282,37.634732],[114.708463,37.632776],[114.704559,37.63291],[114.70025,37.633861],[114.700114,37.637011],[114.697276,37.637424],[114.69639,37.639319],[114.696983,37.640035],[114.699284,37.638696],[114.7004,37.638926],[114.702785,37.638993],[114.705276,37.640652],[114.70551,37.643688],[114.707476,37.643575],[114.709067,37.644555],[114.709972,37.650351],[114.711648,37.650453],[114.712111,37.651374],[114.708985,37.652877],[114.708427,37.651774],[114.707504,37.65206],[114.706816,37.649208],[114.70261,37.649531],[114.699091,37.649696],[114.698929,37.644931],[114.692816,37.637654],[114.690979,37.636514],[114.691585,37.639051],[114.68995,37.640185],[114.687557,37.641107],[114.685015,37.641132],[114.685074,37.643017],[114.683984,37.642938],[114.682817,37.641991],[114.680565,37.642087],[114.677465,37.643122],[114.674224,37.644944],[114.671882,37.64946],[114.671761,37.654024],[114.669975,37.654215],[114.665466,37.655163],[114.66289,37.657632],[114.654865,37.654854],[114.652732,37.655089],[114.65277,37.655985],[114.652115,37.660775],[114.649683,37.661501],[114.648485,37.663139],[114.648465,37.664999],[114.649724,37.668501],[114.649678,37.670702],[114.64256,37.672493],[114.640188,37.672817],[114.640913,37.675588],[114.636144,37.676063],[114.637023,37.681953],[114.638342,37.681929],[114.64109,37.68775],[114.639175,37.690068],[114.637352,37.690575],[114.637843,37.693522],[114.639427,37.69426],[114.636591,37.694434],[114.635797,37.695047],[114.626559,37.695939],[114.620978,37.696749],[114.620107,37.693838],[114.615459,37.694177],[114.611688,37.692725],[114.610938,37.690507],[114.606771,37.690997],[114.606349,37.691738],[114.604876,37.691994],[114.598648,37.691195],[114.597214,37.688821],[114.591942,37.686864],[114.591248,37.685821],[114.591764,37.681049],[114.591769,37.679604],[114.590582,37.679569],[114.590484,37.677466],[114.587875,37.678222],[114.578367,37.68311],[114.57312,37.686325],[114.572681,37.686206],[114.572344,37.684912],[114.57092,37.681037],[114.570269,37.678149],[114.568167,37.679408],[114.567226,37.679117],[114.564684,37.677448],[114.56125,37.673816],[114.559478,37.673607],[114.553556,37.674108],[114.550189,37.672236],[114.548636,37.671143],[114.54833,37.667865],[114.541207,37.667629],[114.538544,37.667848],[114.538979,37.670122],[114.538449,37.670666],[114.530228,37.671318],[114.529018,37.671966],[114.525455,37.672686],[114.524823,37.672581],[114.52481,37.671663],[114.523273,37.671782],[114.523082,37.669774],[114.52336,37.666823],[114.523239,37.66087],[114.521682,37.654708],[114.519892,37.651188],[114.516564,37.646887],[114.512921,37.644306],[114.507587,37.636028],[114.50495,37.629482],[114.503158,37.622641],[114.501033,37.620439],[114.489326,37.612836],[114.478854,37.595012],[114.471312,37.590656],[114.468932,37.586569],[114.469598,37.580199],[114.473628,37.572977],[114.483478,37.576834],[114.495203,37.578539],[114.501148,37.578239],[114.519944,37.574631],[114.530622,37.570371],[114.539302,37.565867],[114.550266,37.562528],[114.565589,37.556942],[114.576259,37.554296],[114.585186,37.553011],[114.59497,37.553109],[114.603864,37.554579],[114.624279,37.556638],[114.632638,37.556733],[114.646773,37.556214],[114.660284,37.559353],[114.674926,37.564108],[114.68018,37.565269],[114.687038,37.565166],[114.687778,37.57274],[114.694868,37.581299],[114.698793,37.589365],[114.7057,37.61006],[114.707345,37.615803],[114.714848,37.617195],[114.717252,37.621409],[114.716005,37.625983],[114.71699,37.627133],[114.725981,37.630678]]]]}}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save