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

基于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;

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值