lyhzzz před 1 měsícem
rodič
revize
cc0d63c536

+ 3 - 0
src/main/java/com/fdkankan/ucenter/config/UcenterConfig.java

@@ -30,4 +30,7 @@ public class UcenterConfig {
 
     @Value("${ucenter.register.cooperation-laser-num: }")
     private String registerCooperationLaserNum;
+
+    @Value("${queue.scene.copy:ucenter-copy-scene}")
+    private String copySceneQueue;
 }

+ 8 - 0
src/main/java/com/fdkankan/ucenter/controller/SceneController.java

@@ -23,6 +23,7 @@ import com.fdkankan.ucenter.httpClient.param.FdRoomVo;
 import com.fdkankan.ucenter.httpClient.param.UploadEditSceneParam;
 import com.fdkankan.ucenter.service.*;
 import com.fdkankan.ucenter.service.impl.TakeLookService;
+import com.fdkankan.ucenter.vo.request.DemoSceneParam;
 import com.fdkankan.ucenter.vo.request.RequestScene;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.response.DownloadProcessVo;
@@ -351,5 +352,12 @@ public class SceneController extends BaseController {
         }
         return Result.success();
     }
+
+
+    @PostMapping("/demoSceneList")
+    public Result demoSceneList(@RequestBody DemoSceneParam param) {
+        param.setUserId(getUserId());
+        return Result.success(sceneProService.demoSceneList(param));
+    }
 }
 

+ 7 - 0
src/main/java/com/fdkankan/ucenter/entity/ScenePlus.java

@@ -121,4 +121,11 @@ public class ScenePlus implements Serializable {
     @TableField("rec_status")
     @TableLogic(value = "A",delval = "I")
     private String recStatus;
+
+
+    /**
+     * 是否示例场景,0否,1是
+     */
+    @TableField("demo")
+    private Integer demo;
 }

+ 3 - 0
src/main/java/com/fdkankan/ucenter/mapper/IScenePlusMapper.java

@@ -5,6 +5,7 @@ import com.fdkankan.ucenter.entity.ScenePlus;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fdkankan.ucenter.vo.RelicsSceneInitQueueDTO;
 import com.fdkankan.ucenter.vo.request.AppSceneParam;
+import com.fdkankan.ucenter.vo.request.DemoSceneParam;
 import com.fdkankan.ucenter.vo.request.LaserSceneParam;
 import com.fdkankan.ucenter.vo.response.AppSceneVo;
 import com.fdkankan.ucenter.vo.response.SceneNumVo;
@@ -41,4 +42,6 @@ public interface IScenePlusMapper extends BaseMapper<ScenePlus> {
     Long getCountByAndIsObj(@Param("userId")Long userId, @Param("sceneSourceList")List<String> sourceList, @Param("isObj")Integer isObj,@Param("isLaser")Integer isLaser);
 
     List<SceneVo> getVoByNumList(@Param("numList")List<String> numList);
+
+    Page<SceneVo> domeSceneList(Page<Object> objectPage, DemoSceneParam param);
 }

+ 1 - 0
src/main/java/com/fdkankan/ucenter/service/IScene3dNumService.java

@@ -14,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface IScene3dNumService extends IService<Scene3dNum> {
 
     String generateSceneNum(Integer type);
+    String generateSceneNumByOldNum(String oldNum);
 }

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

@@ -9,6 +9,7 @@ import com.fdkankan.ucenter.entity.ScenePlus;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.ucenter.vo.RelicsSceneInitQueueDTO;
 import com.fdkankan.ucenter.vo.ResponseScene;
+import com.fdkankan.ucenter.vo.request.DemoSceneParam;
 import com.fdkankan.ucenter.vo.request.LaserSceneParam;
 import com.fdkankan.ucenter.vo.request.RequestScene;
 import com.fdkankan.ucenter.vo.response.SceneNumVo;
@@ -69,4 +70,6 @@ public interface IScenePlusService extends IService<ScenePlus> {
     Long getCountByAndIsObj(Long userId, List<String> sourceList, Integer isObj,Integer isLaser);
 
     List<SceneVo> getVoByNumList(List<String> numList);
+
+    Page<SceneVo> domeSceneList(Page<Object> objectPage, DemoSceneParam param);
 }

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

@@ -10,6 +10,7 @@ import com.fdkankan.ucenter.entity.ScenePlus;
 import com.fdkankan.ucenter.entity.ScenePro;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.ucenter.vo.ResponseScene;
+import com.fdkankan.ucenter.vo.request.DemoSceneParam;
 import com.fdkankan.ucenter.vo.request.RequestScene;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.response.*;
