Merge branch 'master' into yyhouc

This commit is contained in:
yyhouc 2023-04-11 10:02:30 +08:00
commit 200a9efe58
38 changed files with 1006 additions and 89 deletions

View File

@ -67,6 +67,11 @@ public class DisasterInfo implements Serializable {
*/ */
private Integer visitCount; private Integer visitCount;
/**
* 本灾害的数据下载次数
*/
private Integer downloadCount;
/** /**
* 爬虫类型 * 爬虫类型
*/ */
@ -109,7 +114,6 @@ public class DisasterInfo implements Serializable {
/** /**
* 发起机构 * 发起机构
*/ */
@TableField(exist = false)
private String sponsorOrganization; private String sponsorOrganization;
/** /**

View File

@ -51,6 +51,16 @@ public class GuestInfo implements Serializable {
*/ */
private Integer isManage; private Integer isManage;
/**
* 职业
*/
private String occupation;
/**
* 职称
*/
private String professionalTitle;
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -40,6 +40,11 @@ public class GuestManageDisasterRef implements Serializable {
*/ */
private Long disasterId; private Long disasterId;
/**
* 灾害id
*/
private String responseOrganization;
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -0,0 +1,45 @@
package com.kening.vordm.vo;
import com.kening.vordm.entity.DisasterInfo;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@Getter
@Setter
public class CallForHelpVo extends DisasterInfo {
/**
* 灾害id
*/
private Long disasterId;
/**
* 账户id
*/
private Long accountId;
/**
* 用户名称
*/
private String username;
/**
* 用户邮件
*/
private String email;
/**
* 用户组织机构
*/
private String organization;
/**
* 研究范围
*/
private String researchField;
/**
* 创建时间
*/
private Date createTime;
}

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,7 +1,9 @@
package com.kening.vordm.vo; package com.kening.vordm.vo;
import com.kening.vordm.entity.DisasterInfo; import com.kening.vordm.entity.DisasterInfo;
import lombok.Data;
@Data
public class DisasterMangerInfo extends DisasterInfo { public class DisasterMangerInfo extends DisasterInfo {
/** /**
* 用户名 * 用户名

View File

@ -0,0 +1,146 @@
package com.kening.vordm.vo;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
import java.util.List;
@Data
public class EntityDataUserVo {
/**
* 数据名称
*/
private String title;
/**
* 数据产品的大小byte
*/
private Long size;
/**
* 数据类型0-基础数据1-减灾产品2-制图产品
*/
private String type;
/**
* 数据下载链接网站上对象存储路径
*/
private String link;
/**
* 数据备注
*/
private String remark;
/**
* 上传时间
*/
private Date uploadTime;
/**
* 灾害id
*/
private Long disasterId;
/**
* 可视化可视化标志0-不可可视化1-表示可以可视化
*/
private Integer visualFlag;
/**
* 可视化跳转中心经度
*/
private Double visualLon;
/**
* 可视化跳转中心纬度
*/
private Double visualLat;
/**
* 审核时间
*/
private Date examTime;
/**
* 0 未审核1-审核已通过2-审核未通过
*/
private Integer status;
/**
* 上传人
*/
private Long uploaderId;
/**
* 管理人/审核人
*/
private Long managerId;
/**
* 审核时间
*/
private Date reviewTime;
/**
* 来源机构
*/
private String sourceOrganization;
/**
* 用户名称
*/
private String username;
/**
* 用户邮件
*/
private String email;
/**
* 用户组织机构
*/
private String organization;
/**
* 研究范围
*/
private String researchField;
/**
* 创建时间
*/
private Date createTime;
/**
* 是否是管理员
*/
private Integer isManage;
/**
* 验证码
*/
private Integer Verification;
/**
* 职业
*/
private String occupation;
/**
* 职称
*/
private String professionalTitle;
/**
* 职称
*/
private String key;
/**
* 文件信息
*/
private List<MultipartFile> filesArray;
}

View File

@ -0,0 +1,20 @@
package com.kening.vordm.vo;
import lombok.Data;
@Data
public class FileVo {
//文件大小
private Long fileSize;
//获取文件类型
private String fileType;
//文件后缀
private String fileSuffix;
//文件存储路径
private String link;
}

View File

@ -22,4 +22,14 @@ public class GroupByUse {
* 图标 * 图标
*/ */
private String icon; private String icon;
/**
* 字典值
*/
private String dicKey;
/**
* 类型
*/
private String type;
} }

View File

@ -12,5 +12,6 @@ import org.springframework.cloud.client.SpringCloudApplication;
public class VoRdmApplication { public class VoRdmApplication {
public static void main(String[] args) { public static void main(String[] args) {
BladeApplication.run(CommonConstant.KN_VORDM_MODULE_NAME, VoRdmApplication.class, args); BladeApplication.run(CommonConstant.KN_VORDM_MODULE_NAME, VoRdmApplication.class, args);
// BladeApplication.run("zqq-" + CommonConstant.KN_VORDM_MODULE_NAME, VoRdmApplication.class, args);
} }
} }

View File

@ -0,0 +1,41 @@
package com.kening.vordm.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springblade.common.cache.CacheNames;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* @author wanghongqing
* @date 2023/3/31 11:10
**/
@RestController
@RequestMapping("/captcha")
@RequiredArgsConstructor
@Api(value = "验证码校验接口", tags = "验证码校验")
public class CaptchaController extends BladeController {
private final BladeRedis bladeRedis;
@PostMapping("/validate")
@ApiOperation(value = "验证码校验", notes = "传入需要校验的验证码以及缓存Key")
public R<String> validDefaultTime(@RequestParam String code, @RequestParam String key) {
// 获取验证码
String redisCode = bladeRedis.get(CacheNames.CAPTCHA_KEY + key);
// 判断验证码
if (code == null || !StringUtil.equalsIgnoreCase(redisCode, code)) {
return R.fail(1404, "Verification code error");
}
return R.success("OK");
}
}

View File

@ -21,7 +21,7 @@ import java.util.Arrays;
@RestController @RestController
@AllArgsConstructor @AllArgsConstructor
@RequestMapping("/contact") @RequestMapping("/ui/contact")
public class ContactController{ public class ContactController{
private ContactService contactService; private ContactService contactService;
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)

View File

@ -1,27 +1,28 @@
package com.kening.vordm.controller; package com.kening.vordm.controller;
import cn.hutool.core.bean.BeanUtil;
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.kening.vordm.entity.DisasterInfo; import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.kening.vordm.entity.DownloadRecord; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.kening.vordm.entity.News; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.kening.vordm.entity.Websites; import com.kening.vordm.entity.*;
import com.kening.vordm.service.DisasterInfoService; import com.kening.vordm.service.*;
import com.kening.vordm.service.DownloadRecordService; import com.kening.vordm.vo.CallForHelpVo;
import com.kening.vordm.service.NewsService; import com.kening.vordm.vo.DisasterInfoVo;
import com.kening.vordm.service.WebsitesService;
import com.kening.vordm.vo.DisasterMangerInfo;
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.springblade.core.tool.utils.DateUtil;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@ -34,9 +35,47 @@ public class DisasterInfoController {
private final NewsService newsService; private final NewsService newsService;
private final PictureInfoService pictureInfoService;
private final GuestInfoService guestInfoService;
private final GuestManageDisasterRefService guestManageDisasterRefService;
//下载次数记录 //下载次数记录
private final DownloadRecordService downloadRecordService; private final DownloadRecordService downloadRecordService;
private final DisasterInfoVoService disasterInfoVoService;
/**
* 首页数据轮播和定位相关
* @return
*/
@GetMapping("/indexData")
public R<List<DisasterInfo>> indexData(){
return R.data(disasterInfoService.list(Wrappers.<DisasterInfo>lambdaQuery()
.eq(DisasterInfo::getRespondStatus,2)));
}
@GetMapping("/getPicInfoByDisasterId")
public R<List<PictureInfo>> getPicInfoByDisasterInfoId(Long disasterId){
return R.data(pictureInfoService.list(Wrappers.<PictureInfo>lambdaQuery()
.eq(PictureInfo::getDisasterId,disasterId)));
}
/**
* 灾害查询条件时间类型灾害联动
* @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()
));
}
/** /**
* 灾害查询条件时间类型灾害联动 * 灾害查询条件时间类型灾害联动
@ -46,53 +85,87 @@ 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 = DateUtil.format(disasterInfo.getDisasterTime(),"yyyy-MM-dd");
} }
return R.data(disasterInfoService.getConditionData(disasterInfo.getDisasterType(), disasterInfo.getDisasterCountry(), disaster_time, disasterInfo.getName() return R.data(disasterInfoService.getConditionData(disasterInfo.getDisasterType(), disasterInfo.getDisasterCountry(), disaster_time, disasterInfo.getName()
)); ));
} }
/**
* 指定条件返回数据
*
* @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)));
}
/** /**
* 灾害信息统计 国家/灾害类型 * 灾害信息统计 国家/灾害类型 左边栏
* *
* @param name * @param
* @return * @return
*/ */
@GetMapping("/disasterStatistics") @GetMapping("/disasterStatistics")
public R<List<GroupByUse>> getDisasterStatistics(String name) { public R<Map<String, List<GroupByUse>>> getDisasterStatistics() {
return R.data(disasterInfoService.getDisasterStatistics(name)); Map dataMap = new HashMap();
//按灾害类型查找 第一栏 取前7个
dataMap.put("type", disasterInfoService.getLeft1Data());
//按国家统计 第2栏 取前7个
dataMap.put("country", disasterInfoService.getLeft2Data());
//发起机构方法 第三个左边栏 取前3个
dataMap.put("sponsorOrganization",disasterInfoService.getLeft3Data());
//发起机构方法 第四个左边栏 取前3个
dataMap.put("responseOrganization",disasterInfoService.getLeft4Data());
//List<GroupByUse> groupByUseList = new ArrayList<>();
// if("searchSponsorOrganization".equals(name)){
// //发起机构方法 第三个左边栏
// groupByUseList = disasterInfoService.getLeft3Data();
// } else if ("searchResponseOrganization".equals(name)) {
// //发起机构方法 第四个左边栏
// groupByUseList = disasterInfoService.getLeft4Data();
// }else{
// groupByUseList = disasterInfoService.getDisasterStatistics(name);
// }
return R.data(dataMap);
} }
/** /**
* 首页数据展示包括响应中和未响应 * 首页数据展示包括响应中和未响应
* *
* @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());
}
/** /**
* 获取债害详情信息 * 获取债害详情信息
* *
@ -117,16 +190,10 @@ public class DisasterInfoController {
*/ */
@PostMapping("/saveDownloadRecord") @PostMapping("/saveDownloadRecord")
public R saveDownloadRecord(@RequestBody DownloadRecord downloadRecord) { public R saveDownloadRecord(@RequestBody DownloadRecord downloadRecord) {
LambdaQueryWrapper<DownloadRecord> qw = new LambdaQueryWrapper<>(); DisasterInfo byId = disasterInfoService.getById(downloadRecord.getDiasterId());
qw.eq(DownloadRecord::getBigType, downloadRecord.getBigType()); if (byId != null) {
qw.eq(DownloadRecord::getSmallType, downloadRecord.getSmallType()); byId.setDownloadCount(byId.getDownloadCount() +1);
qw.eq(DownloadRecord::getDiasterId, downloadRecord.getDiasterId()); disasterInfoService.updateById(byId);
DownloadRecord one = downloadRecordService.getOne(qw);
if (one != null) {
one.setCount(one.getCount() + 1);
downloadRecordService.updateById(one);
} else {
downloadRecordService.save(downloadRecord);
} }
return R.status(true); return R.status(true);
} }
@ -139,4 +206,30 @@ public class DisasterInfoController {
public R<List<UserTenantVo>> getUserTenant() { public R<List<UserTenantVo>> getUserTenant() {
return R.data(disasterInfoService.getAllUser()); return R.data(disasterInfoService.getAllUser());
} }
/**
* call for help
*
*/
@PostMapping("Call-for-help")
public R<Boolean> insertRespondInfo(@RequestBody CallForHelpVo callForHelpVo){
GuestInfo guestInfo = new GuestInfo();
BeanUtil.copyProperties(callForHelpVo, guestInfo);
guestInfo.setId(IdWorker.getId());
DisasterInfo disasterInfo = new DisasterInfo();
BeanUtil.copyProperties(callForHelpVo, disasterInfo);
disasterInfo.setId(IdWorker.getId());
GuestManageDisasterRef GuestManageDisasterRef = new GuestManageDisasterRef();
GuestManageDisasterRef.setId(IdWorker.getId());
GuestManageDisasterRef.setSponsorId(guestInfo.getId());
String vordm_id="test";
GuestManageDisasterRef.setDisasterId(disasterInfo.getId());
Boolean flag1=guestInfoService.save(guestInfo);
Boolean flag2= guestManageDisasterRefService.save(GuestManageDisasterRef);
Boolean flag3=disasterInfoService.save(disasterInfo);
Boolean callForHelp= flag1&flag2&flag3;
// callForHelpVo.setId(IdWorker.getId());
// Boolean insertFlag=accountInfoService.save(accountInfo);
return R.data(callForHelp);
}
} }

View File

@ -3,13 +3,15 @@ package com.kening.vordm.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.EntityData; import com.kening.vordm.entity.EntityData;
import com.kening.vordm.service.EntityDataService; import com.kening.vordm.service.EntityDataService;
import com.kening.vordm.vo.EntityDataUserVo;
import com.kening.vordm.vo.UserTenantVo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
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.RestController; import java.util.List;
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@ -17,7 +19,7 @@ import org.springframework.web.bind.annotation.RestController;
public class EntityDataController { public class EntityDataController {
//实体数据服务层 //实体数据服务层
private final EntityDataService respondInfoService; private final EntityDataService entityDataService;
/** /**
* 实体数据列表信息 * 实体数据列表信息
@ -27,9 +29,26 @@ public class EntityDataController {
*/ */
@GetMapping("/getList") @GetMapping("/getList")
public R<IPage<EntityData>> getEntityDataList(EntityData entityData, Query query) { public R<IPage<EntityData>> getEntityDataList(EntityData entityData, Query query) {
return R.data(respondInfoService.getEntityDataList(Condition.getPage(query), entityData)); return R.data(entityDataService.getEntityDataList(Condition.getPage(query), entityData));
}
/**
* 获取所有实体信息下机构信息
* @return
*/
@GetMapping("/getEntityDataSourceOrganization")
public R<List<UserTenantVo>> getEntityDataSourceOrganization() {
return R.data(entityDataService.getEntityDataSourceOrganization());
} }
/**
* Resource upload 上传实体信息
* @return
*/
@PostMapping("/saveEntityData")
public R saveEntityData(EntityDataUserVo entityDataUserVo) {
return R.data(entityDataService.saveEntityData(entityDataUserVo));
}
} }

View File

@ -0,0 +1,50 @@
package com.kening.vordm.controller;
import cn.hutool.core.date.DateUtil;
import com.kening.vordm.vo.FileVo;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.oss.MinioTemplate;
import org.springblade.core.oss.model.BladeFile;
import org.springblade.core.tool.api.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
@RequestMapping("/ui/upload")
@RestController
@Slf4j
public class FileController {
/**
* 对象存储模块
*/
@Autowired
private MinioTemplate minioTemplate;
/**
* 上传文件
* @param file
* @return
*/
@PostMapping("/uploadFile")
public R upload(MultipartFile file){
BladeFile bladeFile = minioTemplate.putFile(file);
//获取文件大小
Long fileSize = file.getSize();
//获取文件类型
String fileType = file.getContentType();
//文件后缀
String fileSuffix = file.getOriginalFilename();
//文件存储路径
String link = bladeFile.getLink();
FileVo fileVo = new FileVo();
fileVo.setFileSize(fileSize);
fileVo.setFileType(fileType);
fileVo.setFileSuffix(fileSuffix);
fileVo.setLink(link);
return R.data(bladeFile);
}
}

View File

@ -3,13 +3,16 @@ 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.DisasterInfo; import com.kening.vordm.entity.DisasterInfo;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.RemoteSensingSourceData; import com.kening.vordm.entity.RemoteSensingSourceData;
import com.kening.vordm.service.DisasterInfoService; import com.kening.vordm.service.DisasterInfoService;
import com.kening.vordm.service.RemoteSensingSourceDataService; import com.kening.vordm.service.RemoteSensingSourceDataService;
import com.kening.vordm.vo.GroupByUse;
import lombok.AllArgsConstructor; 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.springblade.core.tool.utils.DateUtil;
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;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -33,8 +36,32 @@ public class RemoteSensingSourceDataController {
*/ */
@GetMapping("/SourceData") @GetMapping("/SourceData")
public R<IPage<RemoteSensingSourceData>> getRemoteSensingSourceData(DisasterInfo disasterInfo, Query query){ public R<IPage<RemoteSensingSourceData>> getRemoteSensingSourceData(DisasterInfo disasterInfo, Query query){
List<Long> disasterIds=disasterInfoService.getDisasterId(disasterInfo); List<Long> disasterIds = disasterInfoService.getDisasterId(disasterInfo);
if (disasterIds.isEmpty()){
return R.data(null);
}
return R.data(remoteSensingSourceDataService.page(Condition.getPage(query),new QueryWrapper<RemoteSensingSourceData>().in("disaster_id",disasterIds))); return R.data(remoteSensingSourceDataService.page(Condition.getPage(query),new QueryWrapper<RemoteSensingSourceData>().in("disaster_id",disasterIds)));
} }
/**
* 实体数据列表信息
* @param remoteSensingSourceData 实体数据条件信息
* @param query current当前页 size 每页数据量
* @return
*/
@GetMapping("/Condition")
public R<IPage<RemoteSensingSourceData>> getRemoteSensingSourceDataByCondition(RemoteSensingSourceData remoteSensingSourceData, Query query) {
return R.data(remoteSensingSourceDataService.getRemoteSensingSourceDataByCondition(Condition.getPage(query), remoteSensingSourceData));
}
// /**
// * 根据页码和灾害信息查出遥感影像源数据可多个灾害
// * @param remoteSensingSourceData
// * @param query
// * @return
// */
// @GetMapping("/Condition1")
// public R<IPage<RemoteSensingSourceData>> getRemoteSensingSourceDataByCondition(RemoteSensingSourceData remoteSensingSourceData, Query query){
// return R.data(remoteSensingSourceDataService.page(Condition.getPage(query),Condition.getQueryWrapper(remoteSensingSourceData)));
// }
} }

View File

@ -21,7 +21,7 @@ import java.util.Arrays;
@RestController @RestController
@AllArgsConstructor @AllArgsConstructor
@RequestMapping("/tool") @RequestMapping("/ui/tool")
public class ToolController{ public class ToolController{
private ToolService toolService; private ToolService toolService;
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
@ -60,6 +60,7 @@ public class ToolController{
Tool detail = toolService.getById(id); Tool detail = toolService.getById(id);
return R.data(detail); return R.data(detail);
} }
@ApiOperationSupport(order = 6) @ApiOperationSupport(order = 6)
@ApiOperation(value = "提交", notes = "传入Tool") @ApiOperation(value = "提交", notes = "传入Tool")
@PostMapping("/submit") @PostMapping("/submit")

View File

@ -37,4 +37,11 @@ public interface DisasterInfoMapper extends BaseMapper<DisasterInfo> {
List<UserTenantVo> getAllUser(); List<UserTenantVo> getAllUser();
List<GroupByUse> getLeft3Data();
List<GroupByUse> getLeft4Data();
List<GroupByUse> getLeft1Data();
List<GroupByUse> getLeft2Data();
} }

View File

@ -15,12 +15,14 @@
<result property="disasterCountry" column="disaster_country" jdbcType="VARCHAR"/> <result property="disasterCountry" column="disaster_country" jdbcType="VARCHAR"/>
<result property="respondStatus" column="respond_status" jdbcType="SMALLINT"/> <result property="respondStatus" column="respond_status" jdbcType="SMALLINT"/>
<result property="visitCount" column="visit_count" jdbcType="INTEGER"/> <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="spiderType" column="spider_type" jdbcType="INTEGER"/>
<result property="tempendTime" column="tempend_time" jdbcType="TIMESTAMP"/> <result property="tempendTime" column="tempend_time" jdbcType="TIMESTAMP"/>
<result property="tempStartTime" column="temp_start_time" jdbcType="TIMESTAMP"/> <result property="tempStartTime" column="temp_start_time" jdbcType="TIMESTAMP"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="vordmId" column="vordm_id" jdbcType="VARCHAR"/> <result property="vordmId" column="vordm_id" jdbcType="VARCHAR"/>
<result property="respondTime" column="respond_time" jdbcType="TIMESTAMP"/> <result property="respondTime" column="respond_time" jdbcType="TIMESTAMP"/>
<result property="sponsorOrganization" column="sponsor_organization" jdbcType="TIMESTAMP"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
@ -29,7 +31,7 @@
di.disaster_level,di.disaster_country,di.respond_status, di.disaster_level,di.disaster_country,di.respond_status,
di.visit_count,di.spider_type,di.tempend_time, di.visit_count,di.spider_type,di.tempend_time,
di.temp_start_time,di.create_time,di.vordm_id, di.temp_start_time,di.create_time,di.vordm_id,
di.respond_time di.respond_time,di.download_count,di.sponsor_organization
</sql> </sql>
<sql id="Home_Disaster_Info"> <sql id="Home_Disaster_Info">
d.disaster_type,d.disaster_time,d.disaster_country, d.disaster_type,d.disaster_time,d.disaster_country,
@ -60,7 +62,7 @@
from disaster_info from disaster_info
<if test="disaster_type!=null or disaster_country!=null or disaster_time!=null"> where </if> <if test="disaster_type!=null or disaster_country!=null or disaster_time!=null"> where </if>
<if test="disaster_type!=null"> disaster_type=#{disaster_type} </if> <if test="disaster_type!=null"> disaster_type like concat('%',#{disaster_type},'%') </if>
<if test="disaster_type!=null and (disaster_country!=null or disaster_time!=null)"> and </if> <if test="disaster_type!=null and (disaster_country!=null or disaster_time!=null)"> and </if>
<if test="disaster_country!=null"> disaster_country like concat('%',#{disaster_country},'%') </if> <if test="disaster_country!=null"> disaster_country like concat('%',#{disaster_country},'%') </if>
<if test="disaster_time!=null and disaster_country!=null and disaster_time!=null"> and </if> <if test="disaster_time!=null and disaster_country!=null and disaster_time!=null"> and </if>
@ -76,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}
@ -92,5 +94,29 @@
LEFT JOIN blade_tenant bt ON bt.id = bu.organization LEFT JOIN blade_tenant bt ON bt.id = bu.organization
GROUP BY bu.organization GROUP BY bu.organization
</select> </select>
<select id="getLeft3Data" resultType="com.kening.vordm.vo.GroupByUse">
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 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>
<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`,
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
where b.`code` = 'disaster' and b.dict_key is not null
group by b.dict_key, b.dict_value
order by cnt desc
limit 7
</select>
<select id="getLeft2Data" resultType="com.kening.vordm.vo.GroupByUse">
SELECT b.*, c.img as icon from country_icon c INNER JOIN
(select t.disaster_country as name, count(*) as cnt, 'country' as `type`
from disaster_info t
group by t.disaster_country
order by cnt desc
limit 7) b on c.flagname = b.`name`
</select>
</mapper> </mapper>

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

@ -4,8 +4,11 @@ package com.kening.vordm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.EntityData; import com.kening.vordm.entity.EntityData;
import com.kening.vordm.vo.UserTenantVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* @author G1393 * @author G1393
* @description 针对表entity_data(其他上传的实体数据)的数据库操作Mapper * @description 针对表entity_data(其他上传的实体数据)的数据库操作Mapper
@ -18,4 +21,6 @@ public interface EntityDataMapper extends BaseMapper<EntityData> {
IPage<EntityData> getEntityDataList(@Param("entityData") EntityData entityData, IPage<Object> page); IPage<EntityData> getEntityDataList(@Param("entityData") EntityData entityData, IPage<Object> page);
List<UserTenantVo> getEntityDataSourceOrganization();
} }

View File

@ -44,7 +44,7 @@
<if test="entityData.status != null and entityData.status != ''"> <if test="entityData.status != null and entityData.status != ''">
and ed.status = #{entityData.status} and ed.status = #{entityData.status}
</if> </if>
<if test="entityData.visualFlag != null and entityData.visualFlag != ''"> <if test="entityData.visualFlag != null">
and ed.visual_flag = #{entityData.visualFlag} and ed.visual_flag = #{entityData.visualFlag}
</if> </if>
<if test="entityData.type != null and entityData.type != ''"> <if test="entityData.type != null and entityData.type != ''">
@ -56,4 +56,10 @@
</where> </where>
ORDER BY ed.upload_time DESC ORDER BY ed.upload_time DESC
</select> </select>
<select id="getEntityDataSourceOrganization" resultType="com.kening.vordm.vo.UserTenantVo">
select ed.source_organization AS organizationName
from entity_data ed
GROUP BY ed.source_organization
</select>
</mapper> </mapper>

View File

@ -1,22 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!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.GuestInfoMapper"> <mapper namespace="com.kening.vordm.mapper.GuestInfoMapper">
<resultMap id="BaseResultMap" type="com.kening.vordm.entity.GuestInfo"> <resultMap id="BaseResultMap" type="com.kening.vordm.entity.GuestInfo">
<id property="id" column="id" jdbcType="BIGINT"/> <id property="id" column="id" jdbcType="BIGINT"/>
<result property="username" column="username" jdbcType="VARCHAR"/> <result property="username" column="username" jdbcType="VARCHAR"/>
<result property="email" column="email" jdbcType="VARCHAR"/> <result property="email" column="email" jdbcType="VARCHAR"/>
<result property="organization" column="organization" jdbcType="VARCHAR"/> <result property="organization" column="organization" jdbcType="VARCHAR"/>
<result property="researchField" column="research_field" jdbcType="VARCHAR"/> <result property="researchField" column="research_field" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="isManage" column="is_manage" jdbcType="INTEGER"/> <result property="isManage" column="is_manage" jdbcType="INTEGER"/>
<result property="occupation" column="occupation" jdbcType="VARCHAR"/>
<result property="professionalTitle" column="professional_title" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id,username,email, id,username,email,
organization,research_field,create_time, organization,research_field,create_time,
is_manage is_manage,occupation,professional_title
</sql> </sql>
</mapper> </mapper>

View File

@ -10,10 +10,11 @@
<result property="uploaderId" column="uploader_id" jdbcType="BIGINT"/> <result property="uploaderId" column="uploader_id" jdbcType="BIGINT"/>
<result property="managerId" column="manager_id" jdbcType="BIGINT"/> <result property="managerId" column="manager_id" jdbcType="BIGINT"/>
<result property="disasterId" column="disaster_id" jdbcType="BIGINT"/> <result property="disasterId" column="disaster_id" jdbcType="BIGINT"/>
<result property="responseOrganization" column="response_organization"/>
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id,sponsor_id,uploader_id, id,sponsor_id,uploader_id,
manager_id,disaster_id manager_id,disaster_id,response_organization
</sql> </sql>
</mapper> </mapper>

View File

@ -2,7 +2,10 @@ package com.kening.vordm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.RemoteSensingSourceData; import com.kening.vordm.entity.RemoteSensingSourceData;
import com.kening.vordm.vo.GroupByUse;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -16,4 +19,7 @@ import java.util.List;
public interface RemoteSensingSourceDataMapper extends BaseMapper<RemoteSensingSourceData> { public interface RemoteSensingSourceDataMapper extends BaseMapper<RemoteSensingSourceData> {
List<RemoteSensingSourceData> getRemoteSensingSourceData(@Param("disasterType") String disasterType,@Param("disasterCountry") String disasterCountry,@Param("disasterTime") String disasterTime); List<RemoteSensingSourceData> getRemoteSensingSourceData(@Param("disasterType") String disasterType,@Param("disasterCountry") String disasterCountry,@Param("disasterTime") String disasterTime);
IPage<RemoteSensingSourceData> getRemoteSensingSourceDataByCondition(@Param("remoteSensingSourceData") RemoteSensingSourceData remoteSensingSourceData, IPage<Object> page);
} }

View File

@ -62,4 +62,22 @@
AND d.disaster_country = #{disasterCountry} AND d.disaster_country = #{disasterCountry}
AND d.disaster_time = #{disasterTime} AND d.disaster_time = #{disasterTime}
</select> </select>
<select id="getRemoteSensingSourceDataByCondition" resultType="com.kening.vordm.entity.RemoteSensingSourceData">
select
<include refid="Base_Column_List"/>
from remote_sensing_source_data r
<where>
<if test="remoteSensingSourceData.disasterId != null and remoteSensingSourceData.disasterId != ''">
r.disaster_id = #{remoteSensingSourceData.disasterId}
</if>
<if test="remoteSensingSourceData.productResolution != null and remoteSensingSourceData.productResolution != ''">
and r.product_resolution = #{remoteSensingSourceData.productResolution}
</if>
<if test="remoteSensingSourceData.satelliteCode != null and remoteSensingSourceData.satelliteCode != ''">
and r.satellite_code = #{remoteSensingSourceData.satelliteCode}
</if>
</where>
</select>
</mapper> </mapper>

View File

@ -11,16 +11,17 @@ import com.kening.vordm.vo.UserTenantVo;
import java.util.List; import java.util.List;
/** /**
* @author G1393 * @author G1393
* @description 针对表disaster_info(灾害信息表存储灾害信息)的数据库操作Service * @description 针对表disaster_info(灾害信息表存储灾害信息)的数据库操作Service
* @createDate 2023-04-04 15:54:30 * @createDate 2023-04-04 15:54:30
*/ */
public interface DisasterInfoService extends IService<DisasterInfo> { public interface DisasterInfoService extends IService<DisasterInfo> {
List<GroupByUse> getConditionData(String type, String country, String time, String name); List<GroupByUse> getConditionData(String type, String country, String time, String name);
/** /**
* 获取债害详情信息 * 获取债害详情信息
*
* @param id * @param id
* @return * @return
*/ */
@ -28,17 +29,25 @@ public interface DisasterInfoService extends IService<DisasterInfo> {
/** /**
* 根据灾害信息获取灾害id * 根据灾害信息获取灾害id
*
* @param disasterInfo * @param disasterInfo
* @return * @return
*/ */
List<Long> getDisasterId(DisasterInfo disasterInfo); List<Long> getDisasterId(DisasterInfo disasterInfo);
List<GroupByUse> getDisasterStatistics( String name); List<GroupByUse> getDisasterStatistics(String name);
IPage<DisasterMangerInfo> getHomeDisaster(IPage<DisasterMangerInfo> page, Integer respondStatus); IPage<DisasterMangerInfo> getHomeDisaster(IPage<DisasterMangerInfo> page, Integer respondStatus);
List<UserTenantVo> getAllUser(); List<UserTenantVo> getAllUser();
List<GroupByUse> getLeft3Data();
List<GroupByUse> getLeft4Data();
List<GroupByUse> getLeft1Data();
List<GroupByUse> getLeft2Data();
} }

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

@ -4,6 +4,10 @@ package com.kening.vordm.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.EntityData; import com.kening.vordm.entity.EntityData;
import com.kening.vordm.vo.EntityDataUserVo;
import com.kening.vordm.vo.UserTenantVo;
import java.util.List;
/** /**
* @author G1393 * @author G1393
@ -14,4 +18,15 @@ public interface EntityDataService extends IService<EntityData> {
IPage<EntityData> getEntityDataList(IPage<Object> page, EntityData entityData); IPage<EntityData> getEntityDataList(IPage<Object> page, EntityData entityData);
/**
* 获取所以不可可视化下机构信息
* @return
*/
List<UserTenantVo> getEntityDataSourceOrganization();
/**
* Resource upload 上传实体信息
* @return
*/
Boolean saveEntityData(EntityDataUserVo entityDataUserVo);
} }

View File

@ -1,8 +1,11 @@
package com.kening.vordm.service; package com.kening.vordm.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.RemoteSensingSourceData; import com.kening.vordm.entity.RemoteSensingSourceData;
import com.kening.vordm.vo.GroupByUse;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@ -15,4 +18,6 @@ import java.util.List;
public interface RemoteSensingSourceDataService extends IService<RemoteSensingSourceData> { public interface RemoteSensingSourceDataService extends IService<RemoteSensingSourceData> {
List<RemoteSensingSourceData> getRemoteSensingSourceData(String disasterType,String disasterCountry, String disasterTime); List<RemoteSensingSourceData> getRemoteSensingSourceData(String disasterType,String disasterCountry, String disasterTime);
IPage<RemoteSensingSourceData> getRemoteSensingSourceDataByCondition(IPage<Object> page, RemoteSensingSourceData remoteSensingSourceData);
} }

View File

@ -46,23 +46,23 @@ implements DisasterInfoService {
public List<Long> getDisasterId(DisasterInfo disasterInfo){ public List<Long> getDisasterId(DisasterInfo disasterInfo){
QueryWrapper<DisasterInfo> qw = new QueryWrapper<>(); QueryWrapper<DisasterInfo> qw = new QueryWrapper<>();
if (disasterInfo.getDisasterType()!=null){ if (disasterInfo.getDisasterType()!=null){
qw.like("disaster_type",disasterInfo.getDisasterType()); qw.eq("disaster_type",disasterInfo.getDisasterType());
} }
if (disasterInfo.getDisasterCountry()!=null){ if (disasterInfo.getDisasterCountry()!=null){
qw.like("disaster_country",disasterInfo.getDisasterCountry()); qw.eq("disaster_country",disasterInfo.getDisasterCountry());
} }
if (disasterInfo.getDisasterTime()!=null){ if (disasterInfo.getDisasterTime()!=null){
qw.like("disaster_time",disasterInfo.getDisasterTime()); qw.eq("disaster_time",disasterInfo.getDisasterTime());
} }
List<DisasterInfo> disasterInfos = this.baseMapper.selectList(qw); List<DisasterInfo> disasterInfos = this.baseMapper.selectList(qw);
List<Long> ids = new ArrayList<>();
if (!disasterInfos.isEmpty()){ if (!disasterInfos.isEmpty()){
List<Long> ids = new ArrayList<>();
disasterInfos.stream().forEach(disasterInfo1 -> { disasterInfos.stream().forEach(disasterInfo1 -> {
ids.add(disasterInfo1.getId()); ids .add(disasterInfo1.getId());
}); });
return ids; return ids;
} }
return null; return ids;
} }
/** /**
@ -94,4 +94,25 @@ implements DisasterInfoService {
return this.baseMapper.getAllUser(); return this.baseMapper.getAllUser();
} }
@Override
public List<GroupByUse> getLeft3Data() {
return this.baseMapper.getLeft3Data();
}
@Override
public List<GroupByUse> getLeft4Data() {
return this.baseMapper.getLeft4Data();
}
@Override
public List<GroupByUse> getLeft1Data() {
return this.baseMapper.getLeft1Data();
}
@Override
public List<GroupByUse> getLeft2Data() {
return this.baseMapper.getLeft2Data();
}
} }

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

@ -1,16 +1,26 @@
package com.kening.vordm.service.impl; package com.kening.vordm.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.EntityData; import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.GuestInfo;
import com.kening.vordm.mapper.EntityDataMapper; import com.kening.vordm.mapper.EntityDataMapper;
import com.kening.vordm.mapper.GuestInfoMapper;
import com.kening.vordm.service.EntityDataService; import com.kening.vordm.service.EntityDataService;
import org.springblade.core.tool.api.R; import com.kening.vordm.vo.EntityDataUserVo;
import org.springblade.core.tool.utils.CollectionUtil; import com.kening.vordm.vo.UserTenantVo;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.oss.MinioTemplate;
import org.springblade.core.oss.model.BladeFile;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -18,14 +28,79 @@ import java.util.List;
* @description 针对表entity_data(其他上传的实体数据)的数据库操作Service实现 * @description 针对表entity_data(其他上传的实体数据)的数据库操作Service实现
* @createDate 2023-04-04 15:54:30 * @createDate 2023-04-04 15:54:30
*/ */
@Slf4j
@Service @Service
@AllArgsConstructor
public class EntityDataServiceImpl extends ServiceImpl<EntityDataMapper, EntityData> public class EntityDataServiceImpl extends ServiceImpl<EntityDataMapper, EntityData>
implements EntityDataService { implements EntityDataService {
private GuestInfoMapper guestInfoMapper;
/**
* 对象存储模块
*/
private MinioTemplate minioTemplate;
@Override @Override
public IPage<EntityData> getEntityDataList(IPage<Object> page, EntityData entityData) { public IPage<EntityData> getEntityDataList(IPage<Object> page, EntityData entityData) {
return this.baseMapper.getEntityDataList(entityData, page); return this.baseMapper.getEntityDataList(entityData, page);
} }
/**
* 获取所以不可可视化下机构信息
*
* @return
*/
@Override
public List<UserTenantVo> getEntityDataSourceOrganization() {
return this.baseMapper.getEntityDataSourceOrganization();
}
@Override
@Transactional
public Boolean saveEntityData(EntityDataUserVo entityDataUserVo) {
//创建实体数据
EntityData entityData = new EntityData();
//路径拼接
List<String> link = new ArrayList<>();
//文件数据
List<MultipartFile> filesArray = entityDataUserVo.getFilesArray();
filesArray.stream().forEach(files->{
BladeFile bladeFile = minioTemplate.putFile(files);
link.add(bladeFile.getLink());
});
//判断上传用户是否存在
LambdaQueryWrapper<GuestInfo> qw = new LambdaQueryWrapper<>();
qw.eq(GuestInfo::getEmail, entityDataUserVo.getEmail());
GuestInfo guestInfo1 = guestInfoMapper.selectOne(qw);
if (guestInfo1 == null) {
GuestInfo guestInfo = new GuestInfo();
guestInfo.setEmail(entityDataUserVo.getEmail());
guestInfo.setOrganization(entityDataUserVo.getOrganization());
guestInfo.setIsManage(entityDataUserVo.getIsManage());
guestInfo.setResearchField(entityDataUserVo.getResearchField());
guestInfo.setUsername(entityDataUserVo.getUsername());
guestInfo.setCreateTime(new Date());
guestInfo.setOccupation(entityDataUserVo.getOccupation());
guestInfo.setProfessionalTitle(entityDataUserVo.getProfessionalTitle());
guestInfoMapper.insert(guestInfo);
entityData.setUploaderId(guestInfo.getId());
} else {
entityData.setUploaderId(guestInfo1.getId());
}
//实体数据
entityData.setTitle(entityDataUserVo.getTitle());
entityData.setSize(entityDataUserVo.getSize());
entityData.setLink(StringUtils.join(link,","));
entityData.setDisasterId(entityDataUserVo.getDisasterId());
entityData.setUploadTime(new Date());
entityData.setRemark(entityDataUserVo.getRemark());
entityData.setSourceOrganization(entityDataUserVo.getOrganization());
return this.baseMapper.insert(entityData)>1;
}
} }

View File

@ -1,9 +1,12 @@
package com.kening.vordm.service.impl; package com.kening.vordm.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.RemoteSensingSourceData; import com.kening.vordm.entity.RemoteSensingSourceData;
import com.kening.vordm.mapper.RemoteSensingSourceDataMapper; import com.kening.vordm.mapper.RemoteSensingSourceDataMapper;
import com.kening.vordm.service.RemoteSensingSourceDataService; import com.kening.vordm.service.RemoteSensingSourceDataService;
import com.kening.vordm.vo.GroupByUse;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@ -22,4 +25,8 @@ implements RemoteSensingSourceDataService {
return this.baseMapper.getRemoteSensingSourceData(disasterType, disasterCountry, disasterTime); return this.baseMapper.getRemoteSensingSourceData(disasterType, disasterCountry, disasterTime);
} }
@Override
public IPage<RemoteSensingSourceData> getRemoteSensingSourceDataByCondition(IPage<Object> page, RemoteSensingSourceData remoteSensingSourceData) {
return this.baseMapper.getRemoteSensingSourceDataByCondition(remoteSensingSourceData, page);
}
} }

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>

View File

@ -1,5 +1,5 @@
spring: spring:
datasource: datasource:
url: ${kn.datasource.vordm.url} url: ${blade.datasource.dev.url}
username: ${kn.datasource.vordm.username} username: ${blade.datasource.dev.username}
password: ${kn.datasource.vordm.password} password: ${blade.datasource.dev.password}

View File

@ -19,3 +19,4 @@
</dependencies> </dependencies>
</project> </project>

View File

@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<modules> <modules>
<module>biz-vordm</module> <module>biz-vordm</module>
<module>kn-setting</module> <!-- <module>kn-setting</module>-->
</modules> </modules>
<parent> <parent>
@ -65,6 +65,25 @@
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>blade-starter-oss</artifactId>
<exclusions>
<exclusion>
<artifactId>esdk-obs-java</artifactId>
<groupId>com.huaweicloud</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-mock</artifactId>
<version>2.0.8</version>
</dependency>
<dependency> <dependency>
<groupId>com.alibaba</groupId> <groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId> <artifactId>fastjson</artifactId>