TRX 1 anno fa
parent
commit
51bcef8c14

+ 3 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/devices/PermissSettingDao.java

@@ -3,6 +3,7 @@ package com.zhongshu.card.server.core.dao.devices;
 import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
 import com.zhongshu.card.server.core.dao.devices.extend.PermissSettingDaoExtend;
 import com.zhongshu.card.server.core.domain.devices.permiss.PermissSetting;
+import com.zhongshu.card.server.core.domain.devices.permiss.PermissTimeSlot;
 
 import java.util.List;
 
@@ -19,4 +20,6 @@ public interface PermissSettingDao extends MongoDao<PermissSetting>, PermissSett
     PermissSetting findTopByNameAndProjectOid(String name, String projectOid);
 
     List<PermissSetting> findByTimeSlotIdIn(List<String> ids);
+
+    List<PermissSetting> findByTimeSlot(PermissTimeSlot timeSlot);
 }

+ 2 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/devices/permiss/PermissTimeSlot.java

@@ -37,6 +37,8 @@ public class PermissTimeSlot extends SuperMain {
     @Schema(description = "状态")
     private DataState state;
 
+    private List<String> permissSettingIds = new ArrayList<>();
+
     public static PermissTimeSlot build(String id) {
         PermissTimeSlot permissTimeSlot = new PermissTimeSlot();
         permissTimeSlot.setId(id);

+ 9 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/permiss/PermissSettingService.java

@@ -97,6 +97,7 @@ public class PermissSettingService extends SuperService {
             return ResultContent.buildFail("所属时段不存在");
         }
 
+        PermissTimeSlot oldtimeSlot = null;
         PermissSetting entity = null;
         PermissSetting nameTemp = permissSettingDao.findTopByNameAndProjectOid(param.getName(), param.getProjectOid());
         if (StringUtils.isNotEmpty(param.getId())) {
@@ -108,6 +109,7 @@ public class PermissSettingService extends SuperService {
                 return ResultContent.buildFail(String.format(ResultMessage.NAME_EXIST, param.getName()));
             }
             initUpdateEntity(entity);
+            oldtimeSlot = entity.getTimeSlot();
         } else {
             if (ObjectUtils.isNotEmpty(nameTemp)) {
                 return ResultContent.buildFail(String.format(ResultMessage.NAME_EXIST, param.getName()));
@@ -119,12 +121,18 @@ public class PermissSettingService extends SuperService {
             initEntityNoCheckOid(entity);
         }
         BeanUtils.copyProperties(param, entity);
+
+        // 规则所属时段
         entity.setTimeSlot(timeSlot);
         entity.setTimeSlotId(timeSlot.getId());
         permissSettingDao.save(entity);
 
         // 保存规则相关的配置信息
         saveSettingList(entity, param.getList());
+        permissTimeSlotService.updateTimeSlotAboutPermiss(timeSlot);
+        if (ObjectUtils.isNotEmpty(oldtimeSlot) && !oldtimeSlot.getId().equals(entity.getId())) {
+            permissTimeSlotService.updateTimeSlotAboutPermiss(oldtimeSlot);
+        }
         return ResultContent.buildSuccess();
     }
 
@@ -185,6 +193,7 @@ public class PermissSettingService extends SuperService {
         }
         permissSettingDao.delete(entity);
         permissSettingListDao.deleteByPermissSetting(entity);
+        permissTimeSlotService.updateTimeSlotAboutPermiss(entity.getTimeSlot());
         return ResultContent.buildSuccess();
     }
 

+ 26 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/permiss/PermissTimeSlotService.java

@@ -6,10 +6,13 @@ import com.github.microservice.net.ResultMessage;
 import com.zhongshu.card.client.model.devices.permiss.*;
 import com.zhongshu.card.client.type.DataState;
 import com.zhongshu.card.client.type.device.TimeSlotType;
+import com.zhongshu.card.server.core.dao.devices.PermissSettingDao;
 import com.zhongshu.card.server.core.dao.devices.PermissTimeSlotDao;
 import com.zhongshu.card.server.core.dao.org.OrganizationDao;
+import com.zhongshu.card.server.core.domain.devices.permiss.PermissSetting;
 import com.zhongshu.card.server.core.domain.devices.permiss.PermissTimeSlot;
 import com.zhongshu.card.server.core.domain.org.Organization;
+import com.zhongshu.card.server.core.service.base.CommonService;
 import com.zhongshu.card.server.core.service.base.SuperService;
 import com.zhongshu.card.server.core.util.BeanUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -21,7 +24,11 @@ import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 权限时间段管理
@@ -39,6 +46,12 @@ public class PermissTimeSlotService extends SuperService {
     @Autowired
     private OrganizationDao organizationDao;
 
+    @Autowired
+    private PermissSettingDao permissSettingDao;
+
+    @Autowired
+    private CommonService commonService;
+
     public ResultContent saveInfo(PermissTimeSlotParam param) {
         Assert.hasText(param.getProjectOid(), "projectOid不能为空");
         if (param.getType() == null) {
@@ -127,6 +140,19 @@ public class PermissTimeSlotService extends SuperService {
         return ResultContent.buildSuccess();
     }
 
+    public void updateTimeSlotAboutPermiss(PermissTimeSlot timeSlot) {
+        if (ObjectUtils.isNotEmpty(timeSlot)) {
+            List<PermissSetting> permissSettingList = permissSettingDao.findByTimeSlot(timeSlot);
+            List<String> permissSettingIds = new ArrayList<>();
+            if (ObjectUtils.isNotEmpty(permissSettingList)) {
+                permissSettingIds = permissSettingList.stream().map(it -> it.getId()).collect(Collectors.toList());
+            }
+            Map<String, Object> standardData = new HashMap<>();
+            standardData.put("permissSettingIds", permissSettingIds);
+            commonService.updateData(timeSlot.getId(), standardData, PermissTimeSlot.class.getSimpleName());
+        }
+    }
+
     private PermissTimeSlotModel toModel(PermissTimeSlot entity) {
         PermissTimeSlotModel model = new PermissTimeSlotModel();
         if (ObjectUtils.isNotEmpty(entity)) {