分页&条件查询空气质量信息

master
郑大仙丶 2 years ago
parent f1535ef671
commit 8c438b57f6

@ -1,11 +1,13 @@
package com.mashibing.controller; package com.mashibing.controller;
import com.github.pagehelper.PageInfo;
import com.mashibing.entity.District; import com.mashibing.entity.District;
import com.mashibing.service.AirService; import com.mashibing.service.AirService;
import com.mashibing.util.R; import com.mashibing.util.R;
import com.mashibing.vo.ResultVO; import com.mashibing.vo.ResultVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap; import java.util.HashMap;
@ -24,6 +26,7 @@ public class AirController {
/** /**
*
* GET http://localhost:8080/district/list * GET http://localhost:8080/district/list
*/ */
@GetMapping("/district/list") @GetMapping("/district/list")
@ -35,4 +38,23 @@ public class AirController {
return R.ok(districtList); return R.ok(districtList);
} }
/**
* &
* GET http://localhost:8080/air/list
*
*
* page = 1 (1)
* size = 5 (5)
* districtId = null ()
*/
@GetMapping("/air/list")
public ResultVO airList(@RequestParam(defaultValue = "1")Integer page,
@RequestParam(defaultValue = "5")Integer size,
Integer districtId){
// 调用service查询空气质量信息数据
PageInfo pageInfo = airService.findAirByDistrictIdAndPage(page,size,districtId);
return R.ok(pageInfo.getTotal(),pageInfo.getList());
}
} }

@ -1,5 +1,9 @@
package com.mashibing.entity; package com.mashibing.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date; import java.util.Date;
/** /**
@ -10,18 +14,33 @@ public class Air {
private Integer id; private Integer id;
@JsonIgnore
private Integer districtId; private Integer districtId;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date monitorTime; private Date monitorTime;
private Integer pm10; private Integer pm10;
private Integer pm25; private Integer pm25;
private Integer monitoringStation;
private String monitoringStation;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date lastModifyTime; private Date lastModifyTime;
// 多表查询映射区域名称
private String districtName;
public String getDistrictName() {
return districtName;
}
public void setDistrictName(String districtName) {
this.districtName = districtName;
}
public Integer getId() { public Integer getId() {
return id; return id;
} }
@ -62,11 +81,11 @@ public class Air {
this.pm25 = pm25; this.pm25 = pm25;
} }
public Integer getMonitoringStation() { public String getMonitoringStation() {
return monitoringStation; return monitoringStation;
} }
public void setMonitoringStation(Integer monitoringStation) { public void setMonitoringStation(String monitoringStation) {
this.monitoringStation = monitoringStation; this.monitoringStation = monitoringStation;
} }
@ -77,4 +96,18 @@ public class Air {
public void setLastModifyTime(Date lastModifyTime) { public void setLastModifyTime(Date lastModifyTime) {
this.lastModifyTime = lastModifyTime; this.lastModifyTime = lastModifyTime;
} }
@Override
public String toString() {
return "Air{" +
"id=" + id +
", districtId=" + districtId +
", monitorTime=" + monitorTime +
", pm10=" + pm10 +
", pm25=" + pm25 +
", monitoringStation=" + monitoringStation +
", lastModifyTime=" + lastModifyTime +
", districtName='" + districtName + '\'' +
'}';
}
} }

@ -0,0 +1,16 @@
package com.mashibing.mapper;
import com.mashibing.entity.Air;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author
* @version V1.0.0
*/
public interface AirMapper {
// 查询空气质量的SQL扔Mapper里
List<Air> findBydDistrictId(@Param("districtId") Integer districtId);
}

@ -1,5 +1,6 @@
package com.mashibing.service; package com.mashibing.service;
import com.github.pagehelper.PageInfo;
import com.mashibing.entity.District; import com.mashibing.entity.District;
import java.util.List; import java.util.List;
@ -14,4 +15,13 @@ public interface AirService {
* @return * @return
*/ */
List<District> findDistrictList(); List<District> findDistrictList();
/**
* &
* @param page
* @param size
* @param districtId
* @return
*/
PageInfo findAirByDistrictIdAndPage(Integer page, Integer size, Integer districtId);
} }

