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 4ffcca0..fd21cd4 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 @@ -10,7 +10,7 @@ public class StoryItem { private String instanceId; private String storyInstanceId; private String content; - private LocalDateTime time; + private LocalDateTime storyItemTime; private String type; private String status; private String cover; 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 1b17aa4..02b8f62 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 @@ -1,74 +1,110 @@ package com.timeline.story.service.impl; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.timeline.common.utils.IdUtils; +import com.timeline.common.utils.UserContextUtils; +import com.timeline.story.dao.StoryItemMapper; import com.timeline.story.entity.StoryItem; import com.timeline.story.service.StoryItemService; import com.timeline.story.vo.StoryItemAddVo; import com.timeline.story.vo.StoryItemShareVo; import com.timeline.story.vo.StoryItemVo; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import java.time.LocalDateTime; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +@Slf4j @Service public class StoryItemServiceImpl implements StoryItemService { + + @Autowired + private StoryItemMapper storyItemMapper; + @Override public Map getItemsByMasterItem(StoryItemVo storyItemVo) { - // TODO: Implement this method + PageHelper.startPage(storyItemVo.getCurrent() != null ? storyItemVo.getCurrent() : 1, + storyItemVo.getPageSize() != null ? storyItemVo.getPageSize() : 10); + Map params = new HashMap<>(); + params.put("storyInstanceId", storyItemVo.getStoryInstanceId()); + + List list = storyItemMapper.selectStoryItemByStoryInstanceId(params); + PageInfo pageInfo = new PageInfo<>(list); + Map result = new HashMap<>(); - result.put("list", Collections.emptyList()); - result.put("total", 0); + result.put("list", pageInfo.getList()); + result.put("total", pageInfo.getTotal()); return result; } @Override + @Transactional(rollbackFor = Exception.class) public void createStoryItem(StoryItemAddVo storyItemAddVo, List images) { - // TODO: Implement this method + storyItemAddVo.setInstanceId(IdUtils.randomUuid()); + storyItemAddVo.setCreateId(UserContextUtils.getCurrentUserId()); + storyItemAddVo.setCreateTime(LocalDateTime.now()); + storyItemAddVo.setUpdateTime(LocalDateTime.now()); + storyItemAddVo.setIsDelete(0); + if (storyItemAddVo.getStoryItemTime() == null) { + storyItemAddVo.setStoryItemTime(LocalDateTime.now()); + } + + storyItemMapper.insert(storyItemAddVo); + // Images handling to be implemented } @Override + @Transactional(rollbackFor = Exception.class) public void updateItem(StoryItemAddVo storyItemAddVo, List images) { - // TODO: Implement this method + storyItemAddVo.setUpdateId(UserContextUtils.getCurrentUserId()); + storyItemAddVo.setUpdateTime(LocalDateTime.now()); + storyItemMapper.update(storyItemAddVo); + // Images handling to be implemented } @Override + @Transactional(rollbackFor = Exception.class) public void deleteItem(String itemId) { - // TODO: Implement this method + storyItemMapper.deleteByItemId(itemId); } @Override public StoryItem getItemById(String itemId) { - // TODO: Implement this method - return null; + return storyItemMapper.selectById(itemId); } @Override public List getStoryItemImages(String itemId) { - // TODO: Implement this method - return Collections.emptyList(); + return storyItemMapper.selectImagesByItemId(itemId); } @Override public Integer getStoryItemCount(String storyInstanceId) { - // TODO: Implement this method - return 0; + return storyItemMapper.countByStoryId(storyInstanceId); } @Override public StoryItemShareVo getItemByShareId(String shareId) { - // TODO: Implement this method - return null; + return storyItemMapper.selectByShareIdWithAuthor(shareId); } @Override public Map searchItems(String keyword, Integer pageNum, Integer pageSize) { - // TODO: Implement this method + PageHelper.startPage(pageNum, pageSize); + List list = storyItemMapper.searchItems(keyword); + PageInfo pageInfo = new PageInfo<>(list); + Map result = new HashMap<>(); - result.put("list", Collections.emptyList()); - result.put("total", 0); + result.put("list", pageInfo.getList()); + result.put("total", pageInfo.getTotal()); return result; } } 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 1f38910..302cb1b 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 @@ -1,10 +1,12 @@ package com.timeline.story.vo; +import com.timeline.story.entity.StoryItem; import lombok.Data; +import lombok.EqualsAndHashCode; @Data -public class StoryItemVo { - private String storyInstanceId; +@EqualsAndHashCode(callSuper = true) +public class StoryItemVo extends StoryItem { private Integer current; private Integer pageSize; }