diff --git a/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java b/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java
index ff5be76..67e661a 100644
--- a/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/water/service/impl/DeviceServiceImpl.java
@@ -41,7 +41,7 @@
     @Override
     public TDevice queryDeviceById(Integer devino) {
         Optional<TDevice> optional = deviceDao.findById(devino);
-        return optional.isPresent() ? optional.get() : null;
+        return optional.orElse(null);
     }
 
     @Override
diff --git a/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt
index 8562d1c..6a0d196 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/water/controller/water_controller.kt
@@ -215,11 +215,11 @@
     fun addDevice(@RequestBody device: TDevice): ResponseEntity<Any> {
         try {
             val checkResult = deviceService.checkParams(device)
-            if (checkResult.get("flag") == false) {
+            if (checkResult["flag"] == false) {
                 return ResponseEntity.ok(ResponseBodyBuilder.create()
-                        .fail(HttpStatus.BAD_REQUEST.value(),checkResult.get("msg").toString()))
+                        .fail(HttpStatus.BAD_REQUEST.value(), checkResult["msg"].toString()))
             }
-            if (checkResult.get("type").toString().equals("update")) {
+            if (checkResult["type"].toString() == "update") {
                 return if (deviceService.updateDevice(device)) {
                     ResponseEntity.ok(ResponseBodyBuilder.create()
                             .data("msg", "更新成功")
@@ -265,8 +265,8 @@
     @PostMapping("/device/del")
     @ResponseBody
     fun del(@RequestParam devino: Int): ResponseEntity<Any> {
-        try {
-            return if (deviceService.deleteDevice(devino)) {
+        return try {
+            if (deviceService.deleteDevice(devino)) {
                 ResponseEntity.ok(ResponseBodyBuilder.create()
                         .data("msg", "删除成功")
                         .success())
@@ -275,7 +275,7 @@
                         .fail(HttpStatus.INTERNAL_SERVER_ERROR.value(), "删除失败"))
             }
         } catch (ex: Exception) {
-            return ResponseEntity.ok(ResponseBodyBuilder.create()
+            ResponseEntity.ok(ResponseBodyBuilder.create()
                     .exception(HttpStatus.INTERNAL_SERVER_ERROR.value(), ex, "服务器繁忙,请稍后再试"))
         }
     }
