TRX пре 1 година
родитељ
комит
68cd8a991b

+ 113 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceInfoStoreModel.java

@@ -0,0 +1,113 @@
+package com.zhongshu.card.client.model.devices;
+
+import com.github.microservice.models.type.DeviceType;
+import com.zhongshu.card.client.model.base.SuperModel;
+import com.zhongshu.card.client.model.org.OrganizationMiniModel;
+import com.zhongshu.card.client.model.org.OrganizationSimpleModel;
+import com.zhongshu.card.client.model.school.AreaSimpleModel;
+import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.client.type.OnLineState;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.apache.commons.lang3.ObjectUtils;
+
+/**
+ * @author TRX
+ * @date 2024/6/14
+ */
+@Data
+public class DeviceInfoStoreModel extends SuperModel {
+
+    @Schema(description = "设备ID、设备编号")
+    private String deviceId;
+
+    @Schema(description = "设备名称")
+    private String deviceName;
+
+    @Schema(description = "设备类型,如 消费机 门禁机")
+    private DeviceType deviceType;
+
+    private String deviceTypeStr;
+
+    public String getDeviceTypeStr() {
+        if (deviceType != null) {
+            return deviceType.getRemark();
+        }
+        return "";
+    }
+
+    @Schema(description = "网关号")
+    private String gateWayId;
+
+    @Schema(description = "设备名称")
+    private String gateWayName;
+
+    @Schema(description = "关联的项目code")
+    private String projectInfoCode;
+
+    @Schema(description = "关联的项目Name")
+    private String projectInfoName;
+
+    @Schema(description = "所属机构信息")
+    private String beLongOid;
+
+    @Schema(description = "所属机构信息")
+    private String beLongName;
+
+    @Schema(description = "是否在线")
+    private OnLineState onLineState = OnLineState.OnLine;
+
+    private String onLineStateStr;
+
+    public String getOnLineStateStr() {
+        if (onLineState != null) {
+            return onLineState.getRemark();
+        }
+        return "";
+    }
+
+    @Schema(description = "最上线时间")
+    private Long lastOnlineTime;
+
+    @Schema(description = "设备IP地址")
+    private String ip;
+
+    @Schema(description = "数据状态")
+    private DataState state;
+
+    private String stateStr;
+
+    public String getStateStr() {
+        if (state != null) {
+            return state.getRemark();
+        }
+        return "";
+    }
+
+    @Schema(description = "区域信息")
+    private AreaSimpleModel area;
+
+    @Schema(description = "")
+    private String areaId;
+
+    public String getAreaId() {
+        if (ObjectUtils.isNotEmpty(area)) {
+            return area.getId();
+        }
+        return "";
+    }
+
+    private String areaName = "";
+
+    public String getAreaName() {
+        if (ObjectUtils.isNotEmpty(area)) {
+            return area.getName();
+        }
+        return "";
+    }
+
+    private String areaAllName = "";
+
+    @Schema(description = "是否开放使用")
+    private Boolean isOpenUse = Boolean.FALSE;
+}

+ 3 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/org/UserCountSimpleModel.java

@@ -59,4 +59,7 @@ public class UserCountSimpleModel {
         }
         return "";
     }
+
+    @Schema(description = "用户状态")
+    private UserState state = UserState.Normal;
 }

+ 59 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/school/CardInfoStoreModel.java

@@ -0,0 +1,59 @@
+package com.zhongshu.card.client.model.school;
+
+import com.zhongshu.card.client.model.base.SuperModel;
+import com.zhongshu.card.client.model.org.OrganizationUserModel;
+import com.zhongshu.card.client.model.org.UserCountModel;
+import com.zhongshu.card.client.type.school.CardState;
+import com.zhongshu.card.client.type.school.CardType;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author TRX
+ * @date 2024/6/13
+ */
+@Data
+public class CardInfoStoreModel {
+
+    @Schema(description = "数据ID")
+    private String id;
+
+    @Schema(description = "所属项目oid")
+    private String projectOid;
+
+    @Schema(description = "卡片名称")
+    private String name;
+
+    @Schema(description = "卡片类型")
+    private CardType cardType;
+
+    @Schema(description = "卡片号码")
+    private String code;
+
+    @Schema(description = "卡片状态")
+    private CardState cardState;
+
+    private String cardStateStr;
+
+    public String getCardStateStr() {
+        if (cardState != null) {
+            return cardState.getRemark();
+        }
+        return "";
+    }
+
+    @Schema(description = "所属用户UserId")
+    private String userId;
+
+    @Schema(description = "学校oid")
+    private String schoolOid;
+
+    @Schema(description = "是否作废")
+    private Boolean isCanceled = Boolean.FALSE;
+
+    @Schema(description = "作废时间")
+    private Long cancelTime;
+
+    @Schema(description = "作废用户userId")
+    private String cancelUserId;
+}

