lyhzzz 2 년 전
부모
커밋
fe6bab81ff

+ 2 - 1
src/main/java/com/fdkankan/ucenter/controller/SceneController.java

@@ -11,6 +11,7 @@ import com.fdkankan.ucenter.common.Result;
 import com.fdkankan.ucenter.constant.LoginConstant;
 import com.fdkankan.ucenter.constant.LoginConstant;
 import com.fdkankan.ucenter.entity.User;
 import com.fdkankan.ucenter.entity.User;
 import com.fdkankan.ucenter.service.*;
 import com.fdkankan.ucenter.service.*;
+import com.fdkankan.ucenter.vo.request.RequestScene;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.response.DownloadProcessVo;
 import com.fdkankan.ucenter.vo.response.DownloadProcessVo;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -62,7 +63,7 @@ public class SceneController extends BaseController {
         return Result.success(sceneService.pageList(param));
         return Result.success(sceneService.pageList(param));
     }
     }
     @PostMapping(value = "/list")
     @PostMapping(value = "/list")
-    public Result getScenes(@RequestBody SceneParam param,@RequestHeader String token) throws Exception {
+    public Result getScenes(@RequestBody RequestScene param, @RequestHeader String token) throws Exception {
         String username = JwtUtil.getUsername(token);
         String username = JwtUtil.getUsername(token);
         return Result.success(sceneProService.getScenes(username, param));
         return Result.success(sceneProService.getScenes(username, param));
 
 

+ 2 - 0
src/main/java/com/fdkankan/ucenter/mapper/ISceneMapper.java

@@ -3,6 +3,7 @@ package com.fdkankan.ucenter.mapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.ucenter.entity.Scene;
 import com.fdkankan.ucenter.entity.Scene;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.ucenter.vo.request.RequestScene;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.response.SceneVo;
 import com.fdkankan.ucenter.vo.response.SceneVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
@@ -18,4 +19,5 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 @Mapper
 public interface ISceneMapper extends BaseMapper<Scene> {
 public interface ISceneMapper extends BaseMapper<Scene> {
 
 
+    Page<SceneVo> getSceneList(Page<Object> page, RequestScene param);
 }
 }

+ 2 - 0
src/main/java/com/fdkankan/ucenter/service/ICameraService.java

@@ -47,4 +47,6 @@ public interface ICameraService extends IService<Camera> {
     List<CameraAppVo> getCameraInfo(String childName, String childPassword);
     List<CameraAppVo> getCameraInfo(String childName, String childPassword);
 
 
     List<Camera> getAllList(String childName,String token);
     List<Camera> getAllList(String childName,String token);
+
+    List<Camera> findLikeChildName(String searchKey);
 }
 }

+ 2 - 0
src/main/java/com/fdkankan/ucenter/service/ISceneCooperationService.java

@@ -38,4 +38,6 @@ public interface ISceneCooperationService extends IService<SceneCooperation> {
     List<String> getNumByUserIds(List<Long> userIds);
     List<String> getNumByUserIds(List<Long> userIds);
 
 
     HashMap<String, User> getByNumList(List<String> numList);
     HashMap<String, User> getByNumList(List<String> numList);
+
+    SceneCooperation getByNum(String num);
 }
 }

+ 3 - 0
src/main/java/com/fdkankan/ucenter/service/IScenePlusService.java

@@ -1,8 +1,11 @@
 package com.fdkankan.ucenter.service;
 package com.fdkankan.ucenter.service;
 
 
+import com.fdkankan.ucenter.common.PageInfo;
 import com.fdkankan.ucenter.entity.CameraDetail;
 import com.fdkankan.ucenter.entity.CameraDetail;
 import com.fdkankan.ucenter.entity.ScenePlus;
 import com.fdkankan.ucenter.entity.ScenePlus;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.ucenter.vo.ResponseScene;
+import com.fdkankan.ucenter.vo.request.RequestScene;
 
 
 import java.io.IOException;
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.HashMap;

+ 2 - 1
src/main/java/com/fdkankan/ucenter/service/ISceneProService.java

