Quellcode durchsuchen

fix(app):修正导出订单数据时的条件查询逻辑与空值处理

- 修改 AppGameMapper.xml 中结束时间查询条件为开始时间
- 在 AppOrderServiceImpl.java 中增加对 gameCertification 字段的空值判断- 优化队名、队徽及社保证明字段的默认值显示逻辑
- 增强 certificationDTOS 数据解析时的健壮性处理
SheepHy vor 1 Monat
Ursprung
Commit
f525f0d951

+ 1 - 1
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/mapper/xml/AppGameMapper.xml

@@ -298,7 +298,7 @@
             AND d.start_time <![CDATA[ >= ]]> #{exportConditionDTO.startTime}
         </if>
         <if test="exportConditionDTO.endTime != null and exportConditionDTO.endTime != ''">
-            AND d.end_time <![CDATA[ <= ]]> #{exportConditionDTO.endTime}
+            AND d.start_time <![CDATA[ <= ]]> #{exportConditionDTO.endTime}
         </if>
     </select>
 </mapper>

+ 19 - 14
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppOrderServiceImpl.java

@@ -450,7 +450,6 @@ public class AppOrderServiceImpl extends ServiceImpl<AppOrderMapper, AppOrder> i
         int index = 1;
         for (ExportConditionOutVO outVO : exportConditionOutVO){
             String gameCertification = outVO.getGameCertification();
-
             // 使用 FastJSON 解析 gameCertification 字段
             JSONObject certificationJson = JSONObject.parseObject(gameCertification);
 
@@ -461,26 +460,32 @@ public class AppOrderServiceImpl extends ServiceImpl<AppOrderMapper, AppOrder> i
             map.put("报名项目", outVO.getProjectName());
 
             // 提取 teamName 放到 队名
-            String teamName = certificationJson.getString("teamName");
+            String teamName = "未填写";
+            if(null != certificationJson && certificationJson.containsKey("teamName")) teamName = certificationJson.getString("teamName");
             map.put("队名", teamName != null ? teamName : "");
 
             // 提取 teamEmblemImg 放到 队徽
-            String teamEmblemImg = certificationJson.getString("teamEmblemImg");
+            String teamEmblemImg = "未填写";
+            if(null != certificationJson && certificationJson.containsKey("teamEmblemImg")) teamEmblemImg = certificationJson.getString("teamEmblemImg");
             map.put("队徽", teamEmblemImg != null ? teamEmblemImg : "");
 
             // 提取 certificationDTOS 放到 社保证明
-            JSONArray certificationDTOS = certificationJson.getJSONArray("certificationDTOS");
-            if (certificationDTOS != null && !certificationDTOS.isEmpty()) {
-                StringBuilder certificationBuilder = new StringBuilder();
-                for (int i = 0; i < certificationDTOS.size(); i++) {
-                    JSONObject cert = certificationDTOS.getJSONObject(i);
-                    String name = cert.getString("name");
-                    String certificationImg = cert.getString("certificationImg");
-                    certificationBuilder.append(name).append(": ").append(certificationImg).append(";");
+            if(null != certificationJson && certificationJson.containsKey("certificationDTOS")){
+                JSONArray certificationDTOS = certificationJson.getJSONArray("certificationDTOS");
+                if (certificationDTOS != null && !certificationDTOS.isEmpty()) {
+                    StringBuilder certificationBuilder = new StringBuilder();
+                    for (int i = 0; i < certificationDTOS.size(); i++) {
+                        JSONObject cert = certificationDTOS.getJSONObject(i);
+                        String name = "未填写";
+                        String certificationImg = "未填写";
+                        if(null != cert && cert.containsKey("name")) name = cert.getString("name");
+                        if(null != cert && cert.containsKey("certificationImg")) certificationImg = cert.getString("certificationImg");
+                        certificationBuilder.append(name).append(": ").append(certificationImg).append(";");
+                    }
+                    map.put("社保证明", certificationBuilder.toString());
+                } else {
+                    map.put("社保证明", "");
                 }
-                map.put("社保证明", certificationBuilder.toString());
-            } else {
-                map.put("社保证明", "");
             }
 
             map.put("报名人员", outVO.getUserName());