Merge branch 'glj'

This commit is contained in:
glj 2023-04-12 12:43:11 +08:00
commit 7963bb8a14
16 changed files with 328 additions and 139 deletions

View File

@ -128,6 +128,12 @@ public class DisasterInfo implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String managerOrganization; private String managerOrganization;
/**
* 灾害类型value
*/
@TableField(exist = false)
private String dictValue;
/** /**
* 减灾网站 * 减灾网站
*/ */

View File

@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import lombok.Data; import lombok.Data;
@ -35,12 +33,12 @@ public class DisasterInfoVo implements Serializable {
/** /**
* 灾害发生时间 * 灾害发生时间
*/ */
private LocalDate disasterTime; private Date disasterTime;
/** /**
* 灾害发起时间 * 灾害发起时间
*/ */
private LocalDateTime uploadTime; private Date uploadTime;
/** /**
* 灾害区域地理字段 * 灾害区域地理字段
@ -122,6 +120,11 @@ public class DisasterInfoVo implements Serializable {
*/ */
private Long size; private Long size;
/**
*
*/
private String news;
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }

View File

@ -32,4 +32,10 @@ public class GroupByUse {
* 类型 * 类型
*/ */
private String type; private String type;
/**
* 字典value
*/
private String dictValue;
} }

View File

@ -11,7 +11,7 @@ import org.springframework.cloud.client.SpringCloudApplication;
@SpringCloudApplication @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("glj-"+CommonConstant.KN_VORDM_MODULE_NAME, VoRdmApplication.class, args);
// BladeApplication.run("zqq-" + CommonConstant.KN_VORDM_MODULE_NAME, VoRdmApplication.class, args); // BladeApplication.run("zqq-" + CommonConstant.KN_VORDM_MODULE_NAME, VoRdmApplication.class, args);
} }
} }

View File

