冲突解决

This commit is contained in:
glj 2023-04-06 18:22:40 +08:00
commit 80146ae924
26 changed files with 390 additions and 39 deletions

View File

@ -29,6 +29,10 @@
<artifactId>blade-core-auto</artifactId> <artifactId>blade-core-auto</artifactId>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.springblade</groupId> <groupId>org.springblade</groupId>
<artifactId>blade-core-tool</artifactId> <artifactId>blade-core-tool</artifactId>

View File

@ -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<Date> {
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);
}
}

View File

@ -1,5 +1,9 @@
package com.kening.vordm.entity; 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.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
@ -12,55 +16,67 @@ import java.util.Date;
* 热点区域数据 * 热点区域数据
* @TableName hotspot * @TableName hotspot
*/ */
@TableName(value ="hotspot")
@Data @Data
@HeadRowHeight(20)
@ContentRowHeight(20)
@TableName(value ="hotspot")
public class Hotspot implements Serializable { public class Hotspot implements Serializable {
/** /**
* 数据自增列 * 数据自增列
*/ */
@TableId @TableId
@ExcelIgnore
private Long id; private Long id;
/** /**
* 区域_中文 * 区域_中文
*/ */
@ExcelProperty(value = "areaCn",index=0)
private String areaCn; private String areaCn;
/** /**
* 区域_英文 * 区域_英文
*/ */
@ExcelProperty(value = "areaEn",index=1)
private String areaEn; private String areaEn;
/** /**
* 出现频次 * 出现频次
*/ */
@ExcelProperty(value = "frequency",index=2)
private Integer frequency; private Integer frequency;
/** /**
* 灾害id * 灾害id
*/ */
@ExcelIgnore
private Long disasterId; private Long disasterId;
/** /**
* 数据条目创建时间 * 数据条目创建时间
*/ */
@ExcelIgnore
private Date createTime; private Date createTime;
/** /**
* 是否保留此条目0为未审核1为审核保留2为审核不保留 * 是否保留此条目0为未审核1为审核保留2为审核不保留
*/ */
@ExcelIgnore
private Integer status; private Integer status;
/** /**
* 管理人/审核人 * 管理人/审核人
*/ */
@ExcelIgnore
private Long managerId; private Long managerId;
/** /**
* 审核时间 * 审核时间
*/ */
@ExcelIgnore
private Date reviewTime; private Date reviewTime;
@ExcelIgnore
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -1,5 +1,7 @@
package com.kening.vordm.entity; 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.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;

View File

@ -1,5 +1,9 @@
package com.kening.vordm.entity; 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.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
@ -10,62 +14,76 @@ import java.util.Date;
/** /**
* 新闻咨询数据表 * 新闻咨询数据表
* @author Administrator
* @TableName news * @TableName news
*/ */
@TableName(value ="news")
@Data @Data
@HeadRowHeight(20)
@ContentRowHeight(20)
@TableName(value ="news")
public class News implements Serializable { public class News implements Serializable {
/** /**
* 数据自增列 * 数据自增列
*/ */
@TableId @TableId
@ExcelIgnore
private Long id; private Long id;
/** /**
* 新闻名称 * 新闻名称
*/ */
@ExcelProperty(value="title",index=0)
private String title; private String title;
/** /**
* 新闻内容 * 新闻内容
*/ */
@ExcelProperty(value="content",index=1)
private String content; private String content;
/** /**
* 新闻链接 * 新闻链接
*/ */
@ExcelIgnore
private String link; private String link;
/** /**
* 新闻类型baidu,bing0-baidu中文 ,1-bing英文 * 新闻类型baidu,bing0-baidu中文 ,1-bing英文
*/ */
@ExcelIgnore
private Integer type; private Integer type;
/** /**
* 灾害id * 灾害id
*/ */
@ExcelIgnore
private Long disasterId; private Long disasterId;
/** /**
* 数据条目创建时间 * 数据条目创建时间
*/ */
@ExcelIgnore
private Date createTime; private Date createTime;
/** /**
* 是否保留此条目0为未审核1为审核保留2为审核不保留 * 是否保留此条目0为未审核1为审核保留2为审核不保留
*/ */
@ExcelIgnore
private Integer status; private Integer status;
/** /**
* 管理人/审核人 * 管理人/审核人
*/ */
@ExcelIgnore
private Long managerId; private Long managerId;
/** /**
* 审核时间 * 审核时间
*/ */
@ExcelIgnore
private Date reviewTime; private Date reviewTime;
@ExcelIgnore
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -1,9 +1,15 @@
package com.kening.vordm.entity; 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.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import org.springblade.common.converter.DateConverter;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
@ -12,110 +18,134 @@ import java.util.Date;
* 社交媒体数据表主要指twitterfacebook,微博等数据来源重要字段 time-content * 社交媒体数据表主要指twitterfacebook,微博等数据来源重要字段 time-content
* @TableName social_media * @TableName social_media
*/ */
@TableName(value ="social_media")
@Data @Data
@HeadRowHeight(20)
@ContentRowHeight(20)
@TableName(value ="social_media")
public class SocialMedia implements Serializable { public class SocialMedia implements Serializable {
/** /**
* 数据自增列 * 数据自增列
*/ */
@TableId @TableId
@ExcelIgnore
private Long id; private Long id;
/** /**
* 推文标签链接 * 推文标签链接
*/ */
@ExcelIgnore
private String link; private String link;
/** /**
* 推文发表时间 * 推文发表时间
*/ */
@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
@ExcelProperty(value="time",index=0,converter = DateConverter.class)
private Date time; private Date time;
/** /**
* 推文内容 * 推文内容
*/ */
@ExcelProperty(value="content",index=1)
private String content; private String content;
/** /**
* 用户id * 用户id
*/ */
@ExcelIgnore
private String userId; private String userId;
/** /**
* 点赞数量 * 点赞数量
*/ */
@ExcelProperty(value="favoriteCount",index=2)
private Integer favoriteCount; private Integer favoriteCount;
/** /**
* 回复数 * 回复数
*/ */
@ExcelProperty(value="replyCount",index=3)
private Integer replyCount; private Integer replyCount;
/** /**
* 访问树量 * 访问树量
*/ */
@ExcelProperty(value="visitCount",index=4)
private Integer visitCount; private Integer visitCount;
/** /**
* 转发次数 * 转发次数
*/ */
@ExcelProperty(value="retweetCount",index=5)
private Integer retweetCount; private Integer retweetCount;
/** /**
* 地理字段 * 地理字段
*/ */
@ExcelIgnore
private String geo; private String geo;
/** /**
* 坐标 * 坐标
*/ */
@ExcelIgnore
private String coordinates; private String coordinates;
/** /**
* 发文地 * 发文地
*/ */
@ExcelIgnore
private String place; private String place;
/** /**
* 贡献者 * 贡献者
*/ */
@ExcelIgnore
private String contributors; private String contributors;
/** /**
* 推文主题 * 推文主题
*/ */
@ExcelIgnore
private String topic; private String topic;
/** /**
* 数据条目创建时间 * 数据条目创建时间
*/ */
@ExcelIgnore
private Date createTime; private Date createTime;
/** /**
* 灾害id * 灾害id
*/ */
@ExcelIgnore
private Long disasterId; private Long disasterId;
/** /**
* 数据类型0-twitter ,1-weibo * 数据类型0-twitter ,1-weibo
*/ */
@ExcelIgnore
private Integer type; private Integer type;
/** /**
* 审核状态0为未审核1为审核保留2为审核不保留 * 审核状态0为未审核1为审核保留2为审核不保留
*/ */
@ExcelIgnore
private Integer status; private Integer status;
/** /**
* 管理人/审核人 * 管理人/审核人
*/ */
@ExcelIgnore
private Long managerId; private Long managerId;
/** /**
* 审核时间 * 审核时间
*/ */
@ExcelIgnore
private Date reviewTime; private Date reviewTime;
@ExcelIgnore
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -1,5 +1,7 @@
package com.kening.vordm.entity; 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.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; 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 @Data
public class WordColuds implements Serializable { @TableName(value ="word_clouds")
public class WordCLouds implements Serializable {
/** /**
* 数据自增列 * 数据自增列
*/ */

View File

@ -55,6 +55,16 @@
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -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<List<HotspotArea>> hotspotCount(@RequestParam Long disasterId){
return R.data(service.hotspotCount(disasterId));
}
}

View File

@ -7,11 +7,10 @@ import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
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.Map; import java.util.Map;
@ -38,5 +37,15 @@ public class NewsController {
return R.data(newsService.page(Condition.getPage(query),Condition.getQueryWrapper(params,News.class))); 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);
}
} }

View File

@ -2,17 +2,13 @@ package com.kening.vordm.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.DisasterInfo;
import com.kening.vordm.entity.RemoteSensingSourceData; import com.kening.vordm.entity.RemoteSensingSourceData;
import com.kening.vordm.service.DisasterInfoService;
import com.kening.vordm.service.RemoteSensingSourceDataService; import com.kening.vordm.service.RemoteSensingSourceDataService;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor; 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.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;

View File

@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -48,4 +50,15 @@ public class SocialMediaController {
public R<List<Tweets>> tweetsCount(@RequestParam Long disasterId){ public R<List<Tweets>> tweetsCount(@RequestParam Long disasterId){
return R.data(service.tweetsCount(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);
}
} }

View File

@ -1,9 +1,7 @@
package com.kening.vordm.controller; 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.entity.WorldCharts;
import com.kening.vordm.service.WordColudsService; import com.kening.vordm.service.WordCloudsService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -22,9 +20,9 @@ import java.util.Map;
@RestController @RestController
@AllArgsConstructor @AllArgsConstructor
@RequestMapping("/ui/word") @RequestMapping("/ui/word")
public class WordColudsController { public class WordCloudsController {
private WordColudsService service; private WordCloudsService service;
/** /**
* 词云统计 * 词云统计

View File

@ -3,6 +3,10 @@ package com.kening.vordm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kening.vordm.entity.Hotspot; import com.kening.vordm.entity.Hotspot;
import com.kening.vordm.entity.HotspotArea;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* @author G1393 * @author G1393
@ -12,5 +16,10 @@ import com.kening.vordm.entity.Hotspot;
*/ */
public interface HotspotMapper extends BaseMapper<Hotspot> { public interface HotspotMapper extends BaseMapper<Hotspot> {
/**
* 热点统计
* @param disasterId 灾害id
* @return
*/
List<HotspotArea> hotspotCount(@Param("disasterId") Long disasterId);
} }

View File

@ -21,4 +21,17 @@
frequency,disaster_id,create_time, frequency,disaster_id,create_time,
status,manager_id,review_time status,manager_id,review_time
</sql> </sql>
<select id="hotspotCount" resultType="com.kening.vordm.entity.HotspotArea">
select
concat(area_cn,"(",area_en,")") as name,
frequency as value
from hotspot
<where>
and `status` = 1
<if test="disasterId!=null">
and disaster_id = #{disasterId}
</if>
</where>
</select>
</mapper> </mapper>

View File

@ -2,7 +2,7 @@ package com.kening.vordm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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 com.kening.vordm.entity.WorldCharts;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -10,11 +10,11 @@ import java.util.List;
/** /**
* @author G1393 * @author G1393
* @description 针对表word_coluds(词云数据)的数据库操作Mapper * @description 针对表word_clouds(词云数据)的数据库操作Mapper
* @createDate 2023-04-04 15:54:31 * @createDate 2023-04-04 15:54:31
* @Entity new.domain.WordColuds * @Entity new.domain.WordColuds
*/ */
public interface WordColudsMapper extends BaseMapper<WordColuds> { public interface WordCloudsMapper extends BaseMapper<WordCLouds> {
/** /**

View File

@ -2,9 +2,9 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kening.vordm.mapper.WordColudsMapper"> <mapper namespace="com.kening.vordm.mapper.WordCloudsMapper">
<resultMap id="BaseResultMap" type="com.kening.vordm.entity.WordColuds"> <resultMap id="BaseResultMap" type="com.kening.vordm.entity.WordCLouds">
<id property="id" column="id" jdbcType="BIGINT"/> <id property="id" column="id" jdbcType="BIGINT"/>
<result property="time" column="time" jdbcType="TIMESTAMP"/> <result property="time" column="time" jdbcType="TIMESTAMP"/>
<result property="frequency" column="frequency" jdbcType="INTEGER"/> <result property="frequency" column="frequency" jdbcType="INTEGER"/>
@ -26,7 +26,7 @@
DATE_FORMAT(time,'%Y-%m-%d') date, DATE_FORMAT(time,'%Y-%m-%d') date,
frequency value, frequency value,
word name word name
from word_coluds from word_clouds
<where> <where>
and `status` = 1 and `status` = 1
<if test="disasterId!=null"> <if test="disasterId!=null">

View File

@ -3,6 +3,9 @@ package com.kening.vordm.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.Hotspot; import com.kening.vordm.entity.Hotspot;
import com.kening.vordm.entity.HotspotArea;
import java.util.List;
/** /**
* @author G1393 * @author G1393
@ -11,4 +14,10 @@ import com.kening.vordm.entity.Hotspot;
*/ */
public interface HotspotService extends IService<Hotspot> { public interface HotspotService extends IService<Hotspot> {
/**
* 热点统计
* @param disasterId 灾害id
* @return
*/
List<HotspotArea> hotspotCount(Long disasterId);
} }

View File

@ -4,6 +4,9 @@ package com.kening.vordm.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.News; import com.kening.vordm.entity.News;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/** /**
* @author G1393 * @author G1393
* @description 针对表news(新闻咨询数据表)的数据库操作Service * @description 针对表news(新闻咨询数据表)的数据库操作Service
@ -11,4 +14,12 @@ import com.kening.vordm.entity.News;
*/ */
public interface NewsService extends IService<News> { public interface NewsService extends IService<News> {
/**
* 新闻热点导出功能
* @param disasterId
* @param request
* @param response
* @param type
*/
void export(Long disasterId,Integer type, HttpServletRequest request, HttpServletResponse response);
} }

View File

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.SocialMedia; import com.kening.vordm.entity.SocialMedia;
import com.kening.vordm.entity.Tweets; import com.kening.vordm.entity.Tweets;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
/** /**
@ -19,4 +21,12 @@ public interface SocialMediaService extends IService<SocialMedia> {
* @return * @return
*/ */
List<Tweets> tweetsCount(Long disasterId); List<Tweets> tweetsCount(Long disasterId);
/**
* 推文数据导出功能
* @param disasterId
* @param request
* @param response
*/
void export(Long disasterId, HttpServletRequest request, HttpServletResponse response);
} }

View File

@ -2,7 +2,7 @@ package com.kening.vordm.service;
import com.baomidou.mybatisplus.extension.service.IService; 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 com.kening.vordm.entity.WorldCharts;
import java.util.List; import java.util.List;
@ -10,10 +10,10 @@ import java.util.Map;
/** /**
* @author G1393 * @author G1393
* @description 针对表word_coluds(词云数据)的数据库操作Service * @description 针对表word_clouds(词云数据)的数据库操作Service
* @createDate 2023-04-04 15:54:31 * @createDate 2023-04-04 15:54:31
*/ */
public interface WordColudsService extends IService<WordColuds> { public interface WordCloudsService extends IService<WordCLouds> {
/** /**
* 词云统计 * 词云统计

View File

@ -2,10 +2,13 @@ package com.kening.vordm.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.Hotspot; import com.kening.vordm.entity.Hotspot;
import com.kening.vordm.entity.HotspotArea;
import com.kening.vordm.mapper.HotspotMapper; import com.kening.vordm.mapper.HotspotMapper;
import com.kening.vordm.service.HotspotService; import com.kening.vordm.service.HotspotService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* @author G1393 * @author G1393
* @description 针对表hotspot(热点区域数据)的数据库操作Service实现 * @description 针对表hotspot(热点区域数据)的数据库操作Service实现
@ -15,4 +18,13 @@ import org.springframework.stereotype.Service;
public class HotspotServiceImpl extends ServiceImpl<HotspotMapper, Hotspot> public class HotspotServiceImpl extends ServiceImpl<HotspotMapper, Hotspot>
implements HotspotService { implements HotspotService {
/**
* 热点统计
* @param disasterId 灾害id
* @return
*/
@Override
public List<HotspotArea> hotspotCount(Long disasterId) {
return baseMapper.hotspotCount(disasterId);
}
} }

View File

@ -1,18 +1,82 @@
package com.kening.vordm.service.impl; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.Hotspot;
import com.kening.vordm.entity.News; import com.kening.vordm.entity.News;
import com.kening.vordm.mapper.NewsMapper; import com.kening.vordm.mapper.NewsMapper;
import com.kening.vordm.service.HotspotService;
import com.kening.vordm.service.NewsService; import com.kening.vordm.service.NewsService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; 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 * @author G1393
* @description 针对表news(新闻咨询数据表)的数据库操作Service实现 * @description 针对表news(新闻咨询数据表)的数据库操作Service实现
* @createDate 2023-04-04 15:54:31 * @createDate 2023-04-04 15:54:31
*/ */
@Slf4j
@Service @Service
@AllArgsConstructor
public class NewsServiceImpl extends ServiceImpl<NewsMapper, News> public class NewsServiceImpl extends ServiceImpl<NewsMapper, News>
implements NewsService { 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<News> newsList = list(Wrappers.<News>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<Hotspot> hotspotList = hotspotService.list(Wrappers.<Hotspot>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");
}
} }

View File

@ -1,12 +1,22 @@
package com.kening.vordm.service.impl; 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.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.SocialMedia;
import com.kening.vordm.entity.Tweets; import com.kening.vordm.entity.Tweets;
import com.kening.vordm.mapper.SocialMediaMapper; import com.kening.vordm.mapper.SocialMediaMapper;
import com.kening.vordm.service.SocialMediaService; import com.kening.vordm.service.SocialMediaService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List; import java.util.List;
/** /**
@ -14,6 +24,7 @@ import java.util.List;
* @description 针对表social_media(社交媒体数据表主要指twitterfacebook,微博等数据来源重要字段 time-content)的数据库操作Service实现 * @description 针对表social_media(社交媒体数据表主要指twitterfacebook,微博等数据来源重要字段 time-content)的数据库操作Service实现
* @createDate 2023-04-04 15:54:31 * @createDate 2023-04-04 15:54:31
*/ */
@Slf4j
@Service @Service
public class SocialMediaServiceImpl extends ServiceImpl<SocialMediaMapper, SocialMedia> public class SocialMediaServiceImpl extends ServiceImpl<SocialMediaMapper, SocialMedia>
implements SocialMediaService { implements SocialMediaService {
@ -27,4 +38,32 @@ implements SocialMediaService {
public List<Tweets> tweetsCount(Long disasterId) { public List<Tweets> tweetsCount(Long disasterId) {
return baseMapper.tweetsCount(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<SocialMedia> socialMediaList = list(Wrappers.<SocialMedia>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);
}
}
} }

View File

@ -1,10 +1,10 @@
package com.kening.vordm.service.impl; package com.kening.vordm.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.entity.WorldCharts;
import com.kening.vordm.mapper.WordColudsMapper; import com.kening.vordm.mapper.WordCloudsMapper;
import com.kening.vordm.service.WordColudsService; import com.kening.vordm.service.WordCloudsService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@ -13,12 +13,12 @@ import java.util.stream.Collectors;
/** /**
* @author G1393 * @author G1393
* @description 针对表word_coluds(词云数据)的数据库操作Service实现 * @description 针对表word_clouds(词云数据)的数据库操作Service实现
* @createDate 2023-04-04 15:54:31 * @createDate 2023-04-04 15:54:31
*/ */
@Service @Service
public class WordColudsServiceImpl extends ServiceImpl<WordColudsMapper, WordColuds> public class WordCloudsServiceImpl extends ServiceImpl<WordCloudsMapper, WordCLouds>
implements WordColudsService { implements WordCloudsService {
/** /**
* 词云统计 * 词云统计

12
pom.xml
View File

@ -26,6 +26,8 @@
<docker.password>Harbor12345</docker.password> <docker.password>Harbor12345</docker.password>
<docker.namespace>iot</docker.namespace> <docker.namespace>iot</docker.namespace>
<docker.plugin.version>1.4.13</docker.plugin.version> <docker.plugin.version>1.4.13</docker.plugin.version>
<hutool.version>5.8.16</hutool.version>
<easyexcel.version>3.2.1</easyexcel.version>
</properties> </properties>
<modules> <modules>
@ -70,6 +72,16 @@
<artifactId>kn-launcher</artifactId> <artifactId>kn-launcher</artifactId>
<version>${revision}</version> <version>${revision}</version>
</dependency> </dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>${easyexcel.version}</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>