123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- package com.fdkankan.scene.service.impl;
- import cn.hutool.core.collection.CollUtil;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.fdkankan.common.constant.RecStatus;
- import com.fdkankan.common.response.ResultData;
- import com.fdkankan.redis.constant.RedisKey;
- import com.fdkankan.redis.util.RedisUtil;
- import com.fdkankan.scene.bean.RequestSceneProV4;
- import com.fdkankan.scene.entity.SceneCooperation;
- import com.fdkankan.scene.entity.ScenePro;
- import com.fdkankan.scene.entity.SceneResource;
- import com.fdkankan.scene.entity.SceneResourceCooperation;
- import com.fdkankan.scene.mapper.ISceneProMapper;
- import com.fdkankan.scene.service.ISceneCooperationService;
- import com.fdkankan.scene.service.ISceneProService;
- import com.fdkankan.scene.service.ISceneResourceCooperationService;
- import com.fdkankan.scene.service.ISceneResourceService;
- import com.google.common.collect.Lists;
- import java.util.Date;
- import java.util.List;
- import java.util.Objects;
- import java.util.stream.Collectors;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- /**
- * <p>
- * pro场景表 服务实现类
- * </p>
- *
- * @author
- * @since 2022-07-04
- */
- @Service
- public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro> implements ISceneProService {
- @Autowired
- private ISceneCooperationService sceneCooperationService;
- @Autowired
- private RedisUtil redisUtil;
- @Autowired
- private ISceneResourceCooperationService sceneResourceCooperationService;
- @Autowired
- private ISceneResourceService sceneResourceService;
- @Override
- public ResultData upgradeToV4ResultSync(RequestSceneProV4 param) throws Exception {
- ScenePro scenePro = this.getById(param.getId());
- scenePro.setWebSite(param.getWebSite());
- scenePro.setIsUpgrade(1);
- this.updateById(scenePro);
- String num = scenePro.getNum();
- //如果场景有协作者,默认勾选上v4所有菜单
- SceneCooperation SceneCooperation = sceneCooperationService.getByNum(num);
- if(Objects.nonNull(SceneCooperation)){
- redisUtil.hset(RedisKey.SCENE_COOPERATION_NUM_USERID, num, SceneCooperation.getUserId() + "");
- //判断是否已经有了v4的菜单,如果已经有了,证明已经迁移过,不需要再初始化菜单资源
- List<SceneResourceCooperation> sceneResourceCooperationList = sceneResourceCooperationService.list(
- new LambdaQueryWrapper<SceneResourceCooperation>()
- .eq(SceneResourceCooperation::getSceneCooperationId, SceneCooperation.getId()));
- if(CollUtil.isNotEmpty(sceneResourceCooperationList)){
- List<Long> sceneSourceList = sceneResourceCooperationList.stream()
- .map(item -> item.getSceneResourceId()).collect(Collectors.toList());
- List<SceneResource> sceneResourceList
- = sceneResourceService.list(
- new LambdaQueryWrapper<SceneResource>()
- .eq(SceneResource::getVersion, "v4")
- .in(SceneResource::getId, sceneSourceList));
- if(CollUtil.isEmpty(sceneResourceList)){//如果查出来的这个场景的v4资源是空的,证明是第一次升级,需要初始化菜单资源
- sceneResourceList = sceneResourceService.list(
- new LambdaQueryWrapper<SceneResource>()
- .eq(SceneResource::getVersion, "v4"));// 查出所有的v4菜单,给这个场景的协作者初始化所有v4菜单资源
- if(CollUtil.isNotEmpty(sceneResourceList)){
- List<SceneResourceCooperation> list = Lists.newArrayList();
- SceneResourceCooperation sceneResourceCooperation = null;
- for (SceneResource sceneResource : sceneResourceList) {
- sceneResourceCooperation = new SceneResourceCooperation();
- sceneResourceCooperation.setSceneResourceId(sceneResource.getId());
- sceneResourceCooperation.setSceneCooperationId(SceneCooperation.getId());
- sceneResourceCooperation.setCreateTime(new Date());
- sceneResourceCooperation.setUpdateTime(new Date());
- sceneResourceCooperation.setRecStatus(RecStatus.VALID.code());
- list.add(sceneResourceCooperation);
- }
- sceneResourceCooperationService.saveBatch(list);
- }
- }
- }
- }
- return ResultData.ok();
- }
- }
|