From 220d00cf807601a055c037bfec0ee6c65a185d35 Mon Sep 17 00:00:00 2001 From: "review512jwy@163.com" <“review512jwy@163.com”> Date: Fri, 17 Apr 2026 20:09:10 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=8A=A8=E7=89=A9=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=EF=BC=88=E4=B8=8D=E5=8C=85=E5=90=AB=E5=9B=BE=E7=89=87?= =?UTF-8?q?/=E8=A7=86=E9=A2=91=E5=AA=92=E4=BD=93=E8=B5=84=E6=BA=90?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../youlai/boot/file/service/FileService.java | 3 - .../file/service/impl/LocalFileService.java | 4 - .../file/service/impl/MinioFileService.java | 5 -- .../controller/StrayAnimalController.java | 15 ++++ .../mini/mapper/MiniStrayAnimalMapper.java | 2 + .../boot/mini/service/StrayAnimalService.java | 1 + .../service/impl/StrayAnimalServiceImpl.java | 75 +++++++++++++++---- .../mapper/mini/MiniStrayAnimalMapper.xml | 36 +++++++++ 8 files changed, 114 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/youlai/boot/file/service/FileService.java b/src/main/java/com/youlai/boot/file/service/FileService.java index b8cbaba..bd4238d 100644 --- a/src/main/java/com/youlai/boot/file/service/FileService.java +++ b/src/main/java/com/youlai/boot/file/service/FileService.java @@ -29,7 +29,4 @@ public interface FileService { boolean deleteFile(String filePath); - String uploadFile(String objectName, InputStream inputStream); - - } diff --git a/src/main/java/com/youlai/boot/file/service/impl/LocalFileService.java b/src/main/java/com/youlai/boot/file/service/impl/LocalFileService.java index e9a293f..4a9e927 100644 --- a/src/main/java/com/youlai/boot/file/service/impl/LocalFileService.java +++ b/src/main/java/com/youlai/boot/file/service/impl/LocalFileService.java @@ -90,8 +90,4 @@ public class LocalFileService implements FileService { return FileUtil.del(storagePath + filePath); } - @Override - public String uploadFile(String objectName, InputStream inputStream) { - return ""; - } } diff --git a/src/main/java/com/youlai/boot/file/service/impl/MinioFileService.java b/src/main/java/com/youlai/boot/file/service/impl/MinioFileService.java index 5516795..03e5a32 100644 --- a/src/main/java/com/youlai/boot/file/service/impl/MinioFileService.java +++ b/src/main/java/com/youlai/boot/file/service/impl/MinioFileService.java @@ -165,11 +165,6 @@ public class MinioFileService implements FileService { } } - @Override - public String uploadFile(String objectName, InputStream inputStream) { - return ""; - } - /** * PUBLIC桶策略 diff --git a/src/main/java/com/youlai/boot/mini/controller/StrayAnimalController.java b/src/main/java/com/youlai/boot/mini/controller/StrayAnimalController.java index 804e758..3ff6dcc 100644 --- a/src/main/java/com/youlai/boot/mini/controller/StrayAnimalController.java +++ b/src/main/java/com/youlai/boot/mini/controller/StrayAnimalController.java @@ -10,11 +10,14 @@ import com.youlai.boot.mini.model.form.StrayAnimalForm; import com.youlai.boot.mini.service.StrayAnimalService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.http.MediaType; import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -44,4 +47,16 @@ public class StrayAnimalController { return Result.success(uuid); } + + @Operation(summary = "编辑动物信息(不包含图片/视频媒体资源)") + @PutMapping(value = "/{uuid}") + @Log(module = LogModuleEnum.STRAY_ANIMAL_INFO, value = ActionTypeEnum.UPDATE) + public Result updateStrayAnimal( + @PathVariable String uuid, + @Validated @RequestBody StrayAnimalForm formData + ) { + strayAnimalService.updateStrayAnimal(uuid, formData); + return Result.success(); + } + } diff --git a/src/main/java/com/youlai/boot/mini/mapper/MiniStrayAnimalMapper.java b/src/main/java/com/youlai/boot/mini/mapper/MiniStrayAnimalMapper.java index 0ff5576..72946ec 100644 --- a/src/main/java/com/youlai/boot/mini/mapper/MiniStrayAnimalMapper.java +++ b/src/main/java/com/youlai/boot/mini/mapper/MiniStrayAnimalMapper.java @@ -13,4 +13,6 @@ public interface MiniStrayAnimalMapper extends BaseMapper { boolean insertStrayAnimal(MiniStrayAnimal entity); + void updateStrayAnimal(MiniStrayAnimal miniStrayAnimal); + } diff --git a/src/main/java/com/youlai/boot/mini/service/StrayAnimalService.java b/src/main/java/com/youlai/boot/mini/service/StrayAnimalService.java index 7516fbc..718ce36 100644 --- a/src/main/java/com/youlai/boot/mini/service/StrayAnimalService.java +++ b/src/main/java/com/youlai/boot/mini/service/StrayAnimalService.java @@ -12,4 +12,5 @@ public interface StrayAnimalService extends IService { String saveStrayAnimal(@Valid StrayAnimalForm formData, List images, List videos); + void updateStrayAnimal(String uuid, StrayAnimalForm formData); } diff --git a/src/main/java/com/youlai/boot/mini/service/impl/StrayAnimalServiceImpl.java b/src/main/java/com/youlai/boot/mini/service/impl/StrayAnimalServiceImpl.java index a73ccd0..e9bdc89 100644 --- a/src/main/java/com/youlai/boot/mini/service/impl/StrayAnimalServiceImpl.java +++ b/src/main/java/com/youlai/boot/mini/service/impl/StrayAnimalServiceImpl.java @@ -3,6 +3,8 @@ package com.youlai.boot.mini.service.impl; import ch.hsr.geohash.GeoHash; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.youlai.boot.common.constant.CommonConstants; import com.youlai.boot.common.util.CoordinateTransformUtils; @@ -10,6 +12,7 @@ import com.youlai.boot.common.util.FileUtils; import com.youlai.boot.common.util.JavaVCUtils; import com.youlai.boot.common.util.RandomNumberUtils; import com.youlai.boot.file.service.FileService; +import com.youlai.boot.file.service.impl.AliyunFileService; import com.youlai.boot.framework.security.util.SecurityUtils; import com.youlai.boot.mini.converter.MiniStrayAnimalConverter; import com.youlai.boot.mini.mapper.MiniStrayAnimalMapper; @@ -46,7 +49,7 @@ import java.util.UUID; @Slf4j public class StrayAnimalServiceImpl extends ServiceImpl implements StrayAnimalService { - private final FileService fileService; + private final AliyunFileService aliyunFileService; private final MiniStrayAnimalNoteMapper miniStrayAnimalNoteMapper; private final MiniStrayAnimalNoteMediaMapper miniStrayAnimalNoteMediaMapper; @@ -84,7 +87,7 @@ public class StrayAnimalServiceImpl extends ServiceImpl() + .eq(MiniStrayAnimal::getUuid, uuid) + .eq(MiniStrayAnimal::getDeleted, 0) + ); + Assert.notNull(animal, "动物不存在"); + + long currentTimestamp = System.currentTimeMillis(); + + // 1. 更新流浪动物基本信息 + updateAnimalInfo(animal.getId(), formData, currentTimestamp); + // 3. 更新笔记信息` + updateNoteInfo(animal.getId(), formData, currentTimestamp); + + } + + private void updateNoteInfo(Long animalId, StrayAnimalForm formData, long currentTimestamp) { + //处理笔记 + MiniStrayAnimalNote miniStrayAnimalNote = miniStrayAnimalNoteMapper.selectOne(new LambdaQueryWrapper() + .eq(MiniStrayAnimalNote::getStrayAnimalId, animalId)); + if (null != miniStrayAnimalNote){ + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(MiniStrayAnimalNote::getId, miniStrayAnimalNote.getId()) + .set(MiniStrayAnimalNote::getTitle, formData.getTitle()) + .set(MiniStrayAnimalNote::getContent, formData.getContent()) + .set(MiniStrayAnimalNote::getVisibility, formData.getVisibility()) + .set(MiniStrayAnimalNote::getUpdateTimestamp, currentTimestamp) + .set(MiniStrayAnimalNote::getUpdateBy, SecurityUtils.getUserId()) + .set(MiniStrayAnimalNote::getUpdateTime, new Date(currentTimestamp)); + + miniStrayAnimalNoteMapper.update(null, updateWrapper); + + } + } + + private void updateAnimalInfo(Long animalId, StrayAnimalForm formData, long currentTimestamp) { + MiniStrayAnimal miniStrayAnimal = miniStrayAnimalConverter.toEntity(formData); + + miniStrayAnimal.setId(animalId); + miniStrayAnimal.setUpdateTimestamp(currentTimestamp); + miniStrayAnimal.setUpdateTime(new Date(currentTimestamp)); + miniStrayAnimal.setUpdateBy(SecurityUtils.getUserId()); + handleLngLat(miniStrayAnimal, formData.getLng(), formData.getLat()); + + miniStrayAnimalMapper.updateStrayAnimal(miniStrayAnimal); + } + } diff --git a/src/main/resources/mapper/mini/MiniStrayAnimalMapper.xml b/src/main/resources/mapper/mini/MiniStrayAnimalMapper.xml index 1b699c0..aaeab58 100644 --- a/src/main/resources/mapper/mini/MiniStrayAnimalMapper.xml +++ b/src/main/resources/mapper/mini/MiniStrayAnimalMapper.xml @@ -80,4 +80,40 @@ + + + UPDATE mini_stray_animal + + uuid = #{uuid}, + mini_user_id = #{miniUserId}, + animal_type = #{animalType}, + color = #{color}, + size = #{size}, + status = #{status}, + adopted_by = #{adoptedBy}, + adopted_at = #{adoptedAt}, + audit_status = #{auditStatus}, + province = #{province}, + city = #{city}, + district = #{district}, + address = #{address}, + + + gd_location_point = + ST_GeomFromWKB(#{gdLocationPoint, typeHandler=com.youlai.boot.common.handler.PointTypeHandler}, 4326), + + + + wgs84_location_point = + ST_GeomFromWKB(#{wgs84LocationPoint, typeHandler=com.youlai.boot.common.handler.PointTypeHandler}, 4326), + + + wgs84_geohash = #{wgs84Geohash}, + update_time = #{updateTime}, + update_timestamp = #{updateTimestamp}, + update_by = #{updateBy}, + + WHERE id = #{id} + +