CsdnArticleInfoController.java 5.8 KB
Newer Older
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 119 120 121 122 123 124 125 126 127 128 129 130 131
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;
import com.kwan.springbootkwan.entity.Result;
import com.kwan.springbootkwan.entity.dto.CsdnArticleInfoDTO;
import com.kwan.springbootkwan.entity.query.CsdnArticleInfoQuery;
import com.kwan.springbootkwan.service.CsdnArticleInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
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;
import java.util.Objects;

@Api(tags = "csdn文章管理")
@RestController
@RequestMapping("/csdnArticleInfo")
public class CsdnArticleInfoController {

    @Resource
    private CsdnArticleInfoService csdnArticleInfoService;

    @ApiOperation(value = "分页查询所有数据", nickname = "分页查询所有数据")
    @PostMapping("/page")
    public Result selectAll(@RequestBody CsdnArticleInfoQuery query) {
        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);
        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)));
    }


    @ApiOperation(value = "新增用户", nickname = "新增用户")
    @PostMapping("/add")
    public Result add(@RequestBody CsdnArticleInfoQuery addInfo) {
        final String userName = addInfo.getUserName();
        final Integer addType = addInfo.getAddType();
        final String articleId = addInfo.getArticleId();
        if (StringUtils.isNotEmpty(userName)) {
            //批量添加
            if (addType == 1) {
                final String[] split = articleId.split("\n");
                for (String str : split) {
                    str = str.trim();
                    if (StringUtils.isNotEmpty(str)) {
                        CsdnArticleInfo csdnArticleInfo = new CsdnArticleInfo();
                        QueryWrapper<CsdnArticleInfo> wrapper = new QueryWrapper<>();
                        wrapper.eq("article_id", str);
                        wrapper.eq("is_delete", 0);
                        final CsdnArticleInfo one = this.csdnArticleInfoService.getOne(wrapper);
                        if (one == null) {
                            BeanUtils.copyProperties(addInfo, csdnArticleInfo);
                            csdnArticleInfo.setArticleId(str);
                            csdnArticleInfo.setArticleUrl("https://blog.csdn.net/" + userName + "/article/details/" + articleId);
                            this.csdnArticleInfoService.save(csdnArticleInfo);
                        }
                    }
                }
            } else {
                CsdnArticleInfo csdnArticleInfo = new CsdnArticleInfo();
                QueryWrapper<CsdnArticleInfo> wrapper = new QueryWrapper<>();
                wrapper.eq("user_name", userName);
                wrapper.eq("is_delete", 0);
                final CsdnArticleInfo one = this.csdnArticleInfoService.getOne(wrapper);
                if (one == null) {
                    BeanUtils.copyProperties(addInfo, csdnArticleInfo);
                    csdnArticleInfo.setArticleUrl("https://blog.csdn.net/" + userName + "/article/details/" + articleId);
                    this.csdnArticleInfoService.save(csdnArticleInfo);
                    return Result.ok();
                } else {
                    return Result.error("该用户已存在");
                }
            }
        }
        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());
        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));
    }
}