xiewj преди 2 години
родител
ревизия
d47edf92b8

+ 26 - 6
src/main/java/com/fdkankan/site/controller/LoginController.java

@@ -4,10 +4,13 @@ import cn.dev33.satoken.annotation.SaCheckLogin;
 import cn.dev33.satoken.annotation.SaIgnore;
 import cn.dev33.satoken.stp.SaLoginModel;
 import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.site.common.BaseController;
 import com.fdkankan.site.common.ResultCode;
 import com.fdkankan.site.common.ResultData;
+import com.fdkankan.site.common.util.VUtils;
+import com.fdkankan.site.entity.ProjectTeam;
 import com.fdkankan.site.entity.User;
 import com.fdkankan.site.exception.BusinessException;
 import com.fdkankan.site.httpClient.client.FdKKClient;
@@ -17,12 +20,11 @@ import com.fdkankan.site.httpClient.response.FdkkResponse;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.site.httpClient.response.FdkkUserVo;
+import com.fdkankan.site.service.IProjectService;
+import com.fdkankan.site.service.IProjectTeamService;
 import com.fdkankan.site.service.impl.UserServiceImpl;
 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 javax.annotation.Resource;
 
@@ -40,9 +42,17 @@ public class LoginController extends BaseController {
     @Autowired
     UserServiceImpl userService;
 
-    @PostMapping("/fdLogin")
+    @Autowired
+    IProjectService projectService;
+
+
+    @PostMapping("/fdLogin/{projectId}")
     @SaIgnore
-    public ResultData fdLogin(@RequestBody FdkkLoginRequest request) {
+    public ResultData fdLogin(@RequestBody FdkkLoginRequest request, @PathVariable Integer projectId) {
+        VUtils.isTure(ObjectUtil.isNull(projectId)).throwMessage(ResultCode.PARAM_MISS);
+        if (ObjectUtil.isNotNull(projectId)&&projectId>0){
+            projectService.checkProjectPer(request.getPhoneNum(),projectId);
+        }
         try {
             FdkkResponse<FdkkLoginVo> fdkkLoginVo = fdKKClient.fdkkLogin(request);
             if (fdkkLoginVo.getCode() == 0) {
@@ -65,6 +75,16 @@ public class LoginController extends BaseController {
         throw new BusinessException(ResultCode.FD_ERROR);
     }
 
+
+    @PostMapping("/validatedProject/{projectId}")
+    public ResultData validatedProject(@PathVariable Integer projectId) {
+        VUtils.isTure(ObjectUtil.isNull(projectId)).throwMessage(ResultCode.PARAM_MISS);
+        if (ObjectUtil.isNotNull(projectId)&&projectId>0){
+            projectService.checkTokenPer(getToken(),projectId);
+        }
+         return ResultData.ok();
+    }
+
     // 查询 Token 信息  ---- http://localhost:8081/acc/tokenInfo
     @RequestMapping("tokenInfo")
     @SaIgnore

+ 1 - 0
src/main/java/com/fdkankan/site/service/IProjectService.java

@@ -57,5 +57,6 @@ public interface IProjectService extends IService<Project> {
     void updateTime(Integer projectId);
 
     void checkTokenPer(String token,Integer projectId);
+    void checkProjectPer(String userName,Integer projectId);
 
     }

+ 12 - 1
src/main/java/com/fdkankan/site/service/impl/ProjectServiceImpl.java

@@ -162,7 +162,9 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
         }
         List<SceneVo> sceneList = this.getSceneList(projectId);
         if(StringUtils.isNotBlank(sceneOrder) && sceneOrder.equals("asc")){
-            Collections.reverse(sceneList);
+            sceneList= sceneList.stream().sorted(Comparator.comparing(SceneVo::getCreateTime)).collect(Collectors.toList());
+        }else if (StringUtils.isNotBlank(sceneOrder) && sceneOrder.equals("desc")){
+            sceneList=sceneList.stream().sorted(Comparator.comparing(SceneVo::getCreateTime,Comparator.reverseOrder())).collect(Collectors.toList());
         }
         infoVo.setSceneList(sceneList);
         ProjectBim bim = null;
@@ -394,4 +396,13 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
             throw new BusinessException(ResultCode.NOT_PERM);
         }
     }
+
+    @Override
+    public void checkProjectPer(String userName, Integer projectId) {
+        User user = userService.findByUserName(userName);
+        List<ProjectTeam> teamList = projectTeamService.getListByUserIdAndProjectId(user.getUserId(),projectId);
+        if(CollectionUtil.isEmpty(teamList)){
+            throw new BusinessException(ResultCode.NOT_PERM);
+        }
+    }
 }