xiewj 2 years ago
parent
commit
d3e8483a54

+ 1 - 1
pom.xml

@@ -33,7 +33,7 @@
         <dependency>
         <dependency>
             <groupId>com.github.yulichang</groupId>
             <groupId>com.github.yulichang</groupId>
             <artifactId>mybatis-plus-join</artifactId>
             <artifactId>mybatis-plus-join</artifactId>
-            <version>1.4.2</version>
+            <version>1.4.5</version>
         </dependency>
         </dependency>
 
 
         <dependency>
         <dependency>

+ 6 - 0
src/main/java/com/fdkankan/site/controller/FdkkController.java

@@ -67,5 +67,11 @@ public class FdkkController {
         }
         }
         return ResultData.ok();
         return ResultData.ok();
     }
     }
+    @PostMapping("/delScene")
+    public ResultData delScene(@RequestBody ProjectNumAddParam param){
+        log.info("四维或者激光-通知删除场景---{}",param);
+
+        return ResultData.ok();
+    }
 
 
 }
 }

+ 6 - 38
src/main/java/com/fdkankan/site/controller/MarkingController.java

@@ -3,13 +3,16 @@ package com.fdkankan.site.controller;
 import cn.dev33.satoken.annotation.SaCheckLogin;
 import cn.dev33.satoken.annotation.SaCheckLogin;
 import cn.dev33.satoken.annotation.SaIgnore;
 import cn.dev33.satoken.annotation.SaIgnore;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.fdkankan.site.common.BaseController;
 import com.fdkankan.site.common.BaseController;
 import com.fdkankan.site.common.ResultCode;
 import com.fdkankan.site.common.ResultCode;
 import com.fdkankan.site.common.ResultData;
 import com.fdkankan.site.common.ResultData;
 import com.fdkankan.site.common.util.VUtils;
 import com.fdkankan.site.common.util.VUtils;
 import com.fdkankan.site.entity.Comments;
 import com.fdkankan.site.entity.Comments;
 import com.fdkankan.site.entity.MarkingUser;
 import com.fdkankan.site.entity.MarkingUser;
+import com.fdkankan.site.entity.Project;
 import com.fdkankan.site.entity.ProjectTeam;
 import com.fdkankan.site.entity.ProjectTeam;
+import com.fdkankan.site.entity.dto.ProjectTeamDTO;
 import com.fdkankan.site.enums.MarkingStatus;
 import com.fdkankan.site.enums.MarkingStatus;
 import com.fdkankan.site.exception.BusinessException;
 import com.fdkankan.site.exception.BusinessException;
 import com.fdkankan.site.request.MarkingParam;
 import com.fdkankan.site.request.MarkingParam;
@@ -27,6 +30,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import java.util.List;
 import java.util.Optional;
 import java.util.Optional;
 
 
 /**
 /**
@@ -48,11 +52,7 @@ public class MarkingController  extends BaseController {
     @Autowired
     @Autowired
     IProjectTeamService projectTeamService;
     IProjectTeamService projectTeamService;
 
 
-    @Autowired
-    SmsService smsService;
 
 
-    @Value("${phone.code.cn}")
-    private String cnCode;
     /**
     /**
      * 标注列表
      * 标注列表
      */
      */
