From 63d16d75a6f12e783bb36cfe526d9cb518b48823 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期三, 30 六月 2021 17:58:52 +0800 Subject: [PATCH] 1. 新增用电量数据查询接口 2. 新增swagger2库 --- src/main/kotlin/com/flightfeather/uav/common/config/Swagger2Configuration.kt | 47 +++++++++++++++ src/main/kotlin/com/flightfeather/uav/lightshare/service/ElectricityService.kt | 9 +++ src/main/kotlin/com/flightfeather/uav/lightshare/web/ElectricityController.kt | 26 ++++++++ src/main/kotlin/com/flightfeather/uav/lightshare/web/RealTimeDataController.kt | 2 src/main/kotlin/com/flightfeather/uav/lightshare/web/MissionController.kt | 2 src/main/kotlin/com/flightfeather/uav/lightshare/web/CompanyController.kt | 2 src/main/resources/application-dev.yml | 7 ++ src/main/resources/application-pro.yml | 7 ++ pom.xml | 5 + src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/ElectricityServiceImpl.kt | 40 +++++++++++++ src/main/resources/application.yml | 6 ++ 11 files changed, 153 insertions(+), 0 deletions(-) diff --git a/pom.xml b/pom.xml index f4855d6..ae1c2f8 100644 --- a/pom.xml +++ b/pom.xml @@ -151,6 +151,11 @@ <version>${kotlin.version}</version> </dependency> + <dependency> + <groupId>io.springfox</groupId> + <artifactId>springfox-boot-starter</artifactId> + <version>3.0.0</version> + </dependency> </dependencies> <build> diff --git a/src/main/kotlin/com/flightfeather/uav/common/config/Swagger2Configuration.kt b/src/main/kotlin/com/flightfeather/uav/common/config/Swagger2Configuration.kt new file mode 100644 index 0000000..9f81f98 --- /dev/null +++ b/src/main/kotlin/com/flightfeather/uav/common/config/Swagger2Configuration.kt @@ -0,0 +1,47 @@ +package com.flightfeather.uav.common.config + +import org.springframework.beans.factory.annotation.Value +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import springfox.documentation.builders.ApiInfoBuilder +import springfox.documentation.builders.PathSelectors +import springfox.documentation.builders.RequestHandlerSelectors +import springfox.documentation.spi.DocumentationType +import springfox.documentation.spring.web.plugins.Docket +import springfox.documentation.swagger2.annotations.EnableSwagger2 + +/** + * @author riku + * Date: 2020/8/28 + */ +@Configuration +@EnableSwagger2 +class Swagger2Configuration { + + companion object { + const val SWAGGER_SCAN_BASE_PACKAGE = "cn.flightfeather.uav" + + const val VERSION = "1.0.0" + } + + @Value("\${springfox.documentation.swagger.v2.enabled}") + private val swagger2Enable: Boolean = true + + @Bean + fun createRestApi(): Docket = + Docket(DocumentationType.SWAGGER_2) + .enable(swagger2Enable) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage(SWAGGER_SCAN_BASE_PACKAGE)) + .paths(PathSelectors.any()) + .build() + + + private fun apiInfo() = + ApiInfoBuilder() + .title("椋炵窘璧拌埅鐩戞祴鏈嶅姟") + .description("椋炵窘璧拌埅鐩戞祴鏈嶅姟 API 鎺ュ彛鏂囨。") + .version(VERSION) + .build() +} \ No newline at end of file diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/ElectricityService.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/ElectricityService.kt new file mode 100644 index 0000000..4566dc8 --- /dev/null +++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/ElectricityService.kt @@ -0,0 +1,9 @@ +package com.flightfeather.uav.lightshare.service + +import com.flightfeather.uav.domain.entity.ElectricMinuteValue +import com.flightfeather.uav.lightshare.bean.BaseResponse + +interface ElectricityService { + + fun getMinuteData(deviceCode: String, startTime: String?, endTime: String?, page: Int?, perPage: Int?): BaseResponse<List<ElectricMinuteValue>> +} \ No newline at end of file diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/ElectricityServiceImpl.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/ElectricityServiceImpl.kt new file mode 100644 index 0000000..dd0a575 --- /dev/null +++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/ElectricityServiceImpl.kt @@ -0,0 +1,40 @@ +package com.flightfeather.uav.lightshare.service.impl + +import com.flightfeather.uav.domain.entity.ElectricMinuteValue +import com.flightfeather.uav.domain.mapper.ElectricMinuteValueMapper +import com.flightfeather.uav.lightshare.bean.BaseResponse +import com.flightfeather.uav.lightshare.bean.DataHead +import com.flightfeather.uav.lightshare.service.ElectricityService +import com.github.pagehelper.PageHelper +import org.springframework.stereotype.Service +import tk.mybatis.mapper.entity.Example +import java.text.SimpleDateFormat + +@Service +class ElectricityServiceImpl(private val electricMinuteValueMapper: ElectricMinuteValueMapper) : ElectricityService { + + private var dateFormatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") + + override fun getMinuteData( + deviceCode: String, startTime: String?, + endTime: String?, page: Int?, perPage: Int? + ): BaseResponse<List<ElectricMinuteValue>> { + val perP = perPage ?: 60 + val p = page ?: 1 + val sTime = startTime?.let { dateFormatter.parse(it) } + val eTime = endTime?.let { dateFormatter.parse(it) } + val pageInfo = PageHelper.startPage<ElectricMinuteValue>(p, perP) + val result = mutableListOf<ElectricMinuteValue>() + electricMinuteValueMapper.selectByExample(Example(ElectricMinuteValue::class.java).apply { + createCriteria().andEqualTo("mvStatCode", deviceCode) + .apply { + sTime?.let { andGreaterThanOrEqualTo("mvDataTime", it) } + eTime?.let { andLessThanOrEqualTo("mvDataTime", it) } + } + orderBy("mvDataTime") + }).forEach { + it?.let { result.add(it) } + } + return BaseResponse(true, head = DataHead(pageInfo.pageNum, pageInfo.pages), data = result) + } +} \ No newline at end of file diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/web/CompanyController.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/web/CompanyController.kt index e4c280e..10bef47 100644 --- a/src/main/kotlin/com/flightfeather/uav/lightshare/web/CompanyController.kt +++ b/src/main/kotlin/com/flightfeather/uav/lightshare/web/CompanyController.kt @@ -1,10 +1,12 @@ package com.flightfeather.uav.lightshare.web import com.flightfeather.uav.lightshare.service.CompanyService +import io.swagger.annotations.Api import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController +@Api(tags = ["宸ヤ笟浼佷笟淇℃伅API鎺ュ彛"]) @RestController @RequestMapping("air/company") class CompanyController(private val companyService: CompanyService) { diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/web/ElectricityController.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/web/ElectricityController.kt new file mode 100644 index 0000000..bd69609 --- /dev/null +++ b/src/main/kotlin/com/flightfeather/uav/lightshare/web/ElectricityController.kt @@ -0,0 +1,26 @@ +package com.flightfeather.uav.lightshare.web + +import com.flightfeather.uav.lightshare.service.ElectricityService +import io.swagger.annotations.Api +import io.swagger.annotations.ApiOperation +import io.swagger.annotations.ApiParam +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.RequestMapping +import org.springframework.web.bind.annotation.RequestParam +import org.springframework.web.bind.annotation.RestController + +@Api(tags = ["浼佷笟鐢ㄧ數閲廇PI鎺ュ彛"]) +@RestController +@RequestMapping("electric/data") +class ElectricityController (private val electricityService: ElectricityService) { + + @ApiOperation(value = "鑾峰彇浼佷笟鐢ㄧ數閲忓垎閽熷潎鍊�") + @GetMapping("/minute") + fun getMinuteData( + @ApiParam("璁惧缂栧彿") @RequestParam(value = "deviceCode") deviceCode: String, + @ApiParam(value = "寮�濮嬫椂闂�", example = "yyyy-MM-dd HH:mm:ss") @RequestParam(value = "startTime", required = false) startTime: String?, + @ApiParam(value = "缁撴潫鏃堕棿", example = "yyyy-MM-dd HH:mm:ss") @RequestParam(value = "endTime", required = false) endTime: String?, + @RequestParam(value = "page", required = false) page: Int?, + @RequestParam(value = "perPage", required = false) perPage: Int? + ) = electricityService.getMinuteData(deviceCode, startTime, endTime, page, perPage) +} \ No newline at end of file diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/web/MissionController.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/web/MissionController.kt index e96d5e5..e8ccb52 100644 --- a/src/main/kotlin/com/flightfeather/uav/lightshare/web/MissionController.kt +++ b/src/main/kotlin/com/flightfeather/uav/lightshare/web/MissionController.kt @@ -2,8 +2,10 @@ import com.flightfeather.uav.domain.entity.Mission import com.flightfeather.uav.lightshare.service.MissionService +import io.swagger.annotations.Api import org.springframework.web.bind.annotation.* +@Api(tags = ["璧拌埅鐩戞祴浠诲姟API鎺ュ彛"]) @RestController @RequestMapping("air/mission") class MissionController(private val missionService: MissionService) { diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/web/RealTimeDataController.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/web/RealTimeDataController.kt index a77dff3..cc05b83 100644 --- a/src/main/kotlin/com/flightfeather/uav/lightshare/web/RealTimeDataController.kt +++ b/src/main/kotlin/com/flightfeather/uav/lightshare/web/RealTimeDataController.kt @@ -1,9 +1,11 @@ package com.flightfeather.uav.lightshare.web import com.flightfeather.uav.lightshare.service.RealTimeDataService +import io.swagger.annotations.Api import org.springframework.web.bind.annotation.* import org.springframework.web.multipart.MultipartFile +@Api(tags = ["璧拌埅鐩戞祴鏁版嵁API鎺ュ彛"]) @RestController @RequestMapping("air/realtime") class RealTimeDataController(val realTimeDataService: RealTimeDataService) { diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml new file mode 100644 index 0000000..f03bef2 --- /dev/null +++ b/src/main/resources/application-dev.yml @@ -0,0 +1,7 @@ +springfox: + documentation: + swagger: + v2: + enabled: true + + diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml new file mode 100644 index 0000000..135277d --- /dev/null +++ b/src/main/resources/application-pro.yml @@ -0,0 +1,7 @@ +springfox: + documentation: + swagger: + v2: + enabled: false + + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 7a28b65..1087cd6 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -53,3 +53,9 @@ reasonable: true supportMethodsArguments: true params: count=countSql + +springfox: + documentation: + swagger: + v2: + enabled: false \ No newline at end of file -- Gitblit v1.9.3