+ 9 - 7
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/devices/DeviceUseRecord.java

@@ -3,6 +3,12 @@ package com.zhongshu.card.server.core.domain.devices;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.github.microservice.components.data.mongo.mongo.domain.SuperEntity;
 import com.github.microservice.models.type.DeviceType;
+import com.zhongshu.card.client.model.devices.DeviceInfoModel;
+import com.zhongshu.card.client.model.devices.DeviceInfoStoreModel;
+import com.zhongshu.card.client.model.org.UserCountSimpleModel;
+import com.zhongshu.card.client.model.school.CardInfoModel;
+import com.zhongshu.card.client.model.school.CardInfoSimpleModel;
+import com.zhongshu.card.client.model.school.CardInfoStoreModel;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
 import com.zhongshu.card.server.core.domain.org.Organization;
 import com.zhongshu.card.server.core.domain.org.UserAccount;
@@ -41,15 +47,11 @@ public class DeviceUseRecord extends SuperMain {
     private DeviceType deviceType;
 
     @Schema(description = "设备信息")
-    private DeviceInfo deviceInfo;
+    private DeviceInfoStoreModel deviceInfo;
 
     @Schema(description = "网关ID")
     private String gateWayId;
 
-    @Schema(description = "设备所属机构")
-    @DBRef(lazy = true)
-    private Organization beLongOrganization;
-
     @Schema(description = "所属机构oid")
     private String beLongOid;
 
@@ -62,14 +64,14 @@ public class DeviceUseRecord extends SuperMain {
     private String cardNo;
 
     @Schema(description = "卡片信息")
-    private CardInfo cardInfo;
+    private CardInfoStoreModel cardInfo;
 
     //------------------用户信息 start-------------------
     @Schema(description = "用户userId")
     private String userId;
 
     @Schema(description = "用户信息")
-    public UserAccount userAccount;
+    public UserCountSimpleModel userAccount;
 
     @Schema(description = "使用模式(0:刷卡 1:人脸认证 2:指纹 3:密码)")
     private Integer mode;

+ 20 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/DeviceInfoServiceImpl.java

@@ -317,4 +317,24 @@ public class DeviceInfoServiceImpl extends SuperService implements DeviceInfoSer
         return model;
     }
 
+    public DeviceInfoStoreModel toStoreModel(DeviceInfo entity) {
+        DeviceInfoStoreModel model = null;
+        if (ObjectUtils.isNotEmpty(entity)) {
+            model = new DeviceInfoStoreModel();
+            BeanUtils.copyProperties(entity, model);
+
+            model.setProjectInfoName(organizationServiceImpl.getOrgNameByCode(entity.getProjectInfoCode()));
+
+            // 所属区域信息
+            List<AreaSimpleModel> areaModels = areaService.getParents(entity.getArea());
+            if (ObjectUtils.isNotEmpty(areaModels)) {
+                model.setArea(areaModels.get(0));
+                Collections.reverse(areaModels);
+                List<String> areaNames = areaModels.stream().map(it -> it.getName()).collect(Collectors.toList());
+                model.setAreaAllName(String.join("/", areaNames));
+            }
+        }
+        return model;
+    }
+
 }

+ 22 - 7
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/DeviceUseRecordService.java

@@ -4,7 +4,10 @@ import cn.hutool.json.JSONUtil;
 import com.github.microservice.models.gateDoor.use.GateDoorUseParam;
 import com.github.microservice.models.gateDoor.use.GateDoorUseResult;
 import com.github.microservice.net.ResultContent;
+import com.zhongshu.card.client.model.devices.DeviceInfoStoreModel;
 import com.zhongshu.card.client.model.devices.DeviceUseRecordModel;
+import com.zhongshu.card.client.model.org.UserCountSimpleModel;
+import com.zhongshu.card.client.model.school.CardInfoStoreModel;
 import com.zhongshu.card.client.type.DataState;
 import com.zhongshu.card.client.type.UserState;
 import com.zhongshu.card.client.type.school.CardState;
@@ -20,6 +23,8 @@ import com.zhongshu.card.server.core.domain.devices.DeviceUseRecord;
 import com.zhongshu.card.server.core.domain.org.UserAccount;
 import com.zhongshu.card.server.core.domain.school.CardInfo;
 import com.zhongshu.card.server.core.service.base.SuperService;
