diff --git a/kn-common/pom.xml b/kn-common/pom.xml
index 137f225..03a3c4b 100644
--- a/kn-common/pom.xml
+++ b/kn-common/pom.xml
@@ -29,6 +29,10 @@
blade-core-auto
provided
+
+ com.alibaba
+ easyexcel
+
org.springblade
blade-core-tool
diff --git a/kn-common/src/main/java/org/springblade/common/converter/DateConverter.java b/kn-common/src/main/java/org/springblade/common/converter/DateConverter.java
new file mode 100644
index 0000000..8ef2a9d
--- /dev/null
+++ b/kn-common/src/main/java/org/springblade/common/converter/DateConverter.java
@@ -0,0 +1,37 @@
+package org.springblade.common.converter;
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * 日期类型转换器-easyexcel注解
+ * @author liyuchen
+ * @date 2023/04/06
+ */
+public class DateConverter implements Converter {
+
+ private static final String PATTERN_YYYY_MM_DD = "yyyy-MM-dd HH:mm:ss";
+
+ @Override
+ public Class> supportJavaTypeKey() {
+ return Converter.super.supportJavaTypeKey();
+ }
+
+ @Override
+ public CellDataTypeEnum supportExcelTypeKey() {
+ return Converter.super.supportExcelTypeKey();
+ }
+
+ @Override
+ public WriteCellData> convertToExcelData(Date value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+ SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_YYYY_MM_DD);
+ String dateValue = sdf.format(value);
+ return new WriteCellData<>(dateValue);
+ }
+}
diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/Hotspot.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/Hotspot.java
index 8cc6211..f08544a 100644
--- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/Hotspot.java
+++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/Hotspot.java
@@ -1,5 +1,9 @@
package com.kening.vordm.entity;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -12,55 +16,67 @@ import java.util.Date;
* 热点区域数据
* @TableName hotspot
*/
-@TableName(value ="hotspot")
@Data
+@HeadRowHeight(20)
+@ContentRowHeight(20)
+@TableName(value ="hotspot")
public class Hotspot implements Serializable {
/**
* 数据自增列
*/
@TableId
+ @ExcelIgnore
private Long id;
/**
* 区域_中文
*/
+ @ExcelProperty(value = "areaCn",index=0)
private String areaCn;
/**
* 区域_英文
*/
+ @ExcelProperty(value = "areaEn",index=1)
private String areaEn;
/**
* 出现频次
*/
+ @ExcelProperty(value = "frequency",index=2)
private Integer frequency;
/**
* 灾害id
*/
+ @ExcelIgnore
private Long disasterId;
/**
* 数据条目创建时间
*/
+ @ExcelIgnore
private Date createTime;
/**
* 是否保留此条目,0为未审核,1为审核保留,2为审核不保留
*/
+ @ExcelIgnore
private Integer status;
/**
* 管理人/审核人
*/
+ @ExcelIgnore
private Long managerId;
/**
* 审核时间
*/
+ @ExcelIgnore
private Date reviewTime;
+ @ExcelIgnore
@TableField(exist = false)
private static final long serialVersionUID = 1L;
diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/MapServer.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/MapServer.java
index 4251db4..b7dc101 100644
--- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/MapServer.java
+++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/MapServer.java
@@ -1,5 +1,7 @@
package com.kening.vordm.entity;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/News.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/News.java
index 93d641a..9b71af2 100644
--- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/News.java
+++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/News.java
@@ -1,5 +1,9 @@
package com.kening.vordm.entity;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -10,62 +14,76 @@ import java.util.Date;
/**
* 新闻咨询数据表
+ * @author Administrator
* @TableName news
*/
-@TableName(value ="news")
@Data
+@HeadRowHeight(20)
+@ContentRowHeight(20)
+@TableName(value ="news")
public class News implements Serializable {
/**
* 数据自增列
*/
@TableId
+ @ExcelIgnore
private Long id;
/**
* 新闻名称
*/
+ @ExcelProperty(value="title",index=0)
private String title;
/**
* 新闻内容
*/
+ @ExcelProperty(value="content",index=1)
private String content;
/**
* 新闻链接
*/
+ @ExcelIgnore
private String link;
/**
* 新闻类型(baidu,bing)0-baidu中文 ,1-bing英文
*/
+ @ExcelIgnore
private Integer type;
/**
* 灾害id
*/
+ @ExcelIgnore
private Long disasterId;
/**
* 数据条目创建时间
*/
+ @ExcelIgnore
private Date createTime;
/**
* 是否保留此条目,0为未审核,1为审核保留,2为审核不保留
*/
+ @ExcelIgnore
private Integer status;
/**
* 管理人/审核人
*/
+ @ExcelIgnore
private Long managerId;
/**
* 审核时间
*/
+ @ExcelIgnore
private Date reviewTime;
+ @ExcelIgnore
@TableField(exist = false)
private static final long serialVersionUID = 1L;
diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/SocialMedia.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/SocialMedia.java
index 0e65414..7042bc0 100644
--- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/SocialMedia.java
+++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/SocialMedia.java
@@ -1,9 +1,15 @@
package com.kening.vordm.entity;
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.format.DateTimeFormat;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
+import org.springblade.common.converter.DateConverter;
import java.io.Serializable;
import java.util.Date;
@@ -12,110 +18,134 @@ import java.util.Date;
* 社交媒体数据表,主要指twitter,facebook,微博等数据来源,重要字段 time-content
* @TableName social_media
*/
-@TableName(value ="social_media")
@Data
+@HeadRowHeight(20)
+@ContentRowHeight(20)
+@TableName(value ="social_media")
public class SocialMedia implements Serializable {
/**
* 数据自增列
*/
@TableId
+ @ExcelIgnore
private Long id;
/**
* 推文标签链接
*/
+ @ExcelIgnore
private String link;
/**
* 推文发表时间
*/
+ @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
+ @ExcelProperty(value="time",index=0,converter = DateConverter.class)
private Date time;
/**
* 推文内容
*/
+ @ExcelProperty(value="content",index=1)
private String content;
/**
* 用户id
*/
+ @ExcelIgnore
private String userId;
/**
* 点赞数量
*/
+ @ExcelProperty(value="favoriteCount",index=2)
private Integer favoriteCount;
/**
* 回复数
*/
+ @ExcelProperty(value="replyCount",index=3)
private Integer replyCount;
/**
* 访问树量
*/
+ @ExcelProperty(value="visitCount",index=4)
private Integer visitCount;
/**
* 转发次数
*/
+ @ExcelProperty(value="retweetCount",index=5)
private Integer retweetCount;
/**
* 地理字段
*/
+ @ExcelIgnore
private String geo;
/**
* 坐标
*/
+ @ExcelIgnore
private String coordinates;
/**
* 发文地
*/
+ @ExcelIgnore
private String place;
/**
* 贡献者
*/
+ @ExcelIgnore
private String contributors;
/**
* 推文主题
*/
+ @ExcelIgnore
private String topic;
/**
* 数据条目创建时间
*/
+ @ExcelIgnore
private Date createTime;
/**
* 灾害id
*/
+ @ExcelIgnore
private Long disasterId;
/**
* 数据类型,0-twitter ,1-weibo
*/
+ @ExcelIgnore
private Integer type;
/**
* 审核状态,0为未审核,1为审核保留,2为审核不保留
*/
+ @ExcelIgnore
private Integer status;
/**
* 管理人/审核人
*/
+ @ExcelIgnore
private Long managerId;
/**
* 审核时间
*/
+ @ExcelIgnore
private Date reviewTime;
+ @ExcelIgnore
@TableField(exist = false)
private static final long serialVersionUID = 1L;
diff --git a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/WordColuds.java b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/WordCLouds.java
similarity index 81%
rename from kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/WordColuds.java
rename to kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/WordCLouds.java
index 1ce8083..39e50f2 100644
--- a/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/WordColuds.java
+++ b/kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/WordCLouds.java
@@ -1,5 +1,7 @@
package com.kening.vordm.entity;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@@ -10,11 +12,11 @@ import java.util.Date;
/**
* 词云数据
- * @TableName word_coluds
+ * @TableName word_clouds
*/
-@TableName(value ="word_coluds")
@Data
-public class WordColuds implements Serializable {
+@TableName(value ="word_clouds")
+public class WordCLouds implements Serializable {
/**
* 数据自增列
*/
diff --git a/kn-service-api/pom.xml b/kn-service-api/pom.xml
index ecc438c..9c7c75f 100644
--- a/kn-service-api/pom.xml
+++ b/kn-service-api/pom.xml
@@ -55,6 +55,16 @@
org.springframework.cloud
spring-cloud-starter-netflix-hystrix
+
+
+ com.alibaba
+ easyexcel
+
+
+
+ cn.hutool
+ hutool-all
+
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/DisasterInfoController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/DisasterInfoController.java
index 4f8f8ed..ec424fc 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/DisasterInfoController.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/DisasterInfoController.java
@@ -1,25 +1,23 @@
package com.kening.vordm.controller;
-import com.kening.vordm.vo.DisasterMangerInfo;
-import com.kening.vordm.vo.GroupByUse;
-import com.sun.org.apache.bcel.internal.generic.NEW;
-import org.springblade.core.mp.support.BladePage;
-import org.springblade.core.mp.support.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.DisasterInfo;
import com.kening.vordm.entity.News;
import com.kening.vordm.service.DisasterInfoService;
import com.kening.vordm.service.NewsService;
+import com.kening.vordm.vo.DisasterMangerInfo;
+import com.kening.vordm.vo.GroupByUse;
import lombok.RequiredArgsConstructor;
+import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
-import java.util.Queue;
@RestController
@RequiredArgsConstructor
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/HotspotController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/HotspotController.java
new file mode 100644
index 0000000..9f1ac6c
--- /dev/null
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/HotspotController.java
@@ -0,0 +1,37 @@
+package com.kening.vordm.controller;
+
+import com.kening.vordm.entity.HotspotArea;
+import com.kening.vordm.entity.WorldCharts;
+import com.kening.vordm.service.HotspotService;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 热点数据-前端UI控制器
+ * @author liyuchen
+ * @date 2023/04/05
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/ui/hotspot")
+public class HotspotController {
+
+ private HotspotService service;
+
+ /**
+ * 热点统计
+ * @param disasterId 灾害id
+ * @return
+ */
+ @GetMapping("/hotspotCount")
+ public R> hotspotCount(@RequestParam Long disasterId){
+ return R.data(service.hotspotCount(disasterId));
+ }
+}
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/NewsController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/NewsController.java
index ab04772..4903c4f 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/NewsController.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/NewsController.java
@@ -7,11 +7,10 @@ import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import java.util.Map;
@@ -38,5 +37,15 @@ public class NewsController {
return R.data(newsService.page(Condition.getPage(query),Condition.getQueryWrapper(params,News.class)));
}
-
+ /**
+ * 新闻、热点导出功能
+ * @param disasterId
+ * @param request
+ * @param response
+ * @param type
+ */
+ @GetMapping("export")
+ public void export(Long disasterId,Integer type,HttpServletRequest request, HttpServletResponse response){
+ newsService.export(disasterId,type,request,response);
+ }
}
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/RemoteSensingSourceDataController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/RemoteSensingSourceDataController.java
index dd7c280..ee75542 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/RemoteSensingSourceDataController.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/RemoteSensingSourceDataController.java
@@ -2,17 +2,13 @@ package com.kening.vordm.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.kening.vordm.entity.News;
-import com.kening.vordm.service.DisasterInfoService;
-import javafx.beans.binding.LongExpression;
-import org.springblade.core.mp.support.Condition;
-import org.springblade.core.mp.support.Query;
import com.kening.vordm.entity.DisasterInfo;
import com.kening.vordm.entity.RemoteSensingSourceData;
+import com.kening.vordm.service.DisasterInfoService;
import com.kening.vordm.service.RemoteSensingSourceDataService;
-import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
-import lombok.RequiredArgsConstructor;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/SocialMediaController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/SocialMediaController.java
index b8724fe..601f9f3 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/SocialMediaController.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/SocialMediaController.java
@@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
@@ -48,4 +50,15 @@ public class SocialMediaController {
public R> tweetsCount(@RequestParam Long disasterId){
return R.data(service.tweetsCount(disasterId));
}
+
+ /**
+ * 推文数据导出功能
+ * @param disasterId
+ * @param request
+ * @param response
+ */
+ @GetMapping("export")
+ public void export(Long disasterId, HttpServletRequest request, HttpServletResponse response){
+ service.export(disasterId,request,response);
+ }
}
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/WordColudsController.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/WordCloudsController.java
similarity index 80%
rename from kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/WordColudsController.java
rename to kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/WordCloudsController.java
index 9603a17..9984257 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/WordColudsController.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/controller/WordCloudsController.java
@@ -1,9 +1,7 @@
package com.kening.vordm.controller;
-import com.kening.vordm.entity.Tweets;
-import com.kening.vordm.entity.WordColuds;
import com.kening.vordm.entity.WorldCharts;
-import com.kening.vordm.service.WordColudsService;
+import com.kening.vordm.service.WordCloudsService;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.GetMapping;
@@ -22,9 +20,9 @@ import java.util.Map;
@RestController
@AllArgsConstructor
@RequestMapping("/ui/word")
-public class WordColudsController {
+public class WordCloudsController {
- private WordColudsService service;
+ private WordCloudsService service;
/**
* 词云统计
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/HotspotMapper.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/HotspotMapper.java
index 977232b..a6a0193 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/HotspotMapper.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/HotspotMapper.java
@@ -3,6 +3,10 @@ package com.kening.vordm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kening.vordm.entity.Hotspot;
+import com.kening.vordm.entity.HotspotArea;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* @author G1393
@@ -12,5 +16,10 @@ import com.kening.vordm.entity.Hotspot;
*/
public interface HotspotMapper extends BaseMapper {
-
+ /**
+ * 热点统计
+ * @param disasterId 灾害id
+ * @return
+ */
+ List hotspotCount(@Param("disasterId") Long disasterId);
}
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/HotspotMapper.xml b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/HotspotMapper.xml
index 57f01f8..fc9c1fb 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/HotspotMapper.xml
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/HotspotMapper.xml
@@ -21,4 +21,17 @@
frequency,disaster_id,create_time,
status,manager_id,review_time
+
+
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/WordColudsMapper.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/WordCloudsMapper.java
similarity index 72%
rename from kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/WordColudsMapper.java
rename to kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/WordCloudsMapper.java
index 2c437e1..6404552 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/WordColudsMapper.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/WordCloudsMapper.java
@@ -2,7 +2,7 @@ package com.kening.vordm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.kening.vordm.entity.WordColuds;
+import com.kening.vordm.entity.WordCLouds;
import com.kening.vordm.entity.WorldCharts;
import org.apache.ibatis.annotations.Param;
@@ -10,11 +10,11 @@ import java.util.List;
/**
* @author G1393
-* @description 针对表【word_coluds(词云数据)】的数据库操作Mapper
+* @description 针对表【word_clouds(词云数据)】的数据库操作Mapper
* @createDate 2023-04-04 15:54:31
* @Entity new.domain.WordColuds
*/
-public interface WordColudsMapper extends BaseMapper {
+public interface WordCloudsMapper extends BaseMapper {
/**
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/WordColudsMapper.xml b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/WordCloudsMapper.xml
similarity index 93%
rename from kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/WordColudsMapper.xml
rename to kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/WordCloudsMapper.xml
index 940fa7e..80f883f 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/WordColudsMapper.xml
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/mapper/WordCloudsMapper.xml
@@ -2,9 +2,9 @@
-
+
-
+
@@ -26,7 +26,7 @@
DATE_FORMAT(time,'%Y-%m-%d') date,
frequency value,
word name
- from word_coluds
+ from word_clouds
and `status` = 1
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/HotspotService.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/HotspotService.java
index 4f7cb47..86646c0 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/HotspotService.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/HotspotService.java
@@ -3,6 +3,9 @@ package com.kening.vordm.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.Hotspot;
+import com.kening.vordm.entity.HotspotArea;
+
+import java.util.List;
/**
* @author G1393
@@ -11,4 +14,10 @@ import com.kening.vordm.entity.Hotspot;
*/
public interface HotspotService extends IService {
+ /**
+ * 热点统计
+ * @param disasterId 灾害id
+ * @return
+ */
+ List hotspotCount(Long disasterId);
}
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/NewsService.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/NewsService.java
index 09a8df2..6055b45 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/NewsService.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/NewsService.java
@@ -4,6 +4,9 @@ package com.kening.vordm.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.News;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
/**
* @author G1393
* @description 针对表【news(新闻咨询数据表)】的数据库操作Service
@@ -11,4 +14,12 @@ import com.kening.vordm.entity.News;
*/
public interface NewsService extends IService {
+ /**
+ * 新闻、热点导出功能
+ * @param disasterId
+ * @param request
+ * @param response
+ * @param type
+ */
+ void export(Long disasterId,Integer type, HttpServletRequest request, HttpServletResponse response);
}
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/SocialMediaService.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/SocialMediaService.java
index 39cf9e1..ed67438 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/SocialMediaService.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/SocialMediaService.java
@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.SocialMedia;
import com.kening.vordm.entity.Tweets;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -19,4 +21,12 @@ public interface SocialMediaService extends IService {
* @return
*/
List tweetsCount(Long disasterId);
+
+ /**
+ * 推文数据导出功能
+ * @param disasterId
+ * @param request
+ * @param response
+ */
+ void export(Long disasterId, HttpServletRequest request, HttpServletResponse response);
}
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/WordColudsService.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/WordCloudsService.java
similarity index 69%
rename from kn-service/biz-vordm/src/main/java/com/kening/vordm/service/WordColudsService.java
rename to kn-service/biz-vordm/src/main/java/com/kening/vordm/service/WordCloudsService.java
index 257bc43..2f4955b 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/WordColudsService.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/WordCloudsService.java
@@ -2,7 +2,7 @@ package com.kening.vordm.service;
import com.baomidou.mybatisplus.extension.service.IService;
-import com.kening.vordm.entity.WordColuds;
+import com.kening.vordm.entity.WordCLouds;
import com.kening.vordm.entity.WorldCharts;
import java.util.List;
@@ -10,10 +10,10 @@ import java.util.Map;
/**
* @author G1393
-* @description 针对表【word_coluds(词云数据)】的数据库操作Service
+* @description 针对表【word_clouds(词云数据)】的数据库操作Service
* @createDate 2023-04-04 15:54:31
*/
-public interface WordColudsService extends IService {
+public interface WordCloudsService extends IService {
/**
* 词云统计
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/HotspotServiceImpl.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/HotspotServiceImpl.java
index 481d8c3..51a7fb3 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/HotspotServiceImpl.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/HotspotServiceImpl.java
@@ -2,10 +2,13 @@ package com.kening.vordm.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.Hotspot;
+import com.kening.vordm.entity.HotspotArea;
import com.kening.vordm.mapper.HotspotMapper;
import com.kening.vordm.service.HotspotService;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
* @author G1393
* @description 针对表【hotspot(热点区域数据)】的数据库操作Service实现
@@ -15,4 +18,13 @@ import org.springframework.stereotype.Service;
public class HotspotServiceImpl extends ServiceImpl
implements HotspotService {
+ /**
+ * 热点统计
+ * @param disasterId 灾害id
+ * @return
+ */
+ @Override
+ public List hotspotCount(Long disasterId) {
+ return baseMapper.hotspotCount(disasterId);
+ }
}
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/NewsServiceImpl.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/NewsServiceImpl.java
index a56981c..c8ab79b 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/NewsServiceImpl.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/NewsServiceImpl.java
@@ -1,18 +1,82 @@
package com.kening.vordm.service.impl;
+import cn.hutool.core.exceptions.ExceptionUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kening.vordm.entity.Hotspot;
import com.kening.vordm.entity.News;
import com.kening.vordm.mapper.NewsMapper;
+import com.kening.vordm.service.HotspotService;
import com.kening.vordm.service.NewsService;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+
/**
* @author G1393
* @description 针对表【news(新闻咨询数据表)】的数据库操作Service实现
* @createDate 2023-04-04 15:54:31
*/
+@Slf4j
@Service
+@AllArgsConstructor
public class NewsServiceImpl extends ServiceImpl
implements NewsService {
+ private HotspotService hotspotService;
+
+ /**
+ * 新闻、热点导出功能
+ * @param disasterId
+ * @param request
+ * @param response
+ * @param type
+ */
+ @Override
+ public void export(Long disasterId,Integer type, HttpServletRequest request, HttpServletResponse response) {
+ try{
+ String fileName = "";
+ if(type.equals(1) || type.equals(0)){
+ fileName = type.equals(1) ? "English News" : "Chinese News";
+ //英文的新闻 或 中文的新闻
+ List newsList = list(Wrappers.lambdaQuery().eq(News::getDisasterId,disasterId).eq(News::getStatus,1).eq(News::getType,type));
+ extracted(response, fileName);
+ EasyExcel.write(response.getOutputStream(),News.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("news").doWrite(newsList);
+ }else if(type.equals(2)){
+ //热点数据
+ fileName = "Hotspot Area";
+ List hotspotList = hotspotService.list(Wrappers.lambdaQuery().eq(Hotspot::getDisasterId,disasterId).eq(Hotspot::getStatus,1));
+ extracted(response, fileName);
+ EasyExcel.write(response.getOutputStream(),Hotspot.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("hotspot").doWrite(hotspotList);
+ }
+ }catch (IOException e){
+ log.error("导出IO异常:{}",e.getMessage());
+ ExceptionUtil.stacktraceToString(e);
+ }catch (Exception e){
+ log.error("导出发生异常:{}",e.getMessage());
+ ExceptionUtil.stacktraceToString(e);
+ }
+ }
+
+ /**
+ * 导出设置
+ * @param response
+ * @param fileName
+ * @throws IOException
+ */
+ private void extracted(HttpServletResponse response, String fileName) throws IOException {
+ // 设置文本内省
+ response.setContentType("application/vnd.ms-excel");
+ // 设置字符编码
+ response.setCharacterEncoding("utf-8");
+ // 设置响应头
+ response.setHeader("Content-disposition", "attachment;filename="+ fileName +".xlsx");
+ }
}
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/SocialMediaServiceImpl.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/SocialMediaServiceImpl.java
index 5d55756..c1ee0f3 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/SocialMediaServiceImpl.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/SocialMediaServiceImpl.java
@@ -1,12 +1,22 @@
package com.kening.vordm.service.impl;
+import cn.hutool.core.exceptions.ExceptionUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kening.vordm.entity.Hotspot;
+import com.kening.vordm.entity.News;
import com.kening.vordm.entity.SocialMedia;
import com.kening.vordm.entity.Tweets;
import com.kening.vordm.mapper.SocialMediaMapper;
import com.kening.vordm.service.SocialMediaService;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
import java.util.List;
/**
@@ -14,6 +24,7 @@ import java.util.List;
* @description 针对表【social_media(社交媒体数据表,主要指twitter,facebook,微博等数据来源,重要字段 time-content)】的数据库操作Service实现
* @createDate 2023-04-04 15:54:31
*/
+@Slf4j
@Service
public class SocialMediaServiceImpl extends ServiceImpl
implements SocialMediaService {
@@ -27,4 +38,32 @@ implements SocialMediaService {
public List tweetsCount(Long disasterId) {
return baseMapper.tweetsCount(disasterId);
}
+
+ /**
+ * 推文数据导出功能
+ * @param disasterId
+ * @param request
+ * @param response
+ */
+ @Override
+ public void export(Long disasterId, HttpServletRequest request, HttpServletResponse response) {
+ try{
+ String fileName = "Social media data";
+ //媒体数据
+ List socialMediaList = list(Wrappers.lambdaQuery().eq(SocialMedia::getDisasterId,disasterId).eq(SocialMedia::getStatus,1));
+ // 设置文本内省
+ response.setContentType("application/vnd.ms-excel");
+ // 设置字符编码
+ response.setCharacterEncoding("utf-8");
+ // 设置响应头
+ response.setHeader("Content-disposition", "attachment;filename="+ fileName +".xlsx");
+ EasyExcel.write(response.getOutputStream(),SocialMedia.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet("social").doWrite(socialMediaList);
+ }catch (IOException e){
+ log.error("导出IO异常:{}",e.getMessage());
+ ExceptionUtil.stacktraceToString(e);
+ }catch (Exception e){
+ log.error("导出发生异常:{}",e.getMessage());
+ ExceptionUtil.stacktraceToString(e);
+ }
+ }
}
diff --git a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/WordColudsServiceImpl.java b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/WordCloudsServiceImpl.java
similarity index 67%
rename from kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/WordColudsServiceImpl.java
rename to kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/WordCloudsServiceImpl.java
index ac66ff9..93356ba 100644
--- a/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/WordColudsServiceImpl.java
+++ b/kn-service/biz-vordm/src/main/java/com/kening/vordm/service/impl/WordCloudsServiceImpl.java
@@ -1,10 +1,10 @@
package com.kening.vordm.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.kening.vordm.entity.WordColuds;
+import com.kening.vordm.entity.WordCLouds;
import com.kening.vordm.entity.WorldCharts;
-import com.kening.vordm.mapper.WordColudsMapper;
-import com.kening.vordm.service.WordColudsService;
+import com.kening.vordm.mapper.WordCloudsMapper;
+import com.kening.vordm.service.WordCloudsService;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -13,12 +13,12 @@ import java.util.stream.Collectors;
/**
* @author G1393
-* @description 针对表【word_coluds(词云数据)】的数据库操作Service实现
+* @description 针对表【word_clouds(词云数据)】的数据库操作Service实现
* @createDate 2023-04-04 15:54:31
*/
@Service
-public class WordColudsServiceImpl extends ServiceImpl
-implements WordColudsService {
+public class WordCloudsServiceImpl extends ServiceImpl
+implements WordCloudsService {
/**
* 词云统计
diff --git a/pom.xml b/pom.xml
index a78703c..b21280e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,6 +26,8 @@
Harbor12345
iot
1.4.13
+ 5.8.16
+ 3.2.1
@@ -70,6 +72,16 @@
kn-launcher
${revision}
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+ com.alibaba
+ easyexcel
+ ${easyexcel.version}
+