基于javaweb+mysql的springboot美食菜谱分享平台系统设计和实现(java+springboot+mysql+ssm+thymeleaf+html)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot美食菜谱分享平台系统设计和实现(java+springboot+mysql+ssm+thymeleaf+html)
主要技术实现:spring、 springmvc、 springboot、mybatis 、session、 jquery 、 md5 、bootstarp.js tomcat、拦截器等。
具体主要功能模块如下:
1.用户模块管理:用户登录、用户注册、用户的查询、添加、删除操作、 2.美食分享笔记管理:分享笔记列表的展示、添加、修改、删除操作、 3.美食笔记详情管理:美食笔记详情列表的查看、添加、删除等操作、 4.管理员信息管理:管理员信息的查看、修改、 5.公告信息管理:公告信息的查看、添加、修改、删除操作、 6.用户模块管理:用户列表查询、添加、删除、 7.用户评论模块管理:用户评论查询、添加、删除、 8.注销退出登录管理
给大家截一部分效果图吧 系统首页主要功能:
分类查看没事菜谱信息以及智能推荐:
美食分享笔记详情信息查看、用户登录后可以进行评论、浏览量会增加、用户可以收藏当前文档信息、可以点击查看作者信息、可以对作者进行关注等操作:
用户评论操作:
富文本编辑器添加美食分享笔记:
个人中心我的收藏 我的关注等:
关注用户信息以及具体功能操作等:
后台管理主要功能:用户管理、美食菜谱笔记管理、美食菜谱详情发布以及评论等管理
* @param publishDates
* @param page
* @param pageSize
* @return
*/
@RequestMapping("/mylist")
public Map<String, Object> list(Article article,
@RequestParam(value = "publishDates", required = false) String publishDates,
@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "pageSize", required = false) Integer pageSize, HttpServletRequest request) {
Map<String, Object> resultMap = new HashMap<String, Object>();
// User user = (User) request.getSession().getAttribute("user");
// article.setUserId(user.getUserId());
String s_bPublishDate = null; // 开始时间
String s_ePublishDate = null; // 结束时间
if (StringUtil.isNotEmpty(publishDates)) {
String[] strs = publishDates.split(" - "); // 拆分时间段
s_bPublishDate = strs[0];
s_ePublishDate = strs[1];
}
Long total = articleService.getCount(article, s_bPublishDate, s_ePublishDate);
int totalPage = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1); // 总页数
resultMap.put("totalPage", totalPage);
resultMap.put("errorNo", 0);
resultMap.put("data", articleService.list(article, s_bPublishDate, s_ePublishDate, page - 1, pageSize));
resultMap.put("total", total);
return resultMap;
}
/**
* 后台默认首页
*
* @return
*/
@RequestMapping("/index")
public String root() {
return "/common/index";
}
/**
* 博主信息页面
*
* @return
*/
@RequestMapping("/blogger")
public String blogger() {
return "/blogger/index";
String region = String.valueOf(data.get("region"));//市(县)
add = country+"-"+region+"-"+city;
}
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return add;
}
}
package com.longwang.controller;
/**
* QQ登录控制器
*
*/
@Controller
@RequestMapping("/QQ")
* @param publishDates
* @param page
* @param pageSize
* @return
*/
@RequestMapping("/mylist")
public Map<String, Object> list(Article article,
@RequestParam(value = "publishDates", required = false) String publishDates,
@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "pageSize", required = false) Integer pageSize, HttpServletRequest request) {
Map<String, Object> resultMap = new HashMap<String, Object>();
// User user = (User) request.getSession().getAttribute("user");
// article.setUserId(user.getUserId());
String s_bPublishDate = null; // 开始时间
String s_ePublishDate = null; // 结束时间
if (StringUtil.isNotEmpty(publishDates)) {
String[] strs = publishDates.split(" - "); // 拆分时间段
s_bPublishDate = strs[0];
s_ePublishDate = strs[1];
}
Long total = articleService.getCount(article, s_bPublishDate, s_ePublishDate);
int totalPage = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1); // 总页数
resultMap.put("totalPage", totalPage);
resultMap.put("errorNo", 0);
resultMap.put("data", articleService.list(article, s_bPublishDate, s_ePublishDate, page - 1, pageSize));
resultMap.put("total", total);
return resultMap;
}
/**
* 后台默认首页
*
* @return
*/
@RequestMapping("/index")
public String root() {
return "/common/index";
}
/**
* 博主信息页面
*
* @return
List<String> result = new ArrayList<>();
if (StringUtils.isNotBlank(artIds)) {
result = Arrays.asList(StringUtils.split(artIds, ","));
}
List<Integer> retIds = new ArrayList<>();
for (String temp : result) {
retIds.add(Integer.valueOf(temp).intValue());
}
List<Article> retArt = articleService.findByListId(retIds);
session.setAttribute("noticeList", noticeService.list(0, 5));
mav.addObject("retArt", retArt);
mav.addObject("user", u);
mav.setViewName("/viewCollection");
return mav;
}
/**
* 查看个人关注用户
*
* @return
*/
@RequestMapping("viewFocusUser")
public ModelAndView viewFocusUser(HttpServletRequest request, HttpSession session) {
User user = (User) request.getSession().getAttribute("user");
ModelAndView mav = new ModelAndView();
User u = userService.findById(user.getUserId());
String userIds = u.getUserIds();
List<String> result = new ArrayList<>();
if (StringUtils.isNotBlank(userIds)) {
result = Arrays.asList(StringUtils.split(userIds, ","));
}
List<Integer> retIds = new ArrayList<>();
for (String temp : result) {
retIds.add(Integer.valueOf(temp).intValue());
}
List<User> retArt = userService.findByListId(retIds);
session.setAttribute("noticeList", noticeService.list(0, 5));
mav.addObject("retArt", retArt);
mav.addObject("user", u);
mav.setViewName("/viewFocusUser");
return mav;
}
/**
* 保存用户信息
*
* @param user
* @return
*/
@RequestMapping("/save")
public ModelAndView save(User user) {
ModelAndView mav = new ModelAndView();
@Resource
private StartupRunner startupRunner;
@RequestMapping("list")
public Map<String, Object> list(@RequestParam(value="page",required=false)Integer page,@RequestParam(value="pageSize",required=false)Integer pageSize){
Map<String, Object> resultMap=new HashMap<>();
resultMap.put("errorNo", 0);
resultMap.put("data", classifyService.list(page-1, pageSize));
resultMap.put("total", classifyService.getCount());
return resultMap;
}
/**
* 根据Id查找文章类别
* @param classifyId
* @return
*/
@RequestMapping("findById")
public Map<String, Object> findById(Integer classifyId){
Map<String, Object> resultMap=new HashMap<>();
resultMap.put("errorNo", 0);
resultMap.put("data", classifyService.findById(classifyId));
return resultMap;
}
/**
* 添加或修改文章类别
* @param classify
* @return
*/
@RequestMapping("save")
public Map<String, Object> save(Classify classify){
Map<String, Object> resultMap=new HashMap<>();
classifyService.save(classify);
resultMap.put("errorNo", 0);
resultMap.put("data", 1);
startupRunner.loadData();
return resultMap;
}
*
*/
@RestController
@RequestMapping("/admin/link")
public class LinkAdminController {
@Resource
private LinkService linkService;
@Resource
private StartupRunner startupRunner;
/**
* 分页查询友情链接
* @param link
* @param page
* @param pageSize
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list(Link link,@RequestParam(value="page",required=false)Integer page,@RequestParam(value="pageSize",required=false)Integer pageSize){
Map<String, Object> resultMap=new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", linkService.list(link,page-1, pageSize));
resultMap.put("total", linkService.getCount(link));
return resultMap;
}
/**
* 根据ID查找友情链接
* @param linkId
* @return
*/
@RequestMapping("/findById")
public Map<String, Object> findById(Integer linkId) {
Map<String, Object> resultMap=new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", linkService.findById(linkId));
return resultMap;
}
/**
* 添加或者修改友情链接
* @param link
* @return
*/
@RequestMapping("/save")
public Map<String, Object> save(Link link){
* 音乐控制器
*
*/
@RestController
@RequestMapping("/admin/music")
public class MusicAdminController {
@Resource
private MusicService musicService;
@Resource
private StartupRunner startupRunner;
/**
* 分页查询音乐
* @param music
* @param page
* @param pageSize
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list(Music music,@RequestParam(value="page",required=false)Integer page,@RequestParam(value="pageSize",required=false)Integer pageSize){
Map<String, Object> resultMap=new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", musicService.list(music,page-1, pageSize));
resultMap.put("total", musicService.getCount(music));
return resultMap;
}
/**
* 根据ID查找音乐
* @param musicId
* @return
*/
@RequestMapping("/findById")
public Map<String, Object> findById(Integer musicId) {
Map<String, Object> resultMap=new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", musicService.findById(musicId));
return resultMap;
for (String temp : result) {
retIds.add(Integer.valueOf(temp).intValue());
}
List<Article> retArt = articleService.findByListId(retIds);
session.setAttribute("noticeList", noticeService.list(0, 5));
mav.addObject("retArt", retArt);
mav.addObject("user", u);
mav.setViewName("/viewCollection");
return mav;
}
/**
* 查看个人关注用户
*
* @return
*/
@RequestMapping("viewFocusUser")
public ModelAndView viewFocusUser(HttpServletRequest request, HttpSession session) {
User user = (User) request.getSession().getAttribute("user");
ModelAndView mav = new ModelAndView();
User u = userService.findById(user.getUserId());
String userIds = u.getUserIds();
List<String> result = new ArrayList<>();
if (StringUtils.isNotBlank(userIds)) {
result = Arrays.asList(StringUtils.split(userIds, ","));
}
List<Integer> retIds = new ArrayList<>();
for (String temp : result) {
retIds.add(Integer.valueOf(temp).intValue());
}
List<User> retArt = userService.findByListId(retIds);
session.setAttribute("noticeList", noticeService.list(0, 5));
mav.addObject("retArt", retArt);
mav.addObject("user", u);
mav.setViewName("/viewFocusUser");
return mav;
}
/**
* 保存用户信息
*
* @param user
* @return
*/
@RequestMapping("/admin/music")
public class MusicAdminController {
@Resource
private MusicService musicService;
@Resource
private StartupRunner startupRunner;
/**
* 分页查询音乐
* @param music
* @param page
* @param pageSize
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list(Music music,@RequestParam(value="page",required=false)Integer page,@RequestParam(value="pageSize",required=false)Integer pageSize){
Map<String, Object> resultMap=new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", musicService.list(music,page-1, pageSize));
resultMap.put("total", musicService.getCount(music));
return resultMap;
}
/**
* 根据ID查找音乐
* @param musicId
* @return
*/
@RequestMapping("/findById")
public Map<String, Object> findById(Integer musicId) {
Map<String, Object> resultMap=new HashMap<String, Object>();
resultMap.put("errorNo", 0);
resultMap.put("data", musicService.findById(musicId));
return resultMap;
}
/**
* 添加或者修改音乐
* @param music
* @return
*/
@RequestMapping("/save")
public Map<String, Object> save(Music music){
/**
* 退出登录
*
* @param request
* @return
*/
@RequestMapping("/quitAdmin")
public String quitAdmin(HttpServletRequest request) {
HttpSession session = request.getSession();
session.removeAttribute("user");
return "login";
}
/**
* 验证登录
*
* @param user
* @param request
* @return
*/
@RequestMapping("/checkLogin")
public ModelAndView checkLogin(User user, HttpServletRequest request) {
ModelAndView mav = new ModelAndView();
HttpSession session = request.getSession();
User u = userService.findByUsernameAndPassword(user.getUsername(), user.getPassword());
if (u == null) {
mav.addObject("user", user);
mav.addObject("errorInfo", "用户名或者密码错误!");
mav.setViewName("webLogin");
} else {
u.setLatelyLoginTime(new Date());
userService.save(u);
session.setAttribute("user", u);
mav.addObject("username", u.getUsername());
mav.addObject("user", u);
mav.addObject("success", true);
mav.setViewName("/index");
}
return mav;
}
/**
* 查看个人信息
*
* @return
*/
@RequestMapping("viewPerson")
*/
@RequestMapping("/delete")
public Map<String, Object> delete(@RequestParam(value="noticeId")String ids){
Map<String, Object> resultMap=new HashMap<String, Object>();
String []idsStr=ids.split(",");
for(int i=0;i<idsStr.length;i++) {
noticeService.delete(Integer.parseInt(idsStr[i]));
}
resultMap.put("errorNo", 0);
resultMap.put("data", 1);
return resultMap;
}
}
package com.longwang.controller.admin;
/**
* 文章类别控制器
*
*/
@RestController
@RequestMapping("/admin/classify")
public class ClassifyController {
@Resource
private ClassifyService classifyService;
@Resource
private StartupRunner startupRunner;
@RequestMapping("list")
public Map<String, Object> list(@RequestParam(value="page",required=false)Integer page,@RequestParam(value="pageSize",required=false)Integer pageSize){
Map<String, Object> resultMap=new HashMap<>();
resultMap.put("errorNo", 0);
resultMap.put("data", classifyService.list(page-1, pageSize));
resultMap.put("total", classifyService.getCount());
return resultMap;
@RequestMapping("/addFocusUser")
public ModelAndView addFocusUser(HttpServletRequest request, String userId) {
ModelAndView mav = new ModelAndView();
User user = (User) request.getSession().getAttribute("user");// 当前登录用户
String userIds = user.getUserIds();
List<String> tempList = Arrays.asList(userIds.split(","));
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.add(userId);
String ret = StringUtils.join(lineIdList, ",");
user.setUserIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewFocusUser");
return mav;
}
@RequestMapping("/addFocusUser/{userId}")
public ModelAndView addFocusUser(@PathVariable(value = "userId", required = false) Integer userId,
HttpSession session) {
ModelAndView mav = new ModelAndView();
User user = (User) session.getAttribute("user");// 当前登录用户
String userIds = user.getUserIds();
List<String> tempList = new ArrayList<>();
if (userIds != null) {
tempList = Arrays.asList(userIds.split(","));
}
List<String> lineIdList = new ArrayList<>(tempList);
lineIdList.add(userId.toString());
String ret = StringUtils.join(lineIdList, ",");
user.setUserIds(ret);
userService.save(user);
mav.setViewName("redirect:/viewFocusUser");
return mav;
}
/**
* 取消收藏
* @param request
return resultMap;
}
/**
* 批量删除文章类别
* @param ids
* @return
*/
@RequestMapping("delete")
public Map<String, Object> delete(@RequestParam(value="classifyId")String ids){
Map<String, Object> resultMap=new HashMap<>();
String []idsStr=ids.split(",");
for(int i=0;i<idsStr.length;i++) {
classifyService.delete(Integer.parseInt(idsStr[i]));
}
resultMap.put("errorNo", 0);
resultMap.put("data", 1);
startupRunner.loadData();
return resultMap;
}
}
package com.longwang.controller.admin;
/**
* 回复Controller层
*
*/
@RestController
@RequestMapping("/admin/reply")
public class ReplyAdminController {
}
package com.longwang.controller.admin;
/**
* 音乐控制器
*
*/
@RestController
@RequestMapping("/admin/music")
public class MusicAdminController {
@Resource
private MusicService musicService;
@Resource
private StartupRunner startupRunner;
/**
* 分页查询音乐
* @param music
* @param page
* @param pageSize
* @return
*/
@RequestMapping("/list")
public Map<String, Object> list(Music music,@RequestParam(value="page",required=false)Integer page,@RequestParam(value="pageSize",required=false)Integer pageSize){
Map<String, Object> resultMap=new HashMap<String, Object>();
resultMap.put("errorNo", 0);
@RequestMapping("/checkLogin")
public ModelAndView checkLogin(User user, HttpServletRequest request) {
ModelAndView mav = new ModelAndView();
HttpSession session = request.getSession();
User u = userService.findByUsernameAndPassword(user.getUsername(), user.getPassword());
if (u == null) {
mav.addObject("user", user);
mav.addObject("errorInfo", "用户名或者密码错误!");
mav.setViewName("webLogin");
} else {
u.setLatelyLoginTime(new Date());
userService.save(u);
session.setAttribute("user", u);
mav.addObject("username", u.getUsername());
mav.addObject("user", u);
mav.addObject("success", true);
mav.setViewName("/index");
}
return mav;
}
/**
* 查看个人信息
*
* @return
*/
@RequestMapping("viewPerson")
public ModelAndView viewPerson(HttpServletRequest request) {
User user = (User) request.getSession().getAttribute("user");
ModelAndView mav = new ModelAndView();
User u = userService.findById(user.getUserId());
mav.addObject("user", u);
mav.setViewName("/viewPerson");
return mav;
}
/**
* 查看个人收藏夹
*
* @return
*/
@RequestMapping("viewCollection")
public ModelAndView viewCollection(HttpServletRequest request, HttpSession session) {
User user = (User) request.getSession().getAttribute("user");
ModelAndView mav = new ModelAndView();
User u = userService.findById(user.getUserId());
String artIds = u.getArticleIds();
List<String> result = new ArrayList<>();
if (StringUtils.isNotBlank(artIds)) {
result = Arrays.asList(StringUtils.split(artIds, ","));
* 保存注册信息
*
* @param user
* @return
*/
@RequestMapping("/saveUser")
public String saveUser(User user) {
List<Article> randomArticle = articleService.getRandomArticle(3);
String ids = "";
for (int i = 0; i < randomArticle.size(); i++) {
Integer articleId = randomArticle.get(i).getArticleId();
ids += articleId + ",";
}
ids = ids.substring(0, ids.length() - 1);
user.setArticleIds(ids);
userService.save(user);
return "webLogin";
}
/**
* 退出登录
*
* @param request
* @return
*/
@RequestMapping("/quit")
public String quit(HttpServletRequest request) {
HttpSession session = request.getSession();
session.removeAttribute("user");
return "index";
}
/**
* 退出登录
*
* @param request
* @return
*/
@RequestMapping("/quitAdmin")
public String quitAdmin(HttpServletRequest request) {
HttpSession session = request.getSession();
session.removeAttribute("user");
return "login";
}
/**
* 验证登录
*
}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) {
e.printStackTrace();
}
return "redirect:/";
}
@RequestMapping("/loginOut")
public String loginOut(HttpSession session,HttpServletResponse response) throws IOException{
session.removeAttribute("currentUser");
return "redirect:/";
@RequestMapping("/save")
public Map<String, Object> save(Link link){
Map<String, Object> resultMap=new HashMap<String, Object>();
linkService.save(link);
resultMap.put("errorNo", 0);
resultMap.put("data", 1);
startupRunner.loadData();
return resultMap;
}
/**
* 批量删除友情链接
* @param ids
* @return
*/
@RequestMapping("/delete")
public Map<String, Object> delete(@RequestParam(value="linkId")String ids){
Map<String, Object> resultMap=new HashMap<String, Object>();
String []idsStr=ids.split(",");
for(int i=0;i<idsStr.length;i++) {
linkService.delete(Integer.parseInt(idsStr[i]));
}
resultMap.put("errorNo", 0);
resultMap.put("data", 1);
startupRunner.loadData();
return resultMap;
}
}
package com.longwang.controller.admin;