Merge branch 'master' into yyhouc

# Conflicts:
#	kn-service-api/biz-vordm-api/src/main/java/com/kening/vordm/entity/Tool.java
This commit is contained in:
yyhouc 2023-05-11 18:48:27 +08:00
commit 4b1de6a363
45 changed files with 556 additions and 111 deletions

View File

@ -0,0 +1,50 @@
package com.kening.vordm.DTO;
import com.kening.vordm.entity.Tool;
import lombok.Data;
/**
* ToolDTO
*/
@Data
public class ToolDTO extends Tool {
/**
* 用户名称
*/
private String username;
/**
* 用户邮件
*/
private String email;
/**
* 用户组织机构
*/
private String organization;
/**
* 研究范围
*/
private String researchField;
/**
* 职业
*/
private String occupation;
/**
* 职称
*/
private String professionalTitle;
/**
*
*/
private String lastName;
/**
* 名字
*/
private String firstName;
}

View File

@ -17,6 +17,8 @@ public class AdminManager extends DisasterInfo{
private Long managerId;
private Long disasterId;
private Integer status;
private String occupation;

View File

@ -23,5 +23,8 @@ public class DataUpload extends EntityData{
private Date disasterTime;
private Long disasterId;
private String vordmId;
private String geometry;
}

View File

@ -107,6 +107,10 @@ public class EntityData implements Serializable {
*/
private Integer isDeleted;
/**
* 是否发布0未发布/1已发布
*/
private Integer isPublish;
/**
* 上传人姓名
@ -132,6 +136,12 @@ public class EntityData implements Serializable {
@TableField(exist = false)
private String msName;
/**
* 灾害区域地理字段
*/
@TableField(exist = false)
private String geometry;
@TableField(exist = false)
private static final long serialVersionUID = 1L;

View File

@ -76,10 +76,6 @@ public class Hotspot implements Serializable {
@ExcelIgnore
private Date reviewTime;
/**
* 是否删除 0未删除 1已删除
*/
private Integer isDeleted;
@ExcelIgnore
@TableField(exist = false)

View File

@ -18,9 +18,13 @@ public class OtherData{
private String type;
private String title;
private String remark;
private Long disasterId;
private Integer visualFlag;
private String sourceOrganization;
}

View File

@ -165,6 +165,11 @@ public class RemoteSensingSourceData implements Serializable {
*/
private Integer status;
/**
* 上传用户
*/
private Long uploadId;
/**
* 分辨率集合最大值
*/

View File

@ -80,14 +80,12 @@ public class Tool implements Serializable {
* 上传人
*/
private Long uploader;
/**
* 昵称
* 邮箱
*/
private String show_name;
/**
* 昵称
*/
private String eMail;
private String mailbox;
/**
* 学术导论链接
*/
@ -95,11 +93,25 @@ public class Tool implements Serializable {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
@TableField(exist = false)
private String checked;
/**
* 贡献者
*/
private String showName;
@TableField(exist = false)
private String checked;
@TableField(exist = false)
private Integer number;
/**
* 工具访问量
*/
private int toolVisits;
/**
* 论文访问量
*/
private int paperVisits;
}

View File

@ -72,4 +72,35 @@ public class CallForHelpVo extends DisasterInfo {
* 受灾国家
*/
private String vordmId;
private Date reviewTime;
/**
* 级别-地震
*/
private String disasterLevel;
/**
* 完成时间
*/
private Date respondedTime;
/**
* 角色名称
*/
private String roleName;
/**
* 角色Id
*/
private Long roleId;
/**
* 角色父级Id
*/
private Long parentId;
private String roleAlias;
}

View File

@ -130,6 +130,11 @@ public class DisasterInfoVo implements Serializable {
*/
private String userName;
/**
* 结束时间
*/
private Date respondedTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@ -167,7 +167,7 @@ public class EntityDataUserVo {
/**
* 生产时间
*/
private Date productTime;
private String productTime;
/**

View File

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

View File

@ -1,7 +1,9 @@
package com.kening.vordm.controller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.kening.vordm.entity.DisasterInfo;
import com.kening.vordm.entity.GuestManageDisasterRef;
import com.kening.vordm.service.DisasterInfoService;
import com.kening.vordm.service.GuestManageDisasterRefService;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.Condition;
@ -25,6 +27,7 @@ public class AdminManagerController {
private GuestManageDisasterRefService guestManageDisasterRefService;
private DisasterInfoService disasterInfoService;
/**
* 普通管理员分页查询
* @param query
@ -33,7 +36,6 @@ public class AdminManagerController {
*/
@GetMapping("/pages")
public R pages(Query query, @RequestParam Map<String,Object> params){
return R.data(guestManageDisasterRefService.queryPage(Condition.getPage(query),params));
}
@ -44,6 +46,13 @@ public class AdminManagerController {
@PostMapping("/audit")
public R audit(@RequestBody List<GuestManageDisasterRef> guestManageDisasterRef){
guestManageDisasterRef.stream().forEach(guestManageDisasterRef1 -> {
if (guestManageDisasterRef1.getStatus() == 1){
DisasterInfo disasterInfo = new DisasterInfo();
disasterInfo.setId(guestManageDisasterRef1.getDisasterId());
disasterInfo.setChiefId(guestManageDisasterRef1.getManagerId());
disasterInfoService.updateById(disasterInfo);
}
guestManageDisasterRef1.setReviewTime(new Date());
});
return R.status(guestManageDisasterRefService.updateBatchById(guestManageDisasterRef));

View File

@ -20,6 +20,7 @@ import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.web.bind.annotation.*;
@ -77,6 +78,19 @@ public class DisasterInfoController {
})
@GetMapping("/list")
public R<IPage<CallForHelpVo>> list(CallForHelpVo CallForHelpVo, Query query) {
String userRole1 = AuthUtil.getUserRole();
if (CallForHelpVo.getChiefIdEquals()!=null){
CallForHelpVo userRole = disasterInfoService.getByUserIdRole(CallForHelpVo.getChiefIdEquals());
if (userRole1.equals("TENANT_ADMIN") && userRole.getRoleAlias().equals("TENANT_ADMIN")){
CallForHelpVo.setChiefIdEquals(null);
}
}else {
if (userRole1.equals("TENANT_ADMIN")){
CallForHelpVo.setChiefIdEquals(null);
}
}
IPage<CallForHelpVo> pages = disasterInfoService.page(Condition.getPage(query), CallForHelpVo);
return R.data(pages);
}
@ -122,26 +136,6 @@ public class DisasterInfoController {
*/
@GetMapping("/select-condition")
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;
if (disasterInfo.getDisasterTime() != null) {
disaster_time = DateUtil.format(disasterInfo.getDisasterTime(), "yyyy-MM-dd");
@ -323,6 +317,9 @@ public class DisasterInfoController {
DisasterInfo disasterInfo = new DisasterInfo();
BeanUtil.copyProperties(callForHelpVo, disasterInfo);
disasterInfo.setUploadTime(new Date());
if (callForHelpVo.getDisasterLevel() != null){
disasterInfo.setDisasterLevel(callForHelpVo.getDisasterLevel());
}
Boolean flag3 = disasterInfoService.save(disasterInfo);
@ -339,8 +336,7 @@ public class DisasterInfoController {
@PostMapping("review")
public R<Boolean> review(@RequestBody DisasterInfo disasterInfo) {
//审批通过
//审批通过 响应状态0未审批1审批未通过2审批通过并正在响应3审批通过并且响应完成
if (disasterInfo.getRespondStatus() == 2) {
String numbering = serialNumberService.generateNumbering(disasterInfo.getDisasterType());
disasterInfo.setVordmId(numbering);
@ -353,6 +349,12 @@ public class DisasterInfoController {
@ApiOperation(value = "提交", notes = "传入Tool")
@PostMapping("/submit")
public R submit(@ApiParam(value = "Tool对象", required = true) @RequestBody DisasterInfo disasterInfo) {
LambdaQueryWrapper<GuestManageDisasterRef> qw = new LambdaQueryWrapper<>();
qw.eq(GuestManageDisasterRef::getDisasterId,disasterInfo.getId());
GuestManageDisasterRef one = guestManageDisasterRefService.getOne(qw);
one.setStatus(1);
one.setManagerId(disasterInfo.getChiefId());
guestManageDisasterRefService.updateById(one);
return R.status(disasterInfoService.saveOrUpdate(disasterInfo));
}
@ -374,6 +376,15 @@ public class DisasterInfoController {
*/
@PutMapping("/updateBatch")
public R updateBatch(@RequestBody List<DisasterInfo> disasterInfoList) {
disasterInfoList.stream().forEach(disasterInfo -> {
LambdaQueryWrapper<GuestManageDisasterRef> qw = new LambdaQueryWrapper<>();
qw.eq(GuestManageDisasterRef::getDisasterId,disasterInfo.getId());
GuestManageDisasterRef one = guestManageDisasterRefService.getOne(qw);
one.setStatus(1);
one.setManagerId(disasterInfo.getChiefId());
guestManageDisasterRefService.updateById(one);
});
return R.status(disasterInfoService.updateBatchById(disasterInfoList));
}

View File

@ -38,8 +38,8 @@ public class EntityDataController {
* @return
*/
@GetMapping("/getEntityDataSourceOrganization")
public R<List<UserTenantVo>> getEntityDataSourceOrganization() {
return R.data(entityDataService.getEntityDataSourceOrganization());
public R<List<UserTenantVo>> getEntityDataSourceOrganization(Long disasterId) {
return R.data(entityDataService.getEntityDataSourceOrganization(disasterId));
}
@ -61,5 +61,16 @@ public class EntityDataController {
entityData.setReviewTime(new Date());
return R.data(entityDataService.updateById(entityData));
}
/**
* 修改实体数据
* @param entityData
* @return
*/
@PostMapping("/updateEntityData")
public R updateEntityData(@RequestBody EntityData entityData) {
return R.data(entityDataService.updateById(entityData));
}
}

View File

@ -0,0 +1,35 @@
package com.kening.vordm.controller;
import com.kening.vordm.entity.MapServer;
import com.kening.vordm.service.MapServerService;
import com.kening.vordm.vo.UserVo;
import lombok.RequiredArgsConstructor;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
@RequestMapping("/ui/mapServer")
public class MapServerController {
//邮箱发送服务
private final MapServerService mapServerService;
/**
* 新增基础地理数据
*
* @param mapServer
* @return
*/
// @PostMapping("/saveMapServer")
// public R saveMapServer(@RequestBody MapServer mapServer) {
// return mapServerService.saveMapServer(mapServer);
// }
}

View File

@ -72,6 +72,7 @@ public class NewsController {
IPage<News> pages = newsService.page(Condition.getPage(query), queryWrapper);
return R.data(pages);
}
@PostMapping("review")
public R<Boolean> review(String ids ,Integer status){
UpdateWrapper<News> updateWrapper = new UpdateWrapper<>();

View File

@ -71,4 +71,9 @@ public class RemoteSensingSourceDataController {
qw.eq("disaster_id", disasterId);
return R.data(remoteSensingSourceDataService.page(Condition.getPage(query), qw));
}
@PostMapping("/approval")
public R approval(@RequestBody RemoteSensingSourceData remoteSensingSourceData){
return R.status(remoteSensingSourceDataService.updateById(remoteSensingSourceData));
}
}

View File

@ -1,8 +1,16 @@
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.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.kening.vordm.DTO.ToolDTO;
import com.kening.vordm.entity.GuestInfo;
import com.kening.vordm.service.GuestInfoService;
import com.kening.vordm.service.ToolService;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@ -12,20 +20,22 @@ import lombok.AllArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.tool.api.R;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springblade.core.mp.support.Query;
import org.springframework.web.bind.annotation.*;
import com.kening.vordm.entity.Tool;
import java.util.Arrays;
import java.util.Date;
import java.util.*;
@RestController
@AllArgsConstructor
@RequestMapping("/ui/tool")
public class ToolController{
private ToolService toolService;
//引入guestInfoService
private GuestInfoService guestInfoService;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "分页", notes = "传入Tool")
@ApiImplicitParams({
@ -39,7 +49,7 @@ public class ToolController{
queryWrapper.like("tool_name", tool.getToolName());
}
if(!StringUtils.isEmpty(tool.getLabel())){
queryWrapper.like("label", tool.getLabel());
queryWrapper.like("Introduction", tool.getLabel()).or().like("label", tool.getLabel());
}
String checkd = tool.getChecked();
if(checkd != null && checkd.equals("1")){
@ -66,6 +76,7 @@ public class ToolController{
@ApiOperationSupport(order = 4)
@ApiOperation(value = "删除", notes = "传入id")
@PostMapping("/remove")
@CacheEvict(value = "tool_statistics", allEntries = true) // 删除时清空缓存重新统计
public R remove(@ApiParam(value = "主键", required = true) @RequestParam String ids) {
return R.status(toolService.removeByIds(Arrays.asList(ids.split(","))));
}
@ -77,18 +88,77 @@ public class ToolController{
return R.data(detail);
}
@ApiOperationSupport(order = 6)
@ApiOperation(value = "提交", notes = "传入Tool")
@PostMapping("/submit")
public R submit(@ApiParam(value = "Tool对象", required = true) @RequestBody Tool tool) {
public R submit(@RequestBody Tool tool) {
tool.setCreateTime(new Date());
return R.status(toolService.saveOrUpdate(tool));
}
@ApiOperationSupport(order = 7 )
@ApiOperation(value = "审核", notes = "传入Tool")
@PostMapping("/review")
@CacheEvict(value = "tool_statistics", allEntries = true) // 审核通过时清空缓存重新统计
public R review (@ApiParam(value = "Tool对象", required = true) @RequestBody Tool tool) {
tool.setReviewTime(new Date());
return R.status(toolService.saveOrUpdate(tool));
}
@GetMapping("/toolRanking")
public R<List<Tool>> toolRanking() {
List<Tool> detail = toolService.toolRanking();
return R.data(detail);
}
/**
* tool 新的新增方法
*/
@PostMapping("/add")
public R add(@RequestBody ToolDTO tool) {
//首先查询是否有该用户
LambdaQueryWrapper<GuestInfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(GuestInfo::getEmail,tool.getMailbox());
GuestInfo one = guestInfoService.getOne(queryWrapper);
GuestInfo guestInfo = new GuestInfo();
//拷贝到guestInfo
BeanUtil.copyProperties(tool, guestInfo);
//判断是否存在该用户
if(one == null){
//不存在则新增
guestInfo.setEmail(tool.getMailbox());
guestInfo.setId(IdWorker.getId());
guestInfoService.save(guestInfo);
}else{
//存在则更新
guestInfo.setId(one.getId());
guestInfoService.updateById(guestInfo);
}
//处理tool
tool.setShowName(tool.getUsername());
tool.setUploader(guestInfo.getId());
tool.setCreateTime(new Date());
return R.status(toolService.saveOrUpdate(tool));
}
/**
* 访问量记录
*/
@PostMapping("/addAccess")
public R addAccess(Long id, int type) {
UpdateWrapper<Tool> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", id);
if(type==1){
updateWrapper.setSql("tool_visits = tool_visits + 1");
}else{
updateWrapper.setSql("paper_visits = paper_visits + 1");
}
return R.status(toolService.update(updateWrapper));
}
/**
* 统计
*/
@GetMapping("/statistics")
public R statistics() {
return R.data(toolService.statistics());
}
}

View File

@ -0,0 +1,48 @@
package com.kening.vordm.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.Websites;
import com.kening.vordm.service.WebsitesService;
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.Func;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
@RestController
@RequiredArgsConstructor
@RequestMapping("/ui/websites")
public class WebsitesController {
private final WebsitesService websitesService;
@GetMapping("/websitesPage")
public R<IPage<Websites>> websitesPage(Query query, Websites websites){
return R.data(websitesService.websitesPage(Condition.getPage(query),websites));
}
@PostMapping("/saveWebsites")
public R saveWebsites(@RequestBody Websites websites){
websites.setCreateTime(new Date());
return R.status(websitesService.save(websites));
}
@DeleteMapping("/remove")
public R remove(@RequestParam String id){
return R.status(websitesService.removeByIds(Func.toLongList(id)));
}
@PostMapping("/updateWebsites")
public R updateWebsites(@RequestBody Websites websites){
return R.status(websitesService.updateById(websites));
}
@GetMapping("/getWebsitesById")
public R<Websites> getWebsitesById(Long id){
return R.data(websitesService.getById(id));
}
}

View File

@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@ -31,6 +32,7 @@ public class WordCloudsController {
*/
@GetMapping("/wordCount")
public R<Map<String,List<WorldCharts>>> wordCount(@RequestParam Long disasterId){
return R.data(service.wordCount(disasterId));
Map<String, List<WorldCharts>> stringListMap = service.wordCount(disasterId);
return R.data(stringListMap);
}
}

View File

@ -21,13 +21,15 @@
di.disaster_keyword,
bdb.dict_value as disasterType,
di.id as disasterId,
di.vordm_id AS vordmId,
di.disaster_time as disasterTime,
di.disaster_country as disasterCountry
from entity_data ed
left join blade_user bu on bu.id = ed.uploader_id
left join disaster_info di on di.id = ed.disaster_id
left join blade_dict_biz bdb on di.disaster_type = dict_key
left join blade_user bu on bu.id = ed.uploader_id
left join disaster_info di on di.id = ed.disaster_id
left join blade_dict_biz bdb on di.disaster_type = dict_key
where ed.disaster_id is not null
AND di.disaster_keyword IS NOT NUll
group by di.id,bdb.dict_value
</select>

View File

@ -80,4 +80,7 @@ public interface DisasterInfoMapper extends BaseMapper<DisasterInfo> {
List<Map<String, Long>> adminData(String year);
List<Map<String, Long>> disasterNum(String year);
CallForHelpVo getByUserIdRole(@Param("chiefIdEquals") Long chiefIdEquals);
}

View File

@ -182,7 +182,7 @@
u.email,
u.research_field,
u.organization,
d.id,
d.id AS disasterId,
d.disaster_type,
d.disaster_time,
d.disaster_keyword,
@ -191,6 +191,8 @@
d.upload_time,
d.geometry,
d.respond_status,
d.responded_time,
ud.review_time AS reviewTime,
bdb.dict_value as dictValue
From
guest_manage_disaster_ref ud join
@ -199,18 +201,7 @@
left join blade_dict_biz bdb on d.disaster_type = bdb.dict_key
<where>
<if test="callForHelpVo.respondStatus!=null">
<if test="callForHelpVo.respondStatus == 0 or callForHelpVo.respondStatus == '0'">
d.respond_status = 1 or d.respond_status = 0
</if>
<if test="callForHelpVo.respondStatus != 0 and callForHelpVo.respondStatus != '0' and callForHelpVo.respondStatus != 3 and callForHelpVo.respondStatus != '3'">
d.respond_status = 2
</if>
<if test="callForHelpVo.respondStatus == 3 or callForHelpVo.respondStatus == '3'">
d.respond_status = 2 or d.respond_status = 3
</if>
</if>
<if test="callForHelpVo.chiefId != null">
and d.chief_id is null
d.respond_status = #{callForHelpVo.respondStatus}
</if>
<if test="callForHelpVo.chiefIdEquals != null">
and d.chief_id = #{callForHelpVo.chiefIdEquals}
@ -365,12 +356,14 @@
</select>
<select id="chiefData" resultType="java.util.Map">
SELECT b.`name`, count(*) as val FROM disaster_info t INNER JOIN blade_user b on t.chief_id = b.id
where date_format(t.disaster_time,'%Y') = #{year} GROUP BY b.`name` ORDER BY val desc limit 10
where date_format(t.disaster_time,'%Y') = #{year} and b.`name` != "超级管理员" GROUP BY b.`name` ORDER BY val desc limit 10
</select>
<select id="adminData" resultType="java.util.Map">
SELECT b.`name`, count(*) as val FROM guest_manage_disaster_ref t INNER JOIN blade_user b on t.manager_id = b.id INNER JOIN disaster_info d on d.id = t.disaster_id
where date_format(d.disaster_time,'%Y') = #{year} and b.role_id = '1123598816738675202' GROUP BY b.`name` ORDER BY val desc limit 10
where date_format(d.disaster_time,'%Y') = #{year} and b.role_id = '1123598816738675204' GROUP BY b.`name` ORDER BY val desc limit 10
</select>
<select id="disasterNum" resultType="java.util.Map">
SELECT d.dict_value as `name`, count(1) as val FROM disaster_info t INNER JOIN blade_dict_biz d on t.disaster_type = d.dict_key
where date_format(t.disaster_time,'%Y') = #{year} GROUP BY d.dict_value
@ -378,4 +371,14 @@
</select>
<select id="getByUserIdRole" resultType="com.kening.vordm.vo.CallForHelpVo">
SELECT br.role_alias AS roleAlias,
br.id AS roleId,
br.parent_id AS parentId,
br.role_name AS roleName
FROM blade_user bu
left JOIN blade_role br on bu.role_id = br.id
WHERE bu.id = #{chiefIdEquals}
</select>
</mapper>

View File

@ -21,6 +21,6 @@ public interface EntityDataMapper extends BaseMapper<EntityData> {
IPage<EntityData> getEntityDataList(@Param("entityData") EntityData entityData, IPage<Object> page);
List<UserTenantVo> getEntityDataSourceOrganization();
List<UserTenantVo> getEntityDataSourceOrganization(@Param("disasterId") Long disasterId);
}

View File

@ -21,6 +21,9 @@
<result property="managerId" column="manager_id" jdbcType="BIGINT"/>
<result property="reviewTime" column="review_time" jdbcType="TIMESTAMP"/>
<result property="sourceOrganization" column="source_organization" jdbcType="TIMESTAMP"/>
<result property="uploadType" column="upload_type" jdbcType="INTEGER"/>
<result property="isDeleted" column="is_deleted" jdbcType="INTEGER"/>
<result property="isPublish" column="is_publish" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
@ -29,19 +32,19 @@
ed.upload_time,ed.disaster_id,ed.visual_flag,
ed.visual_lon,ed.visual_lat,
ed.status,ed.uploader_id,ed.manager_id,
ed.review_time, ed.source_organization
ed.review_time, ed.source_organization,
ed.upload_type, ed.is_deleted, ed.is_publish
</sql>
<select id="getEntityDataList" resultType="com.kening.vordm.entity.EntityData">
select
<include refid="Base_Column_List"/>,
gi.username AS uploaderName,
ms.layer_name,
ms.vordm_id,
ms.name AS msName
gi.username AS uploaderName,
di.vordm_id,
di.geometry
from entity_data ed
left join guest_info gi on gi.id = ed.uploader_id
left join map_server ms on ms.disaster_id = ed.disaster_id
LEFT JOIN disaster_info di on di.id = ed.disaster_id
<where>
<if test="entityData.disasterId != null and entityData.disasterId != ''">
ed.disaster_id = #{entityData.disasterId}
@ -52,6 +55,9 @@
<if test="entityData.visualFlag != null">
and ed.visual_flag = #{entityData.visualFlag}
</if>
<if test="entityData.isPublish != null">
and ed.is_publish = #{entityData.isPublish}
</if>
<if test="entityData.type != null and entityData.type != ''">
and ed.type = #{entityData.type}
</if>
@ -65,6 +71,11 @@
<select id="getEntityDataSourceOrganization" resultType="com.kening.vordm.vo.UserTenantVo">
select ed.source_organization AS organizationName
from entity_data ed
<where>
<if test="disasterId != null and disasterId != ''">
ed.disaster_id = #{disasterId}
</if>
</where>
GROUP BY ed.source_organization
</select>
</mapper>

View File

@ -28,9 +28,9 @@
</update>
<update id="updateAccount">
update blade_user t set t.name = #{name}, t.real_name = #{realName}, t.organization = #{organization},
t.research_field = #{researchField}, t.occupation = #{occupation}, t.code = #{country}
where t.id = #{id}
update blade_user t set t.name = #{userVo.name}, t.real_name = #{userVo.realName}, t.organization = #{userVo.organization},
t.research_field = #{userVo.researchField}, t.occupation = #{userVo.occupation}, t.code = #{userVo.country}
where t.id = #{userVo.id}
</update>
<select id="getBladeUserByEmail" resultType="com.kening.vordm.vo.UserVo">
@ -43,11 +43,8 @@
<select id="getByUserStatisticsOne" resultType="java.lang.Integer">
select count(di.id)
FROM disaster_info di
inner join guest_manage_disaster_ref gmdr on gmdr.disaster_id = di.id
inner join guest_info gi on gi.id = gmdr.sponsor_id
inner join blade_user bu on bu.email = gi.email
<where>
bu.id = #{userId}
di.chief_id = #{userId}
and di.respond_status = 3
</where>
</select>
@ -55,11 +52,8 @@
<select id="getByUserStatisticsTwo" resultType="java.lang.Integer">
select count(di.id)
FROM disaster_info di
inner join guest_manage_disaster_ref gmdr on gmdr.disaster_id = di.id
inner join guest_info gi on gi.id = gmdr.sponsor_id
inner join blade_user bu on bu.email = gi.email
<where>
bu.id = #{userId}
di.chief_id = #{userId}
and di.respond_status = 2
</where>

View File

@ -19,13 +19,14 @@
<select id="queryDisasterPage" resultType="com.kening.vordm.entity.DataUpload">
select
di.disaster_keyword,
di.vordm_id,
bdb.dict_value as disasterType,
di.id as disasterId,
di.disaster_time as disasterTime,
di.disaster_country as disasterCountry,
di.geometry
from disaster_info di
left join blade_dict_biz bdb on di.disaster_type = dict_key
left join blade_dict_biz bdb on di.disaster_type = dict_key
</select>
<select id="queryPage" resultType="com.kening.vordm.entity.DataUpload">
@ -36,7 +37,7 @@
ed.visual_lon,ed.visual_lat,
ed.status,ed.uploader_id,ed.manager_id,
ed.review_time, ed.source_organization,
ed.upload_type,
ed.upload_type, ed.is_publish,
bu.name as uploaderName
from entity_data ed
left join blade_user bu on bu.id = ed.uploader_id

View File

@ -33,6 +33,9 @@
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="downloadUrl" column="download_url" jdbcType="VARCHAR"/>
<result property="sourceOrganization" column="source_organization" jdbcType="VARCHAR"/>
<result property="satelliteType" column="satellite_type" jdbcType="INTEGER"/>
<result property="status" column="status" jdbcType="INTEGER"/>
<result property="uploadId" column="upload_id" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
@ -44,7 +47,7 @@
upper_left_lon,upper_right_lat,upper_right_lon,
view_center_lat,view_center_lon,lower_right_lat,
lower_right_lon,lower_left_lat,lower_left_lon,
disaster_id,create_time,download_url,source_organization
disaster_id,create_time,download_url,source_organization,satellite_type,status,upload_id
</sql>
<select id="getRemoteSensingSourceData" resultMap="BaseResultMap">
@ -71,6 +74,9 @@
<if test="remoteSensingSourceData.disasterId != null and remoteSensingSourceData.disasterId != ''">
r.disaster_id = #{remoteSensingSourceData.disasterId}
</if>
<if test="remoteSensingSourceData.status != null">
and r.status = #{remoteSensingSourceData.status}
</if>
<if test="remoteSensingSourceData.productResolutionMax != null and remoteSensingSourceData.productResolutionMin != null">
and r.product_resolution &gt;= #{remoteSensingSourceData.productResolutionMin} and r.product_resolution &lt; #{remoteSensingSourceData.productResolutionMax}
</if>

View File

@ -4,6 +4,8 @@ package com.kening.vordm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.kening.vordm.entity.Tool;
import java.util.List;
/**
* @author G1393
* @description 针对表tool(模型工具表)的数据库操作Mapper
@ -13,4 +15,7 @@ import com.kening.vordm.entity.Tool;
public interface ToolMapper extends BaseMapper<Tool> {
List<Tool> toolRanking();
Integer selectCountShowName();
}

View File

@ -18,8 +18,9 @@
<result property="type" column="type" jdbcType="VARCHAR"/>
<result property="voluntaryFlag" column="voluntary_flag" jdbcType="INTEGER"/>
<result property="uploader" column="uploader" jdbcType="BIGINT"/>
<result property="show_name" column="show_name" jdbcType="VARCHAR"/>
<result property="e_mail" column="e_mail" jdbcType="VARCHAR"/>
<result property="showName" column="show_name" jdbcType="VARCHAR"/>
<result property="mailbox" column="mailbox" jdbcType="VARCHAR"/>
<result property="paperLink" column="paper_link" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
@ -27,6 +28,20 @@
Introduction,link,detail,
create_time,upload_id,manager_id,
review_time,type,voluntary_flag,
uploader,show_name,e_mail
uploader,show_name,mailbox,paper_link
</sql>
<select id="toolRanking" resultType="com.kening.vordm.entity.Tool">
select show_name, count(*) as number from tool group by show_name order by number desc limit 10
</select>
<select id="selectCountShowName" resultType="java.lang.Integer">
select
count(1)
from (
select
count(1)
from tool
group by show_name
) t
</select>
</mapper>

View File

@ -21,6 +21,7 @@
di.disaster_keyword,
bdb.dict_value as disasterType,
di.id as disasterId,
di.vordm_id,
di.disaster_time as disasterTime,
di.disaster_country as disasterCountry
from disaster_info di

View File

@ -2,7 +2,9 @@ package com.kening.vordm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.Websites;
import org.apache.ibatis.annotations.Param;
/**
* @author G1393
@ -13,4 +15,5 @@ import com.kening.vordm.entity.Websites;
public interface WebsitesMapper extends BaseMapper<Websites> {
IPage<Websites> websitesPage(IPage<Object> page,@Param("websites") Websites websites);
}

View File

@ -20,4 +20,14 @@
provider,disaster_id,create_time,
website_id,upload_id
</sql>
<select id="websitesPage" resultType="com.kening.vordm.entity.Websites">
SELECT id,title,link,provider,disaster_id,create_time,website_id,upload_id
FROM websites
<where>
<if test="websites.disasterId!=null">
and disaster_id = #{websites.disasterId}
</if>
</where>
</select>
</mapper>

View File

@ -24,7 +24,7 @@
</sql>
<select id="wordCount" resultType="com.kening.vordm.entity.WorldCharts" parameterType="java.lang.Long">
select
DATE_FORMAT(create_time,'%Y-%m-%d') date,
date,
frequency value,
word name,
type
@ -35,5 +35,6 @@
and disaster_id = #{disasterId}
</if>
</where>
ORDER BY date DESC
</select>
</mapper>

View File

@ -72,4 +72,6 @@ public interface DisasterInfoService extends IService<DisasterInfo> {
Integer getByUserDisasterInfo(Long userId, Long disasterId);
UserVo getByUserDisasterInfoStatistics(Long userId);
CallForHelpVo getByUserIdRole(Long chiefIdEquals);
}

View File

@ -20,10 +20,10 @@ public interface EntityDataService extends IService<EntityData> {
IPage<EntityData> getEntityDataList(IPage<Object> page, EntityData entityData);
/**
* 获取所不可可视化下机构信息
* 获取所不可可视化下机构信息
* @return
*/
List<UserTenantVo> getEntityDataSourceOrganization();
List<UserTenantVo> getEntityDataSourceOrganization(Long disasterId);
/**
* Resource upload 上传实体信息

View File

@ -4,6 +4,8 @@ package com.kening.vordm.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.Tool;
import java.util.List;
/**
* @author G1393
* @description 针对表tool(模型工具表)的数据库操作Service
@ -11,4 +13,7 @@ import com.kening.vordm.entity.Tool;
*/
public interface ToolService extends IService<Tool> {
List<Tool> toolRanking();
Object statistics();
}

View File

@ -1,8 +1,10 @@
package com.kening.vordm.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kening.vordm.entity.Websites;
import com.kening.vordm.vo.CallForHelpVo;
/**
* @author G1393
@ -11,4 +13,5 @@ import com.kening.vordm.entity.Websites;
*/
public interface WebsitesService extends IService<Websites> {
IPage<Websites> websitesPage(IPage<Object> page, Websites websites);
}

View File

@ -20,7 +20,6 @@ import org.springblade.common.cache.CacheNames;
import org.springblade.core.redis.cache.BladeRedis;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.utils.DigestUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.scheduling.annotation.Async;
@ -236,6 +235,11 @@ public class DisasterInfoServiceImpl extends ServiceImpl<DisasterInfoMapper, Dis
return userVo;
}
@Override
public CallForHelpVo getByUserIdRole(Long chiefIdEquals) {
return this.baseMapper.getByUserIdRole(chiefIdEquals);
}
/**
* 后台管理系统-控制台灾害各项统计
* @description 暂时没有条件查询 所有统计都暂时写在一个查询里面

View File

@ -1,5 +1,6 @@
package com.kening.vordm.service.impl;
import cn.hutool.core.date.DateTime;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -25,6 +26,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -64,8 +67,8 @@ public class EntityDataServiceImpl extends ServiceImpl<EntityDataMapper, EntityD
* @return
*/
@Override
public List<UserTenantVo> getEntityDataSourceOrganization() {
return this.baseMapper.getEntityDataSourceOrganization();
public List<UserTenantVo> getEntityDataSourceOrganization(Long disasterId) {
return this.baseMapper.getEntityDataSourceOrganization(disasterId);
}
@ -75,6 +78,8 @@ public class EntityDataServiceImpl extends ServiceImpl<EntityDataMapper, EntityD
//创建实体数据
EntityData entityData = new EntityData();
RemoteSensingSourceData remoteSensingSourceData = new RemoteSensingSourceData();
//判断上传用户是否存在
LambdaQueryWrapper<GuestInfo> qw = new LambdaQueryWrapper<>();
qw.eq(GuestInfo::getEmail, entityDataUserVo.getEmail());
@ -91,19 +96,23 @@ public class EntityDataServiceImpl extends ServiceImpl<EntityDataMapper, EntityD
guestInfo.setProfessionalTitle(entityDataUserVo.getProfessionalTitle());
guestInfoMapper.insert(guestInfo);
entityData.setUploaderId(guestInfo.getId());
remoteSensingSourceData.setUploadId(guestInfo.getId());
} else {
entityData.setUploaderId(guestInfo1.getId());
remoteSensingSourceData.setUploadId(guestInfo1.getId());
}
if (entityDataUserVo.getType().equals("4")) {
RemoteSensingSourceData remoteSensingSourceData = new RemoteSensingSourceData();
remoteSensingSourceData.setDisasterId(entityDataUserVo.getDisasterId());
remoteSensingSourceData.setSourceOrganization(entityDataUserVo.getOrganization());
remoteSensingSourceData.setSatelliteCode(entityDataUserVo.getSatelliteCode());
remoteSensingSourceData.setProductResolution(entityDataUserVo.getProductResolution());
remoteSensingSourceData.setCloudCover(entityDataUserVo.getCloudCover());
remoteSensingSourceData.setProductTime(entityDataUserVo.getProductTime());
Date date= new Date(DateTime.parse(entityDataUserVo.getProductTime()));
remoteSensingSourceData.setProductTime(date);
remoteSensingSourceData.setProductBandsNum(entityDataUserVo.getProductBandsNum());
//0-爬虫获取1-未审核2-已审核上传源数据未补充下载 链接3-已审核上传源数据已补充下载链接
remoteSensingSourceData.setStatus(1);
return R.status(remoteSensingSourceDataMapper.insert(remoteSensingSourceData) > 0);
} else {
@ -137,5 +146,4 @@ public class EntityDataServiceImpl extends ServiceImpl<EntityDataMapper, EntityD
}
}
}

View File

@ -102,12 +102,14 @@ public class OtherDataServiceImpl extends ServiceImpl<OtherDataMapper, EntityDat
entityData.setDisasterId(OtherData.getDisasterId());
entityData.setUploadTime(new Date());
entityData.setRemark(OtherData.getRemark());
entityData.setTitle(OtherData.getTitle());
entityData.setStatus(1);
entityData.setUploadType(2);
entityData.setUploaderId(AuthUtil.getUserId());
entityData.setManagerId(AuthUtil.getUserId());
entityData.setReviewTime(new Date());
entityData.setVisualFlag(OtherData.getVisualFlag());
entityData.setSourceOrganization(OtherData.getSourceOrganization());
return save(entityData);
}
}

View File

@ -16,15 +16,15 @@ import java.util.ArrayList;
import java.util.List;
/**
* @author G1393
* @description 针对表picture_info(照片存储表)的数据库操作Service实现
* @createDate 2023-04-04 15:54:31
*/
* @author G1393
* @description 针对表picture_info(照片存储表)的数据库操作Service实现
* @createDate 2023-04-04 15:54:31
*/
@Slf4j
@Service
@AllArgsConstructor
public class PictureInfoServiceImpl extends ServiceImpl<PictureInfoMapper, PictureInfo>
implements PictureInfoService {
implements PictureInfoService {
/**
* 对象存储模块
@ -33,18 +33,22 @@ implements PictureInfoService {
/**
* 修改图片信息
*
* @param pictureInfo
* @return
*/
@Override
public boolean updatePicture(PictureInfo pictureInfo) {
MultipartFile multipartFile = pictureInfo.getFile();
BladeFile bladeFile = minioTemplate.putFile(multipartFile);
PictureInfo picture = new PictureInfo();
picture.setLink(bladeFile.getLink());
picture.setName(bladeFile.getOriginalName());
picture.setSize(multipartFile.getSize());
picture.setType(multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().indexOf(".")+1));
MultipartFile multipartFile = pictureInfo.getFile();
if (multipartFile!=null){
BladeFile bladeFile = minioTemplate.putFile(multipartFile);
picture.setLink(bladeFile.getLink());
picture.setSize(multipartFile.getSize());
picture.setType(multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().indexOf(".") + 1));
}
picture.setName(pictureInfo.getName());
picture.setIsMain(pictureInfo.getIsMain());
picture.setId(pictureInfo.getId());
return updateById(picture);
@ -52,21 +56,26 @@ implements PictureInfoService {
/**
* 上传图片
*
* @param otherData
* @return
*/
@Override
public boolean uploadData(OtherData otherData) {
log.info("上传数据:{}",otherData);
log.info("上传数据:{}", otherData);
List<PictureInfo> pictureInfoList = new ArrayList<>();
for (MultipartFile multipartFile : otherData.getFile()) {
BladeFile bladeFile = minioTemplate.putFile(multipartFile);
PictureInfo pictureInfo = new PictureInfo();
pictureInfo.setLink(bladeFile.getLink());
pictureInfo.setDisasterId(otherData.getDisasterId());
pictureInfo.setName(bladeFile.getOriginalName());
if (otherData.getTitle() != null && !otherData.getTitle().equals("null")) {
pictureInfo.setName(otherData.getTitle());
} else {
pictureInfo.setName(bladeFile.getOriginalName());
}
pictureInfo.setSize(multipartFile.getSize());
pictureInfo.setType(multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().indexOf(".")+1));
pictureInfo.setType(multipartFile.getOriginalFilename().substring(multipartFile.getOriginalFilename().indexOf(".") + 1));
pictureInfo.setIsMain(otherData.getIsMain());
pictureInfoList.add(pictureInfo);
}

View File

@ -1,11 +1,17 @@
package com.kening.vordm.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.Tool;
import com.kening.vordm.mapper.ToolMapper;
import com.kening.vordm.service.ToolService;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author G1393
* @description 针对表tool(模型工具表)的数据库操作Service实现
@ -15,4 +21,39 @@ import org.springframework.stereotype.Service;
public class ToolServiceImpl extends ServiceImpl<ToolMapper, Tool>
implements ToolService {
@Override
public List<Tool> toolRanking() {
return this.baseMapper.toolRanking();
}
@Override
@Cacheable("tool_statistics")
public Object statistics() {
Map<String, Object> map = new HashMap<>();
//获取工具总数条件审核时间不为空
Integer toolCount = this.baseMapper.selectCount(Wrappers.<Tool>lambdaQuery().isNotNull(Tool::getReviewTime));
map.put("toolCount", toolCount);
//获取贡献者数量分组使用showName
Integer contributorCount = this.baseMapper.selectCountShowName();
map.put("contributorCount", contributorCount);
//查询总点击量
Tool toolVisits = this.baseMapper.selectOne(Wrappers.<Tool>query().isNotNull("review_time").select("sum(tool_visits) as tool_visits"));
map.put("toolVisits",toolVisits.getToolVisits());
//查询论文点击量
Tool paperVisits = this.baseMapper.selectOne(Wrappers.<Tool>query().isNotNull("review_time").select("sum(paper_visits) as paper_visits"));
map.put("paperVisits",paperVisits.getPaperVisits());
//查询点击量TOP10
List<Tool> toolVisitsTop10 = this.baseMapper.selectList(Wrappers.<Tool>query().isNotNull("review_time").orderByDesc("tool_visits").last("limit 10"));
map.put("toolVisitsTop10",toolVisitsTop10);
//查询论文点击量TOP10
List<Tool> paperVisitsTop10 = this.baseMapper.selectList(Wrappers.<Tool>query().isNotNull("review_time").orderByDesc("paper_visits").last("limit 10"));
map.put("paperVisitsTop10",paperVisitsTop10);
//根据用户分组查询工具数量TOP10
List<Tool> toolCountByUser = this.baseMapper.selectList(Wrappers.<Tool>query().isNotNull("review_time").groupBy("show_name").select("show_name,count(*) as tool_visits").orderByDesc("tool_visits").last("limit 10"));
map.put("toolCountByUserTop10",toolCountByUser);
//根据用户分组统计点击量
List<Tool> toolVisitsByUser = this.baseMapper.selectList(Wrappers.<Tool>query().isNotNull("review_time").groupBy("show_name").select("show_name,sum(tool_visits) as tool_visits").orderByDesc("tool_visits").last("limit 10"));
map.put("toolVisitsByUserTop10",toolVisitsByUser);
return map;
}
}

View File

@ -1,5 +1,7 @@
package com.kening.vordm.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.Websites;
import com.kening.vordm.mapper.WebsitesMapper;
@ -15,4 +17,8 @@ import org.springframework.stereotype.Service;
public class WebsitesServiceImpl extends ServiceImpl<WebsitesMapper, Websites>
implements WebsitesService {
@Override
public IPage<Websites> websitesPage(IPage<Object> page, Websites websites) {
return this.baseMapper.websitesPage(page, websites);
}
}