TRX il y a 1 an
Parent
commit
92158c6b29

+ 6 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/visitor/VisitorMain.java

@@ -112,6 +112,12 @@ public class VisitorMain extends SuperMain {
     @Schema(description = "结束时间")
     private Long endTime;
 
+    @Schema(description = "权限开始时间")
+    private Long perStartTime;
+
+    @Schema(description = "权限结束时间")
+    private Long perEndTime;
+
     @Schema(description = "访问时间长")
     private Long minutes;
 

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/visitor/VisitorSetting.java

@@ -39,7 +39,7 @@ public class VisitorSetting extends SuperMain {
     @Schema(description = "访客类型,值从字典来")
     private List<String> visitorTypes;
 
-    @Schema(description = "授权时间")
+    @Schema(description = "授权时间(小时)提前")
     private Long minutes;
 
     @Schema(description = "表单列表")

+ 3 - 3
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/permiss/Device2UseUsableService.java

@@ -62,9 +62,9 @@ public class Device2UseUsableService {
         }
 
         entity.setUseDataIds(useDataIds);
-        entity.setStartTime(visitorMain.getStartTime());
-        entity.setEndTime(visitorMain.getEndTime());
-        entity.setTtl(new Date(visitorMain.getEndTime()));
+        entity.setStartTime(visitorMain.getPerStartTime());
+        entity.setEndTime(visitorMain.getPerEndTime());
+        entity.setTtl(new Date(visitorMain.getPerEndTime()));
         List<String> deviceIds = visitorMain.getDeviceIds();
         if (ObjectUtils.isEmpty(deviceIds)) {
             List<VisitorSettingDevice> list = visitorSettingDeviceDao.findBySceneComponentId(visitorMain.getSceneComponentId());

+ 20 - 12
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/visitor/VisitorMainService.java

@@ -12,16 +12,19 @@ import com.zhongshu.card.client.model.visitor.VisitorMainParam;
 import com.zhongshu.card.client.model.visitor.VisitorMainSearch;
 import com.zhongshu.card.client.model.visitor.VisitorReViewParam;
 import com.zhongshu.card.client.type.visitor.VisitorState;
+import com.zhongshu.card.client.utils.DateUtils;
 import com.zhongshu.card.server.core.dao.devices.DeviceInfoDao;
 import com.zhongshu.card.server.core.dao.org.OrganizationUserDao;
 import com.zhongshu.card.server.core.dao.org.UserCountDao;
 import com.zhongshu.card.server.core.dao.scene.SceneComponentDao;
 import com.zhongshu.card.server.core.dao.visitor.VisitorMainDao;
+import com.zhongshu.card.server.core.dao.visitor.VisitorSettingDao;
 import com.zhongshu.card.server.core.domain.devices.DeviceInfo;
 import com.zhongshu.card.server.core.domain.org.OrganizationUser;
 import com.zhongshu.card.server.core.domain.org.UserAccount;
 import com.zhongshu.card.server.core.domain.scene.SceneComponent;
 import com.zhongshu.card.server.core.domain.visitor.VisitorMain;
+import com.zhongshu.card.server.core.domain.visitor.VisitorSetting;
 import com.zhongshu.card.server.core.service.base.CommonService;
 import com.zhongshu.card.server.core.service.base.SuperService;
 import com.zhongshu.card.server.core.service.devices.DeviceInfoServiceImpl;
@@ -56,9 +59,6 @@ public class VisitorMainService extends SuperService {
     @Autowired
     private VisitorMainDao visitorMainDao;
 
-    @Autowired
-    private DeviceInfoDao deviceInfoDao;
-
     @Autowired
     private DeviceInfoServiceImpl deviceInfoService;
 
@@ -71,12 +71,6 @@ public class VisitorMainService extends SuperService {
     @Autowired
     private UserCountDao userCountDao;
 
-    @Autowired
-    private OrganizationUserDao organizationUserDao;
-
-    @Autowired
-    private OrganizationManagerServiceImpl organizationManagerService;
-
     @Autowired
     private OrganizationUserServiceImpl organizationUserService;
 
@@ -89,6 +83,9 @@ public class VisitorMainService extends SuperService {
     @Autowired
     private Device2UseUsableService device2UseUsableService;
 
+    @Autowired
+    private VisitorSettingDao visitorSettingDao;
+
     public ResultContent saveInfo(VisitorMainParam param) {
         if (StringUtils.isEmpty(param.getSceneComponentId())) {
             return ResultContent.buildFail("sceneComponentId 不能为空");
@@ -103,9 +100,6 @@ public class VisitorMainService extends SuperService {
         if (CommonUtil.longIsEmpty(startTime)) {
             return ResultContent.buildFail("到访时间不能为空");
         }
-        if (startTime <= System.currentTimeMillis()) {
-            return ResultContent.buildFail("到访时间不能小于当前时间");
-        }
         Long minutes = param.getMinutes();
         if (CommonUtil.longIsEmpty(minutes)) {
             return ResultContent.buildFail("访问时长不能为空");
@@ -119,6 +113,11 @@ public class VisitorMainService extends SuperService {
             return ResultContent.buildFail("组件不存在");
         }
 
+        VisitorSetting visitorSetting = visitorSettingDao.findTopBySceneComponentId(sceneComponentId);
+        if (ObjectUtils.isEmpty(visitorSetting)) {
+            return ResultContent.buildFail("访客组件参数未配置");
+        }
+
         String projectOid = sceneComponent.getProjectOid();
         UserAccount visitorUserAccount = userCountDao.findTopByUserId(param.getVisitorUserId());
         if (ObjectUtils.isEmpty(visitorUserAccount)) {
@@ -156,6 +155,15 @@ public class VisitorMainService extends SuperService {
         entity.setEndTime(endTime);
         entity.setProjectOid(projectOid);
 
+        Long preMinutes = visitorSetting.getMinutes();
+        if (preMinutes == null) {
+            preMinutes = 0L;
+        }
+        Long perStartTime = startTime - preMinutes * 60 * 60 * 1000l;
+        Long perEndTime = DateUtils.getDayEndTime(endTime);
+        entity.setPerStartTime(perStartTime);
+        entity.setPerEndTime(perEndTime);
+
         String tempUserId = applyUserId;
         UserFromType userFromType = UserFromType.SystemUser;
         if (StringUtils.isEmpty(tempUserId)) {

+ 3 - 20
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/visitor/VisitorSettingService.java

@@ -3,10 +3,6 @@ package com.zhongshu.card.server.core.service.visitor;
 import com.github.microservice.net.ResultContent;
 import com.zhongshu.card.client.model.visitor.setting.VisitorSettingModel;
 import com.zhongshu.card.client.model.visitor.setting.VisitorSettingParam;
-import com.zhongshu.card.server.core.dao.devices.DeviceProductBindDeviceDao;
-import com.zhongshu.card.server.core.dao.devices.DeviceProductDao;
-import com.zhongshu.card.server.core.dao.devices.DeviceProductProvideServeDao;
-import com.zhongshu.card.server.core.dao.org.OrganizationDao;
 import com.zhongshu.card.server.core.dao.org.RoleDao;
 import com.zhongshu.card.server.core.dao.scene.SceneComponentDao;
 import com.zhongshu.card.server.core.dao.visitor.VisitorSettingDao;
@@ -14,7 +10,6 @@ import com.zhongshu.card.server.core.domain.org.Role;
 import com.zhongshu.card.server.core.domain.scene.SceneComponent;
 import com.zhongshu.card.server.core.domain.visitor.VisitorSetting;
 import com.zhongshu.card.server.core.service.base.SuperService;
-import com.zhongshu.card.server.core.service.org.OrganizationServiceImpl;
 import com.zhongshu.card.server.core.service.user.RoleServiceImpl;
 import com.zhongshu.card.server.core.util.BeanUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -33,21 +28,6 @@ import java.util.List;
 @Service
 public class VisitorSettingService extends SuperService {
 
-    @Autowired
-    private DeviceProductDao deviceProductDao;
-
-    @Autowired
-    private DeviceProductBindDeviceDao deviceProductBindDeviceDao;
-
-    @Autowired
-    private DeviceProductProvideServeDao deviceProductProvideServeDao;
-
-    @Autowired
-    private OrganizationDao organizationDao;
-
-    @Autowired
-    private OrganizationServiceImpl organizationService;
-
     @Autowired
     private VisitorSettingDao visitorSettingDao;
 
@@ -71,6 +51,9 @@ public class VisitorSettingService extends SuperService {
         if (ObjectUtils.isEmpty(sceneComponent)) {
             return ResultContent.buildFail("组件不存在");
         }
+        if (param.getMinutes() == null || param.getMinutes() < 0) {
+            return ResultContent.buildFail("授权时间不能为空或小于0");
+        }
 
         VisitorSetting visitorSetting = visitorSettingDao.findTopBySceneComponentId(sceneComponent.getId());
         if (ObjectUtils.isEmpty(visitorSetting)) {