diff --git a/src/main/java/com/kwan/springbootkwan/controller/AlgorithmicProblemController.java b/src/main/java/com/kwan/springbootkwan/controller/AlgorithmicProblemController.java index bc879c76374474ba6d990ffe6cfa3b8b3585f955..b5f3d775db06e56d460d409eff0464fadf7e7dcd 100644 --- a/src/main/java/com/kwan/springbootkwan/controller/AlgorithmicProblemController.java +++ b/src/main/java/com/kwan/springbootkwan/controller/AlgorithmicProblemController.java @@ -29,9 +29,6 @@ import javax.annotation.Resource; @RequestMapping("algorithmicProblem") public class AlgorithmicProblemController { - /** - * 服务对象 - */ @Resource private AlgorithmicProblemService algorithmicProblemService; diff --git a/src/main/java/com/kwan/springbootkwan/controller/CsdnUserController.java b/src/main/java/com/kwan/springbootkwan/controller/CsdnUserController.java new file mode 100644 index 0000000000000000000000000000000000000000..265d7f602d15418e0b00773617dafcdd267f7d54 --- /dev/null +++ b/src/main/java/com/kwan/springbootkwan/controller/CsdnUserController.java @@ -0,0 +1,132 @@ +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; + +@Slf4j +@RestController +@RequestMapping("/csdn/user") +public class CsdnUserController { + + + @Autowired + private CsdnUserInfoService csdnUserInfoService; + + /** + * 分页查询所有数据 + * + * @return 所有数据 + */ + @GetMapping("/page") + public Result selectAll(@RequestParam Integer page + , @RequestParam Integer pageSize + , @RequestParam String userName + , @RequestParam String nickName) { + Page pageParm = new Page<>(); + pageParm.setCurrent(page); + pageParm.setSize(pageSize); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.orderByDesc("user_weight"); + wrapper.eq("is_delete", 0); + if (StringUtils.isNotEmpty(userName)) { + wrapper.eq("user_name", userName); + } + if (StringUtils.isNotEmpty(nickName)) { + wrapper.like("nick_name", nickName); + } + 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 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 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(); + BeanUtils.copyProperties(query, csdnUserInfo); + 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 wrapper = new QueryWrapper<>(); + wrapper.eq("id", id); + return Result.ok(this.csdnUserInfoService.update(csdnUserInfo, wrapper)); + } + +} diff --git a/src/main/java/com/kwan/springbootkwan/entity/dto/CsdnUserInfoDTO.java b/src/main/java/com/kwan/springbootkwan/entity/dto/CsdnUserInfoDTO.java new file mode 100644 index 0000000000000000000000000000000000000000..bb43da92ad328182ecbe7753dd6056a81cdc3e51 --- /dev/null +++ b/src/main/java/com/kwan/springbootkwan/entity/dto/CsdnUserInfoDTO.java @@ -0,0 +1,61 @@ +package com.kwan.springbootkwan.entity.dto; + +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.kwan.springbootkwan.entity.CsdnUserInfo; +import com.kwan.springbootkwan.mapstruct.FromConverter; +import lombok.Data; +import org.mapstruct.Mapper; +import org.mapstruct.ReportingPolicy; +import org.mapstruct.factory.Mappers; + +import java.util.Date; + + +@Data +public class CsdnUserInfoDTO extends Model { + /** + * 主键id + */ + private Integer id; + /** + * 用户code + */ + private String userName; + /** + * CSDN用户名称 + */ + private String nickName; + /** + * 点赞状态 + */ + private Integer likeStatus; + /** + * 收藏状态 + */ + private Integer collectStatus; + /** + * 评论状态 + */ + private Integer commentStatus; + /** + * 用户权重 + */ + private Integer userWeight; + /** + * 文章类型 + */ + private String articleType; + /** + * 创建时间 + */ + private Date createTime; + /** + * 逻辑删除,0未删除,1已删除 + */ + private Integer isDelete; + + @Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE) + public interface Converter extends FromConverter { + Converter INSTANCE = Mappers.getMapper(Converter.class); + } +} \ No newline at end of file diff --git a/src/main/java/com/kwan/springbootkwan/entity/query/CsdnUserInfoQuery.java b/src/main/java/com/kwan/springbootkwan/entity/query/CsdnUserInfoQuery.java new file mode 100644 index 0000000000000000000000000000000000000000..bba790e620fb42086dc8b0c44ef87beff6db3ddc --- /dev/null +++ b/src/main/java/com/kwan/springbootkwan/entity/query/CsdnUserInfoQuery.java @@ -0,0 +1,35 @@ +package com.kwan.springbootkwan.entity.query; + +import lombok.Data; + +@Data +public class CsdnUserInfoQuery { + /** + * 用户code + */ + private String userName; + /** + * CSDN用户名称 + */ + private String nickName; + /** + * 点赞状态 + */ + private Integer likeStatus = 0; + /** + * 收藏状态 + */ + private Integer collectStatus = 0; + /** + * 评论状态 + */ + private Integer commentStatus = 0; + /** + * 用户权重 + */ + private Integer userWeight; + /** + * 添加类型 + */ + private Integer addType; +}