@@ -76,39 +76,7 @@ public class MarkingController  extends BaseController {
      */
      */
     @PostMapping("/addOrUpdate")
     @PostMapping("/addOrUpdate")
     public ResultData addOrUpdate(@RequestBody MarkingParam param){
     public ResultData addOrUpdate(@RequestBody MarkingParam param){
-        VUtils.isTure(param.getNum() == null).throwMessage(ResultCode.PARAM_MISS);
-        projectService.checkTokenPer(getToken(), param.getProjectId());
-        if (Optional.ofNullable(param.getMarkingId()).isPresent()){
-            // 写不为空的逻辑
-            log.info("不为空修改");
-//            ProjectTeam byUserIdAndProjectId = projectTeamService.findByUserIdAndProjectId(getUserId(), param.getProjectId());
-//            param.setLastUpdateBy(byUserIdAndProjectId.getNickName());
-            markingService.updateById(param);
-        } else {
-            // 写为空的逻辑
-            log.info("为空");
-//            ProjectTeam byUserIdAndProjectId = projectTeamService.findByUserIdAndProjectId(getUserId(), param.getProjectId());
-//            param.setLastCreateBy(byUserIdAndProjectId.getNickName());
-            markingService.save(param);
-        }
-        if (CollectionUtil.isNotEmpty(param.getUserIds())) {
-            markingUserService.delByMarkingId(param.getMarkingId());
-            for (Integer userId : param.getUserIds()) {
-//                ProjectTeam projectTeam = projectTeamService.findByUserIdAndProjectId(userId, param.getProjectId());
-//                if (Optional.ofNullable(projectTeam).isPresent()&&Optional.ofNullable(projectTeam.getBindAccount()).isPresent()) {
-//                    try {
-//                        smsService.sendSms(projectTeam.getBindAccount(), "", cnCode);
-//                    } catch (Exception e) {
-//                        e.printStackTrace();
-//                    }
-//                }
-
-                MarkingUser markingUser=new MarkingUser();
-                markingUser.setUserId(userId);
-                markingUser.setMarkingId(param.getMarkingId());
-                markingUserService.save(markingUser);
-            }
-        }
-        return ResultData.ok(param);
+        return markingService.addOrUpdate(param,getToken());
     }
     }
+
 }
 }

+ 10 - 13
src/main/java/com/fdkankan/site/controller/TestController.java

@@ -19,7 +19,10 @@ import com.fdkankan.site.httpClient.client.FdKKClient;
 import com.fdkankan.site.service.IProjectTeamService;
 import com.fdkankan.site.service.IProjectTeamService;
 import com.fdkankan.site.service.IUserRoleService;
 import com.fdkankan.site.service.IUserRoleService;
 import com.fdkankan.site.service.IUserService;
 import com.fdkankan.site.service.IUserService;
+import com.fdkankan.sms.SmsService;
+import com.fdkankan.sms.SmsServiceV2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
@@ -38,21 +41,15 @@ public class TestController extends BaseController {
 
 
     @Autowired
     @Autowired
     IUserRoleService userRoleService;
     IUserRoleService userRoleService;
+    @Autowired
+    SmsServiceV2 smsService;
+
+    @Value("${phone.code.cn}")
+    private String cnCode;
     @PostMapping("/test")
     @PostMapping("/test")
     @SaIgnore
     @SaIgnore
-    public ResultData test(){
-//        for (ProjectTeam projectTeam : projectTeaml.list()) {
-//            User byUserName = userService.findByUserName(projectTeam.getUserName());
-//            if (ObjectUtil.isNotNull(byUserName)){
-//                projectTeam.setUserId(byUserName.getUserId());
-//            }else {
-//                User u=new User();
-//                u.setUserName(projectTeam.getUserName());
-//                 userService.save(u);
-//                projectTeam.setUserId(u.getUserId());
-//            }
-//            projectTeaml.updateById(projectTeam);
-//        }
+    public ResultData test() throws Exception {
+        smsService.sendSms("18666186515", "{\"projectname\":\"" +"测试短信" + "\"}", cnCode);
         return ResultData.ok( );
         return ResultData.ok( );
     }
     }
 
 

+ 5 - 1
src/main/java/com/fdkankan/site/service/IMarkingService.java

@@ -1,7 +1,9 @@
 package com.fdkankan.site.service;
 package com.fdkankan.site.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.site.common.ResultData;
 import com.fdkankan.site.entity.Marking;
 import com.fdkankan.site.entity.Marking;
+import com.fdkankan.site.request.MarkingParam;
 import com.fdkankan.site.request.MarkingSearchParam;
 import com.fdkankan.site.request.MarkingSearchParam;
 
 
 import java.util.List;
 import java.util.List;
@@ -20,8 +22,10 @@ public interface IMarkingService extends IService<Marking> {
     Object pageList(MarkingSearchParam param);
     Object pageList(MarkingSearchParam param);
 
 
     void delMarking(Integer markingId,String token);
     void delMarking(Integer markingId,String token);
+    void delMarking(Integer markingId);
 
 
     List<Marking> findByProjectId(Integer projectId);
     List<Marking> findByProjectId(Integer projectId);
-    Marking findByProjectIdAndNum(Integer projectId,String num);
+    List<Marking> findByProjectIdAndNum(Integer projectId,String num);
 
 
+    ResultData addOrUpdate(MarkingParam param,String token);
 }
 }

