lyhzzz 5 dagar sedan
förälder
incheckning
b8dd02b95e

+ 76 - 0
src/main/java/com/fdkankan/ucenter/common/SceneEnum.java

@@ -0,0 +1,76 @@
+package com.fdkankan.ucenter.common;
+
+import java.util.*;
+
+public enum SceneEnum {
+    KK("kk", Arrays.asList(1,2,12,13,14),1),
+    kJ("kJ", Arrays.asList(3),1),
+    SS("SS", Arrays.asList(4),0),
+    SS_OBJ("SS_OBJ", Arrays.asList(4),1),
+    SG("SG", Arrays.asList(5),0),
+    SG_OBJ("SG_OBJ", Arrays.asList(5),1),
+    e57("e57", Arrays.asList(57),0),
+    e57_OBJ("e57_OBJ", Arrays.asList(57),1),
+    sx("sx", Arrays.asList(7),0),
+
+    ;
+
+    private String name;
+    private List<Integer> sceneSource;
+
+    private Integer isObj;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public List<Integer> getSceneSource() {
+        return sceneSource;
+    }
+
+    public void setSceneSource(List<Integer> sceneSource) {
+        this.sceneSource = sceneSource;
+    }
+
+    public Integer getObj() {
+        return isObj;
+    }
+
+    public void setObj(Integer obj) {
+        isObj = obj;
+    }
+
+    SceneEnum(String name, List<Integer> sceneSource,Integer isObj) {
+        this.name = name;
+        this.sceneSource = sceneSource;
+        this.isObj = isObj;
+    }
+
+    public static List<String> getKeys(){
+        List<String> keys = new ArrayList<>();
+        SceneEnum[] values = SceneEnum.values();
+        for (SceneEnum value : values) {
+            keys.add( value.getName());
+        }
+        return keys;
+    }
+
+    public static SceneEnum getBySceneSource(Integer sceneSource,Integer isObj){
+        SceneEnum[] values = SceneEnum.values();
+        for (SceneEnum value : values) {
+            if(value.getSceneSource().contains(sceneSource) && value.getObj().equals(isObj)){
+                return value;
+            }
+        }
+        return null;
+    }
+
+
+    public static void main(String[] args) {
+        System.out.println(getKeys());
+    }
+}

+ 49 - 28
src/main/java/com/fdkankan/ucenter/service/impl/SceneProServiceImpl.java

@@ -21,6 +21,7 @@ import com.fdkankan.ucenter.common.OssPath;
 import com.fdkankan.ucenter.common.PageInfo;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.redis.util.RedisUtil;
+import com.fdkankan.ucenter.common.SceneEnum;
 import com.fdkankan.ucenter.common.SceneSourceUtil;
 import com.fdkankan.ucenter.common.constants.ResultCodeMsg;
 import com.fdkankan.ucenter.config.UcenterConfig;
