CsdnArticleInfoController.java 7.3 KB
Newer Older
1 2 3 4 5
package com.kwan.springbootkwan.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kwan.springbootkwan.entity.CsdnArticleInfo;
6
import com.kwan.springbootkwan.entity.CsdnUserInfo;
7 8 9
import com.kwan.springbootkwan.entity.Result;
import com.kwan.springbootkwan.entity.dto.CsdnArticleInfoDTO;
import com.kwan.springbootkwan.entity.query.CsdnArticleInfoQuery;
10 11
import com.kwan.springbootkwan.entity.query.CsdnUserInfoQuery;
import com.kwan.springbootkwan.entity.resp.BusinessInfoResponse;
12
import com.kwan.springbootkwan.service.CsdnArticleInfoService;
13 14
import com.kwan.springbootkwan.service.CsdnService;
import com.kwan.springbootkwan.service.CsdnUserInfoService;
15 16
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
17
import lombok.extern.slf4j.Slf4j;
18 19 20 21 22 23 24 25 26
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
27
import java.util.List;
28 29
import java.util.Objects;

30
@Slf4j
31 32 33 34 35
@Api(tags = "csdn文章管理")
@RestController
@RequestMapping("/csdnArticleInfo")
public class CsdnArticleInfoController {

36 37 38 39
    @Resource
    private CsdnService csdnService;
    @Resource
    private CsdnUserInfoService csdnUserInfoService;
40 41 42 43 44 45
    @Resource
    private CsdnArticleInfoService csdnArticleInfoService;

    @ApiOperation(value = "分页查询所有数据", nickname = "分页查询所有数据")
    @PostMapping("/page")
    public Result selectAll(@RequestBody CsdnArticleInfoQuery query) {
46
        final String articleId = query.getArticleId();
47 48 49 50 51 52 53 54 55 56
        final String nickName = query.getNickName();
        final String userName = query.getUserName();
        final Integer likeStatus = query.getLikeStatus();
        final Integer collectStatus = query.getCollectStatus();
        final Integer commentStatus = query.getCommentStatus();
        Page<CsdnArticleInfo> pageParm = new Page<>();
        pageParm.setCurrent(query.getPage());
        pageParm.setSize(query.getPageSize());
        QueryWrapper<CsdnArticleInfo> wrapper = new QueryWrapper<>();
        wrapper.eq("is_delete", 0);
57 58 59
        if (StringUtils.isNotEmpty(articleId)) {
            wrapper.eq("article_id", articleId);
        }
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
        if (StringUtils.isNotEmpty(userName)) {
            wrapper.eq("user_name", userName);
        }
        if (Objects.nonNull(likeStatus)) {
            wrapper.eq("like_status", likeStatus);
        }
        if (Objects.nonNull(collectStatus)) {
            wrapper.eq("collect_status", collectStatus);
        }
        if (Objects.nonNull(commentStatus)) {
            wrapper.eq("comment_status", commentStatus);
        }
        if (StringUtils.isNotEmpty(nickName)) {
            wrapper.like("nick_name", nickName);
        }
        wrapper.orderByDesc("update_time");
        return Result.ok(CsdnArticleInfoDTO.Converter.INSTANCE.from(this.csdnArticleInfoService.page(pageParm, wrapper)));
    }

79
    @ApiOperation(value = "新增文章", nickname = "新增文章")
80 81 82 83
    @PostMapping("/add")
    public Result add(@RequestBody CsdnArticleInfoQuery addInfo) {
        final String userName = addInfo.getUserName();
        final String articleId = addInfo.getArticleId();
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
        if (StringUtils.isNotEmpty(userName) && StringUtils.isNotEmpty(articleId)) {
            final List<BusinessInfoResponse.ArticleData.Article> articles = this.csdnArticleInfoService.getBlogs(userName);
            for (BusinessInfoResponse.ArticleData.Article article : articles) {
                if (articleId.equals(article.getArticleId().toString())) {
                    //首先查询用户
                    CsdnUserInfoQuery addUserInfo = new CsdnUserInfoQuery();
                    addUserInfo.setUserName(userName);
                    addUserInfo.setAddType(0);
                    csdnUserInfoService.add(addUserInfo);
                    CsdnArticleInfo csdnArticleInfo = new CsdnArticleInfo();
                    QueryWrapper<CsdnArticleInfo> wrapper = new QueryWrapper<>();
                    wrapper.eq("article_id", articleId);
                    wrapper.eq("is_delete", 0);
                    final CsdnArticleInfo one = this.csdnArticleInfoService.getOne(wrapper);
                    if (one == null) {
                        csdnArticleInfo.setArticleId(articleId);
                        csdnArticleInfo.setUserName(userName);
                        csdnArticleInfo.setArticleTitle(article.getTitle());
                        csdnArticleInfo.setArticleDescription(article.getDescription());
                        csdnArticleInfo.setArticleUrl(article.getUrl());
                        csdnArticleInfo.setNickName(addUserInfo.getNickName());
                        this.csdnArticleInfoService.save(csdnArticleInfo);
106
                    }
107
                    break;
108 109 110 111 112 113 114 115 116 117 118 119 120
                }
            }
        }
        return Result.ok();
    }

    @ApiOperation(value = "更新用户", nickname = "更新用户")
    @PostMapping("/update")
    public Result update(@RequestBody CsdnArticleInfoQuery query) {
        CsdnArticleInfo csdnUserInfo = new CsdnArticleInfo();
        csdnUserInfo.setId(query.getId());
        csdnUserInfo.setUserName(query.getUserName());
        csdnUserInfo.setNickName(query.getNickName());
121 122
        csdnUserInfo.setArticleUrl(query.getArticleUrl());
        csdnUserInfo.setArticleId(query.getArticleId());
123 124 125 126 127 128 129 130 131 132 133 134 135
        return Result.ok(this.csdnArticleInfoService.updateById(csdnUserInfo));
    }

    @ApiOperation(value = "删除用户", nickname = "删除用户")
    @GetMapping("/delete")
    public Result delete(@RequestParam("id") Integer id) {
        CsdnArticleInfo csdnArticleInfo = new CsdnArticleInfo();
        csdnArticleInfo.setIsDelete(1);
        QueryWrapper<CsdnArticleInfo> wrapper = new QueryWrapper<>();
        wrapper.eq("id", id);
        return Result.ok(this.csdnArticleInfoService.update(csdnArticleInfo, wrapper));
    }

136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
    @ApiOperation(value = "单篇文章三连", nickname = "单篇文章三连")
    @GetMapping("/triplet")
    public Result triplet(@RequestParam("articleId") Integer articleId) {
        QueryWrapper<CsdnArticleInfo> wrapper = new QueryWrapper<>();
        wrapper.eq("article_id", articleId);
        wrapper.eq("is_delete", 0);
        final CsdnArticleInfo one = this.csdnArticleInfoService.getOne(wrapper);
        if (one != null) {
            final String userName = one.getUserName();
            QueryWrapper<CsdnUserInfo> wrapperUser = new QueryWrapper<>();
            wrapperUser.eq("user_name", userName);
            wrapperUser.eq("is_delete", 0);
            final CsdnUserInfo userInfo = this.csdnUserInfoService.getOne(wrapperUser);
            BusinessInfoResponse.ArticleData.Article article = new BusinessInfoResponse.ArticleData.Article();
            article.setDescription(one.getArticleDescription());
            article.setTitle(one.getArticleTitle());
            article.setUrl(one.getArticleUrl());
            csdnService.tripletByArticle(userInfo, article, one);
        }
        return Result.ok("单篇文章三连完成");
    }
}