dengsixing 3 سال پیش
والد
کامیت
901a4c0c78
30فایلهای تغییر یافته به همراه913 افزوده شده و 6 حذف شده
  1. 14 0
      src/main/java/com/fdkankan/scene/annotation/CheckCurrentUser.java
  2. 14 0
      src/main/java/com/fdkankan/scene/annotation/SystemControllerLog.java
  3. 14 0
      src/main/java/com/fdkankan/scene/annotation/SystemServiceLog.java
  4. 135 0
      src/main/java/com/fdkankan/scene/aop/CheckCurrenUserAspect.java
  5. 239 0
      src/main/java/com/fdkankan/scene/aop/SystemLogAspect.java
  6. 32 0
      src/main/java/com/fdkankan/scene/bean/RequestSceneCooperation.java
  7. 21 0
      src/main/java/com/fdkankan/scene/controller/LogController.java
  8. 13 0
      src/main/java/com/fdkankan/scene/controller/SceneController.java
  9. 5 2
      src/main/java/com/fdkankan/scene/controller/SceneCooperationController.java
  10. 54 0
      src/main/java/com/fdkankan/scene/controller/SceneEditController.java
  11. 99 0
      src/main/java/com/fdkankan/scene/entity/Log.java
  12. 2 0
      src/main/java/com/fdkankan/scene/entity/SceneEditControls.java
  13. 2 0
      src/main/java/com/fdkankan/scene/entity/SceneEditInfo.java
  14. 2 0
      src/main/java/com/fdkankan/scene/entity/SceneEditInfoExt.java
  15. 2 0
      src/main/java/com/fdkankan/scene/entity/ScenePlus.java
  16. 2 0
      src/main/java/com/fdkankan/scene/entity/ScenePlusExt.java
  17. 1 1
      src/main/java/com/fdkankan/scene/entity/SceneProEdit.java
  18. 2 0
      src/main/java/com/fdkankan/scene/entity/SceneRepairLog.java
  19. 1 1
      src/main/java/com/fdkankan/scene/entity/User.java
  20. 1 1
      src/main/java/com/fdkankan/scene/generate/AutoGenerate.java
  21. 18 0
      src/main/java/com/fdkankan/scene/mapper/ILogMapper.java
  22. 16 0
      src/main/java/com/fdkankan/scene/service/ILogService.java
  23. 2 0
      src/main/java/com/fdkankan/scene/service/ISceneProEditService.java
  24. 5 0
      src/main/java/com/fdkankan/scene/service/ISceneProService.java
  25. 4 0
      src/main/java/com/fdkankan/scene/service/ISceneService.java
  26. 20 0
      src/main/java/com/fdkankan/scene/service/impl/LogServiceImpl.java
  27. 5 0
      src/main/java/com/fdkankan/scene/service/impl/SceneProEditServiceImpl.java
  28. 152 0
      src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java
  29. 31 1
      src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java
  30. 5 0
      src/main/resources/mapper/scene/LogMapper.xml

+ 14 - 0
src/main/java/com/fdkankan/scene/annotation/CheckCurrentUser.java

@@ -0,0 +1,14 @@
+package com.fdkankan.scene.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.PARAMETER, ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface CheckCurrentUser {
+    String description() default "";
+}

+ 14 - 0
src/main/java/com/fdkankan/scene/annotation/SystemControllerLog.java

@@ -0,0 +1,14 @@
+package com.fdkankan.scene.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.PARAMETER, ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface SystemControllerLog {
+    String description() default "";
+}

+ 14 - 0
src/main/java/com/fdkankan/scene/annotation/SystemServiceLog.java

@@ -0,0 +1,14 @@
+package com.fdkankan.scene.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.PARAMETER, ElementType.METHOD})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface SystemServiceLog {
+    String description() default "";
+}

+ 135 - 0
src/main/java/com/fdkankan/scene/aop/CheckCurrenUserAspect.java

