feat: add update status in batch api for post.

pull/755/head
ruibaby 2019-12-12 13:52:40 +08:00
parent f36f8aed8a
commit 68512988d0
4 changed files with 48 additions and 1 deletions

View File

@ -15,6 +15,7 @@ import run.halo.app.model.enums.PostStatus;
import run.halo.app.model.params.PostContentParam;
import run.halo.app.model.params.PostParam;
import run.halo.app.model.params.PostQuery;
import run.halo.app.model.params.PostStatusUpdateParam;
import run.halo.app.model.vo.PostDetailVO;
import run.halo.app.service.OptionService;
import run.halo.app.service.PostService;
@ -125,6 +126,12 @@ public class PostController {
return new BasePostMinimalDTO().convertFrom(post);
}
@PutMapping("status")
@ApiOperation("Update post status in batch")
public List<Post> updateStatusInBatch(@RequestBody PostStatusUpdateParam param) {
return postService.updateStatusByIds(param.getIds(), param.getStatus());
}
@PutMapping("{postId:\\d+}/status/draft/content")
@ApiOperation("Update draft")
public BasePostDetailDTO updateDraftBy(

View File

@ -0,0 +1,20 @@
package run.halo.app.model.params;
import lombok.Data;
import run.halo.app.model.enums.PostStatus;
import java.util.List;
/**
* Post status update param.
*
* @author ryanwang
* @date 2019-12-12
*/
@Data
public class PostStatusUpdateParam {
private PostStatus status;
private List<Integer> ids;
}

View File

@ -8,7 +8,6 @@ import run.halo.app.model.dto.post.BasePostDetailDTO;
import run.halo.app.model.dto.post.BasePostMinimalDTO;
import run.halo.app.model.dto.post.BasePostSimpleDTO;
import run.halo.app.model.entity.BasePost;
import run.halo.app.model.entity.Post;
import run.halo.app.model.enums.PostStatus;
import java.util.Date;
@ -236,4 +235,14 @@ public interface BasePostService<POST extends BasePost> extends CrudService<POST
*/
@NonNull
POST updateStatus(@NonNull PostStatus status, @NonNull Integer postId);
/**
* Updates post status by ids.
*
* @param ids post ids must not be null
* @param status post status must not be null
* @return updated posts
*/
@NonNull
List<POST> updateStatusByIds(@NonNull List<Integer> ids, @NonNull PostStatus status);
}

View File

@ -380,6 +380,17 @@ public abstract class BasePostServiceImpl<POST extends BasePost> extends Abstrac
return post;
}
@Override
@Transactional
public List<POST> updateStatusByIds(List<Integer> ids, PostStatus status) {
if (CollectionUtils.isEmpty(ids)) {
return Collections.emptyList();
}
return ids.stream().map(id -> {
return updateStatus(status, id);
}).collect(Collectors.toList());
}
@Override
public POST create(POST post) {
// Check title