From eadf548a94b47d671076ef2d293a16f5e3495539 Mon Sep 17 00:00:00 2001 From: Cxx0822 <1556464090@qq.com> Date: Fri, 27 Jun 2025 15:58:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=9B=B4=E6=96=B0=E6=9C=8B=E5=8F=8B?= =?UTF-8?q?=E5=9C=88=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cxx/food/controller/MomentController.java | 6 ++++ src/main/java/com/cxx/food/dao/MomentDao.java | 5 +-- src/main/java/com/cxx/food/dto/MomentDto.java | 7 ++++ .../java/com/cxx/food/entity/MomentImage.java | 15 ++++++++ .../cxx/food/mapper/MomentImageMapper.java | 9 +++++ .../com/cxx/food/service/MomentService.java | 2 ++ .../food/service/impl/MomentServiceImpl.java | 36 +++++++++++++++++-- src/main/resources/mapper/MomentMapper.xml | 19 +++++++++- 8 files changed, 93 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/cxx/food/entity/MomentImage.java create mode 100644 src/main/java/com/cxx/food/mapper/MomentImageMapper.java diff --git a/src/main/java/com/cxx/food/controller/MomentController.java b/src/main/java/com/cxx/food/controller/MomentController.java index c1981ad..cd9f367 100644 --- a/src/main/java/com/cxx/food/controller/MomentController.java +++ b/src/main/java/com/cxx/food/controller/MomentController.java @@ -31,6 +31,12 @@ public class MomentController { return momentService.updateMoment(id, momentDto); } + @Operation(summary = "删除朋友圈") + @DeleteMapping("/{id}") + public Boolean deleteMoment(@PathVariable("id") long id) { + return momentService.deleteMoment(id); + } + @Operation(summary = "查询朋友圈") @GetMapping("") public @JsonView(ReadView.class) List queryMoment() { diff --git a/src/main/java/com/cxx/food/dao/MomentDao.java b/src/main/java/com/cxx/food/dao/MomentDao.java index ede9872..155e73a 100644 --- a/src/main/java/com/cxx/food/dao/MomentDao.java +++ b/src/main/java/com/cxx/food/dao/MomentDao.java @@ -1,8 +1,6 @@ package com.cxx.food.dao; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.cxx.food.dto.*; -import com.cxx.food.vo.FoodQueryVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -11,4 +9,7 @@ import java.util.List; @Mapper public interface MomentDao { List queryMoment(); + + void insertMomentImage(@Param("momentId") Long momentId, + @Param("list") List imageFiles); } diff --git a/src/main/java/com/cxx/food/dto/MomentDto.java b/src/main/java/com/cxx/food/dto/MomentDto.java index 2427ae5..53f2985 100644 --- a/src/main/java/com/cxx/food/dto/MomentDto.java +++ b/src/main/java/com/cxx/food/dto/MomentDto.java @@ -18,6 +18,10 @@ public class MomentDto { @JsonView(ReadView.class) private Long id; + @Schema(description = "用户id") + @JsonView(ReadView.class) + private Long userId; + @Schema(description = "姓名") @JsonView(ReadView.class) private String username; @@ -30,6 +34,9 @@ public class MomentDto { @NotBlank(message = "内容不能为空") private String content; + @Schema(description = "朋友圈图片") + private List imageList; + @Schema(description = "时间") @JsonView(ReadView.class) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") diff --git a/src/main/java/com/cxx/food/entity/MomentImage.java b/src/main/java/com/cxx/food/entity/MomentImage.java new file mode 100644 index 0000000..d9df0e9 --- /dev/null +++ b/src/main/java/com/cxx/food/entity/MomentImage.java @@ -0,0 +1,15 @@ +package com.cxx.food.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName("moment_image") +public class MomentImage { + @TableField("moment_id") + private Long momentId; + + @TableField("image_url") + private String imageUrl; +} diff --git a/src/main/java/com/cxx/food/mapper/MomentImageMapper.java b/src/main/java/com/cxx/food/mapper/MomentImageMapper.java new file mode 100644 index 0000000..e9c5eaa --- /dev/null +++ b/src/main/java/com/cxx/food/mapper/MomentImageMapper.java @@ -0,0 +1,9 @@ +package com.cxx.food.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.cxx.food.entity.MomentImage; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface MomentImageMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/main/java/com/cxx/food/service/MomentService.java b/src/main/java/com/cxx/food/service/MomentService.java index dc15db9..243b743 100644 --- a/src/main/java/com/cxx/food/service/MomentService.java +++ b/src/main/java/com/cxx/food/service/MomentService.java @@ -10,6 +10,8 @@ public interface MomentService { Boolean updateMoment(Long id, MomentDto momentDto); + Boolean deleteMoment(Long id); + List queryMoment(); Boolean addComment(Long momentId, String content); diff --git a/src/main/java/com/cxx/food/service/impl/MomentServiceImpl.java b/src/main/java/com/cxx/food/service/impl/MomentServiceImpl.java index c6eb597..c8526ae 100644 --- a/src/main/java/com/cxx/food/service/impl/MomentServiceImpl.java +++ b/src/main/java/com/cxx/food/service/impl/MomentServiceImpl.java @@ -1,11 +1,13 @@ package com.cxx.food.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.cxx.food.dao.MomentDao; -import com.cxx.food.dto.CommentDto; import com.cxx.food.dto.MomentDto; import com.cxx.food.entity.Comment; import com.cxx.food.entity.Moment; +import com.cxx.food.entity.MomentImage; import com.cxx.food.mapper.CommentMapper; +import com.cxx.food.mapper.MomentImageMapper; import com.cxx.food.mapper.MomentMapper; import com.cxx.food.service.MomentService; import com.cxx.framework.web.CustomException; @@ -26,11 +28,18 @@ public class MomentServiceImpl implements MomentService { @Resource private CommentMapper commentMapper; + @Resource + private MomentImageMapper momentImageMapper; + @Override public Boolean addMoment(MomentDto momentDto) { Moment moment = new Moment(); BeanUtils.copyProperties(momentDto, moment); - return momentMapper.insert(moment) == 1; + momentMapper.insert(moment); + + insertMomentImage(moment.getId(), momentDto.getImageList()); + + return Boolean.TRUE; } @Override @@ -42,7 +51,18 @@ public class MomentServiceImpl implements MomentService { Moment moment = new Moment(); BeanUtils.copyProperties(momentDto, moment); moment.setId(id); - return momentMapper.updateById(moment) == 1; + momentMapper.updateById(moment); + + deleteMomentImage(id); + insertMomentImage(id, momentDto.getImageList()); + return Boolean.TRUE; + } + + @Override + public Boolean deleteMoment(Long id) { + deleteMomentImage(id); + momentMapper.deleteById(id); + return Boolean.TRUE; } @Override @@ -62,4 +82,14 @@ public class MomentServiceImpl implements MomentService { comment.setMomentId(momentId); return commentMapper.insert(comment) == 1; } + + private void deleteMomentImage(Long id) { + momentImageMapper.delete(Wrappers.lambdaQuery(MomentImage.class).eq(MomentImage::getMomentId, id)); + } + + private void insertMomentImage(Long momentId, List imageList) { + if (!imageList.isEmpty()) { + momentDao.insertMomentImage(momentId, imageList); + } + } } diff --git a/src/main/resources/mapper/MomentMapper.xml b/src/main/resources/mapper/MomentMapper.xml index a9e16d0..7ca431d 100644 --- a/src/main/resources/mapper/MomentMapper.xml +++ b/src/main/resources/mapper/MomentMapper.xml @@ -3,10 +3,13 @@ + + @@ -32,7 +35,8 @@ + + + + + INSERT INTO moment_image (moment_id, image_url) VALUES + + (#{momentId}, #{item}) + +