This commit is contained in:
why 2023-04-11 10:02:15 +08:00
commit 5caa9af6c3
23 changed files with 350 additions and 39 deletions

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

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

View File

@ -1,8 +1,10 @@
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 {
@ -131,4 +133,14 @@ public class EntityDataUserVo {
* 职称
*/
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

@ -12,5 +12,6 @@ import org.springframework.cloud.client.SpringCloudApplication;
public class VoRdmApplication {
public static void main(String[] 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
@AllArgsConstructor
@RequestMapping("/contact")
@RequestMapping("/ui/contact")
public class ContactController{
private ContactService contactService;
@ApiOperationSupport(order = 1)

View File

@ -1,11 +1,14 @@
package com.kening.vordm.controller;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.kening.vordm.entity.*;
import com.kening.vordm.service.*;
import com.kening.vordm.vo.CallForHelpVo;
import com.kening.vordm.vo.DisasterInfoVo;
import com.kening.vordm.vo.GroupByUse;
import com.kening.vordm.vo.UserTenantVo;
@ -13,6 +16,7 @@ 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.utils.DateUtil;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
@ -30,7 +34,16 @@ public class DisasterInfoController {
private final WebsitesService websitesService;
private final NewsService newsService;
private final PictureInfoService pictureInfoService;
private final GuestInfoService guestInfoService;
private final GuestManageDisasterRefService guestManageDisasterRefService;
//下载次数记录
private final DownloadRecordService downloadRecordService;
private final DisasterInfoVoService disasterInfoVoService;
/**
@ -46,8 +59,22 @@ public class DisasterInfoController {
@GetMapping("/getPicInfoByDisasterId")
public R<List<PictureInfo>> getPicInfoByDisasterInfoId(Long disasterId){
return R.data(pictureInfoService.list(Wrappers.<PictureInfo>lambdaQuery()
.eq(PictureInfo::getDisasterId,disasterId)
.eq(PictureInfo::getIsMain, 1)));
.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()
));
}
/**
@ -80,7 +107,7 @@ public class DisasterInfoController {
// }
String disaster_time = 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()
));
@ -178,4 +205,30 @@ public class DisasterInfoController {
public R<List<UserTenantVo>> getUserTenant() {
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

@ -33,7 +33,7 @@ public class EntityDataController {
}
/**
* 获取所以不可可视化下机构信息
* 获取所有实体信息下机构信息
* @return
*/
@GetMapping("/getEntityDataSourceOrganization")
@ -47,7 +47,7 @@ public class EntityDataController {
* @return
*/
@PostMapping("/saveEntityData")
public R saveEntityData(@RequestBody EntityDataUserVo entityDataUserVo) {
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.metadata.IPage;
import com.kening.vordm.entity.DisasterInfo;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.RemoteSensingSourceData;
import com.kening.vordm.service.DisasterInfoService;
import com.kening.vordm.service.RemoteSensingSourceDataService;
import com.kening.vordm.vo.GroupByUse;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -33,8 +36,32 @@ public class RemoteSensingSourceDataController {
*/
@GetMapping("/SourceData")
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)));
}
/**
* 实体数据列表信息
* @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
@AllArgsConstructor
@RequestMapping("/tool")
@RequestMapping("/ui/tool")
public class ToolController{
private ToolService toolService;
@ApiOperationSupport(order = 1)
@ -60,6 +60,7 @@ public class ToolController{
Tool detail = toolService.getById(id);
return R.data(detail);
}
@ApiOperationSupport(order = 6)
@ApiOperation(value = "提交", notes = "传入Tool")
@PostMapping("/submit")

View File

@ -62,7 +62,7 @@
from disaster_info
<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_country!=null"> disaster_country like concat('%',#{disaster_country},'%') </if>
<if test="disaster_time!=null and disaster_country!=null and disaster_time!=null"> and </if>
@ -84,6 +84,7 @@
where d.respond_status=#{respondStatus}
order by d.disaster_time desc
</select>
<select id="getAllUser" resultType="com.kening.vordm.vo.UserTenantVo">
SELECT
bu.organization AS organizationId,

View File

@ -2,7 +2,10 @@ package com.kening.vordm.mapper;
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.vo.GroupByUse;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -16,4 +19,7 @@ import java.util.List;
public interface RemoteSensingSourceDataMapper extends BaseMapper<RemoteSensingSourceData> {
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_time = #{disasterTime}
</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>

View File

@ -1,8 +1,11 @@
package com.kening.vordm.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.RemoteSensingSourceData;
import com.kening.vordm.vo.GroupByUse;
import org.springframework.stereotype.Service;
import java.util.List;
@ -15,4 +18,6 @@ import java.util.List;
public interface RemoteSensingSourceDataService extends IService<RemoteSensingSourceData> {
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){
QueryWrapper<DisasterInfo> qw = new QueryWrapper<>();
if (disasterInfo.getDisasterType()!=null){
qw.like("disaster_type",disasterInfo.getDisasterType());
qw.eq("disaster_type",disasterInfo.getDisasterType());
}
if (disasterInfo.getDisasterCountry()!=null){
qw.like("disaster_country",disasterInfo.getDisasterCountry());
qw.eq("disaster_country",disasterInfo.getDisasterCountry());
}
if (disasterInfo.getDisasterTime()!=null){
qw.like("disaster_time",disasterInfo.getDisasterTime());
qw.eq("disaster_time",disasterInfo.getDisasterTime());
}
List<DisasterInfo> disasterInfos = this.baseMapper.selectList(qw);
if (!disasterInfos.isEmpty()){
List<Long> ids = new ArrayList<>();
if (!disasterInfos.isEmpty()){
disasterInfos.stream().forEach(disasterInfo1 -> {
ids.add(disasterInfo1.getId());
ids .add(disasterInfo1.getId());
});
return ids;
}
return null;
return ids;
}
/**

View File

@ -1,5 +1,6 @@
package com.kening.vordm.service.impl;
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.extension.service.impl.ServiceImpl;
@ -12,8 +13,13 @@ import com.kening.vordm.vo.EntityDataUserVo;
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.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -30,6 +36,11 @@ public class EntityDataServiceImpl extends ServiceImpl<EntityDataMapper, EntityD
private GuestInfoMapper guestInfoMapper;
/**
* 对象存储模块
*/
private MinioTemplate minioTemplate;
@Override
public IPage<EntityData> getEntityDataList(IPage<Object> page, EntityData entityData) {
return this.baseMapper.getEntityDataList(entityData, page);
@ -46,10 +57,20 @@ public class EntityDataServiceImpl extends ServiceImpl<EntityDataMapper, EntityD
}
@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());
@ -73,7 +94,7 @@ public class EntityDataServiceImpl extends ServiceImpl<EntityDataMapper, EntityD
//实体数据
entityData.setTitle(entityDataUserVo.getTitle());
entityData.setSize(entityDataUserVo.getSize());
entityData.setLink(entityDataUserVo.getLink());
entityData.setLink(StringUtils.join(link,","));
entityData.setDisasterId(entityDataUserVo.getDisasterId());
entityData.setUploadTime(new Date());
entityData.setRemark(entityDataUserVo.getRemark());

View File

@ -1,9 +1,12 @@
package com.kening.vordm.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.RemoteSensingSourceData;
import com.kening.vordm.mapper.RemoteSensingSourceDataMapper;
import com.kening.vordm.service.RemoteSensingSourceDataService;
import com.kening.vordm.vo.GroupByUse;
import org.springframework.stereotype.Service;
import java.util.List;
@ -22,4 +25,8 @@ implements RemoteSensingSourceDataService {
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

@ -1,19 +0,0 @@
<?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.ContactMapper">
<resultMap id="BaseResultMap" type="com.kening.vordm.entity.Contact">
<result property="userName" column="user_name" jdbcType="VARCHAR"/>
<result property="email" column="email" jdbcType="VARCHAR"/>
<result property="organization" column="organization" jdbcType="VARCHAR"/>
<result property="message" column="message" jdbcType="VARCHAR"/>
<result property="id" column="id" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_Column_List">
user_name,email,organization,
message,id
</sql>
</mapper>

View File

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

View File

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

View File

@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<modules>
<module>biz-vordm</module>
<module>kn-setting</module>
<!-- <module>kn-setting</module>-->
</modules>
<parent>
@ -65,6 +65,25 @@
</exclusion>
</exclusions>
</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>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>