dsx 2 年之前
父节点
当前提交
a655bd529a

+ 56 - 0
src/main/java/com/fdkankan/openApi/controller/BaseController.java

@@ -0,0 +1,56 @@
+package com.fdkankan.openApi.controller;
+
+import cn.hutool.core.util.StrUtil;
+import com.fdkankan.common.constant.ErrorCode;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.util.DateEditor;
+import com.fdkankan.openApi.entity.system.UserAuthInfo;
+import com.fdkankan.openApi.service.system.IUserAuthService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.propertyeditors.StringTrimmerEditor;
+import org.springframework.web.bind.WebDataBinder;
+import org.springframework.web.bind.annotation.InitBinder;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+import java.util.Objects;
+
+public class BaseController {
+    @Autowired
+    protected HttpServletRequest request;
+
+    @Autowired
+    protected HttpServletResponse response;
+
+    @Autowired
+    protected IUserAuthService userAuthService;
+
+    @InitBinder
+    protected void initBinder(WebDataBinder webDataBinder) {
+        webDataBinder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
+        webDataBinder.registerCustomEditor(Date.class, new DateEditor(true));
+    }
+
+    protected String getAuthorization(){
+        String authorization = request.getHeader("Authorization");
+        if(StrUtil.isEmpty(authorization)){
+            throw new BusinessException(ErrorCode.APP_KEY_IS_NULL);
+        }
+        return authorization;
+    }
+
+    protected UserAuthInfo getUserAuthInfo(){
+        String authorization = this.getAuthorization();
+        UserAuthInfo userAuthInfo = userAuthService.findByAppKey(this.getAuthorization());
+        if(Objects.isNull(userAuthInfo)){
+            throw new BusinessException(ErrorCode.APP_KEY_ILLEGAL);
+        }
+        return userAuthInfo;
+    }
+
+    protected Long getUserId(){
+        return this.getUserAuthInfo().getUserId();
+    }
+
+}

+ 2 - 4
src/main/java/com/fdkankan/openApi/controller/TestController.java

@@ -2,13 +2,11 @@ package com.fdkankan.openApi.controller;
 
 import cn.dev33.satoken.annotation.SaCheckLogin;
 import cn.dev33.satoken.annotation.SaIgnore;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fdkankan.openApi.component.LocalOverCache;
 import com.fdkankan.openApi.component.ValidateApi;
 import com.fdkankan.openApi.entity.laser.SceneEntity;
 import com.fdkankan.openApi.entity.system.UserAuthInfo;
 import com.fdkankan.openApi.entity.system.Users;
-import com.fdkankan.openApi.entity.www.User;
 import com.fdkankan.openApi.service.laser.SceneService;
 import com.fdkankan.openApi.service.system.IUserAuthService;
 import com.fdkankan.openApi.service.system.IUsersService;
