Commit 6d3d8b8f by 段启岩

动态添加定时发布功能

parent 885dc73b
......@@ -78,7 +78,7 @@ public class PostApi {
//发布动态
try {
postService.publishPost(post);
postService.publishPost(post, postForm.getPublishTime());
return Response.success();
} catch (ProjectServiceException e) {
e.printStackTrace();
......
......@@ -2,11 +2,11 @@ package cn.meteor.beyondclouds.modules.post.form;
import cn.meteor.beyondclouds.core.validation.constraints.ElementNotBlank;
import cn.meteor.beyondclouds.core.validation.constraints.NullOrNotBlank;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;
/**
......@@ -26,4 +26,7 @@ public class PostForm {
@NullOrNotBlank(message = "请传入有效的视频内容")
private String video;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date publishTime;
}
......@@ -7,6 +7,7 @@
from post p, user_statistics us
where p.user_id = us.user_id
and p.status = 0
and p.create_time < now()
order by (us.fans_num + us.visited_num) desc
</select>
......@@ -17,6 +18,7 @@
and tr.referencer_id = p.post_id
and tr.topic_id = #{topicId}
and p.status = 0
and p.create_time &lt; now()
order by (us.fans_num + us.visited_num) desc
</select>
</mapper>
......@@ -5,9 +5,10 @@ import cn.meteor.beyondclouds.modules.post.dto.PostDTO;
import cn.meteor.beyondclouds.modules.post.entity.Post;
import cn.meteor.beyondclouds.modules.post.exception.PostServiceException;
import cn.meteor.beyondclouds.modules.project.exception.ProjectServiceException;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Date;
/**
* <p>
* 动态表 服务类
......@@ -22,9 +23,10 @@ public interface IPostService extends IService<Post> {
* 发布动态
*
* @param post
* @param publishTime
* @throws ProjectServiceException
*/
void publishPost(Post post) throws ProjectServiceException;
void publishPost(Post post, Date publishTime) throws ProjectServiceException;
/**
* 删除动态
......
package cn.meteor.beyondclouds.modules.post.service.impl;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.authentication.Subject;
import cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage;
import cn.meteor.beyondclouds.core.queue.message.DataItemType;
import cn.meteor.beyondclouds.modules.post.dto.PostDTO;
......@@ -43,10 +42,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -127,10 +123,11 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
* 发布动态
*
* @param post
* @param publishTime
* @throws ProjectServiceException
*/
@Override
public void publishPost(Post post) throws ProjectServiceException {
public void publishPost(Post post, Date publishTime) throws ProjectServiceException {
//1.判断是否视频和图片都传了
if (null != post.getPictures() && null != post.getVideo()) {
throw new ProjectServiceException(PostErrorCode.NOT_APPEAR_SAME_TIME);
......@@ -157,6 +154,9 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
post.setUserNick(user.getNickName());
post.setUserAvatar(user.getUserAvatar());
post.setContent(TopicUtils.encodeTopic(post.getContent()));
if (null != publishTime && publishTime.getTime() > System.currentTimeMillis()) {
post.setCreateTime(publishTime);
}
//2.保存动态
save(post);
......@@ -291,6 +291,7 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
QueryWrapper<Post> queryWrapper = new QueryWrapper();
queryWrapper.eq("status", 0);
queryWrapper.orderByDesc("create_time");
queryWrapper.le("create_time", new Date());
if (null != type) {
queryWrapper.eq("type", type);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment