TRX 1 год назад
Родитель
Сommit
e64687c907

+ 13 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DevicePermissModel.java

@@ -9,6 +9,7 @@ import com.zhongshu.card.client.model.org.role.RoleModel;
 import com.zhongshu.card.client.model.school.AreaSimpleModel;
 import com.zhongshu.card.client.model.school.DictInfoSimpleModel;
 import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.client.type.OnLineState;
 import com.zhongshu.card.client.type.UserState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
@@ -41,6 +42,18 @@ public class DevicePermissModel extends SuperModel {
     @Schema(description = "设备类型,如 消费机 门禁机")
     private DeviceType deviceType;
 
+    @Schema(description = "是否在线")
+    private OnLineState onLineState;
+
+    private String onLineStateStr;
+
+    public String getOnLineStateStr() {
+        if (onLineState != null) {
+            return onLineState.getRemark();
+        }
+        return "";
+    }
+
     private String deviceTypeStr;
 
     public String getDeviceTypeStr() {

+ 4 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DevicePermissSearch.java

@@ -3,6 +3,7 @@ package com.zhongshu.card.client.model.devices;
 import com.github.microservice.auth.security.type.AuthType;
 import com.github.microservice.models.type.DeviceType;
 import com.zhongshu.card.client.model.base.SuperSearch;
+import com.zhongshu.card.client.type.OnLineState;
 import com.zhongshu.card.client.type.UserState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
@@ -36,6 +37,9 @@ public class DevicePermissSearch extends SuperSearch {
     @Schema(description = "区域所有上级ID路径,如:a1/a12/a123")
     private String areaPaths = "";
 
+    @Schema(description = "是否在线")
+    private OnLineState onLineState;
+
     //---------------用户冗余数据 start--------------
 
     @Schema(description = "用户所属机构的类型")

+ 4 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/devices/impl/DevicePermissDaoImpl.java

@@ -60,6 +60,10 @@ public class DevicePermissDaoImpl extends BaseImpl implements DevicePermissDaoEx
             criteria.and("userOid").is(param.getUserOid());
         }
 
+        if (param.getOnLineState() != null) {
+            criteria.and("onLineState").is(param.getOnLineState());
+        }
+
         // 在这个机构的状态,是否可用
         if (param.getState() != null) {
             criteria.and("state").is(param.getState());

+ 4 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/devices/DevicePermiss.java

@@ -3,6 +3,7 @@ package com.zhongshu.card.server.core.domain.devices;
 import com.github.microservice.auth.security.type.AuthType;
 import com.github.microservice.models.type.DeviceType;
 import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.client.type.OnLineState;
 import com.zhongshu.card.client.type.UserState;
 import com.zhongshu.card.server.core.domain.base.SuperMain;
 import com.zhongshu.card.server.core.domain.org.Department;
@@ -52,6 +53,9 @@ public class DevicePermiss extends SuperMain {
     @Schema(description = "网关号")
     private String gateWayId;
 
+    @Schema(description = "是否在线")
+    private OnLineState onLineState;
+
     @Schema(description = "区域信息")
     @DBRef(lazy = true)
     private Area area;

+ 27 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/event/UserInfoChangeSyncEvent.java

@@ -0,0 +1,27 @@
+package com.zhongshu.card.server.core.event;
+
+import lombok.Getter;
+import org.springframework.context.ApplicationEvent;
+
+import java.util.List;
+
+/**
+ * 用户信息发送变化(如:姓名、人脸信息、绑定的卡片等)
+ *
+ * @author TRX
+ * @date 2024/6/26
+ */
+public class UserInfoChangeSyncEvent extends ApplicationEvent {
+
+    @Getter
+    private List<String> userIds;
+
+    @Getter
+    private String projectOid;
+
+    public UserInfoChangeSyncEvent(Object source, List<String> userIds, String projectOid) {
+        super(source);
+        this.userIds = userIds;
+        this.projectOid = projectOid;
+    }
+}

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

@@ -12,6 +12,7 @@ import com.github.microservice.types.FunctionType;
 import com.zhongshu.card.server.core.dao.devices.DeviceInfoDao;
 import com.zhongshu.card.server.core.domain.devices.DeviceInfo;
 import com.zhongshu.card.server.core.event.DevicePermissChangeEvent;
+import com.zhongshu.card.server.core.event.UserInfoChangeSyncEvent;
 import com.zhongshu.card.server.core.service.openAPI.OpenApiRequestService;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
@@ -109,6 +110,12 @@ public class DevicePermissEventService {
         });
     }
 
+    @EventListener(classes = UserInfoChangeSyncEvent.class)
+    @SneakyThrows
+    public void userInfoChange(UserInfoChangeSyncEvent event) {
+
+    }
+
     /**
      * 发送设备关联的用户数据
      *

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

@@ -151,6 +151,7 @@ public class DevicePermissService extends SuperService {
             permiss.setGateWayId(deviceInfo.getGateWayId());
             permiss.setDeviceName(deviceInfo.getDeviceName());
             permiss.setDeviceType(deviceInfo.getDeviceType());
+            permiss.setOnLineState(deviceInfo.getOnLineState());
             permiss.setArea(deviceInfo.getArea());
             permiss.setAreaPaths(deviceInfo.getAreaPaths());
         }

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

@@ -13,6 +13,7 @@ import com.zhongshu.card.server.core.dao.org.OrganizationDao;
 import com.zhongshu.card.server.core.dao.org.OrganizationRelationDao;
 import com.zhongshu.card.server.core.domain.devices.DeviceInfo;
 import com.zhongshu.card.server.core.domain.devices.DeviceBind;
+import com.zhongshu.card.server.core.domain.devices.DevicePermiss;
 import com.zhongshu.card.server.core.service.base.CommonService;
 import com.zhongshu.card.server.core.service.user.OperationLogsService;
 import com.zhongshu.card.server.core.util.CommonUtil;
@@ -101,6 +102,11 @@ public class DeviceSyncFromIotService {
         map.put("lastOnlineTimeStr", DateUtils.paresTime(param.getLastOnlineTime(), DateUtils.FORMAT_LONG));
         commonService.updateData(where, map, DeviceInfo.class.getSimpleName());
         commonService.updateData(where, map, DeviceBind.class.getSimpleName());
+
+        HashMap<String, Object> bindMap = new HashMap<>();
+        bindMap.put("onLineState", CommonUtil.getEnumByName(OnLineState.class, param.getOnLineState()));
+        commonService.updateData(where, bindMap, DevicePermiss.class.getSimpleName());
+
         log.info("syncDeviceOnLineState");
         return ResultContent.buildSuccess();
     }

+ 1 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/paySetting/ProjectPaySettingServiceImpl.java

@@ -507,6 +507,7 @@ public class ProjectPaySettingServiceImpl extends SuperService {
                 appConf.setMchSerialNo(model.getMchSerialNo());
                 appConf.setPriKeyPath(model.getPrivateKeyStr());
                 appConf.setApiV3KeyPath(model.getApiV3Key());
+                appConf.setNotifyUrl(model.getNotifyUrl());
                 accountModel.setConf(appConf);
             }
             ProjectPaySetting paySetting = projectPaySettingDao.findTopByProjectOidAndChannelType(projectOid, paymentType);

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/ProjectWeChatInfoService.java

@@ -43,7 +43,7 @@ public class ProjectWeChatInfoService extends SuperService {
             return ResultContent.buildFail(String.format("项目oid不存在:%s", projectOid));
         }
         ProjectWeChatInfo projectWeChatInfo = projectWeChatInfoDao.findTopByProjectOid(projectOid);
-        ProjectWeChatInfo appIdTemp = projectWeChatInfoDao.findTopByAppId(projectWeChatInfo.getAppId());
+        ProjectWeChatInfo appIdTemp = projectWeChatInfoDao.findTopByAppId(param.getAppId());
         if (ObjectUtils.isEmpty(projectWeChatInfo)) {
             projectWeChatInfo = new ProjectWeChatInfo();
             projectWeChatInfo.setIsDelete(Boolean.FALSE);