ソースを参照

Merge branch 'activation'

# Conflicts:
#	device-api-service/src/main/java/com/xy/service/DeviceChargingServiceImpl.java
李进 1 年間 前
コミット
ea630dc265

+ 0 - 2
device-api-service-merc-mini/src/main/java/com/xy/controller/MercMiniDeviceController.java

@@ -36,7 +36,6 @@ import com.xy.utils.enums.DeviceNetSateType;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -222,7 +221,6 @@ public class MercMiniDeviceController {
 
     @PostMapping("active")
     @ApiOperation("激活设备")
-    @Transactional(rollbackFor = Exception.class)
     public R active(@RequestBody MercMiniDeviceDto.Active active) {
         DeviceInfo deviceInfo = deviceInfoService.getById(active.getDeviceId());
         int factory = deviceInfo.getDeviceType() == EnumDeviceType.N_5.getIntCode() ? 2 : 1;

+ 7 - 3
device-api-service/src/main/java/com/xy/service/DeviceAlgorithmChargingServiceImpl.java

@@ -30,7 +30,6 @@ import org.springframework.web.bind.annotation.RequestBody;
 
 import java.time.LocalDateTime;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -67,13 +66,18 @@ public class DeviceAlgorithmChargingServiceImpl extends ServiceImpl<DeviceAlgori
     @PostMapping("check")
     @ApiOperation("检查")
     public R check(@RequestBody @Validated DeviceAlgorithmChargingDto.Check check) {
+        int yyyyMMdd = Integer.valueOf(DataTime.getSring("yyyyMMdd"));
         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())
                 .gt(DeviceAlgorithmCharging::getUnusedSize, 0)
-                .gt(DeviceAlgorithmCharging::getTimeout, 0)
-                .in(DeviceAlgorithmCharging::getBeginTime, Arrays.asList(DataTime.getSring("yyyyMM"), -1))
+                .and(deviceAlgorithmChargingLambdaQueryWrapper -> deviceAlgorithmChargingLambdaQueryWrapper
+                        .ge(DeviceAlgorithmCharging::getTimeout, yyyyMMdd)
+                        .or()
+                        .eq(DeviceAlgorithmCharging::getTimeout, -1)
+                )
+                .ge(DeviceAlgorithmCharging::getBeginTime, yyyyMMdd)
         );
         if (!Emptys.check(deviceAlgorithmChargings)) {
             throw new CommRuntimeException(R.Enum.ALGORITHM_CHARGING.getCode(), R.Enum.ALGORITHM_CHARGING.getMsg());

+ 8 - 15
device-api-service/src/main/java/com/xy/service/factory/device/impl/open/OpenDeviceFactoryImpl.java

@@ -10,7 +10,6 @@ import com.xy.consumer.device.push.msg.DevicePushMsgMqttConfiguration;
 import com.xy.consumer.device.push.msg.DevicePushMsgProducer;
 import com.xy.device.EnumDeviceActiveStatus;
 import com.xy.device.EnumDeviceBusyStatus;
-import com.xy.device.EnumDeviceCharging;
 import com.xy.device.EnumDeviceTempConfig;
 import com.xy.dto.*;
 import com.xy.entity.*;
@@ -56,8 +55,6 @@ public class OpenDeviceFactoryImpl implements DeviceFactory {
 
     private DeviceInfoServiceImpl deviceInfoService;
 
-    private DeviceChargingServiceImpl deviceChargingService;
-
     private MqttServiceImpl mqttService;
 
     private DeviceEventMsgServiceImpl deviceEventMsgService;
@@ -66,6 +63,10 @@ public class OpenDeviceFactoryImpl implements DeviceFactory {
 
     private DeviceConfigServiceImpl deviceConfigService;
 
+    private DeviceChargingServiceImpl deviceChargingService;
+
+    private DeviceAlgorithmChargingServiceImpl deviceAlgorithmChargingService;
+
     @Override
     public R save(DeviceRegisterDto.Save save) {
         LocalDateTime now = LocalDateTime.now();
@@ -141,7 +142,6 @@ public class OpenDeviceFactoryImpl implements DeviceFactory {
         return R.ok();
     }
 
-
     @Override
     public R active(MercMiniDeviceDto.Active active) {
         DeviceInfo deviceInfo = deviceInfoService.getById(active.getDeviceId());
@@ -150,6 +150,10 @@ public class OpenDeviceFactoryImpl implements DeviceFactory {
         if (deviceInfo.getActiveState().equals(activeState)) {
             return R.fail("机器已激活");
         }
+        //检查费用
+        R.feignCheck(deviceChargingService.check(new DeviceChargingDto.Check().setDeviceId(active.getDeviceId())));
+        R.feignCheck(deviceAlgorithmChargingService.check(new DeviceAlgorithmChargingDto.Check().setDeviceId(active.getDeviceId())));
+        //激活
         LocalDateTime now = LocalDateTime.now();
         Integer busyState = SysDictUtils.getValue(EnumDeviceBusyStatus.Code.CODE.getCode(), EnumDeviceBusyStatus.N_1.getCode(), Integer.class);
         DeviceInfo updateDeviceInfo = new DeviceInfo()
@@ -159,17 +163,6 @@ public class OpenDeviceFactoryImpl implements DeviceFactory {
                 .setActiveTime(now)
                 .setShowStatus(true);
         deviceInfoService.updateById(updateDeviceInfo);
-        //首次激活可试用x天
-        DeviceCharging deviceCharging = deviceChargingService.getById(active.getDeviceId());
-        if (deviceCharging == null) {
-            SysDictRedis sysDictRedis = SysDictUtils.get(EnumDeviceCharging.Code.CODE.getCode(), EnumDeviceCharging.N_X.getCode());
-            deviceChargingService.save(new DeviceCharging()
-                    .setDeviceId(active.getDeviceId())
-                    .setChargingX(Integer.valueOf(sysDictRedis.getValue()))
-                    .setTimeout(now)
-                    .setCreateTime(now)
-            );
-        }
         return R.ok();
     }