+import com.zhongshu.card.server.core.service.projectAbout.CardInfoServiceImpl;
+import com.zhongshu.card.server.core.service.user.UserAccountServiceImpl;
 import com.zhongshu.card.server.core.util.BeanUtils;
 import com.zhongshu.card.server.core.util.TokenUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -51,6 +56,15 @@ public class DeviceUseRecordService extends SuperService {
     @Autowired
     private UserCountDao userCountDao;
 
+    @Autowired
+    private UserAccountServiceImpl userAccountService;
+
+    @Autowired
+    private CardInfoServiceImpl cardInfoService;
+
+    @Autowired
+    private DeviceInfoServiceImpl deviceInfoService;
+
     /**
      * 设备使用日志 (物联网来的数据)
      *
@@ -61,6 +75,7 @@ public class DeviceUseRecordService extends SuperService {
         // 返回数据
         GateDoorUseResult result = new GateDoorUseResult();
         String mqttDataId = param.getMqttDataId();
+        log.info("mqttDataId: {}", mqttDataId);
         if (StringUtils.isNotEmpty(mqttDataId)) {
             DeviceUseRecord deviceUseRecord = init(mqttDataId);
             if (ObjectUtils.isNotEmpty(deviceUseRecord)) {
@@ -79,11 +94,10 @@ public class DeviceUseRecordService extends SuperService {
                 deviceUseRecord.setDeviceId(deviceId);
                 if (ObjectUtils.isNotEmpty(deviceInfo)) {
                     // 设备信息
-                    deviceUseRecord.setDeviceInfo(deviceInfo);
+                    deviceUseRecord.setDeviceInfo(deviceInfoService.toStoreModel(deviceInfo));
                     deviceUseRecord.setDeviceType(deviceInfo.getDeviceType());
                     deviceUseRecord.setGateWayId(deviceInfo.getGateWayId());
 
-                    deviceUseRecord.setBeLongOrganization(deviceInfo.getOrganization());
                     deviceUseRecord.setBeLongOid(deviceInfo.getBeLongOid());
                     deviceUseRecord.setBeLongName(deviceInfo.getBeLongName());
                 }
@@ -99,14 +113,15 @@ public class DeviceUseRecordService extends SuperService {
                 deviceUseRecord.setCardNo(cardNo);
                 if (ObjectUtils.isNotEmpty(cardInfo)) {
                     // 卡片信息
-                    deviceUseRecord.setCardInfo(cardInfo);
+                    deviceUseRecord.setCardInfo(cardInfoService.toStoreModel(cardInfo));
                 }
+
                 UserAccount userAccount = null;
                 if (StringUtils.isNotEmpty(userId)) {
                     userAccount = userCountDao.findTopByUserId(userId);
                 }
                 deviceUseRecord.setUserId(userId);
-                deviceUseRecord.setUserAccount(userAccount);
+                deviceUseRecord.setUserAccount(userAccountService.toSimpleModel(userAccount));
 
                 if (StringUtils.isNotEmpty(param.getTime())) {
                     deviceUseRecord.setTimestamp(DateUtils.timeToLong(param.getTime(), DateUtils.FORMAT_LONG));
@@ -177,14 +192,14 @@ public class DeviceUseRecordService extends SuperService {
                 entity.setMsg("设备信息未找到");
                 return;
             }
-            DeviceInfo deviceInfo = entity.getDeviceInfo();
+            DeviceInfoStoreModel deviceInfo = entity.getDeviceInfo();
             if (deviceInfo.getState() == null || deviceInfo.getState() != DataState.Enable) {
                 entity.setIsPassed(Boolean.FALSE);
                 entity.setMsg("设备未启用");
                 return;
             }
             //2. 验证用户信息
-            UserAccount userAccount = entity.getUserAccount();
+            UserCountSimpleModel userAccount = entity.getUserAccount();
             if (ObjectUtils.isEmpty(userAccount)) {
                 entity.setIsPassed(Boolean.FALSE);
                 entity.setMsg("用户信息未确定");
@@ -223,7 +238,7 @@ public class DeviceUseRecordService extends SuperService {
                     entity.setMsg("卡片未找到");
                     return;
                 }
-                CardInfo cardInfo = entity.getCardInfo();
+                CardInfoStoreModel cardInfo = entity.getCardInfo();
                 if (cardInfo.getIsCanceled() != null && cardInfo.getIsCanceled()) {
                     entity.setIsPassed(Boolean.FALSE);
                     entity.setMsg("卡片已作废");

+ 9 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/CardInfoServiceImpl.java

@@ -991,4 +991,13 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
         return model;
     }
 
+    public CardInfoStoreModel toStoreModel(CardInfo entity) {
+        CardInfoStoreModel model = null;
+        if (ObjectUtils.isNotEmpty(entity)) {
+            model = new CardInfoStoreModel();
+            BeanUtils.copyProperties(entity, model);
+        }
+        return model;
+    }
+
 }