“mitao”
2026-03-20 0c42a018cb3992cdc3c246d150fd7511f17e0df7
fix:点位图片删除后保存不生效问题
1个文件已修改
26 ■■■■■ 已修改文件
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/controller/XpPointManagementController.java
@@ -201,10 +201,10 @@
    @ShardingSphereTransactionType(TransactionType.BASE)
    public R edit(@Validated @RequestBody PointUpdateDto pointAddDto) {
        XpPoint xpPoint = xpPointService.getById(pointAddDto.getId());
        BeanUtils.copyProperties(pointAddDto, xpPoint);
        if (xpPoint == null) {
            throw new ServiceException("系统异常", I18nKeyConstant.SYSTEM_EXCEPTION);
        }
        BeanUtils.copyProperties(pointAddDto, xpPoint);
        if (Integer.valueOf(2).equals(pointAddDto.getOperationStatus()) && Integer.valueOf(5).equals(pointAddDto.getVerificationStatus())) {
            Long electronicAreaId = xpPoint.getElectronicAreaId();
            if (electronicAreaId == null) {
@@ -228,7 +228,29 @@
            }
        }
        xpPoint.setFpElectronicAreaId(null);
        xpPointService.updateById(xpPoint);
        // 使用 lambdaUpdate 确保 pointPictures 为 null 时也能将数据库字段清空
        // (updateById 默认策略 NOT_NULL 会跳过 null 值,导致删除图片后数据库仍保留旧图片)
        xpPointService.lambdaUpdate()
                .eq(XpPoint::getId, xpPoint.getId())
                .set(XpPoint::getPointName, xpPoint.getPointName())
                .set(XpPoint::getPointPoi, xpPoint.getPointPoi())
                .set(XpPoint::getPointNumber, xpPoint.getPointNumber())
                .set(XpPoint::getOperationStatus, xpPoint.getOperationStatus())
                .set(XpPoint::getPointType, xpPoint.getPointType())
                .set(XpPoint::getVerificationStatus, xpPoint.getVerificationStatus())
                .set(XpPoint::getParkingTimeLimit, xpPoint.getParkingTimeLimit())
                .set(XpPoint::getOperationType, xpPoint.getOperationType())
                .set(XpPoint::getEffectivePeriod, xpPoint.getEffectivePeriod())
                .set(XpPoint::getEffectiveTimePeriod, xpPoint.getEffectiveTimePeriod())
                .set(XpPoint::getPointAddress, xpPoint.getPointAddress())
                .set(XpPoint::getRemarks, xpPoint.getRemarks())
                .set(XpPoint::getPointPictures, xpPoint.getPointPictures())
                .set(XpPoint::getPointLon, xpPoint.getPointLon())
                .set(XpPoint::getPointLat, xpPoint.getPointLat())
                .set(XpPoint::getElectronicAreaId, xpPoint.getElectronicAreaId())
                .set(XpPoint::getChargePoint, xpPoint.getChargePoint())
                .set(XpPoint::getParkingPoint, xpPoint.getParkingPoint())
                .update();
        return R.ok();
    }