shikeyin
2024-01-11 65da8373531677b1c37a98f53eaa30c892f35e5a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package com.ishop.merchant.platform;
 
import com.iplatform.base.Constants;
import com.ishop.merchant.BaseController;
import com.ishop.merchant.pojo.ArticleParam;
import com.ishop.merchant.util.VoUtils;
import com.ishop.model.po.EbArticle;
import com.ishop.model.request.ArticleRequest;
import com.ishop.model.vo.ArticleVo;
import com.walker.db.page.GenericPager;
import com.walker.db.page.ListPageContext;
import com.walker.infrastructure.utils.NumberGenerator;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.ArrayList;
import java.util.List;
 
@RestController
@RequestMapping("/platform/article")
public class ArticleController extends BaseController {
 
    @RequestMapping(value = "/delete", method = RequestMethod.POST)
    public ResponseValue delete(Long id){
        if(id == null || id <= 0){
            return ResponseValue.error(Constants.ERROR_ARGUMENT);
        }
        this.getArticleService().execDeleteArticle(id);
        return ResponseValue.success();
    }
    @RequestMapping(value = "/info", method = RequestMethod.GET)
    public ResponseValue info(Long id){
        return this.acquireArticleDetailVo(id);
    }
 
    @RequestMapping(value = "/switch", method = RequestMethod.POST)
    public ResponseValue articleSwitch(Long id){
        if(id == null || id <= 0){
            return ResponseValue.error(Constants.ERROR_ARGUMENT);
        }
        EbArticle article = this.getArticleService().get(new EbArticle(id));
        article.setStatus(article.getStatus().intValue() == 1? 0:1);
        this.getArticleService().update(article);
        return ResponseValue.success();
    }
 
    @RequestMapping(value = "/update", method = RequestMethod.POST)
    public ResponseValue update(@RequestBody ArticleRequest request){
        if(request == null){
            return ResponseValue.error(Constants.ERROR_ARGUMENT);
        }
        if(request.getId() == null || request.getId() <= 0){
            return ResponseValue.error("文章id错误");
        }
        if(StringUtils.isEmpty(request.getTitle()) || StringUtils.isEmpty(request.getContent())){
            return ResponseValue.error("内容不能为空");
        }
        EbArticle exist = this.getArticleService().get(new EbArticle(request.getId()));
        if(exist == null){
            return ResponseValue.error("数据不存在");
        }
 
        if(StringUtils.isNotEmpty(request.getCover())){
            request.setCover(this.clearCdnPrefix(request.getCover()));
        }
        request.setContent(this.clearCdnPrefix(request.getContent()));
        EbArticle article = VoUtils.acquireEbArticle(request, this.getCdnUrl());
        article.setCreateTime(exist.getCreateTime());
        this.getArticleService().update(article);
        return ResponseValue.success();
    }
 
    @RequestMapping(value = "/save", method = RequestMethod.POST)
    public ResponseValue save(@RequestBody ArticleRequest request){
        if(request == null){
            return ResponseValue.error(Constants.ERROR_ARGUMENT);
        }
        if(StringUtils.isEmpty(request.getTitle()) || StringUtils.isEmpty(request.getContent())){
            return ResponseValue.error("内容不能为空");
        }
        if(StringUtils.isNotEmpty(request.getCover())){
            request.setCover(this.clearCdnPrefix(request.getCover()));
        }
        request.setContent(this.clearCdnPrefix(request.getContent()));
        request.setId(NumberGenerator.getLongSequenceNumber());
        EbArticle article = VoUtils.acquireEbArticle(request, this.getCdnUrl());
        this.getArticleService().insert(article);
        return ResponseValue.success();
    }
 
    @RequestMapping(value = "/list", method = RequestMethod.GET)
    public ResponseValue list(ArticleParam param){
        Long cid = null;
        String title = null;
        String author = null;
        if(param != null){
            cid = param.getCid();
            title = param.getTitle();
            author = param.getAuthor();
        }
        GenericPager<EbArticle> pager = this.getArticleService().queryPageAdminList(cid, title, author);
        List<EbArticle> list = pager.getDatas();
        if(StringUtils.isEmptyList(list)){
            return ResponseValue.success(pager);
        }
 
        String cdnUrl = this.getCdnUrl();
        List<ArticleVo> data = new ArrayList<>(list.size());
        for(EbArticle e : list){
            data.add(VoUtils.acquireArticleVo(e, cdnUrl, false));
        }
        return ResponseValue.success(ListPageContext.createGenericPager(data, pager.getPageIndex(), pager.getPageSize(), (int)pager.getTotalRows()));
    }
}