基于javaweb的SpringBoot美食菜谱分享平台系统设计和实现(java+springboot+mysql+ssm+thymeleaf+html+maven)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

240023292402

250023292402

260023292402

270023292402

280023292402

290023292402

310023292402

320023292402

330023292402

340023292402

350023292402

360023292402

基于javaweb的SpringBoot美食菜谱分享平台系统设计和实现(java+springboot+mysql+ssm+thymeleaf+html+maven)

主要技术实现:spring、 springmvc、 springboot、mybatis 、session、 jquery 、 md5 、bootstarp.js  拦截器等。

具体主要功能模块如下:

1.用户模块管理:用户登录、用户注册、用户的查询、添加、删除操作、 2.美食分享笔记管理:分享笔记列表的展示、添加、修改、删除操作、 3.美食笔记详情管理:美食笔记详情列表的查看、添加、删除等操作、 4.管理员信息管理:管理员信息的查看、修改、 5.公告信息管理:公告信息的查看、添加、修改、删除操作、 6.用户模块管理:用户列表查询、添加、删除、 7.用户评论模块管理:用户评论查询、添加、删除、 8.注销退出登录管理

给大家截一部分效果图吧 系统首页主要功能:

分类查看没事菜谱信息以及智能推荐:

美食分享笔记详情信息查看、用户登录后可以进行评论、浏览量会增加、用户可以收藏当前文档信息、可以点击查看作者信息、可以对作者进行关注等操作:

用户评论操作:

富文本编辑器添加美食分享笔记:

个人中心我的收藏 我的关注等:

关注用户信息以及具体功能操作等:

后台管理主要功能:用户管理、美食菜谱笔记管理、美食菜谱详情发布以及评论等管理

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
try {
String code = request.getParameter("code");
String state = request.getParameter("state");
String session_state= (String) session.getAttribute("qq_connect_state");
if(StringUtil.isNotEmpty(session_state) && session_state.equals(state)){
accessToken = accessTokenObj.getAccessToken();
session.setAttribute("accessToken", accessToken);
if (StringUtil.isEmpty(accessToken)) {
System.out.println("没有获取到响应参数");
}else{
OpenID openIDObj = new OpenID(accessToken);
openID = openIDObj.getUserOpenID();
UserInfo qzoneUserInfo = new UserInfo(accessToken, openID);
UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();
if(userInfoBean != null && userInfoBean.getRet() == 0 && StringUtil.isEmpty(userInfoBean.getMsg())){
//获取用户成功
User user=userService.findByOpenId(openID);
if(null != user){
//已经注册过,更新用户信息,直接将信息存入session 然后跳转
user.setNickname(userInfoBean.getNickname());
user.setHeadPortrait(userInfoBean.getAvatar().getAvatarURL100());
user.setSex(userInfoBean.getGender());
user.setLatelyLoginTime(new Date());
userService.save(user);

}else{
//该用户第一次登录 先注册
user = new User();
user.setOpenId(openID);
user.setNickname(userInfoBean.getNickname());
user.setHeadPortrait(userInfoBean.getAvatar().getAvatarURL100());
user.setSex(userInfoBean.getGender());
user.setRegistrationDate(new Date());
user.setLatelyLoginTime(new Date());
userService.save(user);
}
//存储用户信息
session.setAttribute("currentUser", user);
}
}
}else{
System.out.println("非法请求");
}
}catch (Exception e) {
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



/**
* IP工具类
* @ClassName: IPUtil
*
*/
public class IPUtil {

/**
* 获取当前网络IP
* @Title: getIpAddr
* @param request
* @return 参数说明
* @return String 返回类型
* @throws
*/
public static String getIpAddr(HttpServletRequest request){
String ipAddress = request.getHeader("x-forwarded-for");
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
if(ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")){
//根据网卡取本机配置的IP
InetAddress inet=null;
try {
inet = InetAddress.getLocalHost();
} catch (Exception e) {
e.printStackTrace();
}
ipAddress= inet.getHostAddress();
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
* @param limit  每页记录数
* @param trueName 昵称
* @return 参数说明
* @return Map<String,Object> 返回类型
* @throws
*/
@RequestMapping("/list")
public Map<String, Object> list(Comment comment,
@RequestParam(value = "commentDates", required = false) String commentDates,
@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "pageSize", required = false) Integer pageSize,
@RequestParam(value = "nickname", required = false) String nickname) {
String s_bCommentDate = null; // 开始时间
String s_eCommentDate = null; // 结束时间
if (StringUtil.isNotEmpty(commentDates)) {
String[] strs = commentDates.split(" - "); // 拆分时间段
s_bCommentDate = strs[0];
s_eCommentDate = strs[1];
}
Integer userId = null;
Map<String, Object> resultMap = new HashMap<String, Object>();
if (StringUtil.isNotEmpty(nickname)) {
User user = userService.findByTrueName(nickname);
if (user != null) {
userId = user.getUserId();
}
if (userId == null) {
resultMap.put("errorInfo", "用户昵称不存在,没有评论!");
} else {
resultMap.put("errorNo", 0);
}
} else {
resultMap.put("errorNo", 0);
}
List<Comment> commentList = commentService.list(comment, s_bCommentDate, s_eCommentDate, page - 1, pageSize,
userId);
Long total = commentService.getCount(comment, s_bCommentDate, s_eCommentDate, userId);
resultMap.put("data", commentList);
resultMap.put("total", total);
return resultMap;
}

/**
* 删除评论
* @param ids
* @return
*/
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


/**
* 根路径以及其他请求处理
*
*/
@Controller
public class IndexController {

private String imageFilePath = System.getProperty("user.dir") + "\\src\\main\\webapp\\static\\images\\"; // 图片上传路径

@Resource
private NoticeService noticeService;

@Resource
private UserService userService;

@Resource
private ArticleService articleService;
@Resource
private ClassifyService classifyService;


@RequestMapping("/")
public String index(HttpSession session) {

// 查询公告
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
 * 根据ID查找用户
* @param userId
* @return
*/
@RequestMapping("/findById")
public Map<String, Object> findById(Integer userId) {
Map<String, Object> resultMap = new HashMap<String, Object>();
User user = userService.findById(userId);
resultMap.put("errorNo", 0);
resultMap.put("data", user);
return resultMap;
}

/**
* 分页查询用户
* @param user
* @param registrationDates
* @param page
* @param limit
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list(User user,
@RequestParam(value = "latelyLoginTimes", required = false) String latelyLoginTimes,
@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "pageSize", required = false) Integer pageSize) {
String s_bregistrationDate = null; // 开始时间
String s_eregistrationDate = null; // 结束时间
if (StringUtil.isNotEmpty(latelyLoginTimes)) {
String[] strs = latelyLoginTimes.split(" - "); // 拆分时间段
s_bregistrationDate = strs[0];
s_eregistrationDate = strs[1];
}
List<User> userList = userService.list(user, s_bregistrationDate, s_eregistrationDate, page - 1, pageSize);
Long total = userService.getCount(user, s_bregistrationDate, s_eregistrationDate);
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", userList);
resultMap.put("total", total);
return resultMap;
}

@RequestMapping("/delete")
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
    } else if ("edit".equals(mode)) {
articleIndex.updateIndex(article);
}
resultMap.put("errorNo", 0);
resultMap.put("data", 1);
startupRunner.loadData();
return resultMap;
}

/**
* 批量删除文章
*
* @param ids
* @return
*/
@RequestMapping("/delete")
public Map<String, Object> delete(@RequestParam(value = "articleId") String ids) throws Exception {
Map<String, Object> resultMap = new HashMap<String, Object>();
String[] idsStr = ids.split(",");
for (int i = 0; i < idsStr.length; i++) {
articleService.delete(Integer.parseInt(idsStr[i]));
articleIndex.deleteIndex(idsStr[i]);
}
resultMap.put("errorNo", 0);
resultMap.put("data", 1);
startupRunner.loadData();
return resultMap;
}

/**
* 新闻内容图片上传处理
*
* @param file
* @param CKEditorFuncNum
* @return
*/
@RequestMapping("/ckeditorUpload")
public String ckeditorUpload(@RequestParam("upload") MultipartFile file, String CKEditorFuncNum) {
String fileName = file.getOriginalFilename(); // 获取文件名
String suffixName = fileName.substring(fileName.lastIndexOf(".")); // 获取文件的后缀


项目链接:
https://javayms.github.io?id=311422322105200kk
https://javayms.pages.dev?id=311422322105200kk