# club **Repository Path**: tomkk/club ## Basic Information - **Project Name**: club - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2016-05-13 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 177+147+2103+299+1764+1254=5744 ------------------------------------------------------------------------------- 命名规则: java类名: 大驼峰命名 变量名: 小驼峰命名 url: 小驼峰命名 --------------------------------------------------------------------------------- 权限说明: 游客权限(0): 查看新闻和成果 非社团成员(1): 查看评论新闻和成果,修改个人信息 社团成员(2): 查看评论新闻和成果,修改个人信息,发表成果 管理员(3): 新闻和成果的增删改查,修改个人信息,管理用户,发表新闻,发表成果 ----------------------------------------------------------------------------------- 数据库创建的sql语句 CREATE DATABASE webfinal DEFAULT CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 创建用户表语句 CREATE TABLE `user` ( `user_id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(30) NOT NULL, `password` varchar(30) NOT NULL, `nickname` varchar(20) NOT NULL DEFAULT '用户', `email` varchar(50) DEFAULT NULL, `mobile` varchar(11) DEFAULT NULL, `realname` varchar(10) NOT NULL, `role` int(11) NOT NULL DEFAULT '0', `user_isuse` tinyint(1) NOT NULL DEFAULT '1', `headimage` varchar(255) DEFAULT 'upload/headimage/guest.png', PRIMARY KEY (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; 创建新闻表语句 CREATE TABLE `news` ( `news_id` int(11) NOT NULL AUTO_INCREMENT, `news_title` varchar(30) NOT NULL, `news_content` text, `news_publish_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `news_isuse` tinyint(1) NOT NULL DEFAULT '1', `user_id` int(11) NOT NULL, PRIMARY KEY (`news_id`), KEY `news_user_user_id_fk` (`user_id`), CONSTRAINT `news_user_user_id_fk` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; 创建新闻评论表 CREATE TABLE `news_comment` ( `comment_id` int(11) NOT NULL AUTO_INCREMENT, `comment_content` varchar(100) DEFAULT NULL, `news_id` int(11) NOT NULL, `publish_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `user_id` int(11) NOT NULL, `comment_isuse` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`comment_id`), KEY `comment___fk1` (`user_id`), KEY `comment___fk2` (`news_id`), CONSTRAINT `comment___fk1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `comment___fk2` FOREIGN KEY (`news_id`) REFERENCES `news` (`news_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8; 创建成果表 CREATE TABLE `achievement` ( `achievement_id` int(11) NOT NULL AUTO_INCREMENT, `achievement_title` varchar(30) NOT NULL, `achievement_content` text, `achievement_publish_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `achievement_isuse` tinyint(1) DEFAULT '1', `user_id` int(11) NOT NULL, PRIMARY KEY (`achievement_id`), KEY `achievement_user_user_id_fk` (`user_id`), CONSTRAINT `achievement_user_user_id_fk` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; 创建成果评论表 CREATE TABLE `achievement_comment` ( `comment_id` int(11) NOT NULL AUTO_INCREMENT, `achievement_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, `comment_content` varchar(100) DEFAULT NULL, `publish_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `comment_isuse` tinyint(1) DEFAULT '1', PRIMARY KEY (`comment_id`), KEY `achievement_comment_achievement_achievement_id_fk` (`achievement_id`), KEY `achievement_comment_user_user_id_fk` (`user_id`), CONSTRAINT `achievement_comment_achievement_achievement_id_fk` FOREIGN KEY (`achievement_id`) REFERENCES `achievement` (`achievement_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `achievement_comment_user_user_id_fk` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; ---------------------------------------------------------------------------------------- Java工具类说明 1. Error类 说明: 用于分装向前端发送的错误信息 成员: code: 0=>没有错误 1=>逻辑错误 2=>服务器错误 errorReason: 错误原因 2. Success类 说明: 用于分装向前端发送的成功信息 成员: code: 0=>没有错误 1=>逻辑错误 2=>服务器错误 returnValue: 向前端返回的数据 3. MysqlConnector类 说明: 用于链接数据库 4. MysqlOperation类 说明: 用于封装对数据库的操作 --------------------------------------------------------------------------------------- 实体说明 1. Achievement 说明: 用于存储一个成果的所有信息 属性: achievement_title 【成果的标题】 achievement_content 【成果的内容】 achievement_id 【成果的id】 publisher 【成果发布者的昵称】 achievement_isuse 【成果是否被删除】 achievement_publish_time 【成果的发布时间】 comments 【成果的所有评论】 2. AchievementComment 说明: 用于存储一个成果的一条评论 属性: comment_publisher_nickname 【评论发布者的昵称】 comment_content 【评论的内容】 comment_publish_time 【评论的发表时间】 comment_id 【评论的id】 headimage 【评论发布者的id】 user_id 【评论发布者的id】用于判断是否是当前用户发表的评论是否显示删除按钮 3. AchievementListItem 说明: 用于保存成果列表中的一项 属性: achievement_id: 【成果的id】 achievement_title: 【成果的标题】 nickname: 【成果发布者的昵称】 achievement_publish_time: 【成果发布的时间】 headimage: 【成果发布者的头像】 4. ClubMemberListItem 说明: 用于保存社团成员列表中的一项 属性: username: 【社团成员的用户名】 headimage: 【社团成员的头像】 nickname: 【社团成员的昵称】 5. News 说明: 用于存储一个新闻的所有信息 属性: news_title 【新闻的标题】 news_content 【新闻的内容】 news_id 【新闻的id】 publisher 【新闻发布者昵称】 news_isuse 【新闻是否被删除】 news_publish_time 【新闻的发布时间】 comments 【该条新闻的所有评论组成的数组】 6. NewsComment 说明: 用于存储一个新闻的一条评论 属性: comment_publisher_nickname 【评论发布者的昵称】 comment_content 【评论的内容】 comment_publish_time 【评论发表的时间】 comment_id 【评论的id】 headimage 【评论发布者的头像】 user_id 【评论发布者的id】用于判断是否是当前用户发表的评论是否显示删除按钮 7. NewsListItem 说明: 用于保存新闻列表中的一项 属性: news_id: 【新闻的id】 news_title: 【新闻的标题】 nickname: 【新闻发布者的昵称】 news_publish_time: 【新闻的发布时间】 headimage: 【成果发布者的头像】 8. User 说明: 用于存储一个用户的所有信息 属性: user_id 【用户的id】 username 【用户名】 nickname 【昵称】 email 【邮箱】 mobile 【手机号】 realname 【真实姓名】 role 【用户身份】 headimage 【用户头像】 user_isuse 【是否被删除】 -------------------------------------------------------------------------------------- Servlet接口说明: 1. AddAchievementCommentServlet url: addAchievementComment 说明: 添加成果评论 参数: 发布者 user_id, 评论内容 comment_content, 对应的成果 idachievement_id 返回: 提示信息 2. AddAchievementServlet url: addAchievement 说明: 发表成果 参数: 成果的标题 achievement_title, 成果的内容 achievement_content, 发表者的id user_id 返回: 提示信息 3. AddNewsCommentServlet url: addNewsComment 说明: 添加新闻评论 参数: 发表者user_id,评论的内容comment_content,对应新闻的news_id 返回: 提示信息 4. AddNewsServlet url: addNews 说明: 发表新闻 参数: 新闻的标题news_title, 新闻的内容news_content, 发表者user_id 返回: 提示信息 5. AllUsersServlet url: getAllUsers 说明: 向前端返回所有的非管理员用户集合 返回: User实体数组 6. ChangeUserRoleServlet url: changeUserRole 说明: 管理员用来修改用户的角色 参数: 被修改的用户的user_id 更新的role 返回: 提示信息 7. ChangeUserStateServlet url: changeUserState 说明: 管理员用来修改用户账号是否可用 参数: 被修改的用户的uesr_id 更新的state 返回: 提示信息 8. CheckUsernameServlet url: checkUsername 说明: 检查用户名是否已经被注册 参数: 被检验的username 返回: 提示信息 9. DeleteAchievementCommentServlet url: deleteAchievementComment 说明: 删除成果的评论 参数: 被删除评论的comment_id 返回: 提示信息 10. DeleteAchievementServlet url: 删除成果 说明: 删除成果 参数: 被删除的成果的achievement_id 返回: 提示信息 11. DeleteNewsCommentServlet url: deleteNewsComment 说明: 删除新闻评论 参数: 评论的comment_id 返回: 提示信息 12. DeleteNewsServlet url: deleteNews 说明: 删除新闻 参数: 被删除新闻的news_id 返回: 提示信息 13. EditAchievementServlet url: editAchievement 说明: 编辑成果 参数: 被编辑的成果的achievement_id, 新的成果的achievement_content, 新的成果的 achievement_title 返回: 提示信息 14. EditNewsServlet url: editNews 说明: 编辑新闻 参数: 被编辑新闻的news_id, 新的新闻的news_content, 新的新闻的news_title 返回: 提示信息 15. EditUserServlet url: editUser 说明: 修改用户信息 参数: 用户的信息 返回: 提示信息 16. GetAchievementServlet url: getAchievement 说明: 获得指定成果的详细信息 参数: 成果的achievement_id 返回: Achievement实体 17. GetAllAchievementServlet url: getAllAchievement 说明: 获得所有的成果 返回: 所有成功的Achievement数组 18. GetAllClubMembersServlet url: getAllClubMembers 说明: 获得所有社团成员用户 返回: 社团成员对应的User实体的数组 19. GetAllMyAchievementServlet url: getAllMyAchievement 说明: 获得某个用户所有发表的成果 参数: 用户的user_id 返回: 该用户所有发表的成果的Achievement实体的数组 20. GetAllMyNewsServlet url: getAllMyNews 说明: 获得某个用户所有发表的新闻 参数: 用户的uesr_id 返回: 该用户所有发表的新闻的News实体数组 21. GetAllNewsServlet url: getAllNews 说明: 获得所有可以显示的新闻 返回: News实体数组 22. GetNewsServlet url: getNews 说明: 获取指定新闻 参数: 新闻的news_id 返回: 新闻的news_title,news_content,news_id,publisher,news_publish_time,news_isuse,对应的 comments 23. LoginServlet url: login 说明: 登陆接口 参数: 表单账号及密码 返回: 登陆成功返回该用户的除密码外(为安全考虑)所有信息,其他的返回提示信息 24. NextAchievementServlet url: nextAchievement 说明: 获得下一个成果 参数: 现在的成果的achievement_id 返回: 下一个成果的Achievement实体,若到底返回提示信息 25. NextNewsServlet url: nextNews 说明: 获得下一个新闻 参数: 现在的新闻的news_id 返回: 下一个新闻的News实体,若到底返回提示信息 26. PreAchievementServlet url: preAchievement 说明: 获得前一个成果 参数: 现在的成果的achievment_id 返回: 上一个成果的Achievement实体,若到头返回提示信息 27. PreNewsServlet url: preNews 说明: 获得前一个新闻 参数: 现在的新闻的news_id 返回: 上一个新闻的News实体,若到头返回提示信息 28. RegisterServlet url: register 说明: 注册接口 参数: 用户名username,密码password,昵称nickname,邮箱email,手机号mobile,真实姓名realname 返回: 注册状态及提示信息 29. UpdateHeadImageServlet url: updateHeadImage 说明: 修改用户的头像 参数: 用户的user_id,头像的相对路径 返回: 成功返回头像的路径,失败返回提示信息 30. UpdatePwdServlet url: updatePwd 说明: 重置密码接口 参数: 用户的user_id,新密码password 返回: 提示信息 31. UploadServlet url: upload 说明: 上传图片或者文件 参数: 文件 返回: 文件的相对路径