+ 2 - 0
src/main/java/com/fdkankan/site/service/IProjectNumService.java

@@ -1,5 +1,6 @@
 package com.fdkankan.site.service;
 package com.fdkankan.site.service;
 
 
+import com.amazonaws.services.dynamodbv2.xspec.S;
 import com.fdkankan.site.entity.ProjectNum;
 import com.fdkankan.site.entity.ProjectNum;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.site.request.AppGetSceneInfoParam;
 import com.fdkankan.site.request.AppGetSceneInfoParam;
@@ -40,4 +41,5 @@ public interface IProjectNumService extends IService<ProjectNum> {
     void delByProjectId(Integer projectId,String token);
     void delByProjectId(Integer projectId,String token);
 
 
     List<ProjectNum> getByNum(String num);
     List<ProjectNum> getByNum(String num);
+    ProjectNum getByNumAndProjectId(String num,Integer projectId);
 }
 }

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

@@ -33,6 +33,7 @@ public interface IProjectTeamService extends IService<ProjectTeam> {
     void addProject(Integer projectId, String token);
     void addProject(Integer projectId, String token);
 
 
     Object pageList(ProjectTeamListParam param);
     Object pageList(ProjectTeamListParam param);
+    List<ProjectTeamDTO> findByProjectId(Integer projectId);
 
 
     Object addUser(ProjectTeamAddDTO param, String token);
     Object addUser(ProjectTeamAddDTO param, String token);
 
 

+ 96 - 21
src/main/java/com/fdkankan/site/service/impl/MarkingServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fdkankan.site.service.impl;
 package com.fdkankan.site.service.impl;
 
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -9,21 +10,31 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.site.common.PageInfo;
 import com.fdkankan.site.common.PageInfo;
 import com.fdkankan.site.common.ResultCode;
 import com.fdkankan.site.common.ResultCode;
+import com.fdkankan.site.common.ResultData;
 import com.fdkankan.site.common.util.VUtils;
 import com.fdkankan.site.common.util.VUtils;
 import com.fdkankan.site.entity.*;
 import com.fdkankan.site.entity.*;
 import com.fdkankan.site.entity.dto.MarkingDTO;
 import com.fdkankan.site.entity.dto.MarkingDTO;
 import com.fdkankan.site.entity.dto.UserDTO;
 import com.fdkankan.site.entity.dto.UserDTO;
 import com.fdkankan.site.mapper.IMarkingMapper;
 import com.fdkankan.site.mapper.IMarkingMapper;
+import com.fdkankan.site.request.MarkingParam;
 import com.fdkankan.site.request.MarkingSearchParam;
 import com.fdkankan.site.request.MarkingSearchParam;
+import com.fdkankan.site.response.SceneVo;
 import com.fdkankan.site.service.*;
 import com.fdkankan.site.service.*;
+import com.fdkankan.sms.SmsService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import static java.util.stream.Collectors.toList;
 
 
 @Service
 @Service
+@Slf4j
 public class MarkingServiceImpl extends ServiceImpl<IMarkingMapper, Marking> implements IMarkingService {
 public class MarkingServiceImpl extends ServiceImpl<IMarkingMapper, Marking> implements IMarkingService {
     @Autowired
     @Autowired
     IProjectLogService projectLogService;
     IProjectLogService projectLogService;
@@ -33,26 +44,31 @@ public class MarkingServiceImpl extends ServiceImpl<IMarkingMapper, Marking> imp
     IProjectTeamService projectTeamService;
     IProjectTeamService projectTeamService;
     @Autowired
     @Autowired
     IProjectService projectService;
     IProjectService projectService;
-
+    @Autowired
+    SmsService smsService;
+    @Autowired
+    IProjectNumService projectNumService;
+    @Autowired
+    ISceneService sceneService;
+    @Value("${phone.code.cn}")
+    private String cnCode;
     @Override
     @Override
     public Object pageList(MarkingSearchParam param) {
     public Object pageList(MarkingSearchParam param) {
-//        VUtils.isTure(param.getProjectId() == null).throwMessage(ResultCode.PARAM_MISS);
-//        MPJLambdaWrapper<Marking> wrapper = new MPJLambdaWrapper<Marking>()
-//                .selectAll(Marking.class)
-//                .selectCollection(ProjectTeam.class, MarkingDTO::getUsers)
-//                .leftJoin(MarkingUser.class, MarkingUser::getMarkingId, Marking::getMarkingId)
-//                .leftJoin(ProjectTeam.class, ProjectTeam::getUserId, MarkingUser::getUserId)
-//                .eq(Marking::getProjectId,param.getProjectId())
-//                .eq(ProjectTeam::getProjectId,param.getProjectId());
-//        if (Optional.ofNullable(param.getMarkingStatus()).isPresent()) {
-//            wrapper.eq(Marking::getMarkingStatus,param.getMarkingStatus());
-//        }
-//        if (Optional.ofNullable(param.getMarkingTitle()).isPresent()&& StrUtil.isNotEmpty(param.getMarkingTitle())) {
-//            wrapper.like(Marking::getMarkingTitle,param.getMarkingTitle());
-//        }
-//        IPage<MarkingDTO> page = baseMapper.selectJoinPage(new Page<>(param.getPageNum(), param.getPageSize()), MarkingDTO.class, wrapper);
-
         VUtils.isTure(param.getProjectId() == null).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(param.getProjectId() == null).throwMessage(ResultCode.PARAM_MISS);
+
+        List<Marking> byProjectId = findByProjectId(param.getProjectId());
+        Set<Integer> projectIds = new HashSet<>(Arrays.asList(param.getProjectId()));
+        List<ProjectNum>  projectNum = projectNumService.getListByProjectIds(projectIds);
+        HashMap<Integer,List<String>> typeMap = projectNumService.getTypeMap(projectNum);
+        List<SceneVo> list = sceneService.getListByNumMap(typeMap);
+
+        List<Marking> difference = byProjectId.stream()
+                .filter(obj1 -> list.stream()
+                        .noneMatch(obj2 -> obj2.getNum().equals(obj1.getNum())))
+                .collect(Collectors.toList());
+        for (Marking marking : difference) {
+            delMarking(marking.getMarkingId());
+        }
         MPJLambdaWrapper<Marking> wrapper = new MPJLambdaWrapper<Marking>()
         MPJLambdaWrapper<Marking> wrapper = new MPJLambdaWrapper<Marking>()
                 .selectAll(Marking.class)
                 .selectAll(Marking.class)
                 .eq(Marking::getProjectId,param.getProjectId());
                 .eq(Marking::getProjectId,param.getProjectId());
@@ -66,6 +82,9 @@ public class MarkingServiceImpl extends ServiceImpl<IMarkingMapper, Marking> imp
             wrapper.like(Marking::getMarkingTitle,param.getMarkingTitle());
             wrapper.like(Marking::getMarkingTitle,param.getMarkingTitle());
         }
         }
         IPage<MarkingDTO> page = baseMapper.selectJoinPage(new Page<>(param.getPageNum(), param.getPageSize()), MarkingDTO.class, wrapper);
         IPage<MarkingDTO> page = baseMapper.selectJoinPage(new Page<>(param.getPageNum(), param.getPageSize()), MarkingDTO.class, wrapper);
+
+
+
         for (MarkingDTO record : page.getRecords()) {
         for (MarkingDTO record : page.getRecords()) {
             List<UserDTO> users = markingUserService.findByProjectIdAndMarkingId(record.getProjectId(), record.getMarkingId());
             List<UserDTO> users = markingUserService.findByProjectIdAndMarkingId(record.getProjectId(), record.getMarkingId());
             record.setUsers(users);
             record.setUsers(users);
@@ -100,6 +119,13 @@ public class MarkingServiceImpl extends ServiceImpl<IMarkingMapper, Marking> imp
     }
     }
 
 
     @Override
     @Override
+    public void delMarking(Integer markingId) {
+        LambdaUpdateWrapper<Marking> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(Marking::getMarkingId, markingId);
+        this.baseMapper.delete(wrapper);
+    }
+
+    @Override
     public List<Marking> findByProjectId(Integer projectId) {
     public List<Marking> findByProjectId(Integer projectId) {
         LambdaQueryWrapper<Marking> wrapper=new LambdaQueryWrapper<>();
         LambdaQueryWrapper<Marking> wrapper=new LambdaQueryWrapper<>();
         wrapper.eq(Marking::getProjectId,projectId);
         wrapper.eq(Marking::getProjectId,projectId);
@@ -107,10 +133,59 @@ public class MarkingServiceImpl extends ServiceImpl<IMarkingMapper, Marking> imp
     }
     }
 
 
     @Override
     @Override
-    public Marking findByProjectIdAndNum(Integer projectId, String num) {
+    public List<Marking> findByProjectIdAndNum(Integer projectId, String num) {
         LambdaQueryWrapper<Marking> wrapper=new LambdaQueryWrapper<>();
         LambdaQueryWrapper<Marking> wrapper=new LambdaQueryWrapper<>();
         wrapper.eq(Marking::getProjectId,projectId);
         wrapper.eq(Marking::getProjectId,projectId);
         wrapper.eq(Marking::getNum,num);
         wrapper.eq(Marking::getNum,num);
-        return getOne(wrapper);
+        return list(wrapper);
+    }
+
+    @Override
+    public ResultData addOrUpdate(MarkingParam param,String token) {
+
+        VUtils.isTure(param.getNum() == null).throwMessage(ResultCode.PARAM_MISS);
+        projectService.checkTokenPer(token, param.getProjectId());
+        if (Optional.ofNullable(param.getMarkingId()).isPresent()){
+            // 写不为空的逻辑
+            log.info("不为空修改");
+//            ProjectTeam byUserIdAndProjectId = projectTeamService.findByUserIdAndProjectId(getUserId(), param.getProjectId());
+//            param.setLastUpdateBy(byUserIdAndProjectId.getNickName());
+            updateById(param);
+        } else {
+            // 写为空的逻辑
+            log.info("为空");
+//            ProjectTeam byUserIdAndProjectId = projectTeamService.findByUserIdAndProjectId(getUserId(), param.getProjectId());
+//            param.setLastCreateBy(byUserIdAndProjectId.getNickName());
+            boolean save = save(param);
+            if (save){
+                Project project = projectService.getById(param.getProjectId());
+                if (ObjectUtil.isNotNull(project)){
+                    if (CollectionUtil.isNotEmpty(param.getUserIds())) {
+                        for (Integer userId : param.getUserIds()) {
+                            ProjectTeam projectTeam = projectTeamService.findByUserIdAndProjectId(userId, param.getProjectId());
+                            if (Optional.ofNullable(projectTeam).isPresent()&&Optional.ofNullable(projectTeam.getBindAccount()).isPresent()) {
+                                try {
+                                    smsService.sendSms(projectTeam.getBindAccount(), "{\"projectname\":\"" + project.getProjectName() + "\"}", cnCode);
+                                } catch (Exception e) {
+                                    e.printStackTrace();
+                                }
+                            }
+                        }
+                    }
+                }
+
+
+            }
+        }
+        if (CollectionUtil.isNotEmpty(param.getUserIds())) {
+            markingUserService.delByMarkingId(param.getMarkingId());
+            for (Integer userId : param.getUserIds()) {
+                MarkingUser markingUser=new MarkingUser();
+                markingUser.setUserId(userId);
+                markingUser.setMarkingId(param.getMarkingId());
+                markingUserService.save(markingUser);
+            }
+        }
+        return ResultData.ok(param);
     }
     }
 }
 }

+ 2 - 0
src/main/java/com/fdkankan/site/service/impl/MarkingUserServiceImpl.java

@@ -7,6 +7,7 @@ import com.fdkankan.site.common.ResultCode;
 import com.fdkankan.site.common.util.VUtils;
 import com.fdkankan.site.common.util.VUtils;
 import com.fdkankan.site.entity.MarkingUser;
 import com.fdkankan.site.entity.MarkingUser;
 import com.fdkankan.site.entity.ProjectTeam;
 import com.fdkankan.site.entity.ProjectTeam;
+import com.fdkankan.site.entity.User;
 import com.fdkankan.site.entity.dto.UserDTO;
 import com.fdkankan.site.entity.dto.UserDTO;
 import com.fdkankan.site.mapper.IMarkingUserMapper;
 import com.fdkankan.site.mapper.IMarkingUserMapper;
 import com.fdkankan.site.service.IMarkingUserService;
 import com.fdkankan.site.service.IMarkingUserService;
@@ -38,6 +39,7 @@ public class MarkingUserServiceImpl extends ServiceImpl<IMarkingUserMapper, Mark
         VUtils.isTure(projectId== null).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(projectId== null).throwMessage(ResultCode.PARAM_MISS);
         MPJLambdaWrapper<MarkingUser> wrapper = new MPJLambdaWrapper<MarkingUser>()
         MPJLambdaWrapper<MarkingUser> wrapper = new MPJLambdaWrapper<MarkingUser>()
                 .selectAll(MarkingUser.class)
                 .selectAll(MarkingUser.class)
+                .select(ProjectTeam::getNickName)
                 .leftJoin(ProjectTeam.class, ProjectTeam::getUserId, MarkingUser::getUserId)
                 .leftJoin(ProjectTeam.class, ProjectTeam::getUserId, MarkingUser::getUserId)
                 .eq(MarkingUser::getMarkingId,markingId)
                 .eq(MarkingUser::getMarkingId,markingId)
                 .eq(ProjectTeam::getProjectId,projectId);
                 .eq(ProjectTeam::getProjectId,projectId);

+ 8 - 0
src/main/java/com/fdkankan/site/service/impl/ProjectNumServiceImpl.java

@@ -143,4 +143,12 @@ public class ProjectNumServiceImpl extends ServiceImpl<IProjectNumMapper, Projec
         wrapper.eq(ProjectNum::getNum,num);
         wrapper.eq(ProjectNum::getNum,num);
         return this.list(wrapper);
         return this.list(wrapper);
     }
     }
