李进 1 年間 前
コミット
604a5ab4a8

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

@@ -209,29 +209,38 @@ public class MercMiniDeviceController {
     @PostMapping("isMerc")
     @ApiOperation("判断设备是否归属商户")
     public R isMerc(@RequestBody MercMiniDeviceDto.Active active) {
-        List<Long> deviceIds = active.getDeviceId();
-        List<DeviceInfo> list = deviceInfoService.list(new LambdaQueryWrapper<DeviceInfo>()
-                .in(DeviceInfo::getDeviceId, deviceIds)
-        );
-        for (DeviceInfo deviceInfo : list) {
-            R checkR = this.checkDeviceByMerc(deviceInfo);
-            if (checkR.getCode() == R.Enum.SUCCESS.getCode()) {
-                Integer activeState = SysDictUtils.getValue(EnumDeviceActiveStatus.Code.CODE.getCode(), EnumDeviceActiveStatus.N_1.getCode(), Integer.class);
-                String refMercCode = deviceInfo.getMercCode();
-                //非质检商户需要进行判断,质检商户跳过
-                if (!"10001".equals(refMercCode) && !deviceInfo.getActiveState().equals(activeState)) {
-                    return R.fail("机器未激活");
-                }
-            } else {
-                return checkR;
+        DeviceInfo deviceInfo = deviceInfoService.getById(active.getDeviceId());
+        R checkR = this.checkDeviceByMerc(deviceInfo);
+        if (checkR.getCode() == R.Enum.SUCCESS.getCode()) {
+            Integer activeState = SysDictUtils.getValue(EnumDeviceActiveStatus.Code.CODE.getCode(), EnumDeviceActiveStatus.N_1.getCode(), Integer.class);
+            String refMercCode = deviceInfo.getMercCode();
+            //非质检商户需要进行判断,质检商户跳过
+            if (!"10001".equals(refMercCode) && !deviceInfo.getActiveState().equals(activeState)) {
+                return R.fail("机器未激活");
             }
+            return R.ok();
         }
-        return R.ok();
+        return checkR;
+    }
+
+    @PostMapping("getActiveInfo")
+    @ApiOperation("激活设备前判断")
+    public R getActiveInfo(@RequestBody MercMiniDeviceDto.Active active) {
+        DeviceInfo deviceInfo = deviceInfoService.getById(active.getDeviceId());
+        R checkR = this.checkDeviceByMerc(deviceInfo);
+        if (checkR.getCode() == R.Enum.SUCCESS.getCode()) {
+            Integer activeState = SysDictUtils.getValue(EnumDeviceActiveStatus.Code.CODE.getCode(), EnumDeviceActiveStatus.N_1.getCode(), Integer.class);
+            if (deviceInfo.getActiveState().equals(activeState)) {
+                return R.fail("机器已激活");
+            }
+            return R.ok();
+        }
+        return checkR;
     }
 
     @PostMapping("active")
     @ApiOperation("激活设备")
-    public R active(@RequestBody MercMiniDeviceDto.Active active) {
+    public R active(@RequestBody MercMiniDeviceDto.Active2 active) {
         List<Long> deviceIds = active.getDeviceId();
         List<DeviceInfo> list = deviceInfoService.list(new LambdaQueryWrapper<DeviceInfo>()
                 .in(DeviceInfo::getDeviceId, deviceIds)

+ 1 - 1
device-api-service/src/main/java/com/xy/service/factory/device/DeviceFactory.java

@@ -25,7 +25,7 @@ public interface DeviceFactory {
      * @param active
      * @return
      */
-    R active(MercMiniDeviceDto.Active active);
+    R active(MercMiniDeviceDto.Active2 active);
 
     /**
      * 发送指令

+ 2 - 2
device-api-service/src/main/java/com/xy/service/factory/device/impl/alipay/AliPayOpenDeviceFatoryImpl.java

@@ -75,7 +75,7 @@ public class AliPayOpenDeviceFatoryImpl implements DeviceFactory, SpiDeviceServi
     }
 
     @Override
-    public R active(MercMiniDeviceDto.Active active) {
+    public R active(MercMiniDeviceDto.Active2 active) {
         return openDeviceFactoryImpl.active(active);
     }
 
@@ -177,7 +177,7 @@ public class AliPayOpenDeviceFatoryImpl implements DeviceFactory, SpiDeviceServi
         //激活状态
         FunctionUtils.NoParamsNoResult active = () -> {
             if (deviceStatusChangeNotifyDTO.getActiveStatus() != null && deviceStatusChangeNotifyDTO.getActiveStatus() == 1) {
-                active(new MercMiniDeviceDto.Active().setDeviceId(Arrays.asList(deviceInfo.getDeviceId())));
+                active(new MercMiniDeviceDto.Active2().setDeviceId(Arrays.asList(deviceInfo.getDeviceId())));
             }
         };
         busyStatus.run();

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

@@ -147,7 +147,7 @@ public class OpenDeviceFactoryImpl implements DeviceFactory {
     }
 
     @Override
-    public R<List<MercMiniDeviceDto.ActiveVo>> active(MercMiniDeviceDto.Active active) {
+    public R<List<MercMiniDeviceDto.ActiveVo>> active(MercMiniDeviceDto.Active2 active) {
         List<MercMiniDeviceDto.ActiveVo> result = new ArrayList<>();
         List<Long> deviceIds = active.getDeviceId();
         //机器是否已激活

+ 10 - 0
device-api/src/main/java/com/xy/dto/MercMiniDeviceDto.java

@@ -59,6 +59,16 @@ public class MercMiniDeviceDto {
     @Accessors(chain = true)
     public static class Active {
 
+        @NotNull(message = "deviceId不能为空")
+        @ApiModelProperty("设备id")
+        private Long deviceId;
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class Active2 {
+
         @NotEmpty(message = "deviceId不能为空")
         @ApiModelProperty("设备id")
         private List<Long> deviceId;