This commit is contained in:
why 2023-04-11 09:11:59 +08:00
parent 609c82c13e
commit 622140bfd4
7 changed files with 260 additions and 43 deletions

View File

@ -0,0 +1,127 @@
package com.kening.vordm.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName disaster_info_vo
*/
@TableName(value ="disaster_info_vo")
@Data
public class DisasterInfoVo implements Serializable {
/**
* 唯一值
*/
private Long id;
/**
* 灾害类型
*/
private String disasterType;
/**
* 灾害关键词
*/
private String disasterKeyword;
/**
* 灾害发生时间
*/
private LocalDate disasterTime;
/**
* 灾害发起时间
*/
private LocalDateTime uploadTime;
/**
* 灾害区域地理字段
*/
private String geometry;
/**
* 灾害强度或震级
*/
private String disasterLevel;
/**
* 受灾国家
*/
private String disasterCountry;
/**
* 响应状态0未审批1审批未通过2审批通过并正在响应3审批通过并且响应完成
*/
private Integer respondStatus;
/**
* 本灾害的用户访问次数
*/
private Integer visitCount;
/**
* 本灾害的数据下载次数
*/
private Integer downloadCount;
/**
* 爬虫类型
*/
private Integer spiderType;
/**
* 爬虫起始时间
*/
private Date tempendTime;
/**
* 爬虫终止时间
*/
private Date tempStartTime;
/**
* 数据条目创建时间
*/
private Date createTime;
/**
* 灾害id,审批通过后生成
*/
private String vordmId;
/**
* 灾害响应时间
*/
private Date respondTime;
/**
* 灾害申请组织
*/
private String sponsorOrganization;
/**
*
*/
private String disasterImg;
/**
* 字典名称
*/
private String dictValue;
/**
*
*/
private Long size;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@ -1,22 +1,21 @@
package com.kening.vordm.controller; package com.kening.vordm.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.kening.vordm.entity.*; import com.kening.vordm.entity.*;
import com.kening.vordm.service.*; import com.kening.vordm.service.*;
import com.kening.vordm.vo.DisasterMangerInfo; import com.kening.vordm.vo.DisasterInfoVo;
import com.kening.vordm.vo.GroupByUse; import com.kening.vordm.vo.GroupByUse;
import com.kening.vordm.vo.UserTenantVo; import com.kening.vordm.vo.UserTenantVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springblade.core.mp.support.BladePage;
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.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList; import java.time.LocalDate;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -32,9 +31,7 @@ public class DisasterInfoController {
private final NewsService newsService; private final NewsService newsService;
private final PictureInfoService pictureInfoService; private final PictureInfoService pictureInfoService;
private final DisasterInfoVoService disasterInfoVoService;
//下载次数记录
private final DownloadRecordService downloadRecordService;
/** /**
* 首页数据轮播和定位相关 * 首页数据轮播和定位相关
@ -49,22 +46,8 @@ public class DisasterInfoController {
@GetMapping("/getPicInfoByDisasterId") @GetMapping("/getPicInfoByDisasterId")
public R<List<PictureInfo>> getPicInfoByDisasterInfoId(Long disasterId){ public R<List<PictureInfo>> getPicInfoByDisasterInfoId(Long disasterId){
return R.data(pictureInfoService.list(Wrappers.<PictureInfo>lambdaQuery() return R.data(pictureInfoService.list(Wrappers.<PictureInfo>lambdaQuery()
.eq(PictureInfo::getDisasterId,disasterId))); .eq(PictureInfo::getDisasterId,disasterId)
} .eq(PictureInfo::getIsMain, 1)));
/**
* 灾害查询条件时间类型灾害联动
* @param disasterInfo
* @return
*/
@GetMapping("/selectCondition")
public R<List<GroupByUse>> getSelectCondition1(DisasterInfo disasterInfo){
String disaster_time=null;
if (disasterInfo.getDisasterTime()!=null){
disaster_time=disasterInfo.getDisasterTime().toString();
}
return R.data(disasterInfoService.getConditionData(disasterInfo.getDisasterType(),disasterInfo.getDisasterCountry(),disaster_time,disasterInfo.getName()
));
} }
/** /**
@ -75,6 +58,26 @@ public class DisasterInfoController {
*/ */
@GetMapping("/select-condition") @GetMapping("/select-condition")
public R<List<GroupByUse>> getSelectCondition(DisasterInfo disasterInfo) { public R<List<GroupByUse>> getSelectCondition(DisasterInfo disasterInfo) {
//String dateType = String.valueOf(params.get("dateTyle"));
// LocalDate date = LocalDate.now();
// if(StringUtils.isNotBlank(dateType)){
// switch (dateType){
// case "1" :
// //Latest week 上一周
// date = LocalDate.now().minusWeeks(1);
// break;
// case "2":
// //Latest month 上一个月
// date = LocalDate.now().minusMonths(1);
// break;
// case "3":
// //Latest six month 上6个月
// date = LocalDate.now().minusMonths(6);
// break;
// default:
// break;
// }
// }
String disaster_time = null; String disaster_time = null;
if (disasterInfo.getDisasterTime() != null) { if (disasterInfo.getDisasterTime() != null) {
disaster_time = disasterInfo.getDisasterTime().toString(); disaster_time = disasterInfo.getDisasterTime().toString();
@ -84,19 +87,7 @@ public class DisasterInfoController {
} }
/**
* 指定条件返回数据
*
* @param query
* @param disasterInfo
* @return
*/
@GetMapping("/test")
public R<IPage<News>> getdata(Query query, DisasterInfo disasterInfo) {
List<Long> disasterIds = disasterInfoService.getDisasterId(disasterInfo);
return R.data(newsService.page(Condition.getPage(query), new QueryWrapper<News>().in("disaster_id", disasterIds)));
}
/** /**
* 灾害信息统计 国家/灾害类型 左边栏 * 灾害信息统计 国家/灾害类型 左边栏
@ -125,7 +116,6 @@ public class DisasterInfoController {
// }else{ // }else{
// groupByUseList = disasterInfoService.getDisasterStatistics(name); // groupByUseList = disasterInfoService.getDisasterStatistics(name);
// } // }
return R.data(dataMap); return R.data(dataMap);
} }
@ -133,15 +123,22 @@ public class DisasterInfoController {
* 首页数据展示包括响应中和未响应 * 首页数据展示包括响应中和未响应
* *
* @param query * @param query
* @param respondStatus
* @return * @return
*/ */
@GetMapping("/homeDisasterInfo") @GetMapping("/homeDisasterInfo")
public R<BladePage<DisasterMangerInfo>> gethomeDisasterInfo(Query query, Integer respondStatus) { public R<IPage<DisasterInfoVo>> gethomeDisasterInfo(Query query, @RequestParam Map<String, String> params) {
IPage<DisasterMangerInfo> pages = disasterInfoService.getHomeDisaster(Condition.getPage(query), respondStatus); return R.data(disasterInfoVoService.page(Condition.getPage(query),Wrappers.<DisasterInfoVo>lambdaQuery()
return R.data(BladePage.of(pages)); .eq(DisasterInfoVo::getRespondStatus, Integer.valueOf(params.get("respondStatus")))
.ge(StringUtils.isNotBlank(String.valueOf(params.get("startTime"))),DisasterInfoVo::getDisasterTime,LocalDate.parse(String.valueOf(params.get("startTime"))))
.le(StringUtils.isNotBlank(String.valueOf(params.get("endTime"))),DisasterInfoVo::getDisasterTime,LocalDate.parse(String.valueOf(params.get("endTime"))))
.eq(StringUtils.isNotBlank(String.valueOf(params.get("disasterType"))),DisasterInfoVo::getDisasterType, String.valueOf(params.get("disasterType")))
.orderByDesc(DisasterInfoVo::getDisasterTime)
));
} }
public static void main(String[] args) {
System.out.println(LocalDate.now().minusMonths(6).toString());
}
/** /**
* 获取债害详情信息 * 获取债害详情信息
* *

View File

@ -78,7 +78,7 @@
</select> </select>
<select id="getHomeDisaster" resultType="com.kening.vordm.vo.DisasterMangerInfo"> <select id="getHomeDisaster" resultType="com.kening.vordm.vo.DisasterMangerInfo">
select <include refid="Home_Disaster_Info"></include> select *
from (select distinct manager_id,disaster_id from guest_mamanager_info from (select distinct manager_id,disaster_id from guest_mamanager_info
on g.manager_id=m.id and g.disaster_id=d.id on g.manager_id=m.id and g.disaster_id=d.id
where d.respond_status=#{respondStatus} where d.respond_status=#{respondStatus}
@ -94,14 +94,14 @@
GROUP BY bu.organization GROUP BY bu.organization
</select> </select>
<select id="getLeft3Data" resultType="com.kening.vordm.vo.GroupByUse"> <select id="getLeft3Data" resultType="com.kening.vordm.vo.GroupByUse">
select t.sponsor_organization as `name`, count(*) as cnt from disaster_info t 'sponsorOrganization' as `type` GROUP BY t.sponsor_organization ORDER BY cnt desc LIMIT 3 select t.sponsor_organization as `name`, count(*) as cnt , 'sponsorOrganization' as `type` from disaster_info t GROUP BY t.sponsor_organization ORDER BY cnt desc LIMIT 3
</select> </select>
<select id="getLeft4Data" resultType="com.kening.vordm.vo.GroupByUse"> <select id="getLeft4Data" resultType="com.kening.vordm.vo.GroupByUse">
select t.response_organization as `name`, count(*) as cnt, 'responseOrganization' as `type` from guest_manage_disaster_ref t GROUP BY t.response_organization ORDER BY cnt desc LIMIT 3 select t.response_organization as `name`, count(*) as cnt, 'responseOrganization' as `type` from guest_manage_disaster_ref t GROUP BY t.response_organization ORDER BY cnt desc LIMIT 3
</select> </select>
<select id="getLeft1Data" resultType="com.kening.vordm.vo.GroupByUse"> <select id="getLeft1Data" resultType="com.kening.vordm.vo.GroupByUse">
select b.dict_key, b.dict_value as name, count(t.disaster_type) as cnt, 'type' as `type`, select b.dict_key, b.dict_value as name, count(t.disaster_type) as cnt, 'type' as `type`,
CONCAT('@/assets/home/icon-',b.dict_key,'.png') as icon CONCAT('/icon_disastertype/icon-',b.dict_key,'.png') as icon
from blade_dict_biz b left join disaster_info t on b.dict_key = t.disaster_type from blade_dict_biz b left join disaster_info t on b.dict_key = t.disaster_type
where b.`code` = 'disaster' and b.dict_key is not null where b.`code` = 'disaster' and b.dict_key is not null
group by b.dict_key, b.dict_value group by b.dict_key, b.dict_value

View File

@ -0,0 +1,18 @@
package com.kening.vordm.mapper;
import com.kening.vordm.vo.DisasterInfoVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author wangns
* @description 针对表disaster_info_vo的数据库操作Mapper
* @createDate 2023-04-10 17:33:26
* @Entity com.kening.vordm.vo.DisasterInfoVo
*/
public interface DisasterInfoVoMapper extends BaseMapper<DisasterInfoVo> {
}

View File

@ -0,0 +1,13 @@
package com.kening.vordm.service;
import com.kening.vordm.vo.DisasterInfoVo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author wangns
* @description 针对表disaster_info_vo的数据库操作Service
* @createDate 2023-04-10 17:33:26
*/
public interface DisasterInfoVoService extends IService<DisasterInfoVo> {
}

View File

@ -0,0 +1,22 @@
package com.kening.vordm.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.vo.DisasterInfoVo;
import com.kening.vordm.service.DisasterInfoVoService;
import com.kening.vordm.mapper.DisasterInfoVoMapper;
import org.springframework.stereotype.Service;
/**
* @author wangns
* @description 针对表disaster_info_vo的数据库操作Service实现
* @createDate 2023-04-10 17:33:26
*/
@Service
public class DisasterInfoVoServiceImpl extends ServiceImpl<DisasterInfoVoMapper, DisasterInfoVo>
implements DisasterInfoVoService{
}

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kening.vordm.mapper.DisasterInfoVoMapper">
<resultMap id="BaseResultMap" type="com.kening.vordm.vo.DisasterInfoVo">
<result property="id" column="id" jdbcType="BIGINT"/>
<result property="disasterType" column="disaster_type" jdbcType="VARCHAR"/>
<result property="disasterKeyword" column="disaster_keyword" jdbcType="VARCHAR"/>
<result property="disasterTime" column="disaster_time" jdbcType="DATE"/>
<result property="uploadTime" column="upload_time" jdbcType="TIMESTAMP"/>
<result property="geometry" column="geometry" jdbcType="VARCHAR"/>
<result property="disasterLevel" column="disaster_level" jdbcType="VARCHAR"/>
<result property="disasterCountry" column="disaster_country" jdbcType="VARCHAR"/>
<result property="respondStatus" column="respond_status" jdbcType="SMALLINT"/>
<result property="visitCount" column="visit_count" jdbcType="INTEGER"/>
<result property="downloadCount" column="download_count" jdbcType="INTEGER"/>
<result property="spiderType" column="spider_type" jdbcType="INTEGER"/>
<result property="tempendTime" column="tempend_time" jdbcType="TIMESTAMP"/>
<result property="tempStartTime" column="temp_start_time" jdbcType="TIMESTAMP"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="vordmId" column="vordm_id" jdbcType="VARCHAR"/>
<result property="respondTime" column="respond_time" jdbcType="TIMESTAMP"/>
<result property="sponsorOrganization" column="sponsor_organization" jdbcType="VARCHAR"/>
<result property="disasterImg" column="disaster_img" jdbcType="VARCHAR"/>
<result property="dictValue" column="dict_value" jdbcType="VARCHAR"/>
<result property="size" column="size" jdbcType="DECIMAL"/>
</resultMap>
<sql id="Base_Column_List">
id,disaster_type,disaster_keyword,
disaster_time,upload_time,geometry,
disaster_level,disaster_country,respond_status,
visit_count,download_count,spider_type,
tempend_time,temp_start_time,create_time,
vordm_id,respond_time,sponsor_organization,
disaster_img,dict_value,size
</sql>
</mapper>