+
+    @Override
+    public ProjectNum getByNumAndProjectId(String num, Integer projectId) {
+        LambdaQueryWrapper<ProjectNum> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ProjectNum::getNum,num);
+        wrapper.eq(ProjectNum::getProjectId,projectId);
+        return this.getOne(wrapper);
+    }
 }
 }

+ 33 - 23
src/main/java/com/fdkankan/site/service/impl/ProjectServiceImpl.java

@@ -1,8 +1,10 @@
 package com.fdkankan.site.service.impl;
 package com.fdkankan.site.service.impl;
 
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.site.common.PageInfo;
 import com.fdkankan.site.common.PageInfo;
 import com.fdkankan.site.common.ResultCode;
 import com.fdkankan.site.common.ResultCode;
@@ -10,6 +12,7 @@ import com.fdkankan.site.common.util.DateUtils;
 import com.fdkankan.site.common.util.JwtUtil;
 import com.fdkankan.site.common.util.JwtUtil;
 import com.fdkankan.site.common.util.VUtils;
 import com.fdkankan.site.common.util.VUtils;
 import com.fdkankan.site.entity.*;
 import com.fdkankan.site.entity.*;
+import com.fdkankan.site.entity.dto.MarkingDTO;
 import com.fdkankan.site.entity.dto.ProjectTeamDTO;
 import com.fdkankan.site.entity.dto.ProjectTeamDTO;
 import com.fdkankan.site.exception.BusinessException;
 import com.fdkankan.site.exception.BusinessException;
 import com.fdkankan.site.httpClient.bim.BusinessStatus;
 import com.fdkankan.site.httpClient.bim.BusinessStatus;