@@ -8,6 +8,7 @@ import com.fdkankan.ucenter.entity.ScenePlus;
 import com.fdkankan.ucenter.entity.ScenePro;
 import com.fdkankan.ucenter.entity.ScenePro;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.ucenter.vo.ResponseScene;
 import com.fdkankan.ucenter.vo.ResponseScene;
+import com.fdkankan.ucenter.vo.request.RequestScene;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.response.GroupByCount;
 import com.fdkankan.ucenter.vo.response.GroupByCount;
 import com.fdkankan.ucenter.vo.response.SceneInfoVo;
 import com.fdkankan.ucenter.vo.response.SceneInfoVo;
@@ -86,5 +87,5 @@ public interface ISceneProService extends IService<ScenePro> {
 
 
     Page<SceneVo> pageListAndFolder(Page<Object> page, SceneParam param);
     Page<SceneVo> pageListAndFolder(Page<Object> page, SceneParam param);
 
 
-    Object getScenes(String username, SceneParam param);
+    Object getScenes(String username, RequestScene param);
 }
 }

+ 5 - 0
src/main/java/com/fdkankan/ucenter/service/ISceneService.java

@@ -1,9 +1,12 @@
 package com.fdkankan.ucenter.service;
 package com.fdkankan.ucenter.service;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.ucenter.entity.Scene;
 import com.fdkankan.ucenter.entity.Scene;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.ucenter.vo.request.RequestScene;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.request.SceneParam;
+import com.fdkankan.ucenter.vo.response.SceneVo;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -27,4 +30,6 @@ public interface ISceneService extends IService<Scene> {
     JSONObject pageList(SceneParam param);
     JSONObject pageList(SceneParam param);
 
 
     Scene getByNum(String sceneNum);
     Scene getByNum(String sceneNum);
+
+    Page<SceneVo> getSceneList(RequestScene param);
 }
 }

+ 7 - 0
src/main/java/com/fdkankan/ucenter/service/impl/CameraServiceImpl.java

@@ -376,4 +376,11 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         }
         }
         return  this.getBaseMapper().getAllListByUser(user.getId(),childName);
         return  this.getBaseMapper().getAllListByUser(user.getId(),childName);
     }
     }
+
+    @Override
+    public List<Camera> findLikeChildName(String searchKey) {
+        LambdaQueryWrapper<Camera> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(Camera::getSnCode,searchKey);
+        return this.list(wrapper);
+    }
 }
 }

+ 11 - 0
src/main/java/com/fdkankan/ucenter/service/impl/SceneCooperationServiceImpl.java

@@ -287,4 +287,15 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
         }
         }
         return cooMap;
         return cooMap;
     }
     }
+
+    @Override
+    public SceneCooperation getByNum(String num) {
+        LambdaQueryWrapper<SceneCooperation> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(SceneCooperation::getSceneNum,num);
+        List<SceneCooperation> list = this.list(wrapper);
+        if(list == null || list.size() <=0){
+            return null;
+        }
+        return list.get(0);
+    }
 }
 }

+ 3 - 0
src/main/java/com/fdkankan/ucenter/service/impl/ScenePlusServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.image.MatrixToImageWriterUtil;
 import com.fdkankan.image.MatrixToImageWriterUtil;
+import com.fdkankan.ucenter.common.PageInfo;
 import com.fdkankan.ucenter.common.constants.ConstantFilePath;
 import com.fdkankan.ucenter.common.constants.ConstantFilePath;
 import com.fdkankan.ucenter.common.constants.UploadFilePath;
 import com.fdkankan.ucenter.common.constants.UploadFilePath;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.constant.RedisKey;
@@ -26,7 +27,9 @@ import java.util.List;
 import java.util.Objects;
 import java.util.Objects;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CompletableFuture;
 
 
+import com.fdkankan.ucenter.vo.ResponseScene;
 import com.fdkankan.ucenter.vo.SceneEditControlsVO;
 import com.fdkankan.ucenter.vo.SceneEditControlsVO;
+import com.fdkankan.ucenter.vo.request.RequestScene;
 import lombok.extern.slf4j.Slf4j;
 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.beans.factory.annotation.Value;

+ 30 - 5
src/main/java/com/fdkankan/ucenter/service/impl/SceneProServiceImpl.java

