Bläddra i källkod

fix(app):修复场地价格规则解析异常处理- 添加 try-catch 块捕获数据解析异常
- 在异常处理中记录错误日志并抛出自定义异常
- 确保表单数据完整性验证失败时能正确提示用户

wzq 1 vecka sedan
förälder
incheckning
11de8006a8

+ 66 - 61
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/service/impl/AppSitePlaceServiceImpl.java

@@ -807,68 +807,73 @@ public class AppSitePlaceServiceImpl extends ServiceImpl<AppSitePlaceMapper, App
                 AppTeachingTime appTeachingTime = appTeachingTimeMapper.selectOne(Wrappers.<AppTeachingTime>lambdaQuery()
                         .eq(AppTeachingTime::getTenantId, site.getTenantId()).eq(AppTeachingTime::getDay, localDate));
 
-                //如果开放时段列表不为空(教学日/非教学日),根据开放时段批量存储,开放时段记录
-                if (ObjectUtils.isNotEmpty(site.getTeachingDay()) && appTeachingTime.getIsTeaching() == 0) {
-
-                    //解析Json 数据
-                    List<TeachingDayDTO> data = JSONObject.parseObject(site.getTeachingDay()).getJSONArray("data").toJavaList(TeachingDayDTO.class);
-                    data.forEach(item -> {
-
-                        String startTime = item.getStartTime();
-                        String endTime = item.getEndTime();
-                        Integer ticketNum = Integer.valueOf(item.getTicketNum());
-
-                        AppSitePriceRules appSitePriceRules = new AppSitePriceRules();
-                        appSitePriceRules
-                                .setOrgCode(site.getOrgCode())
-                                .setTenantId(site.getTenantId())
-                                .setSitePlaceId(appSitePlace.getId())
-                                .setType(0)
-                                .setTicketNum(ticketNum)
-                                .setDateOfSale(localDate)
-                                .setStartTime(DateUtils.str2Date(startTime, new SimpleDateFormat("HH:mm")))
-                                .setEndTime(DateUtils.str2Date(endTime, new SimpleDateFormat("HH:mm")))
-                                .setDayOfWeek(HolidayUtil.getWeekOfDate(localDate))
-                                .setIsTeaching(appTeachingTime.getIsTeaching())
-                                .setCategoryId(site.getCategoryId())
-                                .setCreateBy("admin")
-                                .setCreateTime(new Date())
-                                .setStatus(CommonConstant.STATUS_NORMAL)
-                                .setDelFlag(CommonConstant.STATUS_NORMAL)
-                        ;
-                        appSitePriceRulesList.add(appSitePriceRules);
-                    });
-
-                }
-                if (ObjectUtils.isNotEmpty(site.getNoTeachingDay()) && appTeachingTime.getIsTeaching() == 1) {
-
-                    List<TeachingDayDTO> data = JSONObject.parseObject(site.getNoTeachingDay()).getJSONArray("data").toJavaList(TeachingDayDTO.class);
-                    data.forEach(item -> {
-
-                        String startTime = item.getStartTime();
-                        String endTime = item.getEndTime();
-                        Integer ticketNum = Integer.valueOf(item.getTicketNum());
+                try {
+//如果开放时段列表不为空(教学日/非教学日),根据开放时段批量存储,开放时段记录
+                    if (ObjectUtils.isNotEmpty(site.getTeachingDay()) && appTeachingTime.getIsTeaching() == 0) {
+
+                        //解析Json 数据
+                        List<TeachingDayDTO> data = JSONObject.parseObject(site.getTeachingDay()).getJSONArray("data").toJavaList(TeachingDayDTO.class);
+                        data.forEach(item -> {
+
+                            String startTime = item.getStartTime();
+                            String endTime = item.getEndTime();
+                            Integer ticketNum = Integer.valueOf(item.getTicketNum());
+
+                            AppSitePriceRules appSitePriceRules = new AppSitePriceRules();
+                            appSitePriceRules
+                                    .setOrgCode(site.getOrgCode())
+                                    .setTenantId(site.getTenantId())
+                                    .setSitePlaceId(appSitePlace.getId())
+                                    .setType(0)
+                                    .setTicketNum(ticketNum)
+                                    .setDateOfSale(localDate)
+                                    .setStartTime(DateUtils.str2Date(startTime, new SimpleDateFormat("HH:mm")))
+                                    .setEndTime(DateUtils.str2Date(endTime, new SimpleDateFormat("HH:mm")))
+                                    .setDayOfWeek(HolidayUtil.getWeekOfDate(localDate))
+                                    .setIsTeaching(appTeachingTime.getIsTeaching())
+                                    .setCategoryId(site.getCategoryId())
+                                    .setCreateBy("admin")
+                                    .setCreateTime(new Date())
+                                    .setStatus(CommonConstant.STATUS_NORMAL)
+                                    .setDelFlag(CommonConstant.STATUS_NORMAL)
+                            ;
+                            appSitePriceRulesList.add(appSitePriceRules);
+                        });
 
-                        AppSitePriceRules appSitePriceRules = new AppSitePriceRules();
-                        appSitePriceRules
-                                .setOrgCode(site.getOrgCode())
-                                .setTenantId(site.getTenantId())
-                                .setSitePlaceId(appSitePlace.getId())
-                                .setType(0)
-                                .setTicketNum(ticketNum)
-                                .setDateOfSale(localDate)
-                                .setStartTime(DateUtils.str2Date(startTime, new SimpleDateFormat("HH:mm")))
-                                .setEndTime(DateUtils.str2Date(endTime, new SimpleDateFormat("HH:mm")))
-                                .setDayOfWeek(HolidayUtil.getWeekOfDate(localDate))
-                                .setIsTeaching(appTeachingTime.getIsTeaching())
-                                .setCategoryId(site.getCategoryId())
-                                .setCreateBy("admin")
-                                .setCreateTime(new Date())
-                                .setStatus(CommonConstant.STATUS_NORMAL)
-                                .setDelFlag(CommonConstant.STATUS_NORMAL)
-                        ;
-                        appSitePriceRulesList.add(appSitePriceRules);
-                    });
+                    }
+                    if (ObjectUtils.isNotEmpty(site.getNoTeachingDay()) && appTeachingTime.getIsTeaching() == 1) {
+
+                        List<TeachingDayDTO> data = JSONObject.parseObject(site.getNoTeachingDay()).getJSONArray("data").toJavaList(TeachingDayDTO.class);
+                        data.forEach(item -> {
+
+                            String startTime = item.getStartTime();
+                            String endTime = item.getEndTime();
+                            Integer ticketNum = Integer.valueOf(item.getTicketNum());
+
+                            AppSitePriceRules appSitePriceRules = new AppSitePriceRules();
+                            appSitePriceRules
+                                    .setOrgCode(site.getOrgCode())
+                                    .setTenantId(site.getTenantId())
+                                    .setSitePlaceId(appSitePlace.getId())
+                                    .setType(0)
+                                    .setTicketNum(ticketNum)
+                                    .setDateOfSale(localDate)
+                                    .setStartTime(DateUtils.str2Date(startTime, new SimpleDateFormat("HH:mm")))
+                                    .setEndTime(DateUtils.str2Date(endTime, new SimpleDateFormat("HH:mm")))
+                                    .setDayOfWeek(HolidayUtil.getWeekOfDate(localDate))
+                                    .setIsTeaching(appTeachingTime.getIsTeaching())
+                                    .setCategoryId(site.getCategoryId())
+                                    .setCreateBy("admin")
+                                    .setCreateTime(new Date())
+                                    .setStatus(CommonConstant.STATUS_NORMAL)
+                                    .setDelFlag(CommonConstant.STATUS_NORMAL)
+                            ;
+                            appSitePriceRulesList.add(appSitePriceRules);
+                        });
+                    }
+                }catch (Exception e){
+                    log.error("错误信息:{}",e.getMessage());
+                    throw new JeecgBootException("数据解析错误,请完整正确的填写表单!");
                 }
             }
             //存放开放时段列表(删除再新增)