diff --git a/src/main/java/com/mashibing/controller/AirController.java b/src/main/java/com/mashibing/controller/AirController.java index bb6d8f3..6c2f2fd 100644 --- a/src/main/java/com/mashibing/controller/AirController.java +++ b/src/main/java/com/mashibing/controller/AirController.java @@ -1,11 +1,13 @@ package com.mashibing.controller; +import com.github.pagehelper.PageInfo; import com.mashibing.entity.District; import com.mashibing.service.AirService; import com.mashibing.util.R; import com.mashibing.vo.ResultVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; @@ -24,6 +26,7 @@ public class AirController { /** + * 查询区域信息 * GET http://localhost:8080/district/list */ @GetMapping("/district/list") @@ -35,4 +38,23 @@ public class AirController { 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()); + } + } diff --git a/src/main/java/com/mashibing/entity/Air.java b/src/main/java/com/mashibing/entity/Air.java index becee37..0b73e1b 100644 --- a/src/main/java/com/mashibing/entity/Air.java +++ b/src/main/java/com/mashibing/entity/Air.java @@ -1,5 +1,9 @@ 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; /** @@ -10,18 +14,33 @@ public class Air { private Integer id; + @JsonIgnore private Integer districtId; + @JsonFormat(pattern = "yyyy-MM-dd") private Date monitorTime; private Integer pm10; private Integer pm25; - private Integer monitoringStation; + private String monitoringStation; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date lastModifyTime; + // 多表查询映射区域名称 + private String districtName; + + public String getDistrictName() { + return districtName; + } + + public void setDistrictName(String districtName) { + this.districtName = districtName; + } + public Integer getId() { return id; } @@ -62,11 +81,11 @@ public class Air { this.pm25 = pm25; } - public Integer getMonitoringStation() { + public String getMonitoringStation() { return monitoringStation; } - public void setMonitoringStation(Integer monitoringStation) { + public void setMonitoringStation(String monitoringStation) { this.monitoringStation = monitoringStation; } @@ -77,4 +96,18 @@ public class Air { public void setLastModifyTime(Date 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 + '\'' + + '}'; + } } diff --git a/src/main/java/com/mashibing/mapper/AirMapper.java b/src/main/java/com/mashibing/mapper/AirMapper.java new file mode 100644 index 0000000..51f6805 --- /dev/null +++ b/src/main/java/com/mashibing/mapper/AirMapper.java @@ -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 findBydDistrictId(@Param("districtId") Integer districtId); +} diff --git a/src/main/java/com/mashibing/service/AirService.java b/src/main/java/com/mashibing/service/AirService.java index a164678..aeab76e 100644 --- a/src/main/java/com/mashibing/service/AirService.java +++ b/src/main/java/com/mashibing/service/AirService.java @@ -1,5 +1,6 @@ package com.mashibing.service; +import com.github.pagehelper.PageInfo; import com.mashibing.entity.District; import java.util.List; @@ -14,4 +15,13 @@ public interface AirService { * @return */ List findDistrictList(); + + /** + * 分页&条件查询空气质量信息 + * @param page + * @param size + * @param districtId + * @return + */ + PageInfo findAirByDistrictIdAndPage(Integer page, Integer size, Integer districtId); } diff --git a/src/main/java/com/mashibing/service/impl/AirServiceImpl.java b/src/main/java/com/mashibing/service/impl/AirServiceImpl.java index 7ca1e6b..46104f8 100644 --- a/src/main/java/com/mashibing/service/impl/AirServiceImpl.java +++ b/src/main/java/com/mashibing/service/impl/AirServiceImpl.java @@ -1,6 +1,10 @@ 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.mapper.AirMapper; import com.mashibing.mapper.DistrictMapper; import com.mashibing.service.AirService; import org.springframework.beans.factory.annotation.Autowired; @@ -18,9 +22,25 @@ public class AirServiceImpl implements AirService { @Autowired private DistrictMapper districtMapper; + @Autowired + private AirMapper airMapper; + @Override public List findDistrictList() { List districtList = districtMapper.findAll(); return districtList; } + + + @Override + public PageInfo findAirByDistrictIdAndPage(Integer page, Integer size, Integer districtId) { + //1、分页 + PageHelper.startPage(page,size); + //2、查询 + List airList = airMapper.findBydDistrictId(districtId); + //3、封装PageInfo + PageInfo pageInfo = new PageInfo(airList); + //4、返回 + return pageInfo; + } } diff --git a/src/main/java/com/mashibing/util/R.java b/src/main/java/com/mashibing/util/R.java index 3578f06..28692c5 100644 --- a/src/main/java/com/mashibing/util/R.java +++ b/src/main/java/com/mashibing/util/R.java @@ -21,4 +21,10 @@ public class R { return vo; } + public static ResultVO ok(Long total,Object data){ + ResultVO vo = ok(data); + vo.setTotal(total); + return vo; + } + } diff --git a/src/main/java/com/mashibing/vo/ResultVO.java b/src/main/java/com/mashibing/vo/ResultVO.java index c88937f..22e6183 100644 --- a/src/main/java/com/mashibing/vo/ResultVO.java +++ b/src/main/java/com/mashibing/vo/ResultVO.java @@ -1,5 +1,7 @@ package com.mashibing.vo; +import com.fasterxml.jackson.annotation.JsonInclude; + /** * @author 郑大仙丶 * @version V1.0.0 @@ -10,8 +12,19 @@ public class ResultVO { private String msg; + @JsonInclude(value = JsonInclude.Include.NON_EMPTY) + private Long total; + private Object data; + public Long getTotal() { + return total; + } + + public void setTotal(Long total) { + this.total = total; + } + public Integer getCode() { return code; } diff --git a/src/main/resources/mapper/AirMapper.xml b/src/main/resources/mapper/AirMapper.xml new file mode 100644 index 0000000..4d9aa8c --- /dev/null +++ b/src/main/resources/mapper/AirMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/test/java/com/mashibing/mapper/AirMapperTest.java b/src/test/java/com/mashibing/mapper/AirMapperTest.java new file mode 100644 index 0000000..6ae3caf --- /dev/null +++ b/src/test/java/com/mashibing/mapper/AirMapperTest.java @@ -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 list = airMapper.findBydDistrictId(null); + for (Air air : list) { + System.out.println(air); + } + } +} \ No newline at end of file diff --git a/src/test/java/com/mashibing/service/AirServiceTest.java b/src/test/java/com/mashibing/service/AirServiceTest.java index 3a4637f..def60fa 100644 --- a/src/test/java/com/mashibing/service/AirServiceTest.java +++ b/src/test/java/com/mashibing/service/AirServiceTest.java @@ -1,6 +1,7 @@ package com.mashibing.service; +import com.github.pagehelper.PageInfo; import com.mashibing.entity.District; import org.junit.Test; import org.junit.runner.RunWith; @@ -22,4 +23,14 @@ public class AirServiceTest { List list = airService.findDistrictList(); 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()); + } } \ No newline at end of file