@@ -0,0 +1,135 @@
+package com.fdkankan.scene.aop;
+
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.model.SSOUser;
+import com.fdkankan.common.user.SSOLoginHelper;
+import com.fdkankan.scene.annotation.CheckCurrentUser;
+import com.fdkankan.scene.entity.Camera;
+import com.fdkankan.scene.entity.SceneCooperation;
+import com.fdkankan.scene.entity.ScenePro;
+import com.fdkankan.scene.service.ICameraService;
+import com.fdkankan.scene.service.ISceneCooperationService;
+import com.fdkankan.scene.service.ISceneProService;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.Objects;
+import javax.servlet.http.HttpServletRequest;
+import lombok.extern.log4j.Log4j2;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+/**
+ * 记录注册用户操作记录、异常记录
+ */
+@Log4j2
+@Aspect
+@Component
+@Order(2)
+public class CheckCurrenUserAspect {
+
+	@Autowired
+	private ISceneProService sceneProService;
+	@Autowired
+	private ICameraService cameraService;
+	@Autowired
+	private SSOLoginHelper ssoLoginHelper;
+
+	@Autowired
+	private ISceneCooperationService sceneCooperationService;
+
+	// Service层切点
+	@Pointcut("@annotation(com.fdkankan.scene.annotation.CheckCurrentUser)")
+	public void checkUserAspect() {
+	}
+
+	/**
+	 * 前置通知 用于拦截Controller层记录用户的操作
+	 *
+	 * @param joinPoint
+	 *            切点
+	 * @throws IOException
+	 */
+	@Before("checkUserAspect()")
+	public void doBefore(JoinPoint joinPoint) throws Exception {
+		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
+				.getRequest();
+		// 读取session中的用户
+		SSOUser user = ssoLoginHelper.loginCheckV3(request.getHeader("token"));
+		String sceneNum = request.getParameter("sceneNum");
+
+		ScenePro entity = sceneProService.findBySceneNum(sceneNum);
+		if(user == null){
+			log.info(getCheckUserMthodDescription(joinPoint));
+			log.info("不是当前用户的方法:"
+					+ (joinPoint.getTarget().getClass().getName() + "." + joinPoint.getSignature().getName() + "()"));
+			throw new BusinessException(ErrorCode.FAILURE_CODE_5014);
+		}
+
+		if("18750226207".equals(user.getUserName())){
+			log.info("18750226207该账号默认超级管理员,可以操作所有场景");
+			return;
+		}
+
+		if(user.getId() == null){
+			Camera cameraEntity = cameraService.findByChildName(user.getUserName());
+			if((cameraEntity != null && entity != null) && (cameraEntity.getId().longValue() != entity.getCameraId().longValue())){
+				log.info(getCheckUserMthodDescription(joinPoint));
+				log.info("不是当前用户的方法:"
+						+ (joinPoint.getTarget().getClass().getName() + "." + joinPoint.getSignature().getName() + "()"));
+				throw new BusinessException(ErrorCode.FAILURE_CODE_5014);
+			}
+		}
+		else if((user != null && entity != null) && entity.getUserId() != null && (user.getId().longValue() != entity.getUserId().longValue())){
+			SceneCooperation sceneCooperation = sceneCooperationService.getByNum(sceneNum);
+			if(Objects.nonNull(sceneCooperation)){
+				if(sceneCooperation.getUserId().longValue() != user.getId().longValue()){
+					log.info(getCheckUserMthodDescription(joinPoint));
+					log.info("不是当前用户的方法:"
+							+ (joinPoint.getTarget().getClass().getName() + "." + joinPoint.getSignature().getName() + "()"));
+					throw new BusinessException(ErrorCode.FAILURE_CODE_5014);
+				}
+			}else {
+				log.info(getCheckUserMthodDescription(joinPoint));
+				log.info("不是当前用户的方法:"
+						+ (joinPoint.getTarget().getClass().getName() + "." + joinPoint.getSignature().getName() + "()"));
+				throw new BusinessException(ErrorCode.FAILURE_CODE_5014);
+			}
+		}
+
+	}
+
+	/**
+	 * 获取注解中对方法的描述信息
+	 *
+	 * @param joinPoint
+	 *            切点
+	 * @return 方法描述
+	 * @throws Exception
+	 */
+	public static String getCheckUserMthodDescription(JoinPoint joinPoint) throws Exception {
+		String targetName = joinPoint.getTarget().getClass().getName();
+		String methodName = joinPoint.getSignature().getName();
+		Object[] arguments = joinPoint.getArgs();
+		Class targetClass = Class.forName(targetName);
+		Method[] methods = targetClass.getMethods();
+		String description = "";
+		for (Method method : methods) {
+			if (method.getName().equals(methodName)) {
+				Class[] clazzs = method.getParameterTypes();
+				if (clazzs.length == arguments.length) {
+					description = method.getAnnotation(CheckCurrentUser.class).description();
+					break;
+				}
+			}
+		}
+		return description;
+	}
+}

+ 239 - 0
src/main/java/com/fdkankan/scene/aop/SystemLogAspect.java