@@ -24,6 +27,8 @@ import com.fdkankan.site.response.SceneVo;
 import com.fdkankan.site.response.UserData;
 import com.fdkankan.site.response.UserData;
 import com.fdkankan.site.service.*;
 import com.fdkankan.site.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.site.util.EscapeUtil;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -59,7 +64,8 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
     IUserRoleService userRoleService;
     IUserRoleService userRoleService;
     @Autowired
     @Autowired
     IRoleService roleService;
     IRoleService roleService;
-
+    @Autowired
+    IMarkingService markingService;
     @Override
     @Override
     public Object getUserData(String token) {
     public Object getUserData(String token) {
         UserData userData = new UserData();
         UserData userData = new UserData();
@@ -101,7 +107,17 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
             voPage.setRecords(new ArrayList<>());
             voPage.setRecords(new ArrayList<>());
             return PageInfo.PageInfo(voPage);
             return PageInfo.PageInfo(voPage);
         }
         }
-        LambdaQueryWrapper<Project> wrapper = new LambdaQueryWrapper<>();
+
+
+        MPJLambdaWrapper<Project> wrapper = new MPJLambdaWrapper<Project>()
+                .selectAll(Project.class)
+                .select(User::getUserName)
+                .selectAs(User::getUserName, ProjectVo::getProjectCreater)//别名
+                .leftJoin(ProjectTeam.class,ProjectTeam::getProjectId,Project::getProjectId)
+                .leftJoin(User.class, User::getUserId, ProjectTeam::getUserId)
+                .orderByDesc(Project::getCreateTime);
+        ;
+
         wrapper.in(Project::getProjectId,projectIdSet);
         wrapper.in(Project::getProjectId,projectIdSet);
         if(StringUtils.isNotBlank(param.getProjectName())){
         if(StringUtils.isNotBlank(param.getProjectName())){
             wrapper.like(Project::getProjectName,param.getProjectName());
             wrapper.like(Project::getProjectName,param.getProjectName());
@@ -115,29 +131,18 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
         if(param.getProjectStatus() !=null){
         if(param.getProjectStatus() !=null){
             wrapper.eq(Project::getProjectStatus,param.getProjectStatus());
             wrapper.eq(Project::getProjectStatus,param.getProjectStatus());
         }
         }
-        if(StringUtils.isNotBlank(param.getProjectCreater())){
-            Set<Integer> projectIds = projectTeamService.getProjectIdByCreater(param.getProjectCreater());
-            if(projectIds.size() >0){
-                wrapper.in(Project::getProjectId,projectIds);
-            }
+        if(StrUtil.isNotEmpty(param.getProjectCreater())){
+            wrapper.like(User::getUserName, EscapeUtil.escapeChar(param.getProjectCreater()));
         }
         }
+//        if(StringUtils.isNotBlank(param.getProjectCreater())){
+//            Set<Integer> projectIds = projectTeamService.getProjectIdByCreater(param.getProjectCreater());
+//            if(projectIds.size() >0){
+//                wrapper.in(Project::getProjectId,projectIds);
+//            }
+//        }
+        IPage<ProjectVo> page = baseMapper.selectJoinPage(new Page<>(param.getPageNum(), param.getPageSize()), ProjectVo.class, wrapper);
+        return PageInfo.PageInfo(page);
 
 
-        wrapper.orderByDesc(Project::getCreateTime);
-
-        Page<Project> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
-        Set<Integer> projectIds = page.getRecords().stream().map(Project::getProjectId).collect(Collectors.toSet());
-        HashMap<Integer,String> createrMap = projectTeamService.getProjectCreaterMap(projectIds);
-        List<ProjectVo> voList = new ArrayList<>();
-        for (Project record : page.getRecords()) {
-            ProjectVo projectVo = new ProjectVo();
-            BeanUtils.copyProperties(record,projectVo);
-            projectVo.setProjectCreater(createrMap.get(record.getProjectId()));
-            voList.add(projectVo);
-        }
-        Page<ProjectVo> voPage = new Page<>(param.getPageNum(), param.getPageSize());
-        voPage.setTotal(page.getTotal());
-        voPage.setRecords(voList);
-        return PageInfo.PageInfo(voPage);
     }
     }
 
 
     @Override
     @Override
