Browse Source

更新!

TRX 1 năm trước cách đây
mục cha
commit
582f76cf4a

+ 20 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/quest/QuestTitleModel.java

@@ -0,0 +1,20 @@
+package com.zhongshu.card.client.model.quest;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author TRX
+ * @date 2024/11/29
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class QuestTitleModel {
+
+    private String questionId;
+
+    private String question;
+
+}

+ 43 - 7
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/quest/QuestService.java

@@ -1,5 +1,8 @@
 package com.zhongshu.card.server.core.service.quest;
 
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import com.github.microservice.components.data.base.util.PageEntityUtil;
 import com.github.microservice.core.util.bean.BeanUtil;
 import com.github.microservice.net.ResultContent;
@@ -25,6 +28,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -108,11 +112,44 @@ public class QuestService {
         Pageable pageable = PageRequest.of(0, Integer.MAX_VALUE);
         Page<QuestInfo> page = questInfoDao.page(pageable, param);
         List<Map<String, Object>> maps = new ArrayList<>();
+
+        HashMap<String, String> titleMap = new HashMap<>();
+        List<QuestTitleModel> titles = new ArrayList<>();
         if (page.getContent() != null) {
             List<QuestInfo> list = page.getContent();
-            maps = list.stream().map(it -> {
+            maps = list.parallelStream().map(it -> {
                 Map<String, Object> map = BeanUtil.bean2Map(it);
-
+                try {
+                    Object data = it.getData();
+                    if (data != null) {
+                        JSONArray jsonArray = JSONUtil.parseArray(data.toString());
+                        for (int i = 0; i < jsonArray.size(); i++) {
+                            JSONObject jsonObject = jsonArray.getJSONObject(i);
+                            String questionId = jsonObject.get("questionId").toString();
+                            if (!titleMap.containsKey(questionId)) {
+                                QuestTitleModel titleModel = new QuestTitleModel();
+                                titleModel.setQuestionId(questionId);
+                                String question = jsonObject.get("question").toString();
+                                titleModel.setQuestion(question);
+                                titles.add(titleModel);
+                                titleMap.put(questionId, question);
+                            }
+                            Object answer = jsonObject.get("answer");
+                            String value = "";
+                            if (answer != null) {
+                                if (answer instanceof JSONArray) {
+                                    JSONArray arr = (JSONArray) answer;
+                                    value = arr.toString();
+                                } else {
+                                    value = answer.toString();
+                                }
+                            }
+                            map.put(questionId, value);
+                        }
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
                 map.put("timeStr", DateUtils.paresTime(it.getCreateTime(), DateUtils.patternyyyyMis));
                 return map;
             }).collect(Collectors.toList());
@@ -123,11 +160,10 @@ public class QuestService {
         execlParam.setStartRow(2);
         execlParam.setDatas(maps);
         List<CommonExeclTd> tds = new ArrayList<>();
-        tds.add(CommonExeclTd.build("1", "code"));
-        tds.add(CommonExeclTd.build("2", "cardStr"));
-        tds.add(CommonExeclTd.build("3", "useStr"));
-        tds.add(CommonExeclTd.build("4", "cancelStr"));
-        tds.add(CommonExeclTd.build("时间", "timeStr"));
+        for (QuestTitleModel titleModel : titles) {
+            tds.add(CommonExeclTd.build(titleModel.getQuestion(), titleModel.getQuestionId(), 6));
+        }
+        tds.add(CommonExeclTd.build("时间", "timeStr", 6));
         execlParam.setTds(tds);
         ExcelUtils.commonExecuteExcel(request, response, execlParam);
     }