@@ -0,0 +1,239 @@
+package com.fdkankan.scene.aop;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.model.SSOUser;
+import com.fdkankan.common.user.SSOLoginHelper;
+import com.fdkankan.scene.annotation.SystemControllerLog;
+import com.fdkankan.scene.annotation.SystemServiceLog;
+import com.fdkankan.scene.entity.Log;
+import com.fdkankan.scene.service.ILogService;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.Date;
+import java.util.Enumeration;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import lombok.extern.log4j.Log4j2;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterThrowing;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+/**
+ * 记录注册用户操作记录、异常记录
+ */
+@Log4j2
+@Aspect
+@Component
+@Order(2)
+public class SystemLogAspect {
+
+	@Resource
+	private ILogService logService;
+	@Autowired
+    private SSOLoginHelper ssoLoginHelper;
+
+	// Service层切点
+	@Pointcut("@annotation(com.fdkankan.scene.annotation.SystemServiceLog)")
+	public void serviceAspect() {
+	}
+
+	// Controller层切点
+	@Pointcut("@annotation(com.fdkankan.scene.annotation.SystemControllerLog)")
+	public void controllerAspect() {
+	}
+
+	/**
+	 * 异常通知 用于拦截service层记录异常日志
+	 *
+	 * @param joinPoint
+	 * @param e
+	 */
+	@AfterThrowing(pointcut = "serviceAspect()", throwing = "e")
+	public void doAfterThrowing(JoinPoint joinPoint, Throwable e) {
+		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
+				.getRequest();
+		HttpSession session = request.getSession();
+		// 读取session中的用户
+		SSOUser user = ssoLoginHelper.loginCheckV3(request.getHeader("token"));
+		// 获取请求ip
+		String ip = request.getRemoteAddr();
+		// 获取用户请求方法的参数并序列化为JSON格式字符串
+		String params = "";
+		JSONObject jsonObject = new JSONObject();
+		for(Object obj : joinPoint.getArgs()){
+			if(obj instanceof HttpServletRequest){
+				Enumeration enu = ((HttpServletRequest)obj).getParameterNames();
+				while(enu.hasMoreElements()){
+					String paraName=(String)enu.nextElement();
+					jsonObject.put(paraName, request.getParameter(paraName));
+					params = jsonObject.toString();
+				}
+			}else {
+				if("".equals(params)){
+					params = obj.toString();
+				}
+			}
+		}
+		try {
+			/* ========控制台输出========= */
+			log.info("=====异常通知开始=====");
+			log.info("异常代码:" + e.getClass().getName());
+			log.info("异常信息:" + e.getMessage());
+			log.info("异常方法:"
+					+ (joinPoint.getTarget().getClass().getName() + "." + joinPoint.getSignature().getName() + "()"));
+			log.info("方法描述:" + getServiceMthodDescription(joinPoint));
+			log.info("请求人:" + (user == null ? "" : user.getUserName()));
+			log.info("请求IP:" + ip);
+			log.info("请求参数:" + params);
+
+			/* ==========数据库日志========= */
+			Log logEntity = new Log();
+			logEntity.setDescription(getServiceMthodDescription(joinPoint));
+			logEntity.setExceptionCode(e.getClass().getName());
+			logEntity.setType("1");
+			logEntity.setExceptionDetail(e.getMessage());
+			logEntity.setMethod(
+					(joinPoint.getTarget().getClass().getName() + "." + joinPoint.getSignature().getName() + "()"));
+			logEntity.setParams(params);
+			logEntity.setCreateBy(user == null ? null : user.getId());
+			logEntity.setCreateTime(new Date());
+			logEntity.setRequestIp(ip);
+			// 保存数据库
+			logService.save(logEntity);
+			log.info("=====异常通知结束=====");
+		} catch (Exception ex) {
+			// 记录本地异常日志
+			log.error("==异常通知异常==");
+			log.error("异常信息:{}", ex.getMessage());
+		}
+		/* ==========记录本地异常日志========== */
+		log.error("异常方法:{}异常代码:{}异常信息:{}参数:{}",
+				joinPoint.getTarget().getClass().getName() + joinPoint.getSignature().getName(), e.getClass().getName(),
+				e.getMessage(), params);
+
+	}
+
+	/**
+	 * 前置通知 用于拦截Controller层记录用户的操作
+	 *
+	 * @param joinPoint
+	 *            切点
+	 * @throws IOException
+	 */
+	@Before("controllerAspect()")
+	public void doBefore(JoinPoint joinPoint) throws IOException {
+		HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
+				.getRequest();
+		HttpSession session = request.getSession();
+		// 读取session中的用户
+		SSOUser user = ssoLoginHelper.loginCheckV3(request.getHeader("token"));
+		// 请求的IP
+		String ip = request.getRemoteAddr();
+		String params = "";
+		JSONObject jsonObject = new JSONObject();
+		try {
+			// *========控制台输出=========*//
+			log.info("=====前置通知开始=====");
+			log.info("请求方法:"
+					+ (joinPoint.getTarget().getClass().getName() + "." + joinPoint.getSignature().getName() + "()"));
+			log.info("方法描述:" + getControllerMethodDescription(joinPoint));
+			log.info("请求人:" + (user == null ? "" : user.getUserName()));
+			log.info("请求IP:" + ip);
+			for(Object obj : joinPoint.getArgs()){
+				if(obj instanceof HttpServletRequest){
+					Enumeration enu = ((HttpServletRequest)obj).getParameterNames();
+					while(enu.hasMoreElements()){
+						String paraName=(String)enu.nextElement();
+						jsonObject.put(paraName, request.getParameter(paraName));
+						params = jsonObject.toString();
+					}
+				}else {
+					if("".equals(params)){
+						params = obj.toString();
+					}
+				}
+			}
+			// *========数据库日志=========*//
+			Log logEntity = new Log();
+			logEntity.setDescription(getControllerMethodDescription(joinPoint));
+			logEntity.setMethod(
+					(joinPoint.getTarget().getClass().getName() + "." + joinPoint.getSignature().getName() + "()"));
+			logEntity.setType("0");
+			logEntity.setRequestIp(ip);
+			logEntity.setExceptionCode(null);
+			logEntity.setExceptionDetail(null);
+			logEntity.setParams(params);
+			logEntity.setCreateBy(user == null ? null : user.getId());
+			logEntity.setCreateTime(new Date());
+			// 保存数据库
+			logService.save(logEntity);
+			log.info("=====前置通知结束=====");
+		} catch (Exception e) {
+			// 记录本地异常日志
+			log.error("==前置通知异常==");
+			log.error("异常信息:{}", e.getMessage());
+		}
+	}
+
+	/**
+	 * 获取注解中对方法的描述信息 用于service层注解
+	 *
+	 * @param joinPoint
+	 *            切点
+	 * @return 方法描述
+	 * @throws Exception
+	 */
+	public static String getServiceMthodDescription(JoinPoint joinPoint) throws Exception {
+		String targetName = joinPoint.getTarget().getClass().getName();
+		String methodName = joinPoint.getSignature().getName();
+		Object[] arguments = joinPoint.getArgs();
+		Class targetClass = Class.forName(targetName);
+		Method[] methods = targetClass.getMethods();
+		String description = "";
+		for (Method method : methods) {
+			if (method.getName().equals(methodName)) {
+				Class[] clazzs = method.getParameterTypes();
+				if (clazzs.length == arguments.length) {
+					description = method.getAnnotation(SystemServiceLog.class).description();
+					break;
+				}
+			}
+		}
+		return description;
+	}
+
+	/**
+	 * 获取注解中对方法的描述信息 用于Controller层注解
+	 *
+	 * @param joinPoint
+	 *            切点
+	 * @return 方法描述
+	 * @throws Exception
+	 */
+	public static String getControllerMethodDescription(JoinPoint joinPoint) throws Exception {
+		String targetName = joinPoint.getTarget().getClass().getName();
+		String methodName = joinPoint.getSignature().getName();
+		Object[] arguments = joinPoint.getArgs();
+		Class targetClass = Class.forName(targetName);
+		Method[] methods = targetClass.getMethods();
+		String description = "";
+		for (Method method : methods) {
+			if (method.getName().equals(methodName)) {
+				Class[] clazzs = method.getParameterTypes();
+				if (clazzs.length == arguments.length) {
+					description = method.getAnnotation(SystemControllerLog.class).description();
+					break;
+				}
+			}
+		}
+		return description;
+	}
+}