@@ -63,7 +61,7 @@ public class TestController extends BaseController {
 
     @GetMapping("/bindUser")
     @SaIgnore
-    public ResultData test(Integer userId, String userName) {
+    public ResultData test(int userId, String userName) {
 
         Users users = new Users();
         users.setId(userId);
@@ -71,7 +69,7 @@ public class TestController extends BaseController {
         usersService.save(users);
 
         UserAuthInfo userAuthInfo = new UserAuthInfo();
-        userAuthInfo.setUserId(userId);
+        userAuthInfo.setUserId((long)userId);
         userAuthInfo.setAppKey(TokenUtil.createToken());
         userAuthService.save(userAuthInfo);
 

+ 20 - 50
src/main/java/com/fdkankan/openApi/controller/www/SceneController.java

@@ -5,17 +5,20 @@ import cn.dev33.satoken.annotation.SaIgnore;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.openApi.common.PageInfo;
-import com.fdkankan.openApi.entity.system.UserAuthInfo;
+import com.fdkankan.openApi.controller.BaseController;
 import com.fdkankan.openApi.entity.www.ScenePlus;
 import com.fdkankan.openApi.service.laser.SceneService;
-import com.fdkankan.openApi.service.system.IUserAuthService;
-import com.fdkankan.openApi.service.www.IScenePlusExtService;
 import com.fdkankan.openApi.service.www.IScenePlusService;
+import com.fdkankan.openApi.vo.BaseSceneParamVo;
 import com.fdkankan.openApi.vo.www.SceneVO;
 import com.fdkankan.web.response.ResultData;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.ObjectUtils;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+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;
 
 /**
  * <p>
@@ -27,33 +30,22 @@ import org.springframework.web.bind.annotation.*;
  */
 @RestController
 @RequestMapping("/scene")
-public class SceneController {
-
+public class SceneController extends BaseController {
 
     @Autowired
     private IScenePlusService scenePlusService;
 
     @Autowired
-    private IScenePlusExtService scenePlusExtService;
-
-    @Autowired
     private SceneService sceneService;
 
-    @Autowired
-    private IUserAuthService authService;
-
     /**
      * 根据用户名获取场景列表
      * @return
      */
     @SaIgnore
     @PostMapping("/getScenesByUsername")
-    public ResultData getScenesByUsername(@RequestBody SceneVO sceneVO,@RequestHeader("Authorization") String appKey) {
-        UserAuthInfo authInfo = authService.findByAppKey(appKey);
-        if (ObjectUtils.isEmpty(authInfo)) {
-            throw new BusinessException(ErrorCode.AUTH_FAIL);
-        }
-        PageInfo pageInfo = scenePlusService.getScenesByUserId(authInfo.getUserId(),sceneVO);
+    public ResultData getScenesByUsername(@RequestBody SceneVO sceneVO) {
+        PageInfo pageInfo = scenePlusService.getScenesByUserId(this.getUserId(),sceneVO);
         return ResultData.ok(pageInfo);
     }
 
@@ -64,23 +56,15 @@ public class SceneController {
      */
     @SaIgnore
     @PostMapping("/getScenePointInfo")
-    public ResultData getScenePointInfo(@RequestBody SceneVO sceneVO,@RequestHeader("Authorization") String appKey) {
-        ScenePlus scenePlus = scenePlusService.getByNum(sceneVO.getSceneCode());
+    public ResultData getScenePointInfo(@RequestBody @Validated BaseSceneParamVo param) {
+        ScenePlus scenePlus = scenePlusService.getByNumAndUserId(this.getUserId(), param.getSceneCode());
         if(ObjectUtils.isEmpty(scenePlus)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
-        UserAuthInfo authInfo = authService.findByAppKey(appKey);
-        if (ObjectUtils.isEmpty(authInfo)) {
-            throw new BusinessException(ErrorCode.AUTH_FAIL);
-        }
-        if (authInfo.getUserId() != scenePlus.getUserId().intValue()) {
-            throw new BusinessException(ErrorCode.FAILURE_CODE_5015);
-        }
-
         if (scenePlus.getSceneSource() == 4) {
-            return ResultData.ok(sceneService.getPointInfo(sceneVO.getSceneCode()));
+            return ResultData.ok(sceneService.getPointInfo(param.getSceneCode()));
         }
-        return ResultData.ok(scenePlusService.getPointInfo(sceneVO.getSceneCode()));
+        return ResultData.ok(scenePlusService.getPointInfo(param.getSceneCode()));
     }
 
     /**
@@ -89,19 +73,12 @@ public class SceneController {
      */
     @SaIgnore
     @PostMapping("/getSceneObjFiles")
-    public ResultData getSceneObjFiles(@RequestBody SceneVO sceneVO,@RequestHeader("Authorization") String appKey) {
-        ScenePlus scenePlus = scenePlusService.getByNum(sceneVO.getSceneCode());
+    public ResultData getSceneObjFiles(@RequestBody @Validated BaseSceneParamVo param) {
+        ScenePlus scenePlus = scenePlusService.getByNumAndUserId(this.getUserId(), param.getSceneCode());
         if(ObjectUtils.isEmpty(scenePlus)){
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
-        UserAuthInfo authInfo = authService.findByAppKey(appKey);
-        if (ObjectUtils.isEmpty(authInfo)) {
-            throw new BusinessException(ErrorCode.AUTH_FAIL);
-        }
-        if (authInfo.getUserId() != scenePlus.getUserId().intValue()) {
-            throw new BusinessException(ErrorCode.FAILURE_CODE_5015);
-        }
-        return ResultData.ok(scenePlusService.getSceneObjFilePaths(sceneVO.getSceneCode()));
+        return ResultData.ok(scenePlusService.getSceneObjFilePaths(param.getSceneCode()));
     }
 
     /**
@@ -110,19 +87,12 @@ public class SceneController {
      */
     @SaIgnore
     @PostMapping("/getScenePanoramicImageFiles")
-    public ResultData getScenePanoramicImageFiles(@RequestBody SceneVO sceneVO,@RequestHeader("Authorization") String appKey) {
-        ScenePlus scenePlus = scenePlusService.getByNum(sceneVO.getSceneCode());
+    public ResultData getScenePanoramicImageFiles(@RequestBody @Validated BaseSceneParamVo param) {
+        ScenePlus scenePlus = scenePlusService.getByNumAndUserId(this.getUserId(), param.getSceneCode());
         if (ObjectUtils.isEmpty(scenePlus)) {
             throw new BusinessException(ErrorCode.FAILURE_CODE_5005);
         }
-        UserAuthInfo authInfo = authService.findByAppKey(appKey);
-        if (ObjectUtils.isEmpty(authInfo)) {
-            throw new BusinessException(ErrorCode.AUTH_FAIL);
-        }
-        if (authInfo.getUserId() != scenePlus.getUserId().intValue()) {
-            throw new BusinessException(ErrorCode.FAILURE_CODE_5015);
-        }
-        return ResultData.ok(scenePlusService.getScenePanoramicImageFiles(sceneVO.getSceneCode()));
+        return ResultData.ok(scenePlusService.getScenePanoramicImageFiles(param.getSceneCode()));
     }
 }
 

+ 1 - 1
src/main/java/com/fdkankan/openApi/entity/system/UserAuthInfo.java

@@ -13,7 +13,7 @@ import lombok.Data;
 public class UserAuthInfo extends SystemBaseEntity {
 
     @TableField("user_id")
-    private Integer userId;
+    private Long userId;
     @TableField("app_key")
     private String appKey;
 

+ 3 - 1
src/main/java/com/fdkankan/openApi/service/www/IScenePlusService.java

@@ -21,9 +21,11 @@ public interface IScenePlusService extends IService<ScenePlus> {
 
     ScenePlus getByNum(String num);
 
+    ScenePlus getByNumAndUserId(long userId, String num);
+
     ResultData createVirtualScene(CreateFicTitiousSceneParamVO param) throws Exception;
 
-    PageInfo<SceneVO> getScenesByUserId(Integer userName, SceneVO sceneVO);
+    PageInfo<SceneVO> getScenesByUserId(Long userName, SceneVO sceneVO);
 
     Object getPointInfo(String sceneCode);
 

+ 6 - 1
src/main/java/com/fdkankan/openApi/service/www/impl/ScenePlusServiceImpl.java

@@ -86,6 +86,11 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     private SceneService sceneService;
 
     @Override
+    public ScenePlus getByNumAndUserId(long userId, String num) {
+        return this.getOne(new LambdaQueryWrapper<ScenePlus>().eq(ScenePlus::getNum, num).eq(ScenePlus::getUserId, userId));
+    }
+
+    @Override
     public ScenePlus getByNum(String num) {
         return this.getOne(new LambdaQueryWrapper<ScenePlus>().eq(ScenePlus::getNum, num));
     }
@@ -299,7 +304,7 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     }
 
     @Override
-    public PageInfo<SceneVO> getScenesByUserId(Integer userId, SceneVO sceneVO) {
+    public PageInfo<SceneVO> getScenesByUserId(Long userId, SceneVO sceneVO) {
         LambdaQueryWrapper<ScenePlus> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ScenePlus::getUserId,userId);
 

+ 14 - 0
src/main/java/com/fdkankan/openApi/vo/BaseSceneParamVo.java

@@ -0,0 +1,14 @@
+package com.fdkankan.openApi.vo;
+
+import lombok.Data;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+public class BaseSceneParamVo {
+
+    @NotBlank(message = "场景码不能为空")
+    private String sceneCode;
+
+}

+ 0 - 10
src/main/java/com/fdkankan/openApi/vo/PageVo.java

@@ -1,10 +0,0 @@
-package com.fdkankan.openApi.vo;
-
-import lombok.Data;
-
-@Data
-public class PageVo {
-    private Integer pageNum = 1;
-
-    private Integer pageSize = 10;
-}

+ 2 - 4
src/main/java/com/fdkankan/openApi/vo/www/SceneVO.java

@@ -1,14 +1,12 @@
 package com.fdkankan.openApi.vo.www;
 
-import com.fdkankan.openApi.vo.PageVo;
+import com.fdkankan.web.request.RequestBase;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
-import java.util.Date;
-import java.util.List;
 
 /**
  * <p>
@@ -22,7 +20,7 @@ import java.util.List;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-public class SceneVO extends PageVo implements Serializable {
+public class SceneVO extends RequestBase implements Serializable {
 
     private String userName;