瀏覽代碼

生成场景码规则修改

lyhzzz 2 年之前
父節點
當前提交
0a22c52bcb

+ 6 - 0
src/main/java/com/fdkankan/ucenter/common/constants/ResultCode.java

@@ -0,0 +1,6 @@
+package com.fdkankan.ucenter.common.constants;
+
+public class ResultCode {
+    public static final int FAILURE_CODE_400001 = 400001;
+    public static final String FAILURE_MSG_400001 = "场景码池为空";
+}

+ 4 - 87
src/main/java/com/fdkankan/ucenter/service/impl/Scene3dNumServiceImpl.java

@@ -6,6 +6,7 @@ import com.fdkankan.common.util.RandomUtil;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.ucenter.common.CameraTypeEnum;
 import com.fdkankan.ucenter.common.RedisKeyUtil;
+import com.fdkankan.ucenter.common.constants.ResultCode;
 import com.fdkankan.ucenter.entity.Scene3dNum;
 import com.fdkankan.ucenter.mapper.IScene3dNumMapper;
 import com.fdkankan.ucenter.service.IScene3dNumService;
@@ -37,35 +38,10 @@ public class Scene3dNumServiceImpl extends ServiceImpl<IScene3dNumMapper, Scene3
     @Override
     public String generateSceneNum(Integer cameraType) {
         String sceneNum = redisUtil.lLeftPop(RedisKeyUtil.SCENE_UNUSED_NUMS);
-        if(!StringUtils.isEmpty(sceneNum)){
-            return addPrefix(sceneNum,cameraType);
+        if(StringUtils.isEmpty(sceneNum)){
+            throw new BusinessException(ResultCode.FAILURE_CODE_400001,ResultCode.FAILURE_MSG_400001);
         }
-        long incr = redisUtil.incr(RedisKeyUtil.SCENE_NUMS_LOADING, 1);
-        if(incr == 1){
-            try {
-                log.info("开始从数据库加载场景码");
-                List<String> numList = this.getSceneNum();
-                redisUtil.lRightPushAll(RedisKeyUtil.SCENE_UNUSED_NUMS,numList);
-                log.info("场景码加载完成");
-            }catch ( Exception e){
-                e.printStackTrace();
-            }finally {
-                redisUtil.del(RedisKeyUtil.SCENE_NUMS_LOADING);
-            }
-        }else {
-            // 等待1秒加载缓存
-            try {
-                Thread.sleep(1000);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-        }
-        String num = redisUtil.lLeftPop(RedisKeyUtil.SCENE_UNUSED_NUMS);
-        if(ObjectUtils.isEmpty(num)){
-            log.error("场景码加载失败");
-            throw new BusinessException(-1,"场景码生成失败,请重试");
-        }
-        return addPrefix(num,cameraType);
+        return addPrefix(sceneNum,cameraType);
     }
 
     private  static  String addPrefix( String num,Integer cameraType){
@@ -75,63 +51,4 @@ public class Scene3dNumServiceImpl extends ServiceImpl<IScene3dNumMapper, Scene3
         return CameraTypeEnum.getSceneNumPrefixByType(cameraType) + num;
     }
 
-    private List<String> getSceneNum() {
-        LambdaQueryWrapper<Scene3dNum> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(Scene3dNum::getUsed,0);
-        long count = this.count(wrapper);
-        List<Scene3dNum> numList ;
-        if(count < 10){
-            log.info("场景码数量不足生成场景码");
-             numList = this.createNum(10);
-        }else {
-            wrapper.last("limit 100");
-            numList = this.list(wrapper);
-            for (Scene3dNum scene3dNum : numList) {
-                scene3dNum.setUsed(1);
-            }
-            this.updateBatchById(numList);
-        }
-        return  numList.parallelStream().map(Scene3dNum::getCode).collect(Collectors.toList());
-    }
-
-    private List<Scene3dNum> createNum(Integer size) {
-        //uuid 作为生成批次
-        List<Scene3dNum> scene3dNums = new ArrayList<>();
-        String uuid = UUID.randomUUID().toString().replace("-", "");
-        HashSet<String> codeList = this.createCode(size);
-        while (codeList.size() < size){
-            codeList.addAll(this.createCode(size - codeList.size()));
-        }
-        for (String code : codeList) {
-            Scene3dNum scene3dNum = new Scene3dNum();
-            scene3dNum.setUsed(1);
-            scene3dNum.setCode(code);
-            scene3dNum.setFolderName(uuid);
-            scene3dNum.setCreateTime(new Date());
-            scene3dNum.setUpdateTime(new Date());
-            scene3dNums.add(scene3dNum);
-        }
-        this.saveBatch(scene3dNums);
-        return scene3dNums;
-    }
-
-    private HashSet<String> createCode(Integer size) {
-        HashSet<String> codeList = new HashSet<>();
-        while (codeList.size() < size){
-            String code = RandomUtil.generateShortUuid().substring(0,8);
-            codeList.add(code);
-        }
-        LambdaQueryWrapper<Scene3dNum> wrapper = new LambdaQueryWrapper<>();
-        wrapper.in(Scene3dNum::getCode,codeList);
-        List<Scene3dNum> list = this.list(wrapper);
-        if(list.size() <=0){
-            return codeList;
-        }
-        for (Scene3dNum scene3dNum : list) {
-            codeList.remove(scene3dNum.getCode());
-        }
-        return codeList;
-    }
-
-
 }