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 pageParm = new Page<>(); pageParm.setCurrent(query.getPage()); pageParm.setSize(query.getPageSize()); QueryWrapper 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 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 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 wrapper = new QueryWrapper<>(); wrapper.eq("id", id); return Result.ok(this.csdnArticleInfoService.update(csdnArticleInfo, wrapper)); } }