Przeglądaj źródła

refactor(order): 优化设备用户录入失败校验逻辑

- 抽取assertDeviceEnrollmentSucceeded方法统一检查设备录入用户信息返回码
- 新增getHikiotCode方法安全获取返回结果code值,避免空指针异常
- 替换原有重复的手动判断代码,提升代码可维护性和一致性
- 发生异常时记录详细日志,方便问题排查
- 保持功能逻辑不变,保证设备录入失败能正确抛出异常
wzq 3 dni temu
rodzic
commit
f2b65ea59c

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

@@ -138,6 +138,22 @@ public class OrderServiceImpl extends ServiceImpl<AppOrderMapper, AppOrder> impl
     @Resource
     private ShopMoneyMapper shopMoneyMapper;
 
+    void assertDeviceEnrollmentSucceeded(JsonObject addUserJson, JsonObject addFaceJson) {
+        int addUserCode = getHikiotCode(addUserJson);
+        int addFaceCode = getHikiotCode(addFaceJson);
+        if (addUserCode != 0 || addFaceCode != 0) {
+            log.error("设备录入用户信息失败,addUser返回={},addFace返回={}", addUserJson, addFaceJson);
+            throw new JeecgBootException("设备录入用户信息失败!请联系管理员");
+        }
+    }
+
+    private int getHikiotCode(JsonObject result) {
+        if (result == null || !result.has("code") || result.get("code").isJsonNull()) {
+            return -1;
+        }
+        return result.get("code").getAsInt();
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public OrderVO.createOrderPlaceSchool createOrderPlaceSchool(String rulesId, String userIds) {
@@ -1179,9 +1195,7 @@ public class OrderServiceImpl extends ServiceImpl<AppOrderMapper, AppOrder> impl
                                                 appDevice.getDeviceSerial(),
                                                 familyMembers.getId(),
                                                 familyMembers.getRealNameImg())).getAsJsonObject();
-                                        if (addUserJson.get("code").getAsInt() != 0 && addFaceJson.get("code").getAsInt() != 0) {
-                                            throw new JeecgBootException("设备录入用户信息失败!请联系管理员");
-                                        }
+                                        assertDeviceEnrollmentSucceeded(addUserJson, addFaceJson);
                                     }
                                 }
                             }
@@ -1200,9 +1214,7 @@ public class OrderServiceImpl extends ServiceImpl<AppOrderMapper, AppOrder> impl
                                             appDevice.getDeviceSerial(),
                                             familyMembers.getId(),
                                             familyMembers.getRealNameImg())).getAsJsonObject();
-                                    if (addUserJson.get("code").getAsInt() != 0 && addFaceJson.get("code").getAsInt() != 0) {
-                                        throw new JeecgBootException("设备录入用户信息失败!请联系管理员");
-                                    }
+                                    assertDeviceEnrollmentSucceeded(addUserJson, addFaceJson);
                                 }
                             }
                         }
@@ -1342,8 +1354,7 @@ public class OrderServiceImpl extends ServiceImpl<AppOrderMapper, AppOrder> impl
                                 
                                 JsonObject addUserJson = JsonParser.parseString(addUser).getAsJsonObject();
                                 JsonObject addFaceJson = JsonParser.parseString(addFace).getAsJsonObject();
-                                if (addUserJson.get("code").getAsInt() != 0 && addFaceJson.get("code").getAsInt() != 0)
-                                    throw new JeecgBootException("设备录入用户信息失败!请联系管理员");
+                                assertDeviceEnrollmentSucceeded(addUserJson, addFaceJson);
                             }
                         }
                     }