@@ -60,7 +61,7 @@ public interface ISceneProService extends IService<ScenePro> {
 
     Long copyV3Scene(ScenePro scenePro, String newNum, CameraDetail cameraDetail, CameraType cameraType) throws Exception;
 
-
+    void copyScene(String oldNum,Long userId);
     void delete(String sceneNum,Long userId,String platform);
 
     ScenePro getByUnicode(String unicode);
@@ -95,4 +96,6 @@ public interface ISceneProService extends IService<ScenePro> {
     Long getSpaceSumByCameraId(Long cameraId);
 
     void removePortrait(String num);
+
+    PageInfo demoSceneList(DemoSceneParam param);
 }

+ 8 - 5
src/main/java/com/fdkankan/ucenter/service/impl/LoginService.java

@@ -6,6 +6,7 @@ import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.*;
 import com.fdkankan.fyun.face.FYunFileServiceInterface;
 import com.fdkankan.image.MatrixToImageWriterUtil;
+import com.fdkankan.rabbitmq.util.RabbitMqProducer;
 import com.fdkankan.sign.AesUtil;
 import com.fdkankan.sms.SmsService;
 import com.fdkankan.ucenter.common.MailUtil;
@@ -17,9 +18,7 @@ import com.fdkankan.ucenter.common.constants.NacosProperty;
 import com.fdkankan.ucenter.config.UcenterConfig;
 import com.fdkankan.ucenter.constant.LoginConstant;
 import com.fdkankan.ucenter.constant.QrCodeFilePath;
-import com.fdkankan.ucenter.entity.Camera;
-import com.fdkankan.ucenter.entity.CameraDetail;
-import com.fdkankan.ucenter.entity.User;
+import com.fdkankan.ucenter.entity.*;
 import com.fdkankan.ucenter.service.*;
 import com.fdkankan.ucenter.vo.request.LoginParam;
 import com.fdkankan.ucenter.vo.request.RegisterParam;
@@ -66,6 +65,8 @@ public class LoginService {
     UcenterConfig ucenterConfig;
     @Autowired
     ISceneCooperationService sceneCooperationService;
+    @Autowired
+    ISceneProService sceneProService;
 
 
     public LoginVo login(User user){
@@ -196,8 +197,10 @@ public class LoginService {
         }
         param.setPassword(password);
         User register = userService.register(param);
-        sceneCooperationService.saveByRegister(register,ucenterConfig.getRegisterCooperationMeshNum(),"mesh");
-        sceneCooperationService.saveByRegister(register,ucenterConfig.getRegisterCooperationLaserNum(),"laser");
+        //sceneCooperationService.saveByRegister(register,ucenterConfig.getRegisterCooperationMeshNum(),"mesh");
+        //sceneCooperationService.saveByRegister(register,ucenterConfig.getRegisterCooperationLaserNum(),"laser");
+        sceneProService.copyScene(ucenterConfig.getRegisterCooperationMeshNum(),register.getId());
+        sceneProService.copyScene(ucenterConfig.getRegisterCooperationLaserNum(),register.getId());
     }
 
     public JSONObject createLoginQrCode() throws Exception {

+ 16 - 0
src/main/java/com/fdkankan/ucenter/service/impl/Scene3dNumServiceImpl.java

@@ -50,4 +50,20 @@ public class Scene3dNumServiceImpl extends ServiceImpl<IScene3dNumMapper, Scene3
 
     }
 
+    @Override
+    public String generateSceneNumByOldNum(String oldNum) {
+        String sceneNum = redisUtil.lLeftPop(RedisKeyUtil.SCENE_UNUSED_NUMS);
+        if(StringUtils.isEmpty(sceneNum)){
+            throw new BusinessException(ResultCodeMsg.FAILURE_CODE_400001, ResultCodeMsg.FAILURE_MSG_400001);
+        }
+        if(StringUtils.isEmpty(oldNum)){
+            throw new BusinessException(ResultCodeMsg.FAILURE_CODE_400002, ResultCodeMsg.FAILURE_MSG_400002);
+        }
+        if(!oldNum.contains("-")){
+            throw new BusinessException(ResultCodeMsg.FAILURE_CODE_400002, ResultCodeMsg.FAILURE_MSG_400002);
+        }
+        String[] split = oldNum.split("-");
+        return split[0] +"-"+ sceneNum;
+    }
+
 }

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

@@ -36,6 +36,7 @@ import java.util.stream.Collectors;
 import com.fdkankan.ucenter.util.RoamingPointUtil;
 import com.fdkankan.ucenter.util.SceneResourcePath;
 import com.fdkankan.ucenter.vo.RelicsSceneInitQueueDTO;
+import com.fdkankan.ucenter.vo.request.DemoSceneParam;
 import com.fdkankan.ucenter.vo.request.LaserSceneParam;
 import com.fdkankan.ucenter.vo.request.RequestScene;
 import com.fdkankan.ucenter.vo.response.SceneNumVo;
@@ -451,4 +452,9 @@ public class ScenePlusServiceImpl extends ServiceImpl<IScenePlusMapper, ScenePlu
     public List<SceneVo> getVoByNumList(List<String> numList) {
         return this.getBaseMapper().getVoByNumList(numList);
     }
+
+    @Override
+    public Page<SceneVo> domeSceneList(Page<Object> objectPage, DemoSceneParam param) {
+        return this.getBaseMapper().domeSceneList(objectPage,param);
+    }
 }

