From f6a9fc687cf5f3427ed4087714120f42acf9faef Mon Sep 17 00:00:00 2001 From: chents <78666437@qq.com> Date: Thu, 11 May 2023 23:33:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BD=A6=E8=BE=86=E7=BC=96?= =?UTF-8?q?=E8=BE=91BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CarAdminController.java | 41 ++++++++++++------- .../controller/CarLiveChannelController.java | 2 +- .../service/impl/CarAdminServiceImpl.java | 2 +- .../modules/business/vo/CarLiveChannelVo.java | 2 +- 4 files changed, 30 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/springblade/modules/business/controller/CarAdminController.java b/src/main/java/org/springblade/modules/business/controller/CarAdminController.java index 891b56d..a00d66d 100644 --- a/src/main/java/org/springblade/modules/business/controller/CarAdminController.java +++ b/src/main/java/org/springblade/modules/business/controller/CarAdminController.java @@ -67,29 +67,42 @@ public class CarAdminController extends BladeController { public R submit(@Valid @RequestBody CarAdminVo carAdminVo) { CarAdmin carAdmin = new CarAdmin(); BeanUtils.copyProperties(carAdminVo, carAdmin); - boolean success = carService.saveOrUpdate(carAdmin); - if (success) { - //保存或更新直播通道信息 + if (carAdmin.getId() == null) { + // 新增车辆信息 + carService.save(carAdmin); + // 获取新增车辆信息的id + Long carId = carAdmin.getId(); + // 遍历直播通道列表,设置外键为新增车辆信息的id,然后新增直播通道 List carLiveChannelVoList = carAdminVo.getCarLiveChannelVoList(); if (CollectionUtils.isNotEmpty(carLiveChannelVoList)) { - List carLiveChannelList = new ArrayList<>(); for (CarLiveChannelVo carLiveChannelVo : carLiveChannelVoList) { + carLiveChannelVo.setCarId(carId); CarLiveChannel carLiveChannel = new CarLiveChannel(); BeanUtils.copyProperties(carLiveChannelVo, carLiveChannel); - carLiveChannel.setCarId(carAdmin.getId()); - carLiveChannel.setCode(carLiveChannelVo.getCode()); - carLiveChannel.setStatus(carLiveChannelVo.getStatus()); - carLiveChannel.setChannelName(carLiveChannelVo.getChannelName()); - carLiveChannelList.add(carLiveChannel); + carLiveChannelService.save(carLiveChannel); } - carLiveChannelService.saveOrUpdateBatch(carLiveChannelList); } - //更新车辆信息下的直播通道数量 - carAdmin.setAmount((long) carLiveChannelVoList.size()); + } else { + // 1. 修改车辆信息 carService.updateById(carAdmin); - return R.success("true"); + + // 2. 根据车辆id删除原有通道 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("car_id",carAdmin.getId()); + carLiveChannelService.remove(queryWrapper); + // 3. 遍历直播通道列表,设置外键为新增车辆信息的id,然后新增直播通道 + Long carId = carAdmin.getId(); + List carLiveChannelVoList = carAdminVo.getCarLiveChannelVoList(); + if (CollectionUtils.isNotEmpty(carLiveChannelVoList)) { + for (CarLiveChannelVo carLiveChannelVo : carLiveChannelVoList) { + carLiveChannelVo.setCarId(carId); + CarLiveChannel carLiveChannel = new CarLiveChannel(); + BeanUtils.copyProperties(carLiveChannelVo, carLiveChannel); + carLiveChannelService.save(carLiveChannel); + } + } } - return R.fail("保存或更新失败"); + return R.success("true"); } diff --git a/src/main/java/org/springblade/modules/business/controller/CarLiveChannelController.java b/src/main/java/org/springblade/modules/business/controller/CarLiveChannelController.java index 85c8376..7ac40f2 100644 --- a/src/main/java/org/springblade/modules/business/controller/CarLiveChannelController.java +++ b/src/main/java/org/springblade/modules/business/controller/CarLiveChannelController.java @@ -54,7 +54,7 @@ public class CarLiveChannelController extends BladeController { @ApiOperation(value = "修改直播通道", notes = "传入carLiveChannel") @Transactional(rollbackFor = Exception.class) public R updateLiveChannel(@Valid @RequestBody CarLiveChannelVo carLiveChannelVo) { - CarLiveChannel carLiveChannel = carLiveChannelService.getById(carLiveChannelVo.getId()); + CarLiveChannel carLiveChannel = carLiveChannelService.getById(carLiveChannelVo.getCarId()); if (carLiveChannel == null) { return R.fail("该直播通道不存在"); } diff --git a/src/main/java/org/springblade/modules/business/service/impl/CarAdminServiceImpl.java b/src/main/java/org/springblade/modules/business/service/impl/CarAdminServiceImpl.java index 307a71e..f8c0050 100644 --- a/src/main/java/org/springblade/modules/business/service/impl/CarAdminServiceImpl.java +++ b/src/main/java/org/springblade/modules/business/service/impl/CarAdminServiceImpl.java @@ -66,7 +66,7 @@ public class CarAdminServiceImpl extends BaseServiceImpl carLiveChannelVoList = new ArrayList<>(); for(CarLiveChannel carLiveChannel : carLiveChannelList){ CarLiveChannelVo carLiveChannelVo = new CarLiveChannelVo(); - carLiveChannelVo.setId(carLiveChannel.getId()); + carLiveChannelVo.setCarId(carLiveChannel.getId()); carLiveChannelVo.setChannelName(carLiveChannel.getChannelName()); carLiveChannelVo.setStatus(carLiveChannel.getStatus()); carLiveChannelVoList.add(carLiveChannelVo); diff --git a/src/main/java/org/springblade/modules/business/vo/CarLiveChannelVo.java b/src/main/java/org/springblade/modules/business/vo/CarLiveChannelVo.java index c3f4cd6..8a4e31a 100644 --- a/src/main/java/org/springblade/modules/business/vo/CarLiveChannelVo.java +++ b/src/main/java/org/springblade/modules/business/vo/CarLiveChannelVo.java @@ -13,7 +13,7 @@ public class CarLiveChannelVo implements Serializable { private static final long serialVersionUID = 1L; - private Long id; + private Long carId; //直播通道号 private Integer code;