CsdnUserController.java 5.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
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;
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;

21 22
import java.util.Objects;

23 24 25 26 27 28 29 30 31 32 33 34
@Slf4j
@RestController
@RequestMapping("/csdn/user")
public class CsdnUserController {
    @Autowired
    private CsdnUserInfoService csdnUserInfoService;

    /**
     * 分页查询所有数据
     *
     * @return 所有数据
     */
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 71
        wrapper.orderByDesc("user_weight");
        wrapper.orderByDesc("update_time");
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
        return Result.ok(CsdnUserInfoDTO.Converter.INSTANCE.from(this.csdnUserInfoService.page(pageParm, wrapper)));
    }

    /**
     * 新增用户
     *
     * @return 所有数据
     */
    @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();
                if (StringUtils.isEmpty(str)) {
                    continue;
                }
                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);
                    this.csdnUserInfoService.save(csdnUserInfo);
                }
            }
        } 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);
                this.csdnUserInfoService.save(csdnUserInfo);
                return Result.ok();
            } else {
                return Result.error("该用户已存在");
            }
        }
        return Result.ok();
    }

    /**
     * 更新用户
     *
     * @param query
     * @return
     */
    @PostMapping("/update")
    public Result update(@RequestBody CsdnUserInfoQuery query) {
        CsdnUserInfo csdnUserInfo = new CsdnUserInfo();
132 133 134 135
        csdnUserInfo.setId(query.getId());
        csdnUserInfo.setUserName(query.getUserName());
        csdnUserInfo.setNickName(query.getNickName());
        csdnUserInfo.setUserWeight(query.getUserWeight());
136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
        return Result.ok(this.csdnUserInfoService.updateById(csdnUserInfo));
    }

    /**
     * 删除用户
     *
     * @param id
     * @return
     */
    @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));
    }
153
}