@@ -268,6 +273,11 @@ public class ProjectServiceImpl extends ServiceImpl<IProjectMapper, Project> imp
         projectNumService.delByNumList(param.getProjectId(),Arrays.asList(param.getNum()));
         projectNumService.delByNumList(param.getProjectId(),Arrays.asList(param.getNum()));
         projectLogService.addLog(param.getProjectId(),"删除场景",param.getToken(),Arrays.asList(param.getNum()));
         projectLogService.addLog(param.getProjectId(),"删除场景",param.getToken(),Arrays.asList(param.getNum()));
         this.updateTime(project.getProjectId());
         this.updateTime(project.getProjectId());
+
+        List<Marking> markings = markingService.findByProjectIdAndNum(project.getProjectId(),param.getNum());
+        for (Marking marking : markings) {
+            markingService.delMarking(marking.getMarkingId(),param.getToken());
+         }
     }
     }
 
 
     @Override
     @Override

+ 18 - 1
src/main/java/com/fdkankan/site/service/impl/ProjectTeamServiceImpl.java

@@ -115,13 +115,30 @@ public class ProjectTeamServiceImpl extends ServiceImpl<IProjectTeamMapper, Proj
                 .eq(UserRole::getProjectId,param.getProjectId())
                 .eq(UserRole::getProjectId,param.getProjectId())
                 ;
                 ;
         if(StringUtils.isNotBlank(param.getUserName())){
         if(StringUtils.isNotBlank(param.getUserName())){
-            wrapper.like(User::getUserName,param.getUserName());
+            wrapper.like(ProjectTeam::getNickName,param.getUserName());
         }
         }
         IPage<ProjectTeamDTO> projectTeamIPage = baseMapper.selectJoinPage(new Page<>(param.getPageNum(), param.getPageSize()), ProjectTeamDTO.class, wrapper);
         IPage<ProjectTeamDTO> projectTeamIPage = baseMapper.selectJoinPage(new Page<>(param.getPageNum(), param.getPageSize()), ProjectTeamDTO.class, wrapper);
         return PageInfo.PageInfo(projectTeamIPage);
         return PageInfo.PageInfo(projectTeamIPage);
     }
     }
 
 
     @Override
     @Override
+    public List<ProjectTeamDTO> findByProjectId(Integer projectId) {
+        MPJLambdaWrapper<ProjectTeam> wrapper = new MPJLambdaWrapper<ProjectTeam>()
+                .selectAll(ProjectTeam.class)
+                .select(User::getUserName)
+                .selectCollection(Role.class, ProjectTeamDTO::getRoles)
+                .leftJoin(User.class, User::getUserId, ProjectTeam::getUserId)
+                .leftJoin(UserRole.class,UserRole::getUserId,User::getUserId)
+                .leftJoin(Role.class, Role::getRoleId, UserRole::getRoleId)
+                .eq(ProjectTeam::getProjectId,projectId)
+                .eq(UserRole::getProjectId,projectId)
+                ;
+        List<ProjectTeamDTO> projectTeamIPage = baseMapper.selectJoinList( ProjectTeamDTO.class, wrapper);
+        return projectTeamIPage;
+
+    }
+
+    @Override
     public Object addUser(ProjectTeamAddDTO param, String token) {
     public Object addUser(ProjectTeamAddDTO param, String token) {
         VUtils.isTure(param.getProjectId() == null || StringUtils.isBlank(param.getUserName())).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(param.getProjectId() == null || StringUtils.isBlank(param.getUserName())).throwMessage(ResultCode.PARAM_MISS);
         VUtils.isTure(!this.checkUserName(param.getUserName())).throwMessage(ResultCode.USER_NOT_EXIST);
         VUtils.isTure(!this.checkUserName(param.getUserName())).throwMessage(ResultCode.USER_NOT_EXIST);

+ 15 - 0
src/main/java/com/fdkankan/site/util/EscapeUtil.java

@@ -0,0 +1,15 @@
+package com.fdkankan.site.util;
+
+import cn.hutool.core.util.StrUtil;
+
+public class EscapeUtil {
+    //mysql的模糊查询时特殊字符转义
+    public static String escapeChar(String before){
+        if(StrUtil.isNotBlank(before)){
+            before = before.replaceAll("\\\\", "\\\\\\\\");
+            before = before.replaceAll("_", "\\\\_");
+            before = before.replaceAll("%", "\\\\%");
+        }
+        return before ;
+    }
+}

+ 1 - 2
src/main/resources/application.yaml

@@ -5,7 +5,6 @@ spring:
     multipart:
     multipart:
       max-file-size: 1000MB
       max-file-size: 1000MB
       maxRequestSize: 1000MB
       maxRequestSize: 1000MB
-
 server:
 server:
   port: 8111
   port: 8111
   servlet:
   servlet:
@@ -54,4 +53,4 @@ sa-token:
 phone:
 phone:
   sign: 四维工地管家
   sign: 四维工地管家
   code:
   code:
-    cn: SMS_179150247
+    cn: SMS_461335313