Commit ea294a6ace4c8948f9fd015644d4e2e673806ae3

Authored by 谢茂盛
1 parent b4636e36

feat: init项目

sql/webmagic.sql 0 → 100644
  1 +DROP TABLE IF EXISTS `nature_article`;
  2 +CREATE TABLE `nature_article` (
  3 + `id` bigint NOT NULL AUTO_INCREMENT,
  4 + `author_name` varchar(256) DEFAULT NULL COMMENT '作者名称',
  5 + `title` varchar(256) DEFAULT NULL COMMENT '文章标题',
  6 + `publish_time` varchar(64) DEFAULT NULL COMMENT '发布时间',
  7 + `email_info` varchar(512) DEFAULT NULL COMMENT '邮箱信息',
  8 + PRIMARY KEY (`id`)
  9 +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='nature-文章信息';
0 10 \ No newline at end of file
... ...
src/main/java/com/canrd/webmagic/controller/NatureArticleController.java 0 → 100644
  1 +package com.canrd.webmagic.controller;
  2 +
  3 +import com.canrd.webmagic.common.constant.ServerResult;
  4 +import com.canrd.webmagic.common.jsr303.OperateGroup;
  5 +import com.canrd.webmagic.domain.vo.NatureArticleQueryVO;
  6 +import com.canrd.webmagic.domain.vo.NatureArticleVO;
  7 +import com.canrd.webmagic.service.NatureArticleService;
  8 +import org.springframework.validation.annotation.Validated;
  9 +import org.springframework.web.bind.annotation.PostMapping;
  10 +import org.springframework.web.bind.annotation.RequestBody;
  11 +import org.springframework.web.bind.annotation.RequestMapping;
  12 +import org.springframework.web.bind.annotation.RestController;
  13 +
  14 +import javax.annotation.Resource;
  15 +
  16 +/**
  17 + * nature-文章信息(NatureArticle)表控制层
  18 + *
  19 + * @author makejava
  20 + * @since 2024-04-07 18:39:41
  21 + */
  22 +@RestController
  23 +@RequestMapping("/gwms/xxx")
  24 +public class NatureArticleController {
  25 + /**
  26 + * 服务对象
  27 + */
  28 + @Resource
  29 + private NatureArticleService natureArticleService;
  30 +
  31 + /**
  32 + * 分页查询
  33 + *
  34 + * @param natureArticleQueryVO 查询条件
  35 + * @return 查询结果
  36 + */
  37 + @PostMapping("/list")
  38 + public ServerResult list(@RequestBody @Validated({OperateGroup.List.class}) NatureArticleQueryVO natureArticleQueryVO) {
  39 + return natureArticleService.list(natureArticleQueryVO);
  40 + }
  41 +
  42 + /**
  43 + * 通过主键查询单条数据
  44 + *
  45 + * @param natureArticleQueryVO 查询条件
  46 + * @return 单条数据
  47 + */
  48 + @PostMapping("/query_by_id")
  49 + public ServerResult queryById(@RequestBody NatureArticleQueryVO natureArticleQueryVO) {
  50 + return natureArticleService.queryById(natureArticleQueryVO);
  51 + }
  52 +
  53 + /**
  54 + * 新增数据
  55 + *
  56 + * @param natureArticleVO 数据VO
  57 + * @return 新增结果
  58 + */
  59 + @PostMapping("/add")
  60 + public ServerResult add(@RequestBody NatureArticleVO natureArticleVO) {
  61 + return natureArticleService.add(natureArticleVO);
  62 + }
  63 +
  64 + /**
  65 + * 编辑数据
  66 + *
  67 + * @param natureArticleVO 数据VO
  68 + * @return 编辑结果
  69 + */
  70 + @PostMapping("/edit")
  71 + public ServerResult edit(@RequestBody NatureArticleVO natureArticleVO) {
  72 + return natureArticleService.edit(natureArticleVO);
  73 + }
  74 +
  75 + /**
  76 + * 删除数据
  77 + *
  78 + * @param natureArticleQueryVO 查询条件
  79 + * @return 删除是否成功
  80 + */
  81 + @PostMapping("/delete_by_id")
  82 + public ServerResult deleteById(@RequestBody NatureArticleQueryVO natureArticleQueryVO) {
  83 + return natureArticleService.deleteById(natureArticleQueryVO);
  84 + }
  85 +
  86 +}
  87 +
... ...
src/main/java/com/canrd/webmagic/domain/dto/NatureArticleDO.java 0 → 100644
  1 +package com.canrd.webmagic.domain.dto;
  2 +
  3 +.dto;
  4 +
  5 +
  6 +import java.io.Serializable;
  7 +
  8 +import com.baomidou.mybatisplus.annotation.TableName;
  9 +import com.gree.gaolan.common.dto.BaseDO;
  10 +import lombok.*;
  11 +import lombok.experimental.SuperBuilder;
  12 +
  13 +/**
  14 + * nature-文章信息(NatureArticle)实体类
  15 + *
  16 + * @author makejava
  17 + * @since 2024-04-07 18:39:38
  18 + */
  19 +@TableName("nature_article")
  20 +@Data
  21 +@AllArgsConstructor
  22 +@ToString
  23 +@NoArgsConstructor
  24 +@EqualsAndHashCode(callSuper = false)
  25 +@SuperBuilder
  26 +public class NatureArticleDO extends BaseDO implements Serializable {
  27 + private static final long serialVersionUID = 890672868109538541L;
  28 +
  29 + private Long id;
  30 + /**
  31 + * 作者名称
  32 + */
  33 + private String authorName;
  34 + /**
  35 + * 文章标题
  36 + */
  37 + private String title;
  38 + /**
  39 + * 发布时间
  40 + */
  41 + private String publishTime;
  42 + /**
  43 + * 邮箱信息
  44 + */
  45 + private String emailInfo;
  46 +
  47 +}
... ...
src/main/java/com/canrd/webmagic/domain/vo/NatureArticleQueryVO.java 0 → 100644
  1 +package com.canrd.webmagic.domain.vo;
  2 +
  3 +.vo;
  4 +
  5 +import java.io.Serializable;
  6 +
  7 +import lombok.*;
  8 +import lombok.experimental.SuperBuilder;
  9 +import com.gree.gaolan.common.vo.common.BasePageVO;
  10 +
  11 +import java.lang.Long;
  12 +import java.util.List;
  13 +
  14 +/**
  15 + * nature-文章信息(NatureArticle)实体类
  16 + *
  17 + * @author makejava
  18 + * @since 2024-04-07 18:39:41
  19 + */
  20 +@Data
  21 +@AllArgsConstructor
  22 +@ToString
  23 +@NoArgsConstructor
  24 +@EqualsAndHashCode(callSuper = false)
  25 +@SuperBuilder
  26 +public class NatureArticleQueryVO extends BasePageVO implements Serializable {
  27 + private static final long serialVersionUID = -64724570789830550L;
  28 +
  29 + private List<Long> ids;
  30 +
  31 +
  32 + private Long id;
  33 + /**
  34 + * 作者名称
  35 + */
  36 + private String authorName;
  37 + /**
  38 + * 文章标题
  39 + */
  40 + private String title;
  41 + /**
  42 + * 发布时间
  43 + */
  44 + private String publishTime;
  45 + /**
  46 + * 邮箱信息
  47 + */
  48 + private String emailInfo;
  49 +
  50 +
  51 +}
  52 +
... ...
src/main/java/com/canrd/webmagic/domain/vo/NatureArticleVO.java 0 → 100644
  1 +package com.canrd.webmagic.domain.vo;
  2 +
  3 +.vo;
  4 +
  5 +
  6 +import java.io.Serializable;
  7 +
  8 +import lombok.*;
  9 +import lombok.experimental.SuperBuilder;
  10 +
  11 +/**
  12 + * nature-文章信息(NatureArticle)实体类
  13 + *
  14 + * @author makejava
  15 + * @since 2024-04-07 18:39:40
  16 + */
  17 +@Data
  18 +@AllArgsConstructor
  19 +@ToString
  20 +@NoArgsConstructor
  21 +@EqualsAndHashCode(callSuper = false)
  22 +@SuperBuilder
  23 +public class NatureArticleVO implements Serializable {
  24 + private static final long serialVersionUID = -19802499861828615L;
  25 +
  26 + private Long id;
  27 + /**
  28 + * 作者名称
  29 + */
  30 + private String authorName;
  31 + /**
  32 + * 文章标题
  33 + */
  34 + private String title;
  35 + /**
  36 + * 发布时间
  37 + */
  38 + private String publishTime;
  39 + /**
  40 + * 邮箱信息
  41 + */
  42 + private String emailInfo;
  43 +
  44 +
  45 +}
... ...
src/main/java/com/canrd/webmagic/mapper/NatureArticleMapper.java 0 → 100644
  1 +package com.canrd.webmagic.mapper;
  2 +
  3 +import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  4 +import com.canrd.webmagic.domain.dto.NatureArticleDO;
  5 +
  6 +/**
  7 + * nature-文章信息(NatureArticle)表数据库访问层
  8 + *
  9 + * @author makejava
  10 + * @since 2024-04-07 18:39:47
  11 + */
  12 +public interface NatureArticleMapper extends BaseMapper<NatureArticleDO> {
  13 +
  14 +
  15 +}
  16 +
... ...
src/main/java/com/canrd/webmagic/service/NatureArticleService.java 0 → 100644
  1 +package com.canrd.webmagic.service;
  2 +
  3 +import com.baomidou.mybatisplus.extension.service.IService;
  4 +import com.canrd.webmagic.domain.dto.NatureArticleDO;
  5 +import com.gree.gaolan.common.constant.ServerResult;
  6 +
  7 +/**
  8 + * nature-文章信息(NatureArticle)表服务接口
  9 + *
  10 + * @author makejava
  11 + * @since 2024-04-07 18:39:48
  12 + */
  13 +public interface NatureArticleService extends IService<NatureArticleDO> {
  14 +
  15 + /**
  16 + * 通过ID查询单条数据
  17 + *
  18 + * @param natureArticleQueryVO 主键
  19 + * @return 实例对象
  20 + */
  21 + ServerResult queryById(NatureArticleQueryVO natureArticleQueryVO);
  22 +
  23 + /**
  24 + * 分页查询
  25 + *
  26 + * @param natureArticleQueryVO 筛选条件
  27 + * @return 查询结果
  28 + */
  29 + ServerResult list(NatureArticleQueryVO natureArticleQueryVO);
  30 +
  31 + /**
  32 + * 新增数据
  33 + *
  34 + * @param natureArticleVO 数据VO
  35 + * @return 新增结果
  36 + */
  37 + ServerResult add(NatureArticleVO natureArticleVO);
  38 +
  39 + /**
  40 + * 修改数据
  41 + *
  42 + * @param natureArticleVO 数据VO
  43 + * @return 编辑结果
  44 + */
  45 + ServerResult edit(NatureArticleVO natureArticleVO);
  46 +
  47 + /**
  48 + * 通过主键删除数据
  49 + *
  50 + * @param natureArticleQueryVO 筛选条件
  51 + * @return 是否成功
  52 + */
  53 + ServerResult deleteById(NatureArticleQueryVO natureArticleQueryVO);
  54 +
  55 +}
... ...
src/main/java/com/canrd/webmagic/service/impl/NatureArticleServiceImpl.java 0 → 100644
  1 +package com.canrd.webmagic.service.impl;
  2 +
  3 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4 +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  5 +import com.baomidou.mybatisplus.core.metadata.IPage;
  6 +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7 +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  8 +import com.canrd.webmagic.domain.dto.NatureArticleDO;
  9 +import com.central.common.utils.CopyBeanUtils;
  10 +import com.gree.doraemon.base.core.bean.BeanUtil;
  11 +import com.gree.doraemon.base.core.collection.CollUtil;
  12 +import com.gree.gaolan.common.constant.Constant;
  13 +import com.gree.gaolan.common.constant.ServerResult;
  14 +import com.gree.gaolan.common.util.PageUtils;
  15 +import lombok.extern.slf4j.Slf4j;
  16 +import org.springframework.stereotype.Service;
  17 +
  18 +import java.util.List;
  19 +import java.util.Objects;
  20 +
  21 +/**
  22 + * nature-文章信息(NatureArticle)表服务实现类
  23 + *
  24 + * @author makejava
  25 + * @since 2024-04-07 18:39:49
  26 + */
  27 +@Slf4j
  28 +@Service
  29 +public class NatureArticleServiceImpl extends ServiceImpl<NatureArticleMapper, NatureArticleDO> implements NatureArticleService {
  30 +
  31 +
  32 + /**
  33 + * 通过ID查询单条数据
  34 + * <p>
  35 + * natureArticleQueryVO 主键
  36 + *
  37 + * @return 实例对象
  38 + */
  39 + @Override
  40 + public ServerResult queryById(NatureArticleQueryVO natureArticleQueryVO) {
  41 + if (Objects.isNull(natureArticleQueryVO.getId())) {
  42 + return ServerResult.fail("id 不能为空");
  43 + }
  44 + NatureArticleDO NatureArticleDo = getById(natureArticleQueryVO.getId());
  45 + if (Objects.isNull(NatureArticleDo)) {
  46 + return ServerResult.success(null);
  47 + }
  48 + return ServerResult.success(BeanUtil.copyProperties(NatureArticleDo, NatureArticleVO.class));
  49 + }
  50 +
  51 + /**
  52 + * 分页查询
  53 + *
  54 + * @param natureArticleQueryVO 筛选条件
  55 + * @return 查询结果
  56 + */
  57 + @Override
  58 + public ServerResult list(NatureArticleQueryVO natureArticleQueryVO) {
  59 +
  60 + LambdaQueryWrapper<NatureArticleDO> queryWapper = new LambdaQueryWrapper<NatureArticleDO>()
  61 + .eq(NatureArticleDO::getEnableFlag, Constant.ENABLE_TEN)
  62 + .orderByDesc(NatureArticleDO::getId);
  63 + Page page = new Page<>(natureArticleQueryVO.getCurrent(), natureArticleQueryVO.getSize());
  64 + IPage<NatureArticleDO> iPage = page(page, queryWapper);
  65 + natureArticleQueryVO.setTotal(Long.valueOf(iPage.getTotal()).intValue());
  66 + List<NatureArticleVO> result = CopyBeanUtils.trans(iPage.getRecords(), NatureArticleVO.class);
  67 + return ServerResult.success(PageUtils.getPageReturn(result, natureArticleQueryVO));
  68 + }
  69 +
  70 + /**
  71 + * 新增数据
  72 + *
  73 + * @param natureArticleVO 实例对象
  74 + * @return 实例对象
  75 + */
  76 + @Override
  77 + public ServerResult add(NatureArticleVO natureArticleVO) {
  78 + //todo 校验
  79 + if (Objects.nonNull(natureArticleVO.getId())) {
  80 + natureArticleVO.setId(null);
  81 + }
  82 + NatureArticleDO natureArticleDo = BeanUtil.copyProperties(natureArticleVO, NatureArticleDO.class);
  83 +
  84 + save(natureArticleDo);
  85 +
  86 + return ServerResult.success();
  87 + }
  88 +
  89 + /**
  90 + * 修改数据
  91 + *
  92 + * @param natureArticleVO 实例对象
  93 + * @return 实例对象
  94 + */
  95 + @Override
  96 + public ServerResult edit(NatureArticleVO natureArticleVO) {
  97 + //todo 校验
  98 + if (Objects.isNull(natureArticleVO.getId())) {
  99 + return ServerResult.fail("id 不能为空");
  100 + }
  101 + NatureArticleDO natureArticleDo = BeanUtil.copyProperties(natureArticleVO, NatureArticleDO.class);
  102 +
  103 + updateById(natureArticleDo);
  104 +
  105 + return ServerResult.success();
  106 + }
  107 +
  108 + /**
  109 + * 通过主键删除数据
  110 + *
  111 + * @param natureArticleQueryVO 筛选条件
  112 + * @return 是否成功
  113 + */
  114 + @Override
  115 + public ServerResult deleteById(NatureArticleQueryVO natureArticleQueryVO) {
  116 + List<Long> ids = natureArticleQueryVO.getIds();
  117 + if (CollUtil.isEmpty(ids)) {
  118 + return ServerResult.fail("ids 参数不能为空");
  119 + }
  120 + List<NatureArticleDO> natureArticleList = listByIds(ids);
  121 + if (CollUtil.isEmpty(natureArticleList)) {
  122 + return ServerResult.success();
  123 + }
  124 + //todo 校验是否可以逻辑删除
  125 + LambdaUpdateWrapper<NatureArticleDO> updateWrapper = new LambdaUpdateWrapper<NatureArticleDO>()
  126 + .in(NatureArticleDO::getId, ids)
  127 + .set(NatureArticleDO::getEnableFlag, Constant.UNABLE_TWENTY);
  128 + update(updateWrapper);
  129 + return ServerResult.success();
  130 + }
  131 +}
... ...