+ 41 - 4
src/main/java/com/fdkankan/ucenter/service/impl/SceneProServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.SceneConstant;
 import com.fdkankan.common.constant.SceneKind;
 import com.fdkankan.common.constant.SceneVersionType;
@@ -38,6 +39,7 @@ import com.fdkankan.ucenter.service.*;
 import com.fdkankan.ucenter.util.DateUserUtil;
 import com.fdkankan.ucenter.util.SceneResourcePath;
 import com.fdkankan.ucenter.vo.ResponseScene;
+import com.fdkankan.ucenter.vo.request.DemoSceneParam;
 import com.fdkankan.ucenter.vo.request.RequestScene;
 import com.fdkankan.ucenter.vo.request.SceneParam;
 import com.fdkankan.ucenter.vo.response.*;
@@ -801,9 +803,6 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     @Autowired
     RabbitMqProducer rabbitMqProducer;
 
-    @Value("${queue.scene.copy:ucenter-copy-scene}")
-    private String copySceneQueue;
-
     private void copyScene(String oldNum,CameraDetail detailEntity,ScenePro scenePro,ScenePlus scenePlus,CameraType cameraType) throws Exception {
         String newNum = scene3dNumService.generateSceneNum(detailEntity.getType());
         Long userId = scenePro == null ? scenePlus.getUserId() :scenePro.getUserId();
@@ -811,7 +810,23 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
         HashMap<String,String > map = new HashMap<>();
         map.put("oldNum",oldNum);
         map.put("newNum",newNum);
-        rabbitMqProducer.sendByWorkQueue(copySceneQueue,map);
+        rabbitMqProducer.sendByWorkQueue(ucenterConfig.getCopySceneQueue(),map);
+    }
+
+    public void copyScene(String num,Long userId) {
+        if(StringUtils.isBlank(num)){
+            return;
+        }
+        String[] split = num.split(",");
+        for (String oldNum : split) {
+            String newNum = scene3dNumService.generateSceneNumByOldNum(oldNum);
+            sceneCopyLogService.saveByNum(oldNum,newNum,userId);
+            HashMap<String,Object > map = new HashMap<>();
+            map.put("oldNum",oldNum);
+            map.put("newNum",newNum);
+            map.put("userId",userId);
+            rabbitMqProducer.sendByWorkQueue(ucenterConfig.getCopySceneQueue(),map);
+        }
     }
 
     @Override
@@ -1418,4 +1433,26 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
 
 
     }
+
+    @Override
+    public PageInfo demoSceneList(DemoSceneParam param) {
+        if(param.getUserId() == null){
+            throw new BusinessException(ErrorCode.USER_NOT_LOGIN);
+        }
+        if(param.getIsObj() == 0){  //点云列表
+            param.setSceneSourceList(SceneSourceUtil.LaserSceneSource);
+        }
+        Page<SceneVo> page = scenePlusService.domeSceneList(new Page<>(param.getPageNum(),param.getPageSize()),param);
+        if(param.getIsObj() == 0){  //点云列表
+            for (SceneVo record : page.getRecords()) {
+                if(ucenterConfig.getActive().contains("prod")){
+                    record.setWebSite(ucenterConfig.getBasePath() +"/index.html?m="+record.getNum());
+                }else {
+                    record.setWebSite(ucenterConfig.getBasePath() +"/uat/index.html?m="+record.getNum());
+                }
+                record.setSceneName(record.getLaserTitle());
+            }
+        }
+        return PageInfo.PageInfo(page);
+    }
 }

+ 13 - 0
src/main/java/com/fdkankan/ucenter/vo/request/DemoSceneParam.java

@@ -0,0 +1,13 @@
+package com.fdkankan.ucenter.vo.request;
+
+import com.fdkankan.ucenter.common.RequestBase;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class DemoSceneParam extends RequestBase {
+    private Integer isObj = 0;
+    private Long userId;
+    private List<Integer> sceneSourceList;
+}

+ 12 - 0
src/main/resources/mapper/ucenter/ScenePlusMapper.xml

@@ -185,4 +185,16 @@
             #{num}
         </foreach>
     </select>
+
+    <select id="domeSceneList" resultType="com.fdkankan.ucenter.vo.response.SceneVo">
+        select * from t_scene_plus s left join  t_scene_plus_ext e on s.id = e.plus_id
+        where s.rec_status= 'A' and demo = 1
+        and s.user_id = #{param.userId}
+        <if test="param.sceneSourceList !=null and param.sceneSourceList.size >0">
+            and s.scene_source in
+            <foreach collection="param.sceneSourceList" item="sceneSource" open="(" separator="," close=")">
+                #{sceneSource}
+            </foreach>
+        </if>
+    </select>
 </mapper>