Commit ea294a6ace4c8948f9fd015644d4e2e673806ae3
1 parent
b4636e36
feat: init项目
Showing
8 changed files
with
442 additions
and
0 deletions
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 | \ No newline at end of file | 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 | +} |