package com.landtool.lanbase.modules.api.controller.MapPortal;
|
|
import java.util.HashMap;
|
import java.util.LinkedList;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
import com.github.pagehelper.Page;
|
import com.github.pagehelper.PageHelper;
|
import com.landtool.lanbase.common.utils.CommonUtils;
|
import com.landtool.lanbase.modules.api.utils.PageBean;
|
import com.landtool.lanbase.modules.res.entity.Res_ExtBusinessLayer;
|
import com.landtool.lanbase.modules.res.entity.Res_ExtIntegrate;
|
import com.landtool.lanbase.modules.res.entity.Res_Theme;
|
import com.landtool.lanbase.modules.res.entity.Res_Theme_Module;
|
import com.landtool.lanbase.modules.res.service.ResExtBusinessLayerService;
|
import com.landtool.lanbase.modules.res.service.ResExtIntegrateService;
|
import com.landtool.lanbase.modules.res.service.ResThemeModuleService;
|
import com.landtool.lanbase.modules.res.service.ResThemeService;
|
|
import io.swagger.annotations.Api;
|
|
/**
|
* @author 刘小波
|
* @Description: 地图服务可视化接口
|
* @date 2018-05-26
|
*/
|
|
@Controller
|
@RequestMapping("/api/thememaping/")
|
@Api(value = "", tags = {"地图服务可视化接口"})
|
public class MapViewController {
|
@Autowired
|
private ResExtIntegrateService resExtIntegrateService;
|
|
@Autowired
|
private ResThemeService resThemeService;
|
|
@Autowired
|
private ResThemeModuleService resThemeModuleService;
|
|
@Autowired
|
private ResExtBusinessLayerService resExtBusinessLayerService;
|
|
/**
|
* 获取模块列表(排除业务专题已选择模块)
|
* @param themeid 业务专题Id
|
* @param title 模块名称
|
* @param moduleIdList 业务专题已展示模块ID
|
* @return
|
*/
|
@ResponseBody
|
@GetMapping("getModuleList")
|
public String getModuleList(Integer themeid, String title, String moduleIdList, PageBean pageBean) {
|
Page<Res_Theme_Module> page = PageHelper.startPage(pageBean.getPage(), pageBean.getLimit());
|
Map<String, Object> map = new HashMap<>();
|
map.put("themeid", themeid);
|
map.put("title", title);
|
map.put("moduleIdList", moduleIdList);
|
List<Res_Theme_Module> resThemeModuleList1 = resThemeModuleService.getIgnoreThemeModuleList(map);
|
int countNums = (int) ((Page) resThemeModuleList1).getTotal();
|
PageBean<Res_Theme_Module> pageData = new PageBean<>(pageBean.getPage(), pageBean.getLimit(), countNums);
|
pageData.setItems(resThemeModuleList1);
|
|
List<Map<String, Object>> maps = new LinkedList<>();
|
for (int i = 0; i < resThemeModuleList1.size(); i++) {
|
Map<String, Object> ThemeModule = new HashMap<>();
|
ThemeModule.put("moduleid", resThemeModuleList1.get(i).getModuleid());// 模块ID
|
ThemeModule.put("title", resThemeModuleList1.get(i).getTitle());// 模块名称
|
maps.add(ThemeModule);
|
}
|
|
return JSON.toJSONString(maps, SerializerFeature.WriteMapNullValue);
|
}
|
|
/**
|
* 获取专题列表(业务专题)
|
*/
|
@ResponseBody
|
@GetMapping("getAllThemeList")
|
public String getAllThemeList(Integer userId, PageBean pageBean) {
|
if (pageBean.getPage() == -1) { // -1 表示不分页(一张图)
|
pageBean.setLimit(999);
|
} else {
|
pageBean.setLimit(10);
|
}
|
PageHelper.startPage(pageBean.getPage(), pageBean.getLimit());//设置当前页数及每页条数
|
List<Res_Theme> resThemeList = resThemeService.getAllThemeList(userId);// 获取业务专题默认专题列表
|
int countNums = (int) ((Page) resThemeList).getTotal();//获取记录总数
|
PageBean<Res_Theme> pageData = new PageBean<>(pageBean.getPage(), pageBean.getLimit(), countNums);
|
pageData.setItems(resThemeList);
|
List<Map<String, Object>> maps = new LinkedList<>();
|
for (Res_Theme resTheme : resThemeList) {
|
String title = resTheme.getTitle();
|
if (title.length() > 15) {
|
title = CommonUtils.subStringUtils(title, 30);
|
}
|
Map<String, Object> map = new HashMap<>();
|
map.put("id", resTheme.getThemeid());
|
map.put("title", title);
|
map.put("resourceid", resTheme.getResourceid() != null ? resTheme.getResourceid() : "");
|
map.put("fulltitle", resTheme.getTitle());
|
map.put("type", "theme");
|
maps.add(map);
|
}
|
Map<String, Object> result = new HashMap<>();
|
result.put("Count", countNums);
|
result.put("Page", pageBean.getPage());
|
result.put("ShuJu", maps);
|
|
return JSON.toJSONString(result, SerializerFeature.WriteMapNullValue);
|
}
|
|
/**
|
* 获取业务专题所选模块列表(前4个)
|
* @param themeId 业务专题Id
|
* @return
|
*/
|
@ResponseBody
|
@GetMapping("getThemeModuleList")
|
public String getThemeModuleList(Integer themeId, Integer isOneMap, HttpServletRequest request) {
|
Map<String, Object> map = new HashMap<>();
|
map.put("themeid", themeId);
|
map.put("isOneMap", isOneMap);
|
List<Res_Theme_Module> resThemeModuleList = resThemeModuleService.getThemeModuleList(map);
|
List<Map<String, Object>> maps = new LinkedList<>();
|
|
String agent = request.getHeader("User-Agent");
|
//判断打钩的,如果不符合,就不显示。
|
String Browser = getBrowserName(agent);
|
Boolean panduan = false;
|
for (int i = 0; i < resThemeModuleList.size(); i++) {
|
if (resThemeModuleList.get(i).getFitbrowser() == null) {
|
resThemeModuleList.get(i).setFitbrowser("");
|
}
|
if (!resThemeModuleList.get(i).getFitbrowser().equals("")) {
|
if (Browser.indexOf(resThemeModuleList.get(i).getFitbrowser()) == -1) {
|
continue;
|
} else {
|
panduan = getaBoolean(resThemeModuleList, maps, panduan, i);
|
}
|
} else {
|
panduan = getaBoolean(resThemeModuleList, maps, panduan, i);
|
}
|
}
|
|
return JSON.toJSONString(maps, SerializerFeature.WriteMapNullValue);
|
}
|
|
private Boolean getaBoolean(List<Res_Theme_Module> resThemeModuleList, List<Map<String, Object>> maps, Boolean panduan, int i) {
|
Map<String, Object> map = new HashMap<>();
|
map.put("moduleid", resThemeModuleList.get(i).getModuleid());//模块ID
|
map.put("title", resThemeModuleList.get(i).getTitle());//模块名称
|
map.put("mapresid", resThemeModuleList.get(i).getMapresid());//地图资源ID
|
map.put("panelresid", resThemeModuleList.get(i).getPanelresid());//面板ID
|
map.put("panelurl", resThemeModuleList.get(i).getPanelurl());//面板地址
|
map.put("clusterstyle", resThemeModuleList.get(i).getClusterstyle());//自定义风格ID
|
Res_ExtIntegrate resExtIntegrate = new Res_ExtIntegrate();
|
if (resThemeModuleList.get(i).getPanelresid() != null) {
|
resExtIntegrate = resExtIntegrateService.selectByPrimaryKey(resThemeModuleList.get(i).getPanelresid());
|
}
|
if (resExtIntegrate != null) {
|
map.put("serverurl", resExtIntegrate.getServerurl());// 发布单位id
|
} else {
|
map.put("serverurl", "");// 发布单位id
|
}
|
JSONObject serviceconfig = JSONObject.parseObject(resThemeModuleList.get(i).getServiceconfig());
|
map.put("serviceconfig", (resThemeModuleList.get(i).getServiceconfig() != null && !resThemeModuleList.get(i).getServiceconfig().isEmpty()) ? serviceconfig : "''");
|
String configurl = "";
|
if (resThemeModuleList.get(i).getAssociationlayer() == null) {
|
configurl = "";
|
} else {
|
configurl = resThemeModuleList.get(i).getAssociationlayer().replace("?token=", "");
|
}
|
|
map.put("configurl", configurl);
|
map.put("isclickchartfilter", resThemeModuleList.get(i).getIsclickchartfilter());
|
map.put("ismaplinkage", resThemeModuleList.get(i).getIsmaplinkage());
|
map.put("echartsheight", (resThemeModuleList.get(i).getEchartsheight() != null && resThemeModuleList.get(i).getEchartsheight() % 1 == 0) ? resThemeModuleList.get(i).getEchartsheight().intValue() : (resThemeModuleList.get(i).getEchartsheight() == null ? "" : resThemeModuleList.get(i).getEchartsheight()));
|
maps.add(map);
|
panduan = true;
|
|
return panduan;
|
}
|
|
/**
|
* 判断是否有配置的图表
|
* @param
|
* @return
|
*/
|
@ResponseBody
|
@GetMapping("getserviceconfig")
|
public Res_ExtBusinessLayer getserviceconfig(Integer resourceid) {
|
Res_ExtBusinessLayer res_extBusinessLayer = resExtBusinessLayerService.selectByPrimaryKey(resourceid);
|
return res_extBusinessLayer;
|
}
|
|
/**
|
* 定制业务专题模块
|
* @param new_moduleId 新模块ID
|
* @return
|
*/
|
@ResponseBody
|
@GetMapping("ThemeModuleEdit")
|
public String ThemeModuleEdit(Integer new_moduleId) {
|
// 查询新模块信息
|
Res_Theme_Module resThemeModule = resThemeModuleService.selectByid(new_moduleId);
|
Map<String, Object> map = new HashMap<>();
|
if (resThemeModule != null) {
|
map.put("moduleid", resThemeModule.getModuleid());// 模块ID
|
map.put("title", resThemeModule.getTitle());// 模块名称
|
map.put("mapresid", resThemeModule.getMapresid());// 地图资源ID
|
map.put("panelresid", resThemeModule.getPanelresid());// 面板ID
|
Res_ExtIntegrate resExtIntegrate = resExtIntegrateService.selectByPrimaryKey(resThemeModule.getPanelresid());
|
|
if (resExtIntegrate != null) {
|
map.put("serverurl", resExtIntegrate.getServerurl());// 发布单位id
|
} else {
|
map.put("serverurl", "");// 发布单位id
|
}
|
}
|
|
return JSON.toJSONString(map, SerializerFeature.WriteMapNullValue);
|
}
|
|
/**
|
* 获取第一个默认专题(业务专题)
|
*/
|
@ResponseBody
|
@GetMapping("getFirstDefaultTheme")
|
public String getFirstDefaultTheme(Integer userId) {
|
List<Res_Theme> resThemeList = resThemeService.getDefaultThemeList(userId);// 获取业务专题默认专题,临时去除用户过滤
|
Map<String, Object> map = new HashMap<>();
|
int i = 0;
|
for (Res_Theme resTheme : resThemeList) {
|
if (i == 0) {
|
map.put("id", resTheme.getThemeid());
|
map.put("resourceid", resTheme.getResourceid());
|
map.put("title", resTheme.getTitle());
|
i += 1;
|
}
|
}
|
|
return JSON.toJSONString(map, SerializerFeature.WriteMapNullValue);
|
}
|
|
/**
|
* 获取一张图专题列表(业务专题)
|
*/
|
@ResponseBody
|
@GetMapping("getOneMapThemeList")
|
public String getOneMapThemeList(Integer userId, PageBean pageBean) {
|
if (pageBean.getPage() == -1) { // -1 表示不分页(一张图)
|
pageBean.setLimit(999);
|
} else {
|
pageBean.setLimit(10);
|
}
|
PageHelper.startPage(pageBean.getPage(), pageBean.getLimit());//设置当前页数及每页条数
|
List<Res_Theme> resThemeList = resThemeService.getOneMapThemeList(userId);// 获取业务专题默认专题列表
|
int countNums = (int) ((Page) resThemeList).getTotal();//获取记录总数
|
PageBean<Res_Theme> pageData = new PageBean<>(pageBean.getPage(), pageBean.getLimit(), countNums);
|
pageData.setItems(resThemeList);
|
List<Map<String, Object>> maps = new LinkedList<>();
|
for (Res_Theme resTheme : resThemeList) {
|
String title = resTheme.getTitle();
|
if (title.length() > 15) {
|
title = CommonUtils.subStringUtils(title, 30);
|
}
|
Map<String, Object> map = new HashMap<>();
|
map.put("id", resTheme.getThemeid());
|
map.put("title", title);
|
map.put("fulltitle", resTheme.getTitle());
|
map.put("type", "theme");
|
map.put("resourceid", resTheme.getResourceid() != null ? resTheme.getResourceid() : "");
|
maps.add(map);
|
}
|
Map<String, Object> result = new HashMap<>();
|
result.put("Count", countNums);
|
result.put("Page", pageBean.getPage());
|
result.put("ShuJu", maps);
|
|
return JSON.toJSONString(result, SerializerFeature.WriteMapNullValue);
|
}
|
|
/**
|
* 根据id获取专题描述
|
*/
|
@ResponseBody
|
@GetMapping("getThemeInfo")
|
public String getThemeInfo(Integer themeid) {
|
Res_Theme resTheme = resThemeService.selectByThemeId(themeid);
|
Map<String, Object> map = new HashMap<>();
|
if (resTheme != null) {
|
map.put("fulltitle", resTheme.getTitle());
|
map.put("content", resTheme.getContent());
|
}
|
|
return JSON.toJSONString(map, SerializerFeature.WriteMapNullValue);
|
}
|
|
/**
|
* 获取一张图第一个默认专题(业务专题)
|
*/
|
@ResponseBody
|
@GetMapping("getFirstDefaultThemeByOneMap")
|
public String getFirstDefaultThemeByOneMap(Integer userId) {
|
Res_Theme resTheme = resThemeService.getFirstDefaultThemeByOneMap(userId);// 获取业务专题默认专题,临时去除用户过滤
|
Map<String, Object> map = new HashMap<>();
|
if (resTheme != null) {
|
map.put("id", resTheme.getThemeid());
|
map.put("title", resTheme.getTitle());
|
}
|
|
return JSON.toJSONString(map, SerializerFeature.WriteMapNullValue);
|
}
|
|
/**
|
* 获取一张图业务主题菜单列表(不需要过滤用户,下面的userId在Mapper中没有用到)
|
*/
|
@ResponseBody
|
@GetMapping("getTopOneMapMenuList")
|
public String getTopOneMapMenuList(Integer userId) {
|
List<Res_Theme> resThemeList = resThemeService.getOneMapThemeList(userId);// 获取业务专题默认专题列表
|
List<Map<String, Object>> maps = new LinkedList<>();
|
for (Res_Theme resTheme : resThemeList) {
|
String title = resTheme.getTitle();
|
if (title.length() > 15) {
|
title = CommonUtils.subStringUtils(title, 30);
|
}
|
Map<String, Object> map = new HashMap<>();
|
map.put("id", resTheme.getThemeid());
|
map.put("title", title);
|
map.put("fulltitle", resTheme.getTitle());
|
map.put("resourceid", resTheme.getResourceid() != null ? resTheme.getResourceid() : "");
|
map.put("content", resTheme.getContent());
|
maps.add(map);
|
}
|
|
return JSON.toJSONString(maps, SerializerFeature.WriteMapNullValue);
|
}
|
|
public String getBrowserName(String agent) {
|
if (agent.indexOf("msie 7") > 0) {
|
return "IE";
|
} else if (agent.indexOf("msie") > 0) {
|
return "IE";
|
} else if (agent.indexOf("Firefox") > 0) {
|
return "Firefox";
|
} else if (agent.indexOf("Gecko") > 0 && agent.indexOf("rv:11") > 0) {
|
return "IE11";
|
} else if (agent.indexOf("Chrome") > 0) {
|
return "Google";
|
} else {
|
return "Others";
|
}
|
}
|
}
|