CsdnUserController.java 6.0 KB
Newer Older
1 2 3 4 5 6 7 8 9
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.CsdnUserInfo;
import com.kwan.springbootkwan.entity.Result;
import com.kwan.springbootkwan.entity.dto.CsdnUserInfoDTO;
import com.kwan.springbootkwan.entity.query.CsdnUserInfoQuery;
import com.kwan.springbootkwan.service.CsdnUserInfoService;
10 11
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
12 13 14 15 16 17 18 19 20 21 22
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
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;

23 24
import java.util.Objects;

25
@Slf4j
26
@Api(tags = "csdn每日三连监控")
27 28 29
@RestController
@RequestMapping("/csdn/user")
public class CsdnUserController {
30

31 32 33
    @Autowired
    private CsdnUserInfoService csdnUserInfoService;

34
    @ApiOperation(value = "分页查询所有数据", nickname = "分页查询所有数据")
35 36 37 38 39
    @PostMapping("/page")
    public Result selectAll(@RequestBody CsdnUserInfoQuery query) {
        final Integer userWeight = query.getUserWeight();
        final String nickName = query.getNickName();
        final String userName = query.getUserName();
40 41 42 43
        final String articleType = query.getArticleType();
        final Integer likeStatus = query.getLikeStatus();
        final Integer collectStatus = query.getCollectStatus();
        final Integer commentStatus = query.getCommentStatus();
44
        Page<CsdnUserInfo> pageParm = new Page<>();
45 46
        pageParm.setCurrent(query.getPage());
        pageParm.setSize(query.getPageSize());
47 48 49 50 51
        QueryWrapper<CsdnUserInfo> wrapper = new QueryWrapper<>();
        wrapper.eq("is_delete", 0);
        if (StringUtils.isNotEmpty(userName)) {
            wrapper.eq("user_name", userName);
        }
52 53 54
        if (StringUtils.isNotEmpty(articleType)) {
            wrapper.eq("article_type", articleType);
        }
55 56 57
        if (Objects.nonNull(userWeight)) {
            wrapper.eq("user_weight", userWeight);
        }
58 59 60 61 62 63 64 65 66
        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);
        }
67 68 69
        if (StringUtils.isNotEmpty(nickName)) {
            wrapper.like("nick_name", nickName);
        }
70
        wrapper.orderByDesc("user_weight").orderByDesc("update_time");
71 72 73
        return Result.ok(CsdnUserInfoDTO.Converter.INSTANCE.from(this.csdnUserInfoService.page(pageParm, wrapper)));
    }

74
    @ApiOperation(value = "新增用户", nickname = "新增用户")
75 76 77 78 79 80 81 82 83 84 85 86
    @PostMapping("/add")
    public Result add(@RequestBody CsdnUserInfoQuery addInfo) {
        final String userName = addInfo.getUserName();
        final Integer addType = addInfo.getAddType();
        if (StringUtils.isEmpty(userName)) {
            return Result.error("名字不能为空");
        }
        //批量添加
        if (addType == 1) {
            final String[] split = userName.split("\n");
            for (String str : split) {
                str = str.trim();
87 88 89 90 91 92 93 94 95 96 97 98
                if (StringUtils.isNotEmpty(str)) {
                    CsdnUserInfo csdnUserInfo = new CsdnUserInfo();
                    QueryWrapper<CsdnUserInfo> wrapper = new QueryWrapper<>();
                    wrapper.eq("user_name", str);
                    wrapper.eq("is_delete", 0);
                    final CsdnUserInfo one = this.csdnUserInfoService.getOne(wrapper);
                    if (one == null) {
                        BeanUtils.copyProperties(addInfo, csdnUserInfo);
                        csdnUserInfo.setUserName(str);
                        csdnUserInfo.setUserHomeUrl("https://blog.csdn.net/" + str);
                        this.csdnUserInfoService.save(csdnUserInfo);
                    }
99 100 101 102 103 104 105 106 107 108
                }
            }
        } else {
            CsdnUserInfo csdnUserInfo = new CsdnUserInfo();
            QueryWrapper<CsdnUserInfo> wrapper = new QueryWrapper<>();
            wrapper.eq("user_name", userName);
            wrapper.eq("is_delete", 0);
            final CsdnUserInfo one = this.csdnUserInfoService.getOne(wrapper);
            if (one == null) {
                BeanUtils.copyProperties(addInfo, csdnUserInfo);
109
                csdnUserInfo.setUserHomeUrl("https://blog.csdn.net/" + userName);
110 111 112 113 114 115 116 117 118
                this.csdnUserInfoService.save(csdnUserInfo);
                return Result.ok();
            } else {
                return Result.error("该用户已存在");
            }
        }
        return Result.ok();
    }

119
    @ApiOperation(value = "更新用户", nickname = "更新用户")
120 121 122
    @PostMapping("/update")
    public Result update(@RequestBody CsdnUserInfoQuery query) {
        CsdnUserInfo csdnUserInfo = new CsdnUserInfo();
123 124 125 126
        csdnUserInfo.setId(query.getId());
        csdnUserInfo.setUserName(query.getUserName());
        csdnUserInfo.setNickName(query.getNickName());
        csdnUserInfo.setUserWeight(query.getUserWeight());
127 128 129
        return Result.ok(this.csdnUserInfoService.updateById(csdnUserInfo));
    }

130
    @ApiOperation(value = "删除用户", nickname = "删除用户")
131 132 133 134 135 136 137 138
    @GetMapping("/delete")
    public Result delete(@RequestParam("id") Integer id) {
        CsdnUserInfo csdnUserInfo = new CsdnUserInfo();
        csdnUserInfo.setIsDelete(1);
        QueryWrapper<CsdnUserInfo> wrapper = new QueryWrapper<>();
        wrapper.eq("id", id);
        return Result.ok(this.csdnUserInfoService.update(csdnUserInfo, wrapper));
    }
139
}