编写mo-yu-jun模块功能
# 编写mo-yu-jun模块功能
摸鱼君由三个部分组成:
- 门户(公共的)
- 个人中心(用户对自己的内容进行管理)
- 管理中心(管理中对内容进行管理)
# 功能模块
# 门户
- 获取动态列表(根据话题/热门/推荐/最新获取列表)
- 获取侧栏推荐的动态(由管理员推荐)
- 举报动态内容
- 获取话题列表
- 关注话题
- 取消关注话题
- 发表动态
- 分享动态
- 评论动态
- 回复动态评论
- 点赞评论
- 点赞子评论
- 点赞动态
- 关注作者(用户模块)
- 取消关注作者(用户模块)
- 显示通知数量,涵盖通知(用户模块)
- 排行榜
- 富豪排行榜(积分)
- 热门动态榜(评论多的为热门的,周榜,月榜)
- 推荐排行榜(点赞多的为推荐的,周榜,月榜)
# 个人中心
- 粉丝列表(用户模块)
- 关注列表(用户模块)
- 回粉(用户模块)
- 取消关注(用户模块)
- 我的鱼
- 资料更新(用户模块)
- 头像
- 性别,签名,职位,公司
- 重置密码
- 邮箱设置
- 通知(用户模块)
- 评论通知
- 回复通知
- 系统通知
# 管理中心
- 动态管理
- 评论管理
- 话题管理
- 举报管理
- 积分系统管理
# 数据表设计
找对象
- 动态(鱼)
- 话题
- 评论,子评论,评论点赞
- 推荐内容
- 举报内容
- 积分
- 举报记录
# 鱼my_fish
- id-ID
- content-动态内容
- images-图片
- topic_id-话题ID
- url-链接
- url_title-链接标题
- url_cover-链接封面
- user_id-用户ID
- thumb_up_count-点赞数
- images-图片
- view_count-查看数量
- comment_count-评论数量
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `mo_yu_content`.`my_fish`(
`id` VARCHAR(20) NOT NULL COMMENT 'ID',
`content` TEXT COMMENT '内容',
`topic_id` VARCHAR(20) COMMENT '话题ID',
`url` VARCHAR(1024) COMMENT '链接',
`url_title` VARCHAR(128) COMMENT '链接标题',
`url_cover` VARCHAR(512) COMMENT '链接封面',
`user_id` VARCHAR(20) COMMENT '用户ID',
`thumb_up_count` INT COMMENT '点赞数量',
`images` TEXT COMMENT '图片',
`view_count` INT COMMENT '浏览数量',
`comment_count` INT COMMENT '评论数量',
`create_time` DATETIME COMMENT '创建时间',
`update_time` DATETIME COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
点赞表my_thumb_up
- id-ID
- my_id-摸鱼ID
- user_id-用户ID
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `mo_yu_content`.`my_thumb_up`(
`id` VARCHAR(20) NOT NULL COMMENT 'ID',
`my_id` VARCHAR(20) COMMENT '摸鱼ID',
`user_id` VARCHAR(20) COMMENT '用户ID',
`create_time` DATETIME COMMENT '创建时间',
`update_time` DATETIME COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 话题
my_topic
- id-ID
- name-名称
- follow_count-关注数量
- content_count-内容数量
- description-介绍
- cover-封面
- order-顺序
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `mo_yu_content`.`my_topic`(
`id` VARCHAR(20) NOT NULL COMMENT 'ID',
`name` VARCHAR(64) COMMENT '名字',
`follow_count` INT COMMENT '关注人数',
`content_count` INT COMMENT '内容数量',
`description` TEXT COMMENT '描述',
`cover` VARCHAR(512) COMMENT '封面',
`order` INT COMMENT '顺序',
`create_time` DATETIME COMMENT '创建时间',
`update_time` DATETIME COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
话题关注表:谁关注了某个话题
my_topic_follow
- id-ID
- user_id-用户ID
- topic_id-话题ID
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `mo_yu_content`.`my_topic_follow`(
`id` VARCHAR(20) NOT NULL COMMENT 'ID',
`user_id` VARCHAR(20) COMMENT '用户ID',
`topic_id` VARCHAR(20) COMMENT '话题ID',
`create_time` DATETIME COMMENT '创建时间',
`update_time` DATETIME COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 评论
my_comment
- id-ID
- user_id-评论人的ID
- my_id-摸鱼ID
- thumb_up_count-点赞数量
- content-评论内容
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `mo_yu_content`.`my_comment`(
`id` VARCHAR(20) NOT NULL COMMENT 'ID',
`user_id` VARCHAR(20) COMMENT '用户ID',
`my_id` VARCHAR(20) COMMENT '摸鱼ID',
`thumb_up_count` INT COMMENT '点赞数量',
`content` VARCHAR(1024) COMMENT '评论内容',
`create_time` DATETIME COMMENT '创建时间',
`update_time` DATETIME COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
评论点赞表
my_comment_thumb_up
- id-ID
- my_id-摸鱼ID
- comment_id-评论ID
- user_id-用户ID
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `my_comment_thumb_up` (
`id` varchar(20) NOT NULL COMMENT 'ID',
`my_id` varchar(20) DEFAULT NULL COMMENT '摸鱼ID',
`comment_id` varchar(20) DEFAULT NULL COMMENT '评论ID',
`user_id` varchar(20) DEFAULT NULL COMMENT '用户ID',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
子评论表
my_sub_comment
- id-ID
- user_id-评论人的ID
- target_user_id-被评论人的ID
- comment_id-评论ID
- my_id-摸鱼ID
- thumb_up_count-点赞数量
- content-评论内容
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `mo_yu_content`.`my_sub_comment`(
`id` VARCHAR(20) NOT NULL COMMENT 'ID',
`user_id` VARCHAR(20) COMMENT '用户ID',
`target_user_id` VARCHAR(20) COMMENT '被评论的用户ID',
`comment_id` VARCHAR(20) COMMENT '评论ID',
`my_id` VARCHAR(20) COMMENT '摸鱼ID',
`thumb_up_count` INT COMMENT '点赞数量',
`content` VARCHAR(256) COMMENT '评论内容',
`create_time` DATETIME COMMENT '创建时间',
`update_time` DATETIME COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
子评论点赞表
- id-ID
- my_id-摸鱼ID
- sub_comment_id-子评论ID
- user_id-用户ID
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `mo_yu_content`.`my_sub_comment_thumb_up`(
`id` VARCHAR(20) NOT NULL COMMENT 'ID',
`my_id` VARCHAR(20) COMMENT '摸鱼ID',
`sub_comment_id` VARCHAR(20) COMMENT '子评论ID',
`user_id` VARCHAR(20) COMMENT '用户ID',
`create_time` DATETIME COMMENT '创建时间',
`update_time` DATETIME COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 推荐表
- id-ID
- my_id-推荐内容的ID
- state-状态:0表示下架,1表示上架
- order-顺序
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `mo_yu_content`.`my_recommend`(
`id` VARCHAR(20) NOT NULL COMMENT 'ID',
`my_id` VARCHAR(20) COMMENT '摸鱼ID',
`state` VARCHAR(1) COMMENT '状态:1表示上加,0表示下架',
`order` INT COMMENT '顺序',
`create_time` DATETIME COMMENT '创建时间',
`update_time` DATETIME COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 举报内容表
- id-ID
- user_id-举报者的ID
- url-链接地址
- why-原因
- state-状态,0表示未处理,1表示已经处理
- mark-备注
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `mo_yu_content`.`my_report`(
`id` VARCHAR(20) NOT NULL COMMENT 'ID',
`user_id` VARCHAR(20) COMMENT '用户ID',
`why` VARCHAR(128) COMMENT '原因',
`state` VARCHAR(1) COMMENT '处理状态:0未处理,2不予处理,3处理完成',
`mark` VARCHAR(128) COMMENT '备注内容',
`create_time` DATETIME COMMENT '创建时间',
`update_time` DATETIME COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 积分表
积分触发动作表
- id-ID
- name-触发名称,比如说发表动态奖励,删除动态扣积分,举报扣积分,举报被扣分,这个内容自动生成,通过注解在接口处生成
- label-人看的内容
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `mo_yu_content`.`my_reward_action`(
`id` VARCHAR(20) NOT NULL COMMENT 'ID',
`name` VARCHAR(64) COMMENT '打赏/扣积分动作的名字',
`label` VARCHAR(64) COMMENT '标签,人看的',
`create_time` DATETIME COMMENT '创建时间',
`update_time` DATETIME COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
以上这个表,通过注解自动填充,没有修改,删除的动作,程序启动,自动填充数据库
积分策略表
- id-ID
- value-积分值,比如说:2,可以是负数
- tax-税
- action_id-动作ID,触发此条积分策略的动作
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `mo_yu_content`.`my_reward`(
`id` VARCHAR(20) NOT NULL COMMENT 'ID',
`value` INT COMMENT '值',
`tax` INT COMMENT '税,百分比0~5',
`action_id` VARCHAR(20) COMMENT '打赏/扣除动作ID',
`create_time` DATETIME COMMENT '创建时间',
`update_time` DATETIME COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
积分记录表
- id-ID
- to_user_id-用户ID
- from_user_id-用户ID
- value-积分值,正负都可以
- content-原因
- tax-税
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `my_reward_record` (
`id` varchar(20) NOT NULL COMMENT 'ID',
`to_user_id` varchar(20) DEFAULT NULL COMMENT '收到用户ID',
`from_user_id` varchar(20) DEFAULT NULL COMMENT '出积分用户ID,有可能是系统',
`value` int(11) DEFAULT NULL COMMENT '值',
`content` varchar(62) DEFAULT NULL COMMENT '内容',
`tax` int(11) DEFAULT NULL COMMENT '税',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
积分总数表
- id-ID
- user_id-用户ID
- total-总数
- create_time-创建时间
- update_time-更新时间
CREATE TABLE `mo_yu_content`.`my_reward_total`(
`id` VARCHAR(20) NOT NULL COMMENT 'ID',
`user_id` VARCHAR(20) COMMENT '用户ID',
`total` INT COMMENT '总数',
`create_time` DATETIME COMMENT '创建时间',
`update_time` DATETIME COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 代码生成
package net.sunofbeach.my;
public class GeneratorCodes {
public static void main(String[] args) {
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir("D:\\code\\MoYuJun\\moyu\\src\\main\\java");
gc.setAuthor("sob");
gc.setOpen(false);//生成以后是否打开文件夹
gc.setSwagger2(true);//实体属性 Swagger2 注解
gc.setDateType(DateType.ONLY_DATE);//把时间类型,使用Date类型
gc.setFileOverride(true);//true表示覆盖原来的
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://192.168.220.128:3306/mo_yu_content?characterEncoding=utf-8&useSSL=false&useUnicode=true");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("123456");
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName("my");
pc.setParent("net.sunofbeach");
pc.setController("api");
pc.setMapper("mapper");
pc.setService("service");
pc.setEntity("pojo");
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityLombokModel(true);
strategy.setRestControllerStyle(true);
//多个表的时候,写多个就可以
strategy.setInclude("my_comment","my_comment_thumb_up","my_fish","my_recommend","my_report","my_reward","my_reward_action","my_reward_record","my_reward_total","my_sub_comment","my_sub_comment_thumb_up","my_thumb_up","my_topic","my_topic_follow");
strategy.setControllerMappingHyphenStyle(true);
strategy.setTablePrefix(pc.getModuleName() + "_");
mpg.setStrategy(strategy);
mpg.execute();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
编辑 (opens new window)