@@ -30,6 +30,7 @@ import com.fdkankan.ucenter.mapper.ISceneUpgradeMapper;
 import com.fdkankan.ucenter.service.*;
 import com.fdkankan.ucenter.service.*;
 import com.fdkankan.ucenter.util.DateUserUtil;
 import com.fdkankan.ucenter.util.DateUserUtil;
 import com.fdkankan.ucenter.vo.ResponseScene;
 import com.fdkankan.ucenter.vo.ResponseScene;
+import com.fdkankan.ucenter.vo.request.RequestScene;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.response.GroupByCount;
 import com.fdkankan.ucenter.vo.response.GroupByCount;
 import com.fdkankan.ucenter.vo.response.SceneInfoVo;
 import com.fdkankan.ucenter.vo.response.SceneInfoVo;
@@ -44,6 +45,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.locks.Condition;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -90,6 +92,8 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     @Autowired
     @Autowired
     private ICameraDetailService cameraDetailService;
     private ICameraDetailService cameraDetailService;
     @Autowired
     @Autowired
+    ICameraService cameraService;
+    @Autowired
     private IFolderService folderService;
     private IFolderService folderService;
     @Autowired
     @Autowired
     private IFolderSceneService folderSceneService;
     private IFolderSceneService folderSceneService;
@@ -402,12 +406,33 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
     }
 
 
     @Override
     @Override
-    public Object getScenes(String username, SceneParam param) {
-        param.setHasFolder(0);
-        if(StringUtils.isNotBlank(param.getSearchKey())){
-            param.setSceneName(param.getSearchKey());
+    public Object getScenes(String username, RequestScene param) {
+        User user = userService.getByUserName(username);
+        String cameraId = null;
+        String nums = null;
+        log.info("搜索条件是:"+ param.getSearchKey());
+        //type为12表示一键换装的请求,不查询相机数据
+        if(StringUtils.isNotEmpty(param.getSearchKey()) && !"11".equals(param.getType())){
+            List<Camera> cameraEntityList = cameraService.findLikeChildName(param.getSearchKey());
+            cameraId = cameraEntityList.parallelStream().map(entity->"'"+entity.getId()+"'").collect(Collectors.joining(","));
+            List<Long> userIds = userService.getLikeUserName(param.getSearchKey());
+            if(userIds.size() > 0){
+                List<String> cooperationList = sceneCooperationService.getNumByUserIds(userIds);
+                param.setNumList(cooperationList);
+            }
+        }
+        param.setUserId(user.getId());
+        Page<SceneVo> sceneList = sceneService.getSceneList(param);
+        for (SceneVo record : sceneList.getRecords()) {
+            record.setUserName(username);
+            SceneCooperation sceneCooperationEntity = sceneCooperationService.getByNum(record.getNum());
+            if(sceneCooperationEntity != null){
+                record.setCooperationUserId(String.valueOf(sceneCooperationEntity.getUserId()));
+                User user1 = userService.getById(sceneCooperationEntity.getUserId());
+                record.setCooperationUserName(user1.getUserName());
+            }
         }
         }
-        return this.newList(param,username);
+        return PageInfo.PageInfo(sceneList);
     }
     }
 
 
     @Override
     @Override

+ 6 - 1
src/main/java/com/fdkankan/ucenter/service/impl/SceneServiceImpl.java

@@ -7,12 +7,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.ucenter.common.PageInfo;
 import com.fdkankan.ucenter.common.PageInfo;
 import com.fdkankan.ucenter.entity.Camera;
 import com.fdkankan.ucenter.entity.Camera;
 import com.fdkankan.ucenter.entity.Scene;
 import com.fdkankan.ucenter.entity.Scene;
-import com.fdkankan.ucenter.entity.ScenePlus;
 import com.fdkankan.ucenter.mapper.ISceneMapper;
 import com.fdkankan.ucenter.mapper.ISceneMapper;
 import com.fdkankan.ucenter.service.ICameraService;
 import com.fdkankan.ucenter.service.ICameraService;
 import com.fdkankan.ucenter.service.ISceneService;
 import com.fdkankan.ucenter.service.ISceneService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.ucenter.service.IUserService;
 import com.fdkankan.ucenter.service.IUserService;