+ 32 - 0
src/main/java/com/fdkankan/scene/bean/RequestSceneCooperation.java

@@ -0,0 +1,32 @@
+package com.fdkankan.scene.bean;
+
+import java.util.List;
+import lombok.Data;
+
+/**
+ * Created by Hb_zzZ on 2020/7/21.
+ */
+@Data
+public class RequestSceneCooperation {
+
+    private Long id;
+
+    private String sceneNum;
+
+    private Long userId;
+
+    private String userName;
+
+    private String resourceIds;
+
+    private Long cameraId;
+
+    /**
+     * 协作类型(1-场景协作,2-相机协作),为空时,默认为相机
+     */
+    private Integer type;
+
+    private List<String> numList;
+
+    private List<Long> cameraIdList;
+}

+ 21 - 0
src/main/java/com/fdkankan/scene/controller/LogController.java

@@ -0,0 +1,21 @@
+package com.fdkankan.scene.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 异常日志表 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-05
+ */
+@RestController
+@RequestMapping("/scene/log")
+public class LogController {
+
+}
+

+ 13 - 0
src/main/java/com/fdkankan/scene/controller/SceneController.java

@@ -3,11 +3,15 @@ package com.fdkankan.scene.controller;
 import com.fdkankan.common.controller.BaseController;
 import com.fdkankan.common.model.SSOUser;
 import com.fdkankan.common.response.ResultData;
+import com.fdkankan.common.util.JwtUtil;
+import com.fdkankan.scene.bean.RequestSceneCooperation;
 import com.fdkankan.scene.service.ISceneService;
 import lombok.extern.slf4j.Slf4j;
 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.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -130,5 +134,14 @@ public class SceneController extends BaseController {
         return sceneService.isLogin(num, this.getSsoUserV3());
     }
 
+    /**
+     * 协作者根据场景码获取场景资源集合
+     * @return
+     */
+    @RequestMapping(value = "/sceneResourceBySceneNum", method = RequestMethod.POST)
+    public ResultData sceneResourceBySceneNum(@RequestBody RequestSceneCooperation cooperation) throws Exception{
+        return sceneService.sceneResourceBySceneNum(cooperation, this.getSsoUserV3());
+    }
+
 
 }

+ 5 - 2
src/main/java/com/fdkankan/scene/controller/SceneCooperationController.java

@@ -1,8 +1,12 @@
 package com.fdkankan.scene.controller;
 
 
