Prechádzať zdrojové kódy

增加更新xspace功能

dengsixing 8 mesiacov pred
rodič
commit
5165ca55dd

+ 6 - 5
src/main/java/com/fdkankan/jp/xspace/controller/SceneXspaceController.java

@@ -6,11 +6,7 @@ import com.fdkankan.jp.xspace.common.Result;
 import com.fdkankan.jp.xspace.dto.XspacePageDTO;
 import com.fdkankan.jp.xspace.service.ISceneXspaceService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 
@@ -50,5 +46,10 @@ public class SceneXspaceController extends BaseController{
         return sceneXspaceService.sync(nums, this.getUser());
     }
 
+    @PostMapping("/updateSync")
+    public Result replaceSync(@RequestParam("id") Long id){
+        return sceneXspaceService.replaceSync(id, this.getUser());
+    }
+
 }
 

+ 0 - 7
src/main/java/com/fdkankan/jp/xspace/listener/RabbitMqListener.java

@@ -118,14 +118,7 @@ public class RabbitMqListener {
         try {
             if(bean.getStatus() == CommonSuccessStatus.FAIL.code()){
                 User user = userService.getById(bean.getUserId());
-                String errorLogPath = workPath + "error.log";
-                String errorLogKey = String.format(OSSPathConstant.XSPACE_SCENE_FORMAT, bean.getNum(), bean.getSerial()) + "log/error.log";
-                String logUrl = fYunFileConfig.getHost() + errorLogKey;
                 String extContent = null;
-//                if(FileUtil.exist(errorLogPath)){
-//                    fYunFileService.uploadFile(errorLogPath, errorLogKey);
-//                    extContent = "**error-log**: " + logUrl + "\n\n";
-//                }
                 String content = String.format(DINGTALK_MSG_PATTERN, profile, errorReason, bean.getNum(), user.getUserName(), workPath);
                 if(StrUtil.isNotEmpty(extContent)){
                     content = content + extContent;

+ 2 - 0
src/main/java/com/fdkankan/jp/xspace/service/ISceneXspaceService.java

@@ -27,4 +27,6 @@ public interface ISceneXspaceService extends IService<SceneXspace> {
 
     SceneXspace getByNumAndUserId(String num, long userId);
 
+    Result replaceSync(Long id, User user);
+
 }

+ 34 - 4
src/main/java/com/fdkankan/jp/xspace/service/impl/SceneXspaceServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.constant.CommonOperStatus;
 import com.fdkankan.common.constant.RecStatus;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.jp.xspace.common.PageInfo;
@@ -33,10 +34,7 @@ import org.springframework.cloud.context.config.annotation.RefreshScope;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -178,4 +176,36 @@ public class SceneXspaceServiceImpl extends ServiceImpl<ISceneXspaceMapper, Scen
     public SceneXspace getByNumAndUserId(String num, long userId) {
         return this.getOne(new LambdaQueryWrapper<SceneXspace>().eq(SceneXspace::getNum, num).eq(SceneXspace::getUserId, userId));
     }
+
+    @Override
+    public Result replaceSync(Long id,User user) {
+
+        SceneXspace sceneXspace = this.getById(id);
+        if(Objects.isNull(sceneXspace)){
+            throw new BusinessException(ResultCode.NOT_RECORD);
+        }
+
+        //校验数据
+        Set<Long> roleIds = userRoleService.getByUser(user);
+        boolean notPermission = false;
+        if(!roleIds.contains(5L)){//平台管理员可以看到所有
+            if(roleIds.contains(6L)){//公司管理员可以看到同一公司下所有
+                User sceneUser = userService.getById(sceneXspace.getId());
+                notPermission = !sceneUser.getCompanyId().equals(user.getCompanyId());
+            }else{//普通员工只能删除自己的
+                notPermission = !sceneXspace.getUserId().equals(user.getId());
+            }
+        }
+        if(notPermission){
+            return Result.failure(ResultCode.NOT_PERMISSION);
+        }
+
+        sceneXspace.setStatus(CommonOperStatus.WAITING.code());
+        sceneXspace.setUpdateTime(new Date());
+        this.updateById(sceneXspace);
+
+        mqProducer.sendByWorkQueue(RabbitmqConstant.QUEUE_PACK_XSPACE, sceneXspace);
+
+        return Result.success();
+    }
 }