This commit is contained in:
why 2023-04-11 21:46:08 +08:00
parent 694b6e48cf
commit e07cd593bb
4 changed files with 98 additions and 31 deletions

View File

@ -20,6 +20,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.time.format.DateTimeFormatter;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -154,14 +155,53 @@ 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) {
if(StringUtils.isNotBlank(String.valueOf(params.get("startTime"))) && !"null".equals(String.valueOf(params.get("startTime")))){ 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()
.eq(DisasterInfoVo::getRespondStatus, Integer.valueOf(params.get("respondStatus")))
.ge(DisasterInfoVo::getDisasterTime,date)
.le(DisasterInfoVo::getDisasterTime,LocalDate.now())
.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() 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(DisasterInfoVo::getDisasterTime,LocalDate.parse(String.valueOf(params.get("startTime")))) .ge(DisasterInfoVo::getDisasterTime,LocalDate.parse(String.valueOf(params.get("startTime"))))
.le(DisasterInfoVo::getDisasterTime,LocalDate.parse(String.valueOf(params.get("endTime")))) .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"))) .eq(StringUtils.isNotBlank(String.valueOf(params.get("disasterType"))) && !"null".equals(String.valueOf(params.get("disasterType"))),DisasterInfoVo::getDisasterType, String.valueOf(params.get("disasterType")))
.like(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea"))),DisasterInfoVo::getDisasterCountry,String.valueOf(params.get("affectedArea"))) .and(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea")))
.like(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea"))),DisasterInfoVo::getSponsorOrganization,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("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("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"))) .eq("sponsorOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getSponsorOrganization,String.valueOf(params.get("leftVal")))
@ -173,11 +213,12 @@ public class DisasterInfoController {
.orderByDesc(DisasterInfoVo::getDisasterTime) .orderByDesc(DisasterInfoVo::getDisasterTime)
)); ));
} else{ } else{
//没有时间相关的
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")))
.eq(StringUtils.isNotBlank(String.valueOf(params.get("disasterType"))) && !"null".equals(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")))
.like(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea"))),DisasterInfoVo::getDisasterCountry,String.valueOf(params.get("affectedArea"))) .and(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea")))
.like(StringUtils.isNotBlank(String.valueOf(params.get("affectedArea"))) && !"null".equals(String.valueOf(params.get("affectedArea"))),DisasterInfoVo::getSponsorOrganization,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("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("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"))) .eq("sponsorOrganization".equals(String.valueOf(params.get("leftType"))) && !"null".equals(String.valueOf(params.get("leftType"))),DisasterInfoVo::getSponsorOrganization,String.valueOf(params.get("leftVal")))
@ -192,6 +233,18 @@ public class DisasterInfoController {
} }
/**
* 获取债害详情信息
*
* @param id
* @return
*/
@GetMapping("/addVisitCount")
public R addVisitCount(Long id) {
return R.data(disasterInfoService.addVisitCount(id));
}
/** /**
* 获取债害详情信息 * 获取债害详情信息
* *

View File

@ -95,16 +95,18 @@
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

View File

@ -50,4 +50,6 @@ public interface DisasterInfoService extends IService<DisasterInfo> {
List<GroupByUse> getLeft1Data(); List<GroupByUse> getLeft1Data();
List<GroupByUse> getLeft2Data(); List<GroupByUse> getLeft2Data();
Boolean addVisitCount(Long id);
} }

View File

@ -10,6 +10,7 @@ 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 +115,14 @@ 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;
}
} }