+import com.fdkankan.common.model.SSOUser;
+import com.fdkankan.common.util.JwtUtil;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
@@ -14,8 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2022-07-04
  */
 @RestController
-@RequestMapping("/scene/sceneCooperation")
+@RequestMapping("/api/user/scene/cooperation")
 public class SceneCooperationController {
-
 }
 

+ 54 - 0
src/main/java/com/fdkankan/scene/controller/SceneEditController.java

@@ -0,0 +1,54 @@
+package com.fdkankan.scene.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.common.constant.ConstantFilePath;
+import com.fdkankan.common.controller.BaseController;
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.common.util.FileUtils;
+import com.fdkankan.scene.annotation.CheckCurrentUser;
+import com.fdkankan.scene.annotation.SystemControllerLog;
+import com.fdkankan.scene.service.ISceneProService;
+import java.io.File;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@Slf4j
+@RestController
+@RequestMapping("/api/scene/edit")
+public class SceneEditController extends BaseController {
+
+    @Autowired
+    private ISceneProService sceneProService;
+
+    /**
+     * 修改logoBottom状态
+     * @param
+     * @return
+     */
+    @CheckCurrentUser(description = "修改logoBottom状态")
+    @RequestMapping(value = "/uploadLogoBottomStatus", method = RequestMethod.POST)
+    public ResultData uploadLogoBottomStatus(@RequestParam("sceneNum") String sceneNum,
+        @RequestParam("status") String status) throws Exception {
+        return sceneProService.uploadLogoBottomStatus(sceneNum, status);
+    }
+
+    /**
+     * 肖安需求,下载场景obj和贴图
+     */
+    @CheckCurrentUser(description = "检验视频网站url是否正确")
+    @SystemControllerLog(description = "下载obj和贴图")
+    @RequestMapping(value = "/downloadTexData")
+    public ResultData downloadTexData(@RequestParam("sceneNum")String sceneNum) throws Exception {
+        return sceneProService.downloadTexData(sceneNum);
+    }
+
+
+}

+ 99 - 0
src/main/java/com/fdkankan/scene/entity/Log.java

@@ -0,0 +1,99 @@
+package com.fdkankan.scene.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 异常日志表
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-05
+ */
+@Getter
+@Setter
+@TableName("t_log")
+public class Log implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 描述
+     */
+    @TableField("description")
+    private String description;
+
+    /**
+     * 类名
+     */
+    @TableField("exception_code")
+    private String exceptionCode;
+
+    /**
+     * 0:controller, 1:service
+     */
+    @TableField("type")
+    private String type;
+
+    /**
+     * 错误描述
+     */
+    @TableField("exception_detail")
+    private String exceptionDetail;
+
+    /**
+     * 方法
+     */
+    @TableField("method")
+    private String method;
+
+    /**
+     * 参数
+     */
+    @TableField("params")
+    private String params;
+
+    @TableField("request_ip")
+    private String requestIp;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time")
+    private Date createTime;
+
+    /**
+     * 记录的状态,A: 生效,I: 禁用
+     */
+    @TableField("rec_status")
+    @TableLogic("A")
+    private String recStatus;
+
+    /**
+     * 更新时间
+     */
+    @TableField("update_time")
+    private Date updateTime;
+
+    /**
+     * 修改人
+     */
+    @TableField("create_by")
+    private Long createBy;
+
+
+}

+ 2 - 0
src/main/java/com/fdkankan/scene/entity/SceneEditControls.java

