Sfoglia il codice sorgente

激活检查接口

李进 1 anno fa
parent
commit
a93ff1a55e

+ 29 - 0
device-api-service/src/main/java/com/xy/service/DeviceAlgorithmChargingServiceImpl.java

@@ -12,9 +12,11 @@ import com.xy.device.EnumAlgorithmPayConfig;
 import com.xy.device.EnumDeviceAlgorithmChargingHistoryStatus;
 import com.xy.device.EnumDeviceAlgorithmChargingType;
 import com.xy.dto.DeviceAlgorithmChargingDto;
+import com.xy.dto.DeviceInfoDto;
 import com.xy.entity.DeviceAlgorithmCharging;
 import com.xy.entity.DeviceAlgorithmChargingHistory;
 import com.xy.entity.SysDictRedis;
+import com.xy.error.CommRuntimeException;
 import com.xy.mapper.DeviceAlgorithmChargingMapper;
 import com.xy.utils.DataTime;
 import com.xy.utils.Emptys;
@@ -24,6 +26,9 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.time.LocalDateTime;
 import java.util.ArrayList;
@@ -47,6 +52,30 @@ public class DeviceAlgorithmChargingServiceImpl extends ServiceImpl<DeviceAlgori
 
     private DeviceAlgorithmChargingHistoryServiceImpl deviceAlgorithmChargingHistoryService;
 
+    private DeviceInfoService deviceInfoService;
+
+    @PostMapping("check")
+    @ApiOperation("检查")
+    public R check(@RequestBody @Validated DeviceAlgorithmChargingDto.Check check) {
+        DeviceInfoDto.Vo deviceInfo = deviceInfoService.obj(new DeviceInfoDto.Obj().setDeviceId(check.getDeviceId())).getData();
+        List<DeviceAlgorithmCharging> deviceAlgorithmChargings = list(new LambdaQueryWrapper<DeviceAlgorithmCharging>()
+                .eq(DeviceAlgorithmCharging::getDeviceId, deviceInfo.getDeviceId())
+                .eq(DeviceAlgorithmCharging::getAlgorithmId, deviceInfo.getAlgorithmId())
+                .in(DeviceAlgorithmCharging::getTimeout, Arrays.asList(DataTime.getSring("yyyyMM"), -1))
+        );
+        if (!Emptys.check(deviceAlgorithmChargings)) {
+            throw new CommRuntimeException("设备欠费,请充值");
+        }
+        int size = 0;
+        for (DeviceAlgorithmCharging deviceAlgorithmCharging : deviceAlgorithmChargings) {
+            size += deviceAlgorithmCharging.getUnusedSize();
+        }
+        if (size == 0) {
+            throw new CommRuntimeException("设备欠费,请充值");
+        }
+        return R.ok();
+    }
+
     @Override
     @ApiOperation("购买")
     public R pay(DeviceAlgorithmChargingDto.Pay pay) {

+ 24 - 0
device-api-service/src/main/java/com/xy/service/DeviceChargingServiceImpl.java

@@ -14,6 +14,7 @@ import com.xy.dto.DeviceInfoDto;
 import com.xy.entity.DeviceCharging;
 import com.xy.entity.DeviceChargingHistory;
 import com.xy.entity.SysDictRedis;
+import com.xy.error.CommRuntimeException;
 import com.xy.mapper.DeviceChargingMapper;
 import com.xy.utils.*;
 import io.swagger.annotations.Api;
@@ -21,6 +22,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
@@ -48,6 +50,28 @@ public class DeviceChargingServiceImpl extends ServiceImpl<DeviceChargingMapper,
 
     private DeviceInfoServiceImpl deviceInfoService;
 
+    private DeviceChargingServiceImpl deviceChargingService;
+
+    @PostMapping("check")
+    @ApiOperation("检查")
+    public R check(@RequestBody @Validated DeviceChargingDto.Check check) {
+        LocalDateTime now = LocalDateTime.now();
+        DeviceCharging deviceCharging = getById(check.getDeviceId());
+        if (deviceCharging == null) {
+            deviceChargingService.save(new DeviceCharging()
+                    .setDeviceId(check.getDeviceId())
+                    .setTimeout(now)
+                    .setCreateTime(now)
+            );
+            throw new CommRuntimeException("设备欠费,请充值");
+        }
+        int contrast = DataTime.stringContrast(DataTime.toString(deviceCharging.getTimeout()), DataTime.toString(now));
+        if (deviceCharging.getChargingX() == 0 && contrast <= 0) {
+            throw new CommRuntimeException("设备欠费,请充值");
+        }
+        return R.ok();
+    }
+
     @PostMapping("page")
     @ApiOperation("分页查询")
     public R<PageBean<DeviceChargingDto.PageVo>> page(@RequestBody DeviceChargingDto.Page page) {

+ 9 - 0
device-api/src/main/java/com/xy/dto/DeviceAlgorithmChargingDto.java

@@ -21,6 +21,15 @@ import java.util.List;
  */
 public class DeviceAlgorithmChargingDto {
 
+    @Data
+    @Accessors(chain = true)
+    public static class Check {
+
+        @NotEmpty(message = "设备id不能为空")
+        @ApiModelProperty(value = "设备id")
+        private Long deviceId;
+    }
+
     @Data
     @Accessors(chain = true)
     public static class Pay {

+ 9 - 0
device-api/src/main/java/com/xy/dto/DeviceChargingDto.java

@@ -22,6 +22,15 @@ import java.util.List;
  */
 public class DeviceChargingDto {
 
+    @Data
+    @Accessors(chain = true)
+    public static class Check {
+
+        @NotEmpty(message = "设备id不能为空")
+        @ApiModelProperty(value = "设备id")
+        private Long deviceId;
+    }
+
     @Data
     @Accessors(chain = true)
     public static class Charging {