lyhzzz hace 3 meses
padre
commit
6ab81071b4

+ 42 - 31
src/main/java/com/fdkankan/manage/controller/inner/InnerAPIController.java

@@ -9,6 +9,7 @@ import com.fdkankan.manage.common.CameraTypeEnum;
 import com.fdkankan.manage.common.PageInfo;
 import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.common.ResultData;
+import com.fdkankan.manage.config.ManageConfig;
 import com.fdkankan.manage.controller.BaseController;
 import com.fdkankan.manage.entity.*;
 import com.fdkankan.manage.exception.BusinessException;
@@ -42,6 +43,8 @@ public class InnerAPIController extends BaseController {
     IJyUserShareService jyUserShareService;
     @Autowired
     IJySceneAuthService jySceneAuthService;
+    @Autowired
+    ManageConfig manageConfig;
 
     @PostMapping("/getByRyId")
     public ResultData getByRyId(@RequestBody UserParam param){
@@ -210,43 +213,51 @@ public class InnerAPIController extends BaseController {
         if(jyUser == null){
             throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
         }
+        AllShareParam allShareParam = new AllShareParam();
+        allShareParam.getUserIds().add(jyUser.getId());
+        //设置全局公开场景
+        if(!manageConfig.getNumList().isEmpty()){
+            param.getAuthNumList().addAll(manageConfig.getNumList());
+        }
 
-        UserShareParam shareParam = new UserShareParam();
-        shareParam.setJyUserId(Math.toIntExact(jyUser.getUserId()));
-        shareParam.setPageNum(param.getPageNum());
-        shareParam.setPageSize(param.getPageSize());
-        Page<UserShareSceneVo> page= jyUserShareService.sceneList(shareParam);
-        List<String> numList = page.getRecords().stream().map(UserShareSceneVo::getNum).collect(Collectors.toList());
-        HashMap<String, JySceneAuth> authMap = jySceneAuthService.getByNumList(numList);
-        HashMap<String, List<JySceneUserAuth>> userSceneAuthMap = jySceneUserAuthService.getByNumList(numList);
-        HashSet<Integer> userIds = new HashSet<>();
-        for (String key : userSceneAuthMap.keySet()) {
-            List<JySceneUserAuth> userAuths = userSceneAuthMap.get(key);
-            for (JySceneUserAuth userAuth : userAuths) {
-                userIds.add(userAuth.getJyUserId());
+        //获取分享主用户
+        List<JyUserShare> jyUserShares = jyUserShareService.getByJyUserId(jyUser.getId());
+        if(!jyUserShares.isEmpty()){
+            jyUserShares.forEach(e -> allShareParam.getUserIds().add(e.getMainJyUserId()));
+        }
+        //获取本平台公开场景
+        List<String> openNums = jySceneAuthService.getNumListByPlatform(jyUser.getPlatformId(),1);
+        if(!openNums.isEmpty()){
+            allShareParam.getNumList().addAll(openNums);
+        }
+        //获取授权场景
+        HashMap<String,JySceneUserAuth> authHashMap = new HashMap<>();
+        HashMap<String,JySceneUserAuth> openHashMap = new HashMap<>();
+        List<JySceneUserAuth> jySceneUserAuths = jySceneUserAuthService.getByJyUserId(jyUser.getId());
+        jySceneUserAuths.stream().filter(e ->e.getNum() != null && e.getAuthType() == 0).forEach( e-> authHashMap.put(e.getNum(),e));
+        jySceneUserAuths.stream().filter(e ->e.getNum() != null && e.getAuthType() == 1).forEach( e-> openHashMap.put(e.getNum(),e));
+
+        List<String> allAuthNum = new ArrayList<>();
+        allAuthNum.addAll(authHashMap.keySet());
+        allAuthNum.addAll(openHashMap.keySet());
+        HashMap<String, JySceneAuth> authMap = jySceneAuthService.getByNumList(allAuthNum);
+
+        if(!authHashMap.isEmpty()){
+            List<String> authNumList = authHashMap.keySet().stream().filter(e -> authMap.get(e)!=null && authMap.get(e).getAuthType() == 0).collect(Collectors.toList());
+            if(!authNumList.isEmpty()){
+                allShareParam.getNumList().addAll(authNumList);
             }
         }
-        HashMap<Integer, JyUser> userHashMap = jyUserService.getByIds(new ArrayList<>(userIds));
-
-        for (UserShareSceneVo record : page.getRecords()) {
-            JySceneAuth jySceneAuth = authMap.get(record.getNum());
-            if(jySceneAuth != null){
-                record.setAuthType(jySceneAuth.getAuthType());
-                List<JySceneUserAuth> userAuths = userSceneAuthMap.get(record.getNum()+"_"+jySceneAuth.getAuthType());
-                if(userAuths != null && !userAuths.isEmpty()){
-                    for (JySceneUserAuth userAuth : userAuths) {
-                        JyUser jyUser1 = userHashMap.get(userAuth.getJyUserId());
-                        if(jyUser1 != null){
-                            userAuth.setRyId(jyUser1.getRyId());
-                            userAuth.setRyNo(jyUser1.getRyNo());
-                            userAuth.setRyNickName(jyUser1.getRyNickName());
-                        }
-                    }
-                    record.setAuthList(userAuths);
-                }
+        if(!openHashMap.isEmpty()){
+            List<String> openAuthNumList = openHashMap.keySet().stream().filter(e -> authMap.get(e)!=null && authMap.get(e).getAuthType() == 1).collect(Collectors.toList());
+            if(!openAuthNumList.isEmpty()){
+                allShareParam.getNumList().addAll(openAuthNumList);
             }
         }
 
+
+        Page<UserShareSceneVo> page= scenePlusService.allScenePageList(new Page<>(param.getPageNum(), param.getPageSize()),allShareParam);
+
         return ResultData.ok(PageInfo.PageInfo(page));
     }
 

+ 2 - 0
src/main/java/com/fdkankan/manage/mapper/IScenePlusMapper.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.manage.entity.ScenePlus;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fdkankan.manage.entity.UserShareParam;
+import com.fdkankan.manage.vo.request.AllShareParam;
 import com.fdkankan.manage.vo.response.GroupByCount;
 import com.fdkankan.manage.vo.response.UserAuthSceneVo;
 import com.fdkankan.manage.vo.response.UserShareSceneVo;
@@ -31,6 +32,7 @@ public interface IScenePlusMapper extends BaseMapper<ScenePlus> {
     List<GroupByCount> getCountGroupByCameraId(@Param("cameraIds") List<Long> cameraIds);
 
     Page<UserShareSceneVo> shareScenePageList(Page<UserShareSceneVo> objectPage, UserShareParam param);
+    Page<UserShareSceneVo> allScenePageList(Page<UserShareSceneVo> objectPage, AllShareParam param);
     Page<UserShareSceneVo> sceneAuthPageList(Page<UserShareSceneVo> objectPage, UserShareParam param);
 
     Page<UserAuthSceneVo> sceneAuthVoPageList(Page<UserShareSceneVo> objectPage, UserShareParam param);

+ 2 - 0
src/main/java/com/fdkankan/manage/service/IScenePlusService.java

@@ -5,6 +5,7 @@ import com.fdkankan.manage.entity.CameraDetail;
 import com.fdkankan.manage.entity.ScenePlus;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.manage.entity.UserShareParam;
+import com.fdkankan.manage.vo.request.AllShareParam;
 import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.response.UserAuthSceneVo;
 import com.fdkankan.manage.vo.response.UserShareSceneVo;
@@ -32,6 +33,7 @@ public interface IScenePlusService extends IService<ScenePlus> {
     HashMap<Long, Long> getCountGroupByCameraId(ArrayList<Long> longs);
 
     Page<UserShareSceneVo> shareScenePageList(Page<UserShareSceneVo> objectPage, UserShareParam param);
+    Page<UserShareSceneVo> allScenePageList(Page<UserShareSceneVo> objectPage, AllShareParam param);
     Page<UserShareSceneVo> sceneAuthPageList(Page<UserShareSceneVo> objectPage, UserShareParam param);
     Page<UserAuthSceneVo> sceneAuthVoPageList(Page<UserShareSceneVo> objectPage, UserShareParam param);
 

+ 5 - 0
src/main/java/com/fdkankan/manage/service/impl/ScenePlusServiceImpl.java

@@ -15,6 +15,7 @@ import com.fdkankan.manage.mapper.IScenePlusMapper;
 import com.fdkankan.manage.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.manage.util.ShellUtil;
+import com.fdkankan.manage.vo.request.AllShareParam;
 import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.response.AgentNewLogVo;
 import com.fdkankan.manage.vo.response.GroupByCount;
@@ -90,6 +91,10 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
         return this.getBaseMapper().shareScenePageList(objectPage,param);
     }
     @Override
+    public Page<UserShareSceneVo> allScenePageList(Page<UserShareSceneVo> objectPage, AllShareParam param) {
+        return this.getBaseMapper().allScenePageList(objectPage,param);
+    }
+    @Override
     public Page<UserShareSceneVo> sceneAuthPageList(Page<UserShareSceneVo> objectPage, UserShareParam param) {
         return this.getBaseMapper().sceneAuthPageList(objectPage,param);
     }

+ 14 - 0
src/main/java/com/fdkankan/manage/vo/request/AllShareParam.java

@@ -0,0 +1,14 @@
+package com.fdkankan.manage.vo.request;
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class AllShareParam extends RequestBase {
+
+    private List<Integer> userIds = new ArrayList<>();
+
+    private List<String> numList = new ArrayList<>();
+}

+ 32 - 0
src/main/resources/mapper/manage/ScenePlusMapper.xml

@@ -81,4 +81,36 @@
 
     </select>
 
+
+
+    <select id="allScenePageList" resultType="com.fdkankan.manage.vo.response.UserShareSceneVo">
+        select s.id,s.title,s.num,s.create_time,s.scene_status as status,s.scene_source,e.web_site,e.algorithm_time,ju.ry_no,ju.ry_nick_name,e.is_obj,s.user_id
+        from t_scene_plus s
+        left join  t_scene_plus_ext e on s.id = e.plus_id
+        left join jy_user ju on s.user_id = ju.user_id
+        where s.rec_status = 'A' and (s.scene_source not in (4,5) or ( s.scene_source in (4,5) and e.is_obj =1))
+
+        <if test="param.userIds != null and param.userIds.size >0 and param.numList != null and param.numList.size >0">
+            and (ju.id in
+            <foreach collection="param.userIds" item="userId" open="(" separator="," close=")">
+                #{userId}
+            </foreach>
+            or s.num in
+            <foreach collection="param.numList" item="num" open="(" separator="," close=")">
+                #{num}
+            </foreach>
+            )
+        </if>
+
+        <if test="param.userIds != null and param.userIds.size >0 and param.numList != null and param.numList.size ==0">
+            and ju.id in
+            <foreach collection="param.userIds" item="userId" open="(" separator="," close=")">
+                #{userId}
+            </foreach>
+
+        </if>
+        order by s.create_time desc ,s.id desc
+
+    </select>
+
 </mapper>