Bläddra i källkod

npc 设备激活

tanbin 9 månader sedan
förälder
incheckning
cfc81e10da

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

@@ -15,6 +15,7 @@ import com.xy.device.EnumDeviceActiveStatus;
 import com.xy.device.EnumDeviceBusyStatus;
 import com.xy.dto.*;
 import com.xy.dto.be.MercDto;
+import com.xy.dto.nfc.ActiveDeviceDTO;
 import com.xy.entity.*;
 import com.xy.enums.SysCodeConfigureEnum;
 import com.xy.mapper.DeviceCreateIdsMapper;
@@ -74,6 +75,7 @@ public class OpenDeviceFactoryImpl implements DeviceFactory {
     private DeviceFaultMonitorConfigServiceImpl deviceFaultMonitorConfigService;
 
     private MercService mercService;
+    private AlipayDeviceService alipayDeviceService;
 
     @Override
     public R save(DeviceRegisterDto.Save save) {
@@ -193,6 +195,18 @@ public class OpenDeviceFactoryImpl implements DeviceFactory {
         List<DeviceInfo> activeList = new ArrayList<>();
         JMap<Long, MercMiniDeviceDto.ActiveVo> cover = new JArrayList<>(result).toMap(MercMiniDeviceDto.ActiveVo::getDeviceId).cover();
         deviceIds.forEach(deviceId -> {
+            DeviceInfoDto.Vo dv = R.feignCheckData(deviceInfoService.obj(new DeviceInfoDto.Obj().setDeviceId(deviceId).setIsSysinfo(Boolean.TRUE)));
+            DeviceSysinfoDto.Vo deviceSysinfo = dv.getDeviceSysinfo();
+            if (deviceSysinfo != null && StrUtil.isNotEmpty(deviceSysinfo.getNfcSn())) {
+                //  NFC 支付宝碰一下激活
+                ActiveDeviceDTO activeDeviceDTO = new ActiveDeviceDTO().setTerminalId(String.valueOf(deviceId))
+                        .setDeviceName(dv.getDeviceName())
+                        .setBoardSn(deviceSysinfo.getDeviceSn()).setNfcSn(deviceSysinfo.getNfcSn()).setAddress(dv.getPlaceName());
+                Boolean b = R.feignCheckData(alipayDeviceService.nfcDeviceActive(activeDeviceDTO));
+                if (b) {
+                    throw new RuntimeException("NFC设备激活失败");
+                }
+            }
             //过滤需要付费的设备
             if (cover.containsKey(deviceId)) {
                 return;