Commit 6d3d8b8f by 段启岩

动态添加定时发布功能

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