+import com.fdkankan.ucenter.vo.request.RequestScene;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.response.SceneVo;
 import com.fdkankan.ucenter.vo.response.SceneVo;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -106,4 +106,9 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
         }
         }
         return null;
         return null;
     }
     }
+
+    @Override
+    public Page<SceneVo> getSceneList(RequestScene param) {
+        return this.getBaseMapper().getSceneList(new Page<>(param.getPageNum(),param.getPageSize()),param);
+    }
 }
 }

+ 25 - 0
src/main/java/com/fdkankan/ucenter/vo/request/RequestScene.java

@@ -0,0 +1,25 @@
+package com.fdkankan.ucenter.vo.request;
+
+import com.fdkankan.ucenter.common.RequestBase;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class RequestScene extends RequestBase implements Serializable {
+
+    private static final long serialVersionUID = 3939730189762555357L;
+
+
+    private String searchKey;
+
+    private String type;
+
+    private List<String> numList;
+
+    private Long userId;
+
+
+}

+ 2 - 0
src/main/java/com/fdkankan/ucenter/vo/response/SceneVo.java

@@ -36,6 +36,8 @@ public class SceneVo {
     private Long sceneNum;
     private Long sceneNum;
     private Integer type;
     private Integer type;
 
 
+    private String userName;
+
     public String getCreateTime() {
     public String getCreateTime() {
         return DateUserUtil.getDayTime(createTime);
         return DateUserUtil.getDayTime(createTime);
     }
     }

+ 51 - 0
src/main/resources/mapper/ucenter/SceneMapper.xml

@@ -2,4 +2,55 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fdkankan.ucenter.mapper.ISceneMapper">
 <mapper namespace="com.fdkankan.ucenter.mapper.ISceneMapper">
 
 
+    <select id="getSceneList" resultType="com.fdkankan.ucenter.vo.response.SceneVo">
+        SELECT * FROM (
+        SELECT  p.id ,null as name ,0 as isFolder,null as type,null as parentId ,p.create_time,num,scene_name,scene_dec,
+        p.status,pay_status,thumb,web_site,0 as is_upgrade,sn_code,view_count,p.build_type
+        FROM t_scene_pro p
+        <include refid="sceneJoinCamera"></include>
+        WHERE is_upgrade = 0 and  p.rec_status = 'A'
+        <include refid="commonWhere"></include>
+        AND
+        <include refid="commonSceneWhere"></include>
+        <if test="param.searchKey !=null and param.searchKey !=''">
+            and  p.scene_name like CONCAT('%',#{param.sceneName},'%')
+        </if>
+        UNION
+        SELECT  p.id as id ,null as name ,0 as isFolder,null as type,null as parentId,p.create_time ,num,title as scene_name,description as scene_dec,
+        scene_status as status,pay_status,thumb,web_site,1 as is_upgrade,sn_code,view_count,e.build_type
+        FROM t_scene_plus p
+        LEFT JOIN t_scene_plus_ext e on p.id = e.plus_id
+        <include refid="sceneJoinCamera"></include>
+        WHERE p.rec_status = 'A'
+        <include refid="commonWhere"></include>
+        AND
+        <include refid="commonSceneWhere"></include>
+        <if test="param.searchKey !=null and param.searchKey !=''">
+            and  p.title like CONCAT('%',#{param.sceneName},'%')
+        </if>
+        ORDER BY create_time desc
+        ) as scene_tb
+    </select>
+
+    <sql id="commonWhere">
+        <if test="param.numList == null ">
+            and p.user_id =#{param.userId}
+        </if>
+    </sql>
+
+    <sql id="sceneJoinCamera">
+        LEFT JOIN t_camera c on p.camera_id = c.id
+    </sql>
+
+    <sql id="commonSceneWhere">
+        <if test="param.numList !=null and param.numList.size >0">
+            and num in
+            <foreach item="num" collection="param.numList" open="(" separator="," close=")">
+                #{num}
+            </foreach>
+        </if>
+        <if test="param.searchKey !=null and param.searchKey !=''">
+            and c.sn_code like CONCAT('%',#{param.searchKey},'%')
+        </if>
+    </sql>
 </mapper>
 </mapper>