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 | 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 | +} | ... | ... |