@@ -3,6 +3,7 @@ package com.fdkankan.scene.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.util.Date;
@@ -106,6 +107,7 @@ public class SceneEditControls implements Serializable {
      * 0-有效,1-删除, 2-禁用
      */
     @TableField("tb_status")
+    @TableLogic
     private Integer tbStatus;
 
 

+ 2 - 0
src/main/java/com/fdkankan/scene/entity/SceneEditInfo.java

@@ -3,6 +3,7 @@ package com.fdkankan.scene.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.util.Date;
@@ -163,6 +164,7 @@ public class SceneEditInfo implements Serializable {
      * 0-有效,1-删除, 2-禁用
      */
     @TableField("tb_status")
+    @TableLogic
     private Integer tbStatus;
 
 

+ 2 - 0
src/main/java/com/fdkankan/scene/entity/SceneEditInfoExt.java

@@ -3,6 +3,7 @@ package com.fdkankan.scene.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.util.Date;
@@ -70,6 +71,7 @@ public class SceneEditInfoExt implements Serializable {
      * 0-有效,1-删除, 2-禁用
      */
     @TableField("tb_status")
+    @TableLogic
     private Integer tbStatus;
 
 

+ 2 - 0
src/main/java/com/fdkankan/scene/entity/ScenePlus.java

@@ -3,6 +3,7 @@ package com.fdkankan.scene.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.util.Date;
@@ -109,6 +110,7 @@ public class ScenePlus implements Serializable {
      * 0-有效,1-删除, 2-禁用
      */
     @TableField("tb_status")
+    @TableLogic
     private Integer tbStatus;
 
 

+ 2 - 0
src/main/java/com/fdkankan/scene/entity/ScenePlusExt.java

@@ -3,6 +3,7 @@ package com.fdkankan.scene.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.util.Date;
@@ -151,6 +152,7 @@ public class ScenePlusExt implements Serializable {
      * 0-有效,1-删除, 2-禁用
      */
     @TableField("tb_status")
+    @TableLogic
     private Integer tbStatus;
 
 

+ 1 - 1
src/main/java/com/fdkankan/scene/entity/SceneProEdit.java

@@ -234,7 +234,7 @@ public class SceneProEdit implements Serializable {
      * 是否显示底部logo,1显示,0不显示
      */
     @TableField("show_logo_bottom")
-    private Boolean showLogoBottom;
+    private Integer showLogoBottom;
 
     /**
      * 全景图版本号

+ 2 - 0
src/main/java/com/fdkankan/scene/entity/SceneRepairLog.java

@@ -3,6 +3,7 @@ package com.fdkankan.scene.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.util.Date;
@@ -67,6 +68,7 @@ public class SceneRepairLog implements Serializable {
      * 0-有效,1-删除, 2-禁用
      */
     @TableField("tb_status")
+    @TableLogic
     private Integer tbStatus;
 
 

+ 1 - 1
src/main/java/com/fdkankan/scene/entity/User.java

@@ -128,7 +128,7 @@ public class User implements Serializable {
      * 记录的状态,A: 生效,I: 禁用
      */
     @TableField("rec_status")
-    @TableLogic
+    @TableLogic("A")
     private String recStatus;
 
     /**

+ 1 - 1
src/main/java/com/fdkankan/scene/generate/AutoGenerate.java

@@ -20,7 +20,7 @@ public class AutoGenerate {
         String path =System.getProperty("user.dir");
 
         generate(path,"scene", getTables(new String[]{
-                "t_user",
+                "t_log",
         }));
 
 //        generate(path,"goods", getTables(new String[]{

+ 18 - 0
src/main/java/com/fdkankan/scene/mapper/ILogMapper.java

@@ -0,0 +1,18 @@
+package com.fdkankan.scene.mapper;
+
+import com.fdkankan.scene.entity.Log;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 异常日志表 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-05
+ */
+@Mapper
+public interface ILogMapper extends BaseMapper<Log> {
+
+}

+ 16 - 0
src/main/java/com/fdkankan/scene/service/ILogService.java

@@ -0,0 +1,16 @@
+package com.fdkankan.scene.service;
+
+import com.fdkankan.scene.entity.Log;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 异常日志表 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-05
+ */
+public interface ILogService extends IService<Log> {
+
+}

+ 2 - 0
src/main/java/com/fdkankan/scene/service/ISceneProEditService.java

@@ -13,4 +13,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ISceneProEditService extends IService<SceneProEdit> {
 
+    SceneProEdit findBySceneProId(long sceneProId);
+
 }

+ 5 - 0
src/main/java/com/fdkankan/scene/service/ISceneProService.java

@@ -5,6 +5,7 @@ import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.bean.RequestSceneProV4;
 import com.fdkankan.scene.entity.ScenePro;
 import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
  * <p>
@@ -20,4 +21,8 @@ public interface ISceneProService extends IService<ScenePro> {
 
     ScenePro findBySceneNum(String num);
 
+    ResultData uploadLogoBottomStatus(String sceneNum, String status) throws Exception;
+
+    ResultData downloadTexData(String sceneNum) throws Exception;
+
 }

+ 4 - 0
src/main/java/com/fdkankan/scene/service/ISceneService.java

@@ -2,7 +2,9 @@ package com.fdkankan.scene.service;
 
 import com.fdkankan.common.model.SSOUser;
 import com.fdkankan.common.response.ResultData;
+import com.fdkankan.scene.bean.RequestSceneCooperation;
 import javax.servlet.http.HttpServletRequest;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * <p>
@@ -16,4 +18,6 @@ public interface ISceneService {
 
     ResultData isLogin(String num, SSOUser ssoUser) throws Exception;
 
+    ResultData sceneResourceBySceneNum(RequestSceneCooperation cooperation, SSOUser ssoUser) throws Exception;
+
 }

+ 20 - 0
src/main/java/com/fdkankan/scene/service/impl/LogServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fdkankan.scene.service.impl;
+
+import com.fdkankan.scene.entity.Log;
+import com.fdkankan.scene.mapper.ILogMapper;
+import com.fdkankan.scene.service.ILogService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 异常日志表 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2022-07-05
+ */
+@Service
+public class LogServiceImpl extends ServiceImpl<ILogMapper, Log> implements ILogService {
+
+}

+ 5 - 0
src/main/java/com/fdkankan/scene/service/impl/SceneProEditServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fdkankan.scene.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.scene.entity.SceneProEdit;
 import com.fdkankan.scene.mapper.ISceneProEditMapper;
 import com.fdkankan.scene.service.ISceneProEditService;
@@ -17,4 +18,8 @@ import org.springframework.stereotype.Service;
 @Service
 public class SceneProEditServiceImpl extends ServiceImpl<ISceneProEditMapper, SceneProEdit> implements ISceneProEditService {
 
+    @Override
+    public SceneProEdit findBySceneProId(long sceneProId) {
+        return this.getOne(new LambdaQueryWrapper<SceneProEdit>().eq(SceneProEdit::getProId, sceneProId));
+    }
 }

+ 152 - 0
src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -1,29 +1,40 @@
 package com.fdkankan.scene.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.constant.ConstantFilePath;
+import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.RecStatus;
+import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
+import com.fdkankan.common.util.CreateObjUtil;
+import com.fdkankan.common.util.FileUtils;
 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.SceneProEdit;
 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.ISceneProEditService;
 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.io.File;
 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.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
 /**
  * <p>
@@ -44,6 +55,10 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     private ISceneResourceCooperationService sceneResourceCooperationService;
     @Autowired
     private ISceneResourceService sceneResourceService;
+    @Autowired
+    private ISceneProEditService sceneProEditService;
+    @Value("${main.url}")
+    private String mainUrl;
 
     @Override
     public ResultData upgradeToV4ResultSync(RequestSceneProV4 param) throws Exception {
@@ -102,4 +117,141 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     public ScenePro findBySceneNum(String num) {
         return this.getOne(new LambdaQueryWrapper<ScenePro>().eq(ScenePro::getNum, num));
     }
+
+
+    @Override
+    public ResultData uploadLogoBottomStatus(String sceneNum, String status) throws Exception {
+
+        ScenePro sceneProEntity = this.findBySceneNum(sceneNum);
+        if(sceneProEntity == null){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+
+        SceneProEdit sceneProEditEntity = sceneProEditService.findBySceneProId(sceneProEntity.getId());
+        if(sceneProEditEntity == null){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+
+        StringBuffer dataBuf = new StringBuffer()
+            .append("data").append(File.separator)
+            .append("data").append(sceneProEntity.getNum())
+            .append(File.separator);
+        StringBuffer imagesBuf = new StringBuffer()
+            .append("images").append(File.separator)
+            .append("images").append(sceneProEntity.getNum())
+            .append(File.separator);
+
+        StringBuffer imagesBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(imagesBuf.toString());
+        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
+
+        String strsceneInfos = FileUtils.readFile(dataBuffer.toString() + "scene.json");
+        JSONObject scenejson = new JSONObject();
+        if(strsceneInfos!=null) {
+            scenejson = JSONObject.parseObject(strsceneInfos);
+        }
+
+
+        scenejson.put("showLogoBottom", Integer.valueOf(status));
+        scenejson.put("version", scenejson.getIntValue("version") + 1);
+        FileUtils.writeFile(dataBuffer.toString() + "scene.json", scenejson.toString());
+
+        sceneProEditEntity.setVersion(scenejson.getIntValue("version") + 1);
+        sceneProEditEntity.setShowLogoBottom(Integer.valueOf(status));
+        sceneProEditService.updateById(sceneProEditEntity);
+        return ResultData.ok();
+    }
+
+    @Override
+    public ResultData downloadTexData(String sceneNum) throws Exception {
+        ScenePro sceneProEntity = this.findBySceneNum(sceneNum);
+        if(sceneProEntity == null){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
+        }
+
+        if(!new File(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum).exists()){
+            new File(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum).mkdirs();
+        }
+
+        //上传过的资源
+        StringBuffer dataBuf = new StringBuffer()
+            .append("data").append(File.separator)
+            .append("data").append(sceneProEntity.getNum())
+            .append(File.separator);
+
+        StringBuffer dataBuffer = new StringBuffer(ConstantFilePath.SCENE_PATH).append(dataBuf.toString());
+        String strsceneInfos = FileUtils.readFile(dataBuffer.toString() + "scene.json");
+        JSONObject scenejson = new JSONObject();
+        if(strsceneInfos!=null) {
+            scenejson = JSONObject.parseObject(strsceneInfos);
+        }
+
+        String newData =  sceneProEntity.getDataSource() + "_obj2txt/extras";
+        String newResultData = sceneProEntity.getDataSource() + "_obj2txt/results/upload.json";
+        if(scenejson.containsKey("isUploadObj") && new File(newData).exists() && new File(newResultData).exists()){
+            FileUtils.zipFile(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/" + sceneNum + ".zip", newData);
+            return ResultData.ok(mainUrl + "scene/images/images" + sceneNum + "/" + sceneNum + ".zip?t=" +System.currentTimeMillis());
+        }
+
+        String buildType = sceneProEntity.getBuildType();
+        if("V3".equals(buildType)){
+            //V3版本去oss下载2048模型
+            String meshPath = ConstantFilePath.SCENE_PATH + "data/data" + sceneNum + "/mesh";
+            FileUtils.deleteDirectory(meshPath);
+            CreateObjUtil.ossUtilCp("data/data" + sceneNum + "/mesh", meshPath);
+            if(new File(meshPath.concat("/mesh")).listFiles().length > 0){
+                for(File file : new File(meshPath.concat("/mesh")).listFiles()){
+                    if(file.getName().endsWith(".obj") && !"output.house.obj".equals(file.getName()) &&
+                        !"mesh.obj".equals(file.getName())){
+                        file.delete();
+                    }
+                    if(file.getName().endsWith(".mtl") && !"output.house.mtl".equals(file.getName()) &&
+                        !"mesh.mtl".equals(file.getName())){
+                        file.delete();
+                    }
+                }
+                FileUtils.zipFile(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/" + sceneNum + ".zip", meshPath);
+                return ResultData.ok(mainUrl + "scene/images/images" + sceneNum + "/" + sceneNum + ".zip?t=" +System.currentTimeMillis());
+            }
+        }
+
+        //V2版本在本地获取模型资源
+        //修改过的资源
+        String editData =  sceneProEntity.getDataSource() + "_edit/caches/tex";
+        String resultData = sceneProEntity.getDataSource() + "_edit/results";
+        if (new File(editData).exists() && new File(resultData).exists()){
+            for(File file : new File(editData).listFiles()){
+                if(file.getName().endsWith(".obj") && !"output.house.obj".equals(file.getName()) &&
+                    !"mesh.obj".equals(file.getName())){
+                    file.delete();
+                }
+                if(file.getName().endsWith(".mtl") && !"output.house.mtl".equals(file.getName()) &&
+                    !"mesh.mtl".equals(file.getName())){
+                    file.delete();
+                }
+            }
+
+            FileUtils.zipFile(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/" + sceneNum + ".zip", editData);
+            return ResultData.ok(mainUrl + "scene/images/images" + sceneNum + "/" + sceneNum + ".zip?t=" +System.currentTimeMillis());
+        }
+
+        //没上传过返回源资源
+        String dataPath = sceneProEntity.getDataSource() + "/caches/tex";
+        File dataFile = new File(dataPath);
+        if(!dataFile.exists()){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3018);
+        }
+        for(File file : dataFile.listFiles()){
+            if(file.getName().endsWith(".obj") && !"output.house.obj".equals(file.getName()) &&
+                !"mesh.obj".equals(file.getName())){
+                file.delete();
+            }
+            if(file.getName().endsWith(".mtl") && !"output.house.mtl".equals(file.getName()) &&
+                !"mesh.mtl".equals(file.getName())){
+                file.delete();
+            }
+        }
+
+        FileUtils.zipFile(ConstantFilePath.SCENE_PATH + "images/images" + sceneNum + "/" + sceneNum + ".zip", dataPath);
+        return ResultData.ok(mainUrl + "scene/images/images" + sceneNum + "/" + sceneNum + ".zip?t=" +System.currentTimeMillis());
+    }
 }

+ 31 - 1
src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java

@@ -10,6 +10,7 @@ import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.user.SSOLoginHelper;
 import com.fdkankan.common.util.DateUtil;
 import com.fdkankan.common.util.JwtUtil;
+import com.fdkankan.scene.bean.RequestSceneCooperation;
 import com.fdkankan.scene.entity.Camera;
 import com.fdkankan.scene.entity.CameraDetail;
 import com.fdkankan.scene.entity.SceneCooperation;
@@ -61,7 +62,7 @@ public class SceneServiceImpl implements ISceneService {
     @Autowired
     private ISceneResourceService sceneResourceService;
 
-    @Value("${expected.time}")
+    @Value("${expected-time}")
     private String expectedTime;
 
     @Override
@@ -201,4 +202,33 @@ public class SceneServiceImpl implements ISceneService {
 
         return ResultData.ok();
     }
+
+    @Override
+    public ResultData sceneResourceBySceneNum(RequestSceneCooperation cooperation, SSOUser ssoUser) throws Exception {
+
+        if(StrUtil.isEmpty(cooperation.getSceneNum())){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_3001);
+        }
+
+        // 解密获得username,用于和数据库进行对比
+        String username = ssoUser.getUserName();
+
+        Camera cameraEntity = cameraService.findByChildName(username);
+        if(cameraEntity != null){
+            return ResultData.ok();
+        }
+
+        SceneCooperation sceneCooperation = sceneCooperationService.getByNum(cooperation.getSceneNum());
+        //若数据为空表示可操作全部资源
+        if(sceneCooperation == null || sceneCooperation.getUserId().longValue() != ssoUser.getId().longValue()){
+            return ResultData.ok();
+        }
+
+        ScenePro scenePro = sceneProService.findBySceneNum(cooperation.getSceneNum());
+        if(scenePro != null && scenePro.getUserId() == sceneCooperation.getUserId().longValue()){
+            return ResultData.ok();
+        }
+
+        return ResultData.ok(sceneResourceService.findByCooperationId(sceneCooperation.getId()));
+    }
 }

+ 5 - 0
src/main/resources/mapper/scene/LogMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fdkankan.scene.mapper.ILogMapper">
+
+</mapper>