From 120d78434542a236e7e9db8a848a121a39c8310e Mon Sep 17 00:00:00 2001 From: jianghao <332515344@qq.com> Date: Wed, 11 Feb 2026 16:35:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E6=95=85=E4=BA=8B?= =?UTF-8?q?=E6=9D=A1=E7=9B=AE=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 更新 StoryItem 实体类,新增 masterItemId、title、description、location 和 share_id 等字段。 2. 扩展 StoryItemVo,支持返回创建者姓名、更新者姓名、图片列表以及时间筛选参数。 3. 修改 StoryItemMapper,将查询结果类型从 StoryItem 变更为 StoryItemVo,并同步更新 SQL 映射。 4. 在 StoryItemServiceImpl 中增加时间过滤逻辑,并在分页查询时自动填充条目关联的图片信息。 --- .../com/timeline/story/dao/StoryItemMapper.java | 2 +- .../com/timeline/story/entity/StoryItem.java | 6 +++++- .../story/service/impl/StoryItemServiceImpl.java | 16 ++++++++++++++-- .../java/com/timeline/story/vo/StoryItemVo.java | 9 +++++++++ .../com/timeline/story/dao/StoryItemMapper.xml | 16 ++++++++++------ 5 files changed, 39 insertions(+), 10 deletions(-) diff --git a/timeline-story-service/src/main/java/com/timeline/story/dao/StoryItemMapper.java b/timeline-story-service/src/main/java/com/timeline/story/dao/StoryItemMapper.java index 0acb1fe..da2afa2 100644 --- a/timeline-story-service/src/main/java/com/timeline/story/dao/StoryItemMapper.java +++ b/timeline-story-service/src/main/java/com/timeline/story/dao/StoryItemMapper.java @@ -24,7 +24,7 @@ public interface StoryItemMapper { List selectImagesByItemId(String itemId); - List selectStoryItemByStoryInstanceId(Map map); + List selectStoryItemByStoryInstanceId(Map map); int countByStoryId(String storyInstanceId); diff --git a/timeline-story-service/src/main/java/com/timeline/story/entity/StoryItem.java b/timeline-story-service/src/main/java/com/timeline/story/entity/StoryItem.java index fd21cd4..ec71e3e 100644 --- a/timeline-story-service/src/main/java/com/timeline/story/entity/StoryItem.java +++ b/timeline-story-service/src/main/java/com/timeline/story/entity/StoryItem.java @@ -9,13 +9,17 @@ public class StoryItem { private Long id; private String instanceId; private String storyInstanceId; - private String content; + private String masterItemId; + private String title; + private String description; + private String location; private LocalDateTime storyItemTime; private String type; private String status; private String cover; private String createId; private String updateId; + private String shareId; private LocalDateTime createTime; private LocalDateTime updateTime; private Integer isDelete; diff --git a/timeline-story-service/src/main/java/com/timeline/story/service/impl/StoryItemServiceImpl.java b/timeline-story-service/src/main/java/com/timeline/story/service/impl/StoryItemServiceImpl.java index 02b8f62..744ebac 100644 --- a/timeline-story-service/src/main/java/com/timeline/story/service/impl/StoryItemServiceImpl.java +++ b/timeline-story-service/src/main/java/com/timeline/story/service/impl/StoryItemServiceImpl.java @@ -35,9 +35,21 @@ public class StoryItemServiceImpl implements StoryItemService { storyItemVo.getPageSize() != null ? storyItemVo.getPageSize() : 10); Map params = new HashMap<>(); params.put("storyInstanceId", storyItemVo.getStoryInstanceId()); + if (storyItemVo.getAfterTime() != null) { + params.put("afterTime", storyItemVo.getAfterTime()); + } - List list = storyItemMapper.selectStoryItemByStoryInstanceId(params); - PageInfo pageInfo = new PageInfo<>(list); + List list = storyItemMapper.selectStoryItemByStoryInstanceId(params); + + // 填充图片信息 + if (list != null && !list.isEmpty()) { + for (StoryItemVo item : list) { + List images = storyItemMapper.selectImagesByItemId(item.getInstanceId()); + item.setImages(images); + } + } + + PageInfo pageInfo = new PageInfo<>(list); Map result = new HashMap<>(); result.put("list", pageInfo.getList()); diff --git a/timeline-story-service/src/main/java/com/timeline/story/vo/StoryItemVo.java b/timeline-story-service/src/main/java/com/timeline/story/vo/StoryItemVo.java index 302cb1b..32afa20 100644 --- a/timeline-story-service/src/main/java/com/timeline/story/vo/StoryItemVo.java +++ b/timeline-story-service/src/main/java/com/timeline/story/vo/StoryItemVo.java @@ -4,9 +4,18 @@ import com.timeline.story.entity.StoryItem; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.List; + @Data @EqualsAndHashCode(callSuper = true) public class StoryItemVo extends StoryItem { private Integer current; private Integer pageSize; + private String createName; + private String updateName; + private List images; + + // 查询参数 + private String afterTime; + private String beforeTime; } diff --git a/timeline-story-service/src/main/resources/com/timeline/story/dao/StoryItemMapper.xml b/timeline-story-service/src/main/resources/com/timeline/story/dao/StoryItemMapper.xml index 3ebc7b3..a417454 100644 --- a/timeline-story-service/src/main/resources/com/timeline/story/dao/StoryItemMapper.xml +++ b/timeline-story-service/src/main/resources/com/timeline/story/dao/StoryItemMapper.xml @@ -5,14 +5,16 @@ - INSERT INTO story_item (instance_id, master_item_id, description, location, title, create_id, story_instance_id, is_delete, story_item_time, update_id) - VALUES (#{instanceId}, #{masterItemId}, #{description}, #{location}, #{title},#{createId}, #{storyInstanceId}, #{isDelete}, #{storyItemTime}, #{updateId}) + INSERT INTO story_item (instance_id, master_item_id, description, location, title, create_id, story_instance_id, is_delete, story_item_time, update_id, share_id, cover) + VALUES (#{instanceId}, #{masterItemId}, #{description}, #{location}, #{title},#{createId}, #{storyInstanceId}, #{isDelete}, #{storyItemTime}, #{updateId}, #{shareId}, #{cover}) UPDATE story_item SET description = #{description}, location = #{location}, + title = #{title}, + cover = #{cover}, create_id = #{createId}, update_time = NOW(), update_id = #{updateId}, @@ -44,6 +46,9 @@ si.location, title, story_instance_id, + si.master_item_id, + si.share_id, + si.cover, si.story_item_time as story_item_time, si.update_time, si.create_id AS create_id, @@ -92,15 +97,14 @@ si.id, si.story_instance_id, si.title, - si.content, + si.description, si.story_item_time, - si.cover, - si.is_milestone + si.cover FROM story_item si WHERE si.is_delete = 0 - AND (si.title LIKE CONCAT('%', #{keyword}, '%') OR si.content LIKE CONCAT('%', #{keyword}, '%')) + AND (si.title LIKE CONCAT('%', #{keyword}, '%') OR si.description LIKE CONCAT('%', #{keyword}, '%')) ORDER BY si.story_item_time DESC