@ -28,12 +28,12 @@ public class CaptchaController extends BladeController {
@PostMapping("/validate") @PostMapping("/validate")
@ApiOperation(value = "验证码校验", notes = "传入需要校验的验证码以及缓存Key") @ApiOperation(value = "验证码校验", notes = "传入需要校验的验证码以及缓存Key")
public R<String> validDefaultTime(@RequestParam String code, @RequestParam String key) { public R validDefaultTime(@RequestParam String code, @RequestParam String key) {
// 获取验证码 // 获取验证码
String redisCode = bladeRedis.get(CacheNames.CAPTCHA_KEY + key); String redisCode = bladeRedis.get(CacheNames.CAPTCHA_KEY + key);
// 判断验证码 // 判断验证码
if (code == null || !StringUtil.equalsIgnoreCase(redisCode, code)) { if (code == null || !StringUtil.equalsIgnoreCase(redisCode, code)) {
return R.fail(1404, "Verification code error"); return R.data(1404, "Verification code error");
} }
return R.success("OK"); return R.success("OK");
} }

View File

@ -6,12 +6,16 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.kening.vordm.entity.*; import com.kening.vordm.entity.*;
import com.kening.vordm.service.*; import com.kening.vordm.service.*;
import com.kening.vordm.vo.CallForHelpVo; import com.kening.vordm.vo.CallForHelpVo;
import com.kening.vordm.vo.DisasterInfoVo; import com.kening.vordm.vo.DisasterInfoVo;
import com.kening.vordm.vo.GroupByUse; import com.kening.vordm.vo.GroupByUse;
import com.kening.vordm.vo.UserTenantVo; import com.kening.vordm.vo.UserTenantVo;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
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;
@ -20,6 +24,7 @@ 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.time.LocalDate;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -46,8 +51,21 @@ public class DisasterInfoController {
private final DisasterInfoVoService disasterInfoVoService; private final DisasterInfoVoService disasterInfoVoService;
@ApiOperationSupport(order = 1)
@ApiOperation(value = "分页", notes = "传入Tool")
@ApiImplicitParams({
@ApiImplicitParam(name = "current", value = "当前页", paramType = "query", dataType = "int"),
@ApiImplicitParam(name = "size", value = "分页大小", paramType = "query", dataType = "int")
})
@GetMapping("/list")
public R<IPage<CallForHelpVo>> list(CallForHelpVo CallForHelpVo, Query query) {
IPage<CallForHelpVo> pages = disasterInfoService.page(Condition.getPage(query), CallForHelpVo);
return R.data(pages);
}
/** /**
* 首页数据轮播和定位相关 * 首页数据轮播和定位相关
*
* @return * @return
*/ */
@GetMapping("/indexData") @GetMapping("/indexData")
@ -64,6 +82,7 @@ public class DisasterInfoController {
/** /**
* 灾害查询条件时间类型灾害联动 * 灾害查询条件时间类型灾害联动
*
* @param disasterInfo * @param disasterInfo
* @return * @return
*/ */
@ -114,8 +133,6 @@ public class DisasterInfoController {
} }
/** /**
* 灾害信息统计 国家/灾害类型 左边栏 * 灾害信息统计 国家/灾害类型 左边栏
* *
@ -154,18 +171,96 @@ public class DisasterInfoController {
*/ */
@GetMapping("/homeDisasterInfo") @GetMapping("/homeDisasterInfo")
public R<IPage<DisasterInfoVo>> gethomeDisasterInfo(Query query, @RequestParam Map<String, String> params) { public R<IPage<DisasterInfoVo>> gethomeDisasterInfo(Query query, @RequestParam Map<String, String> params) {
String dateType = String.valueOf(params.get("dateType"));
if (StringUtils.isNotBlank(dateType) && !"4".equals(dateType) && !"null".equals(dateType)) {
LocalDate date = LocalDate.now();
//如果有时间类型
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;
}
return R.data(disasterInfoVoService.page(Condition.getPage(query), Wrappers.<DisasterInfoVo>lambdaQuery() return R.data(disasterInfoVoService.page(Condition.getPage(query), Wrappers.<DisasterInfoVo>lambdaQuery()
.eq(DisasterInfoVo::getRespondStatus, Integer.valueOf(params.get("respondStatus"))) .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")))) .ge(DisasterInfoVo::getDisasterTime, date)
.le(StringUtils.isNotBlank(String.valueOf(params.get("endTime"))),DisasterInfoVo::getDisasterTime,LocalDate.parse(String.valueOf(params.get("endTime")))) .le(DisasterInfoVo::getDisasterTime, LocalDate.now())
.eq(StringUtils.isNotBlank(String.valueOf(params.get("disasterType"))),DisasterInfoVo::getDisasterType, String.valueOf(params.get("disasterType"))) .eq(StringUtils.isNotBlank(String.valueOf(params.get("disasterType"))) && !"null".equals(String.valueOf(params.get("disasterType"))), DisasterInfoVo::getDisasterType, String.valueOf(params.get("disasterType")))
.and(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea")))
, Wrappers -> Wrappers.like(DisasterInfoVo::getDisasterCountry, String.valueOf(params.get("affectedArea"))).or().like(DisasterInfoVo::getSponsorOrganization, String.valueOf(params.get("affectedArea"))))
.eq("type".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getDisasterType, String.valueOf(params.get("leftVal")))
.eq("country".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getDisasterCountry, String.valueOf(params.get("leftVal")))
.eq("sponsorOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getSponsorOrganization, String.valueOf(params.get("leftVal")))
.inSql("responseOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getId, "select t.disaster_id from guest_manage_disaster_ref t " +
" where t.response_organization = " + params.get("leftVal"))
.orderByDesc("Visits".equals(String.valueOf(params.get("order"))), DisasterInfoVo::getVisitCount)
.orderByDesc("Downloads".equals(String.valueOf(params.get("order"))), DisasterInfoVo::getDownloadCount)
.orderByDesc("updateTime".equals(String.valueOf(params.get("order"))), DisasterInfoVo::getUploadTime)
.orderByDesc(DisasterInfoVo::getDisasterTime)
));
}
if ("4".equals(dateType)) {
//自定义时间
return R.data(disasterInfoVoService.page(Condition.getPage(query), Wrappers.<DisasterInfoVo>lambdaQuery()
.eq(DisasterInfoVo::getRespondStatus, Integer.valueOf(params.get("respondStatus")))
.ge(DisasterInfoVo::getDisasterTime, LocalDate.parse(String.valueOf(params.get("startTime"))))
.le(DisasterInfoVo::getDisasterTime, LocalDate.parse(String.valueOf(params.get("endTime"))))
.eq(StringUtils.isNotBlank(String.valueOf(params.get("disasterType"))) && !"null".equals(String.valueOf(params.get("disasterType"))), DisasterInfoVo::getDisasterType, String.valueOf(params.get("disasterType")))
.and(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea")))
, Wrappers -> Wrappers.like(DisasterInfoVo::getDisasterCountry, String.valueOf(params.get("affectedArea"))).or().like(DisasterInfoVo::getSponsorOrganization, String.valueOf(params.get("affectedArea"))))
.eq("type".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getDisasterType, String.valueOf(params.get("leftVal")))
.eq("country".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getDisasterCountry, String.valueOf(params.get("leftVal")))
.eq("sponsorOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getSponsorOrganization, String.valueOf(params.get("leftVal")))
.inSql("responseOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getId, "select t.disaster_id from guest_manage_disaster_ref t " +
" where t.response_organization = " + params.get("leftVal"))
.orderByDesc("Visits".equals(String.valueOf(params.get("order"))), DisasterInfoVo::getVisitCount)
.orderByDesc("Downloads".equals(String.valueOf(params.get("order"))), DisasterInfoVo::getDownloadCount)
.orderByDesc("updateTime".equals(String.valueOf(params.get("order"))), DisasterInfoVo::getUploadTime)
.orderByDesc(DisasterInfoVo::getDisasterTime)
));
} else {
//没有时间相关的
return R.data(disasterInfoVoService.page(Condition.getPage(query), Wrappers.<DisasterInfoVo>lambdaQuery()
.eq(DisasterInfoVo::getRespondStatus, Integer.valueOf(params.get("respondStatus")))
.eq(StringUtils.isNotBlank(String.valueOf(params.get("disasterType"))) && !"null".equals(String.valueOf(params.get("disasterType"))), DisasterInfoVo::getDisasterType, String.valueOf(params.get("disasterType")))
.and(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea")))
, Wrappers -> Wrappers.like(DisasterInfoVo::getDisasterCountry, String.valueOf(params.get("affectedArea"))).or().like(DisasterInfoVo::getSponsorOrganization, String.valueOf(params.get("affectedArea"))))
.eq("type".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getDisasterType, String.valueOf(params.get("leftVal")))
.eq("country".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getDisasterCountry, String.valueOf(params.get("leftVal")))
.eq("sponsorOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getSponsorOrganization, String.valueOf(params.get("leftVal")))
.inSql("responseOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))), DisasterInfoVo::getId, "select t.disaster_id from guest_manage_disaster_ref t " +
" where t.response_organization = " + params.get("leftVal"))
.orderByDesc("Visits".equals(String.valueOf(params.get("order"))), DisasterInfoVo::getVisitCount)
.orderByDesc("Downloads".equals(String.valueOf(params.get("order"))), DisasterInfoVo::getDownloadCount)
.orderByDesc("updateTime".equals(String.valueOf(params.get("order"))), DisasterInfoVo::getUploadTime)
.orderByDesc(DisasterInfoVo::getDisasterTime) .orderByDesc(DisasterInfoVo::getDisasterTime)
)); ));
} }
public static void main(String[] args) {
System.out.println(LocalDate.now().minusMonths(6).toString());
} }
/**
* 获取债害详情信息
*
* @param id
* @return
*/
@GetMapping("/addVisitCount")
public R addVisitCount(Long id) {
return R.data(disasterInfoService.addVisitCount(id));
}
/** /**
* 获取债害详情信息 * 获取债害详情信息
* *
@ -200,6 +295,7 @@ public class DisasterInfoController {
/** /**
* 获取用户所以得机构 * 获取用户所以得机构
*
* @return * @return
*/ */
@GetMapping("/getUserTenant") @GetMapping("/getUserTenant")
@ -209,7 +305,6 @@ public class DisasterInfoController {
/** /**
* call for help * call for help
*
*/ */
@PostMapping("Call-for-help") @PostMapping("Call-for-help")
public R<Boolean> insertRespondInfo(@RequestBody CallForHelpVo callForHelpVo ){ public R<Boolean> insertRespondInfo(@RequestBody CallForHelpVo callForHelpVo ){
@ -219,17 +314,25 @@ public class DisasterInfoController {
DisasterInfo disasterInfo = new DisasterInfo(); DisasterInfo disasterInfo = new DisasterInfo();
BeanUtil.copyProperties(callForHelpVo, disasterInfo); BeanUtil.copyProperties(callForHelpVo, disasterInfo);
disasterInfo.setId(IdWorker.getId()); disasterInfo.setId(IdWorker.getId());
disasterInfo.setUploadTime(new Date());
GuestManageDisasterRef GuestManageDisasterRef = new GuestManageDisasterRef(); GuestManageDisasterRef GuestManageDisasterRef = new GuestManageDisasterRef();
GuestManageDisasterRef.setId(IdWorker.getId()); GuestManageDisasterRef.setId(IdWorker.getId());
GuestManageDisasterRef.setSponsorId(guestInfo.getId()); GuestManageDisasterRef.setSponsorId(guestInfo.getId());
String vordm_id="test";
GuestManageDisasterRef.setDisasterId(disasterInfo.getId()); GuestManageDisasterRef.setDisasterId(disasterInfo.getId());
Boolean flag1 = guestInfoService.save(guestInfo); Boolean flag1 = guestInfoService.save(guestInfo);
Boolean flag2 = guestManageDisasterRefService.save(GuestManageDisasterRef); Boolean flag2 = guestManageDisasterRefService.save(GuestManageDisasterRef);
Boolean flag3 = disasterInfoService.save(disasterInfo); Boolean flag3 = disasterInfoService.save(disasterInfo);
Boolean callForHelp= flag1&flag2&flag3; Boolean callForHelp = flag1 && flag2 && flag3;
// callForHelpVo.setId(IdWorker.getId());
// Boolean insertFlag=accountInfoService.save(accountInfo);
return R.data(callForHelp); return R.data(callForHelp);
} }
@PostMapping("review")
public R<Boolean> review(String id) {
DisasterInfo disasterInfo = new DisasterInfo();
disasterInfo.setId(Long.valueOf(id));
disasterInfo.setRespondStatus(2);
Boolean flag=disasterInfoService.updateById(disasterInfo);
return R.data(flag);
}
} }

View File

@ -4,10 +4,12 @@ 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.DisasterInfo; import com.kening.vordm.entity.DisasterInfo;
import com.kening.vordm.vo.CallForHelpVo;
import com.kening.vordm.vo.DisasterMangerInfo; 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 org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.poi.ss.formula.functions.T;
import java.util.List; import java.util.List;
@ -24,6 +26,7 @@ public interface DisasterInfoMapper extends BaseMapper<DisasterInfo> {
@Param("disaster_time") String disaster_time, @Param("disaster_time") String disaster_time,
@Param("name") String name); @Param("name") String name);
/** /**
* 获取债害详情信息 * 获取债害详情信息
* @param id * @param id
@ -44,4 +47,6 @@ public interface DisasterInfoMapper extends BaseMapper<DisasterInfo> {
List<GroupByUse> getLeft1Data(); List<GroupByUse> getLeft1Data();
List<GroupByUse> getLeft2Data(); List<GroupByUse> getLeft2Data();
List<CallForHelpVo> page(IPage page,@Param("callForHelpVo" )CallForHelpVo callForHelpVo);
} }

View File

@ -44,12 +44,13 @@
gi.username AS sponsorName, gi.username AS sponsorName,
gi.organization AS sponsorOrganization, gi.organization AS sponsorOrganization,
bu.name AS managerName, bu.name AS managerName,
bt.tenant_name AS managerOrganization bu.organization AS managerOrganization,
bdb.dict_value AS dictValue
from disaster_info di from disaster_info di
left join guest_manage_disaster_ref gmdr on gmdr.disaster_id = di.id left join guest_manage_disaster_ref gmdr on gmdr.disaster_id = di.id
left join blade_dict_biz bdb on bdb.dict_key = di.disaster_type
left join guest_info gi on gi.id = gmdr.sponsor_id left join guest_info gi on gi.id = gmdr.sponsor_id
left join blade_user bu on bu.id = gmdr.manager_id left join blade_user bu on bu.id = gmdr.manager_id
left join blade_tenant bt on bt.id = bu.organization
<where> <where>
<if test="id != null and id != ''"> <if test="id != null and id != ''">
di.id = #{id} di.id = #{id}
@ -58,65 +59,113 @@
</select> </select>
<select id="getSelectCondition" resultType="com.kening.vordm.vo.GroupByUse"> <select id="getSelectCondition" resultType="com.kening.vordm.vo.GroupByUse">
select distinct ${name} as name select distinct ${name} AS name , bdb.dict_value AS dictValue
from disaster_info from disaster_info
<if test="disaster_type!=null or disaster_country!=null or disaster_time!=null"> where </if> left join blade_dict_biz bdb on bdb.dict_key = disaster_info.disaster_type
<where>
<if test="disaster_type!=null"> disaster_type like concat('%',#{disaster_type},'%') </if> <if test="disaster_type !=null and disaster_type!=''">
<if test="disaster_type!=null and (disaster_country!=null or disaster_time!=null)"> and </if> disaster_type = #{disaster_type}
<if test="disaster_country!=null"> disaster_country like concat('%',#{disaster_country},'%') </if> </if>
<if test="disaster_time!=null and disaster_country!=null and disaster_time!=null"> and </if> <if test="disaster_country !=null and disaster_country!=''">
<if test="disaster_time!=null"> disaster_time like concat('%',#{disaster_time},'%')</if> and disaster_country like concat('%',#{disaster_country},'%')
</if>
<if test="disaster_time!=null and disaster_time!=''">
and disaster_time like concat('%',#{disaster_time},'%')
</if>
</where>
</select> </select>
<select id="getDisasterStatistics" resultType="com.kening.vordm.vo.GroupByUse"> <select id="getDisasterStatistics" resultType="com.kening.vordm.vo.GroupByUse">
select ${name} as name, count(*) as cnt select ${name} as name, count(*) as cnt
from disaster_info from disaster_info
group by ${name} group by ${name}
order by cnt desc order by cnt desc limit 0,7
limit 0,7
</select> </select>
<select id="getHomeDisaster" resultType="com.kening.vordm.vo.DisasterMangerInfo"> <select id="getHomeDisaster" resultType="com.kening.vordm.vo.DisasterMangerInfo">
select * select *
from (select distinct manager_id,disaster_id from guest_mamanager_info from (select distinct manager_id, disaster_id
on g.manager_id=m.id and g.disaster_id=d.id from guest_mamanager_info on g.manager_id=m.id and g.disaster_id=d.id
where d.respond_status=#{respondStatus} where d.respond_status=#{respondStatus}
order by d.disaster_time desc order by d.disaster_time desc
</select> </select>
<select id="getAllUser" resultType="com.kening.vordm.vo.UserTenantVo"> <select id="getAllUser" resultType="com.kening.vordm.vo.UserTenantVo">
SELECT SELECT bu.organization AS organizationId,
bu.organization AS organizationId,
bt.tenant_name AS organizationName bt.tenant_name AS organizationName
FROM FROM blade_user bu
blade_user bu
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 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 t.sponsor_organization as `name`, count(*) as cnt, 'sponsorOrganization' as `type`
from disaster_info t where t.sponsor_organization != ''
GROUP BY t.sponsor_organization
ORDER BY cnt desc LIMIT 3
</select> </select>
<select id="getLeft4Data" resultType="com.kening.vordm.vo.GroupByUse"> <select id="getLeft4Data" resultType="com.kening.vordm.vo.GroupByUse">
select t.response_organization as `name`, count(*) as cnt, 'responseOrganization' as `type` from guest_manage_disaster_ref t GROUP BY t.response_organization ORDER BY cnt desc LIMIT 3 select t.response_organization as `name`, count(*) as cnt, 'responseOrganization' as `type`
from guest_manage_disaster_ref t where t.response_organization != '' GROUP BY t.response_organization ORDER BY cnt desc LIMIT 3
</select> </select>
<select id="getLeft1Data" resultType="com.kening.vordm.vo.GroupByUse"> <select id="getLeft1Data" resultType="com.kening.vordm.vo.GroupByUse">
select b.dict_key, b.dict_value as name, count(t.disaster_type) as cnt, 'type' as `type`, select b.dict_key, b.dict_value as name, count(t.disaster_type) as cnt, 'type' as `type`,
CONCAT('/icon_disastertype/icon-',b.dict_key,'.png') as icon CONCAT('/icon_disastertype/icon-',b.dict_key,'.png') as icon
from blade_dict_biz b left join disaster_info t on b.dict_key = t.disaster_type from blade_dict_biz b left join disaster_info t on b.dict_key = t.disaster_type
where b.`code` = 'disaster' and b.dict_key is not null where b.`code` = 'disaster' and b.parent_id != 0
group by b.dict_key, b.dict_value group by b.dict_key, b.dict_value
order by cnt desc order by cnt desc
limit 7 limit 7
</select> </select>
<select id="getLeft2Data" resultType="com.kening.vordm.vo.GroupByUse"> <select id="getLeft2Data" resultType="com.kening.vordm.vo.GroupByUse">
SELECT b.*, c.img as icon from country_icon c INNER JOIN SELECT b.*, c.img as icon
from country_icon c
INNER JOIN
(select t.disaster_country as name, count(*) as cnt, 'country' as `type` (select t.disaster_country as name, count(*) as cnt, 'country' as `type`
from disaster_info t from disaster_info t
group by t.disaster_country group by t.disaster_country
order by cnt desc order by cnt desc limit 7) b on c.flagname = b.`name`
limit 7) b on c.flagname = b.`name`
</select> </select>
<select id="page" parameterType="com.kening.vordm.vo.CallForHelpVo" resultType="com.kening.vordm.vo.CallForHelpVo">
SELECT
u.username ,
u.id as uid ,
u.email,
u.research_field,
u.organization,
d.id,
d.disaster_type,
d.disaster_time,
d.disaster_keyword,
d.upload_time,
d.geometry,
d.respond_status
From
guest_manage_disaster_ref ud join
guest_info u on u.id = ud.sponsor_id JOIN
disaster_info d on d.id = ud.disaster_id
<where>
d.respond_status = #{callForHelpVo.respondStatus}
<if test="callForHelpVo.disasterType != null and callForHelpVo.disasterType != ''">
d.disaster_type = #{callForHelpVo.disasterType}
</if>
<if test="callForHelpVo.disasterCountry != null and callForHelpVo.disasterCountry != ''">
and d.disaster_country = #{callForHelpVo.disasterCountry}
</if>
<if test="callForHelpVo.disasterTime != null and callForHelpVo.disasterTime != ''">
and d.disaster_time = #{callForHelpVo.disasterTime}
</if>
<if test="callForHelpVo.disasterKeyword != null and callForHelpVo.disasterKeyword != ''">
and d.disaster_keyword = #{callForHelpVo.disasterKeyword}
</if>
<if test="callForHelpVo.uploadTime != null and callForHelpVo.uploadTime != ''">
and d.upload_time = #{callForHelpVo.uploadTime}
</if>
</where>
order by d.upload_time desc
</select>
</mapper> </mapper>

View File

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

View File

@ -4,6 +4,7 @@ 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.DisasterInfo; import com.kening.vordm.entity.DisasterInfo;
import com.kening.vordm.vo.CallForHelpVo;
import com.kening.vordm.vo.DisasterMangerInfo; 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;
@ -50,4 +51,8 @@ public interface DisasterInfoService extends IService<DisasterInfo> {
List<GroupByUse> getLeft1Data(); List<GroupByUse> getLeft1Data();
List<GroupByUse> getLeft2Data(); List<GroupByUse> getLeft2Data();
Boolean addVisitCount(Long id);
IPage<CallForHelpVo> page(IPage<CallForHelpVo> page, CallForHelpVo callForHelpVo);
} }

View File

@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
/** /**
* @author wangns * @author wangns
* @description 针对表disaster_info_vo的数据库操作Service * @description 针对表disaster_info_vo的数据库操作Service
* @createDate 2023-04-10 17:33:26 * @createDate 2023-04-11 10:44:37
*/ */
public interface DisasterInfoVoService extends IService<DisasterInfoVo> { public interface DisasterInfoVoService extends IService<DisasterInfoVo> {

View File

@ -6,10 +6,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.DisasterInfo; import com.kening.vordm.entity.DisasterInfo;
import com.kening.vordm.mapper.DisasterInfoMapper; import com.kening.vordm.mapper.DisasterInfoMapper;
import com.kening.vordm.service.DisasterInfoService; import com.kening.vordm.service.DisasterInfoService;
import com.kening.vordm.vo.CallForHelpVo;
import com.kening.vordm.vo.DisasterMangerInfo; 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.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
@ -114,5 +116,20 @@ implements DisasterInfoService {
return this.baseMapper.getLeft2Data(); return this.baseMapper.getLeft2Data();
} }
@Override
@Async
public Boolean addVisitCount(Long id) {
DisasterInfo disasterInfo = getById(id);
disasterInfo.setVisitCount(disasterInfo.getVisitCount() + 1);
updateById(disasterInfo);
return null;
}
@Override
public IPage<CallForHelpVo> page(IPage<CallForHelpVo> page, CallForHelpVo callForHelpVo) {
return page.setRecords(this.baseMapper.page(page,callForHelpVo));
}
} }

View File

@ -9,7 +9,7 @@ import org.springframework.stereotype.Service;
/** /**
* @author wangns * @author wangns
* @description 针对表disaster_info_vo的数据库操作Service实现 * @description 针对表disaster_info_vo的数据库操作Service实现
* @createDate 2023-04-10 17:33:26 * @createDate 2023-04-11 10:44:37
*/ */
@Service @Service
public class DisasterInfoVoServiceImpl extends ServiceImpl<DisasterInfoVoMapper, DisasterInfoVo> public class DisasterInfoVoServiceImpl extends ServiceImpl<DisasterInfoVoMapper, DisasterInfoVo>

View File

@ -1,40 +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.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,6 +1,7 @@
package org.springblade.auth.system.controller; package org.springblade.auth.system.controller;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@ -8,6 +9,7 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springblade.auth.system.dto.DictBizDTO;
import org.springblade.auth.system.entity.DictBiz; import org.springblade.auth.system.entity.DictBiz;
import org.springblade.auth.system.service.IDictBizService; import org.springblade.auth.system.service.IDictBizService;
import org.springblade.auth.system.vo.DictBizVO; import org.springblade.auth.system.vo.DictBizVO;
@ -166,6 +168,24 @@ public class DictBizController {
List<DictBiz> tree = dictService.getList(code); List<DictBiz> tree = dictService.getList(code);
return R.data(DictBizWrapper.build().listNodeVO(tree)); return R.data(DictBizWrapper.build().listNodeVO(tree));
} }
/**
* 新增或修改
*/
@PostMapping("/submit2")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "新增或修改", notes = "传入dict")
public R submit2(@Valid @RequestBody DictBizDTO dict) {
CacheUtil.clear(DICT_CACHE);
dictService.submit(dict);
List<DictBiz> list = dict.getChildren();
dictService.remove(Wrappers.<DictBiz>update().lambda().eq(DictBiz::getParentId,dict.getId()));
for (DictBiz dictBiz : list) {
//清空id
dictBiz.setId(null);
//添加父子关系
dictBiz.setParentId(dict.getId());
}
return R.success(dictService.saveBatch(list)||list.size()==0?"操作成功":"操作失败");
}
} }

View File

@ -0,0 +1,15 @@
package org.springblade.auth.system.dto;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.auth.system.entity.DictBiz;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "DictBizDTO对象", description = "DictBizDTO对象")
public class DictBizDTO extends DictBiz {
private List<DictBiz> children;
}