@@ -132,35 +133,55 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
     @Override
     public HashMap<String, SceneNumVo> findSceneNumber(String token) {
-        User user = userService.getByUserName(JwtUtil.getUsername(token));
-        SceneNumVo sceneNumVoKk = getSceneNumVoByType(Arrays.asList(1,2,12,13,14), user.getId());
-        Integer oldNum = sceneService.getCountByUserId(user.getId());
-        sceneNumVoKk.setSceneNum( oldNum + sceneNumVoKk.getSceneNum());
-        sceneNumVoKk.setTotalNum(oldNum + sceneNumVoKk.getTotalNum());
-
-        SceneNumVo sceneNumVoKj = getSceneNumVoByType(Collections.singletonList(3), user.getId());
-
-        SceneNumVo sceneNumVoSS = fdkkLaserService.getLaserSceneNumByUser(token,4);
-        SceneNumVo sceneNumVoSSObj = getSceneNumVoByObjType(Arrays.asList(4), user.getId());
-
-        SceneNumVo sceneNumVoSG = fdkkLaserService.getLaserSceneNumByUser(token,5);
-        SceneNumVo sceneNumVoSGObj = getSceneNumVoByObjType(Arrays.asList(5), user.getId());
-
-        SceneNumVo sceneNumVoE57 = fdkkLaserService.getLaserSceneNumByUser(token,57);
-        SceneNumVo sceneNumVoE57Obj = getSceneNumVoByObjType(Arrays.asList(57), user.getId());
-
-        SceneNumVo sceneNumVoSX = fdkkLaserService.getLaserSceneNumByUser(token,7);
-
         HashMap<String, SceneNumVo> hashMap = new HashMap<>();
-        hashMap.put("kk",sceneNumVoKk);
-        hashMap.put("kJ",sceneNumVoKj);
-        hashMap.put("SS",sceneNumVoSS);
-        hashMap.put("SS_OBJ",sceneNumVoSSObj);
-        hashMap.put("SG",sceneNumVoSG);
-        hashMap.put("SG_OBJ",sceneNumVoSGObj);
-        hashMap.put("e57",sceneNumVoE57);
-        hashMap.put("e57_OBJ",sceneNumVoE57Obj);
-        hashMap.put("sx",sceneNumVoSX);
+        User user = userService.getByUserName(JwtUtil.getUsername(token));
+//        SceneNumVo sceneNumVoKk = getSceneNumVoByType(Arrays.asList(1,2,12,13,14), user.getId());
+//        Integer oldNum = sceneService.getCountByUserId(user.getId());
+//        sceneNumVoKk.setSceneNum( oldNum + sceneNumVoKk.getSceneNum());
+//        sceneNumVoKk.setTotalNum(oldNum + sceneNumVoKk.getTotalNum());
+//
+//        SceneNumVo sceneNumVoKj = getSceneNumVoByType(Collections.singletonList(3), user.getId());
+//
+//        SceneNumVo sceneNumVoSS = fdkkLaserService.getLaserSceneNumByUser(token,4);
+//        SceneNumVo sceneNumVoSSObj = getSceneNumVoByObjType(Arrays.asList(4), user.getId());
+//
+//        SceneNumVo sceneNumVoSG = fdkkLaserService.getLaserSceneNumByUser(token,5);
+//        SceneNumVo sceneNumVoSGObj = getSceneNumVoByObjType(Arrays.asList(5), user.getId());
+//
+//        SceneNumVo sceneNumVoE57 = fdkkLaserService.getLaserSceneNumByUser(token,57);
+//        SceneNumVo sceneNumVoE57Obj = getSceneNumVoByObjType(Arrays.asList(57), user.getId());
+//
+//        SceneNumVo sceneNumVoSX = fdkkLaserService.getLaserSceneNumByUser(token,7);
+//        hashMap.put("kk",sceneNumVoKk);
+//        hashMap.put("kJ",sceneNumVoKj);
+//        hashMap.put("SS",sceneNumVoSS);
+//        hashMap.put("SS_OBJ",sceneNumVoSSObj);
+//        hashMap.put("SG",sceneNumVoSG);
+//        hashMap.put("SG_OBJ",sceneNumVoSGObj);
+//        hashMap.put("e57",sceneNumVoE57);
+//        hashMap.put("e57_OBJ",sceneNumVoE57Obj);
+//        hashMap.put("sx",sceneNumVoSX);
+
+
+        List<SceneNumVo> groupBySceneSouceV3 = scenePlusService.getGroupBySceneSouceV3(user.getId());
+        List<SceneNumVo> groupBySceneSouceV4 = scenePlusService.getGroupBySceneSouceV4(user.getId());
+        groupBySceneSouceV4.addAll(groupBySceneSouceV3);
+
+        List<String> keys = SceneEnum.getKeys();
+        for (String key : keys) {
+            hashMap.put(key,new SceneNumVo());
+        }
+
+        for (SceneNumVo vo : groupBySceneSouceV4) {
+            SceneEnum sceneEnum = SceneEnum.getBySceneSource(vo.getType(), vo.getIsObj());
+            if(sceneEnum == null){
+                continue;
+            }
+            SceneNumVo sceneNumVo = hashMap.get(sceneEnum.getName());
+            sceneNumVo.setSceneNum( sceneNumVo.getSceneNum() + vo.getSceneNum() );
+            sceneNumVo.setTotalNum(sceneNumVo.getSceneNum() + vo.getSceneNum());
+            hashMap.put(sceneEnum.getName(),sceneNumVo);
+        }
         return hashMap;
     }
 

+ 1 - 0
src/main/java/com/fdkankan/ucenter/vo/response/SceneNumVo.java

@@ -11,4 +11,5 @@ public class SceneNumVo implements Serializable {
     private Long totalNum = 0L;
     private Integer type;                   //场景类型 0看看,1看见,2深时
     private Integer isObj;
+    private String key;
 }

+ 2 - 2
src/main/resources/mapper/ucenter/ScenePlusMapper.xml

@@ -101,13 +101,13 @@
         select  sum(space) from  t_scene_plus p left join t_scene_plus_ext e on p.id = e.plus_id where p.rec_status = 'A' and p.scene_status = -2 and p.camera_id = #{cameraId}
     </select>
 
-    <select id="getGroupBySceneSouceV4" resultType="com.fdkankan.ucenter.vo.response.SceneNumVo">
+    <select id="getGroupBySceneSouceV3" resultType="com.fdkankan.ucenter.vo.response.SceneNumVo">
         SELECT scene_source as type,count(1) as sceneNum,s.is_obj from t_scene_pro s
         WHERE s.rec_status = 'A' and s.is_upgrade = 0
         GROUP BY scene_source,is_obj
     </select>
 
-    <select id="getGroupBySceneSouceV3" resultType="com.fdkankan.ucenter.vo.response.SceneNumVo">
+    <select id="getGroupBySceneSouceV4" resultType="com.fdkankan.ucenter.vo.response.SceneNumVo">
         SELECT scene_source as type,count(1) as sceneNum,e.is_obj from t_scene_plus s LEFT JOIN t_scene_plus_ext e on s.id = e.plus_id
         WHERE s.rec_status = 'A' and s.user_id = #{userId}
         GROUP BY scene_source,is_obj