فهرست منبع

MBTI量表报告算法调整

zsf 10 ماه پیش
والد
کامیت
b9ddaf12e1
1فایلهای تغییر یافته به همراه22 افزوده شده و 4 حذف شده
  1. 22 4
      src/main/java/com/rf/psychological/scale/service/impl/MBTIResultDetailServiceImpl.java

+ 22 - 4
src/main/java/com/rf/psychological/scale/service/impl/MBTIResultDetailServiceImpl.java

@@ -51,13 +51,19 @@ public class MBTIResultDetailServiceImpl implements MBTIResultDetailService {
         }
     }
 
+    /**
+     * 随机获取到一定数量的字符串
+     * @param str 待处理字符串
+     * @param num 数量
+     * @return
+     */
     private String getRandomResultByNum(String str,int num) {
         List<String> list = Arrays.asList(str.split("、"));
-        if (list.size()>1){
+        if (list.size()>num){
             String result = null;
-            for (int i =0;i<num;i++){
-                int random =  RandomUtil.randomInt(0,list.size()-1);
-                String text = list.get(random);
+            int random =  RandomUtil.randomInt(0,list.size()-num);
+            for (int i =random;i<random+num;i++){
+                String text = list.get(i);
                 if (result == null){
                     result = text;
                 }else {
@@ -70,6 +76,18 @@ public class MBTIResultDetailServiceImpl implements MBTIResultDetailService {
         }
     }
 
+
+
+    private int getOnlyRandom(List numList,int size){
+        int random =  RandomUtil.randomInt(0,size-1);
+        if (numList.contains(random)){
+            return  getOnlyRandom(numList,size);
+        }else {
+            numList.add(random);
+            return random;
+        }
+    }
+
     @Override
     public void save(MBTIResultDetail detail) {
         detailRepository.save(detail);