@ -1,6 +1,10 @@
package com.mashibing.service.impl; package com.mashibing.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.mashibing.entity.Air;
import com.mashibing.entity.District; import com.mashibing.entity.District;
import com.mashibing.mapper.AirMapper;
import com.mashibing.mapper.DistrictMapper; import com.mashibing.mapper.DistrictMapper;
import com.mashibing.service.AirService; import com.mashibing.service.AirService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -18,9 +22,25 @@ public class AirServiceImpl implements AirService {
@Autowired @Autowired
private DistrictMapper districtMapper; private DistrictMapper districtMapper;
@Autowired
private AirMapper airMapper;
@Override @Override
public List<District> findDistrictList() { public List<District> findDistrictList() {
List<District> districtList = districtMapper.findAll(); List<District> districtList = districtMapper.findAll();
return districtList; return districtList;
} }
@Override
public PageInfo findAirByDistrictIdAndPage(Integer page, Integer size, Integer districtId) {
//1、分页
PageHelper.startPage(page,size);
//2、查询
List<Air> airList = airMapper.findBydDistrictId(districtId);
//3、封装PageInfo
PageInfo pageInfo = new PageInfo(airList);
//4、返回
return pageInfo;
}
} }

@ -21,4 +21,10 @@ public class R {
return vo; return vo;
} }
public static ResultVO ok(Long total,Object data){
ResultVO vo = ok(data);
vo.setTotal(total);
return vo;
}
} }

@ -1,5 +1,7 @@
package com.mashibing.vo; package com.mashibing.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
/** /**
* @author * @author
* @version V1.0.0 * @version V1.0.0
@ -10,8 +12,19 @@ public class ResultVO {
private String msg; private String msg;
@JsonInclude(value = JsonInclude.Include.NON_EMPTY)
private Long total;
private Object data; private Object data;
public Long getTotal() {
return total;
}
public void setTotal(Long total) {
this.total = total;
}
public Integer getCode() { public Integer getCode() {
return code; return code;
} }

@ -0,0 +1,22 @@
<?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.mashibing.mapper.AirMapper">
<!-- // 查询空气质量的SQL扔Mapper里-->
<!-- List<Air> findBydDistrictId(@Param("districtId") Integer districtId);-->
<select id="findBydDistrictId" resultType="com.mashibing.entity.Air">
select
a.*,
d.name as district_name
from
air a , district d
where
a.district_id = d.id
<if test="districtId != null">
and a.district_id = #{districtId}
</if>
</select>
</mapper>

@ -0,0 +1,29 @@
package com.mashibing.mapper;
import com.mashibing.entity.Air;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
@RunWith(SpringRunner.class)
@SpringBootTest
class AirMapperTest {
@Autowired
private AirMapper airMapper;
@Test
void findBydDistrictId() {
List<Air> list = airMapper.findBydDistrictId(null);
for (Air air : list) {
System.out.println(air);
}
}
}

@ -1,6 +1,7 @@
package com.mashibing.service; package com.mashibing.service;
import com.github.pagehelper.PageInfo;
import com.mashibing.entity.District; import com.mashibing.entity.District;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@ -22,4 +23,14 @@ public class AirServiceTest {
List<District> list = airService.findDistrictList(); List<District> list = airService.findDistrictList();
System.out.println(list); System.out.println(list);
} }
@Test
public void findAirByDistrictIdAndPage(){
PageInfo pageInfo = airService.findAirByDistrictIdAndPage(1, 5, null);
List list = pageInfo.getList();
for (Object o : list) {
System.out.println(o);
}
System.out.println(pageInfo.getTotal());
}
} }
Loading…
Cancel
Save