基于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.注销退出登录管理

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

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

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

用户评论操作:

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

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

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

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

	*  @return  参数说明 
	* @return String    返回类型 
	* @throws
	 */
	public static String getAdd(HttpServletRequest request) {
        //淘宝IP地址库:http://ip.taobao.com/instructions.php
        String add = null;
        String ip = getIpAddr(request);
        try {
            //URL U = new URL("http://ip.taobao.com/service/getIpInfo.php?ip=114.111.166.72");
            URL U = new URL("http://ip.taobao.com/service/getIpInfo.php?ip="+ip);
            URLConnection connection = U.openConnection();  
            connection.connect();
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));  
            String result = "";
            String line;
            while ((line = in.readLine())!= null){  
                result += line;  
            }
            in.close(); 
            JSONObject jsonObject = JSONObject.fromObject(result);  
            Map<String, Object> map = (Map) jsonObject;
            String code = String.valueOf(map.get("code"));//0:成功,1:失败。
            if("1".equals(code)){//失败
                String data = String.valueOf(map.get("data"));//错误信息
            }else if("0".equals(code)){//成功
                Map<String, Object> data = (Map<String, Object>) map.get("data");

                String country = String.valueOf(data.get("country"));//国家
                String area = String.valueOf(data.get("area"));//
                String city = String.valueOf(data.get("city"));//省(自治区或直辖市)
                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;


/**
 * 时光轴控制器
 *
 */
@RestController
@RequestMapping("/admin/timeline")
public class TimelineAdminController {
	
	@Resource
	private TimelineService timelineService;
	
	@Resource
	private StartupRunner startupRunner;
	
	/**
	 * 分页查询时光轴
	 * @param timeline
	 * @param page
	 * @param pageSize
	 * @return
	 */
	@RequestMapping("/list")
	public Map<String, Object> list(Timeline timeline,@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", timelineService.list(timeline,page-1, pageSize));
		resultMap.put("total", timelineService.getCount(timeline));
		return resultMap;
	}
    return mav;
  }
}
package com.longwang.util;

/**
 * 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 {  

	@Resource
	private TimelineService timelineService;

	/**
	 * 查询时光轴
	 * @param page
	 * @param pageSize
	 * @return
	 */
	@RequestMapping("/list")
	public Map<String, Object> list2() {
		Map<String, Object> resultMap = new HashMap<>();
		List<Timeline> maps = timelineService.list(null, 0, 100);
		if (CollectionUtils.isNotEmpty(maps)) {
			Map<String, Object> jsonMap = new LinkedHashMap<String, Object>();
			for (Timeline map : maps) {
				Map<String, Object> yearMap = (Map<String, Object>) jsonMap.get(map.getYear());
				if (null == yearMap) {
					yearMap = new LinkedHashMap<String, Object>();
					yearMap.put("year", map.getYear());
				}
				Map<String, Object> monthMap = (Map<String, Object>) yearMap.get("month");
				if (null == monthMap) {
					monthMap = new LinkedHashMap<String, Object>();
				}
				List<Map<String, Object>> monthList = (List<Map<String, Object>>) monthMap.get(map.getMonth());
				if (null == monthList) {
					monthList = new ArrayList<>();
				}
				monthMap.remove(map.getMonth());
				Map<String, Object> obj = new HashMap<>();
				obj.put("create_time", DateUtil.formatDate(map.getPublishDate(), "MM月dd日 hh:mm"));
				obj.put("content", map.getContent());
				monthList.add(obj);
				monthMap.put(map.getMonth(), monthList);
				yearMap.remove("month");
				yearMap.put("month", monthMap);
				jsonMap.remove(map.getYear());
				jsonMap.put(map.getYear(), yearMap);
			}
			List<Map<String, Object>> datas = new ArrayList<Map<String, Object>>();
			for (Map.Entry<String, Object> entry : jsonMap.entrySet()) {
				obj.put("create_time", DateUtil.formatDate(map.getPublishDate(), "MM月dd日 hh:mm"));
				obj.put("content", map.getContent());
				monthList.add(obj);
				monthMap.put(map.getMonth(), monthList);
				yearMap.remove("month");
				yearMap.put("month", monthMap);
				jsonMap.remove(map.getYear());
				jsonMap.put(map.getYear(), yearMap);
			}
			List<Map<String, Object>> datas = new ArrayList<Map<String, Object>>();
			for (Map.Entry<String, Object> entry : jsonMap.entrySet()) {
				datas.add((Map<String, Object>) entry.getValue());
			}
			resultMap.put("datas", datas);
			resultMap.put("result", 1);
		}else {
			resultMap.put("data", "还没有时光轴数据!");
		}
		return resultMap;

	}
}
package com.longwang.controller.admin;

/**
 * 友情链接控制器
 *
    @Resource
    private ClassifyService classifyService;

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

        // 查询公告
        session.setAttribute("noticeList", noticeService.list(0, 5));
        return "index";// 跳转到index.html
    }

    @RequestMapping("/delete")
    public Map<String, Object> delete(Integer userId) {
        Map<String, Object> resultMap = new HashMap<String, Object>();
        userService.delete(userId);
        resultMap.put("errorNo", 0);
        return resultMap;
    }

    /**
     * 登录页面
     *
     * @return
     */
    @RequestMapping("/login")
    public String login() {
        return "login";
    }

    /**
     * 前台登录页面
     *
     * @return
     */
    @RequestMapping("/webLogin")
    public String webLogin() {
        return "webLogin";
    }

    /**
     * 注册
     *
     * @return
     */
    @RequestMapping("/regist")
    public String regist() {
        return "regist";
    }

    resultMap.put("reply", reply);
    resultMap.put("success", true);
    return resultMap;
  }

}
package com.longwang.controller.admin;

/**
 * 博主控制器
 *
 */
@RestController
@RequestMapping("/admin/blogger")
public class BloggerAdminController {
	
	@Resource
	private BloggerService bloggerService;
	
	@Resource
	private StartupRunner startupRunner;
	
	/**
	 * 查找博主
	 * @param bloggerId
	 * @return
	 */
	@RequestMapping("/find")
	public Map<String, Object> find() {
		Map<String, Object> resultMap=new HashMap<String, Object>();
		resultMap.put("errorNo", 0);
    /**
     * 查看个人信息
     *
     * @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, ","));
        }
        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;
    }

    /**
     * 查看个人关注用户
     *
        Long userCount = userService.getCount();
        // 统计今天注册
        Long userRegCount = userService.getTodayRegistCount(new User(), "1", "1");
        // 统计今日登录
        Long userLogCount = userService.getCount(new User(), "1", "1");
        // 统计笔记总数
        Long artCount = articleService.getCount();
        // 统计笔记分类
        Long classCount = classifyService.getCount();

        session.setAttribute("userCount", userCount);
        session.setAttribute("userRegCount", userRegCount);
        session.setAttribute("userLogCount", userLogCount);
        session.setAttribute("artCount", artCount);
        session.setAttribute("classCount", classCount);

        mav.addObject("success", true);
        mav.setViewName("/admin/index");
      }
    } catch (Exception e) { // 用户名密码错误
      e.printStackTrace();
      mav.addObject("admin", admin);
      mav.addObject("errorInfo", "用户名或者密码错误!");
      mav.setViewName("/login");
    }
    return mav;
  }

  /**
   * 查看个人信息
   * 
   * @return
   */
  @RequestMapping("viewPerson")
  public ModelAndView viewPerson(HttpServletRequest request) {
    Admin admin = (Admin) request.getSession().getAttribute("adminUser");
    ModelAndView mav = new ModelAndView();
    Admin u = adminService.findById(admin.getAdminId());
    mav.addObject("user", u);
    mav.setViewName("/admin/adminViewPerson");
    return mav;
  }

        List<Article> articleList = articleService.list();
        for (Article article : articleList) {
            try {
                article.setContentNoTag(StringUtil.stripHtml(article.getContent())); // 去除html标签
                articleIndex.addIndex(article);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return false;
            }
        }
        return true;
    }

    /**
     * 前台分页查询文章
     *
     * @param article
     * @param publishDates
     * @param page
     * @param pageSize
     * @return
     */
    @RequestMapping("/list")
    public Map<String, Object> list(Article article,
                                    @RequestParam(value = "publishDates", required = false) String publishDates,
                                    @RequestParam(value = "p", required = false) Integer p,
                                    @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");
        List<Article> retArt = new ArrayList<>();

        String s_bPublishDate = null; // 开始时间
        String s_ePublishDate = null; // 结束时间
        if (StringUtil.isNotEmpty(publishDates)) {
            String[] strs = publishDates.split(" - "); // 拆分时间段
            s_bPublishDate = strs[0];
            s_ePublishDate = strs[1];
        }
        if (p != null && p == 1) {
            User u = userService.findById(user.getUserId());
            article.setUserId(u.getUserId());
@RestController
@RequestMapping("/admin/article")
public class ArticleAdminController {

    @Resource
    private ArticleService articleService;

    @Resource
    private StartupRunner startupRunner;

    @Resource
    private ArticleIndex articleIndex;

    @Resource
    private UserService userService;

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

    /**
     * 生成所有帖子索引(审核通过的资源帖子)
     *
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "/genAllIndex")
    public boolean genAllIndex() {
        List<Article> articleList = articleService.list();
        for (Article article : articleList) {
            try {
                article.setContentNoTag(StringUtil.stripHtml(article.getContent())); // 去除html标签
                articleIndex.addIndex(article);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return false;
            }
        }
        return true;
    }

    /**
     * 前台分页查询文章
     *
     * @param article
     * @param publishDates
     * @param page
     * @param pageSize
     * @return
     */
    @RequestMapping("/list")
    public Map<String, Object> list(Article article,
                                    @RequestParam(value = "publishDates", required = false) String publishDates,

/**
 * QQ登录控制器
 *
 */
@Controller
@RequestMapping("/QQ")
public class QQController {
	
	
	@Resource
	private UserService userService;
	
	/**
	 * QQ登录跳转
	 * @param request
	 * @param response
	 * @throws IOException
	 */
	@RequestMapping("/qqLogin")
	public void qqLogin(HttpServletRequest request,HttpServletResponse response) throws IOException{
		 response.setContentType("text/html;charset=utf-8");
        try {
			response.sendRedirect(new Oauth().getAuthorizeURL(request));
		} catch (QQConnectException e) {
			// TODO Auto-generated catch block
			new QQConnectException("跳转到QQ登录页面异常");
		}
	}
	
	/**
	 * QQ登录回调
            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, ","));
        }
        List<Integer> retIds = new ArrayList<>();
        for (String temp : result) {
  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
   * @param userId
   * @return
   */
  @RequestMapping("/removeCollection")
  public ModelAndView removeCollection(HttpServletRequest request, String artId) {
 */
@RestController
@RequestMapping("/admin/reply")
public class ReplyAdminController {
	
	
	@Resource
	private ReplyService replyService;

	/**
	 * 分页查询回复
	 * @param reply
	 * @param page
	 * @param limit
	 * @return
	 */
	@RequestMapping("/list")
	public Map<String, Object> list(Reply reply,@RequestParam(value="page",required=false)Integer page,@RequestParam(value="pageSize",required=false)Integer pageSize){
		Map<String, Object> resultMap=new HashMap<String, Object>();
		List<Reply> replyList=replyService.list(reply,page-1, pageSize);
		Long total=replyService.getCount();
		resultMap.put("errorNo", 0);
		resultMap.put("data", replyList);
		resultMap.put("total", total);
		return resultMap;
	}
	
	/**
	 * 删除回复
	 * @param ids
	 * @return
	 */
	@RequestMapping("/delete")
	public Map<String, Object> delete(@RequestParam(value="replyId")String ids){
		String []idsStr=ids.split(",");
		Map<String, Object> resultMap=new HashMap<String, Object>();
		for(int i=0;i<idsStr.length;i++) {
			replyService.delete(Integer.parseInt(idsStr[i]));
		}
		resultMap.put("errorNo", 0);
		resultMap.put("data", 1);
		return resultMap;
	}
	
}
package com.longwang.controller;

	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;

/**
	 * QQ登录回调
	 * @param session
	 * @return
	 * @throws QQConnectException
	 */
	@RequestMapping(value="QQCallBack")
	public String qqcallback(HttpServletRequest request,HttpServletResponse response,HttpSession session) throws QQConnectException{
		response.setContentType("text/html;charset=utf-8");
		AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);
		 String accessToken   = null,
                openID        = null;
		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());
 */
@RestController
@RequestMapping("/admin/timeline")
public class TimelineAdminController {
	
	@Resource
	private TimelineService timelineService;
	
	@Resource
	private StartupRunner startupRunner;
	
	/**
	 * 分页查询时光轴
	 * @param timeline
	 * @param page
	 * @param pageSize
	 * @return
	 */
	@RequestMapping("/list")
	public Map<String, Object> list(Timeline timeline,@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", timelineService.list(timeline,page-1, pageSize));
		resultMap.put("total", timelineService.getCount(timeline));
		return resultMap;
	}
	
	/**
	 * 根据ID查找时光轴
	 * @param timelineId
	 * @return
	 */
	@RequestMapping("/findById")
	public Map<String, Object> findById(Integer timelineId) {
		Map<String, Object> resultMap=new HashMap<String, Object>();
		Map<String, Object> tempMap=new HashMap<String, Object>();
		Timeline timeline=timelineService.findById(timelineId);
		tempMap.put("timelineId", timeline.getTimelineId());
		tempMap.put("year", timeline.getYear());
		tempMap.put("month", timeline.getMonth());
		tempMap.put("timeDate", DateUtil.formatDate(timeline.getPublishDate(), "yyyy-MM-dd HH:mm:ss"));
		tempMap.put("content", timeline.getContent());
		resultMap.put("errorNo", 0);
		resultMap.put("data", tempMap);
		return resultMap;
	}
	
	/**
	 * 添加或者修改时光轴
        // 查询该用户 的所有文章
        List<Article> artList = articleService.findByUserId(id);
        mav.addObject("artList", artList);
        mav.addObject("user", user);
        mav.addObject("personFlag", flag);
        mav.addObject("artCount", artList.size());
        mav.setViewName("otherPerson");
        return mav;
    }

    /**
     * 根据关键字查询相关文章信息
     *
     * @param q
     * @return
     * @throws Exception
     */
    @RequestMapping("/q")
    @ResponseBody
    public Map<String, Object> search(@RequestParam(value = "q", required = false) String q,
                                      @RequestParam(value = "page", required = false) String page) throws Exception {
        Map<String, Object> resultMap = new HashMap<String, Object>();
        int pageSize = 5;
        List<Article> articleList = articleIndex.searchArticle(q);
        for (Article a : articleList) {
            Article article = articleService.findById(a.getArticleId());
            a.setClick(article.getClick());
            a.setCommentNum(article.getCommentNum());
            a.setAuthor(article.getAuthor());
            a.setImageName(article.getImageName());
            a.setClassify(article.getClassify());
            a.setIsOriginal(article.getIsOriginal());
            a.setIsTop(article.getIsTop());
        }
        int total = articleList.size();
        int totalPage = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1); // 总页数
        Integer toIndex = articleList.size() >= Integer.parseInt(page) * pageSize ? Integer.parseInt(page) * pageSize
                : articleList.size();
        resultMap.put("data", articleList.subList((Integer.parseInt(page) - 1) * pageSize, toIndex));
        resultMap.put("q", q);
        resultMap.put("totalPage", totalPage);
        resultMap.put("total", total);
        return resultMap;
    }

    /**
    public void testDownload(HttpServletResponse res, String fileName) throws Exception {
        res.setHeader("content-type", "application/octet-stream");
        res.setContentType("application/octet-stream");
        String suffixName = fileName.substring(fileName.lastIndexOf(".")); // 获取文件的后缀
        res.setHeader("Content-Disposition", "attachment;filename=" + DateUtil.getCurrentDateStr() + suffixName);
        byte[] buff = new byte[1024];
        BufferedInputStream bis = null;
        OutputStream os = null;
        try {
            os = res.getOutputStream();
            bis = new BufferedInputStream(new FileInputStream(new File(downloadImagePath + fileName)));
            int i = bis.read(buff);
            while (i != -1) {
                os.write(buff, 0, buff.length);
                os.flush();
                i = bis.read(buff);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (bis != null) {
                try {
                    bis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        System.out.println("success");
    }
}
package com.longwang.controller.admin;


  @Resource
  private ArticleService articleService;

  /**
   * 分页查询评论
  * @Title: list  
  * @param comment  评论实体
  * @param commentDates  时间段 (搜索用到)
  * @param page  当前页
  * @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;
  }

/**
 * 评论Controller层
 *
 */
@RestController
@RequestMapping("/admin/comment")
public class CommentAdminController {

  @Resource
  private CommentService commentService;

  @Resource
  private UserService userService;

  @Resource
  private ReplyService replyService;

  @Resource
  private ArticleService articleService;

  /**
   * 分页查询评论
  * @Title: list  
  * @param comment  评论实体
  * @param commentDates  时间段 (搜索用到)
  * @param page  当前页
  * @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];
    }
        boolean flag = false;
        User user = (User) session.getAttribute("user");
        if (user != null) {
            String artIds = user.getArticleIds();
            if (artIds != null) {
                List<String> idsList = Arrays.asList(artIds.split(","));
                if (idsList.contains(id.toString())) {
                    mav.addObject("flag", true);
                } else {
                    mav.addObject("flag", flag);

                }
            } else {
                mav.addObject("flag", flag);

            }

        }
        mav.addObject("article", article);
        mav.setViewName("/foreground/detail");
        return mav;
    }

    /**
     * 文章详情
     *
     * @return
     */
    @RequestMapping("/myDetail/{id}")
    public ModelAndView myDetail(@PathVariable(value = "id", required = false) Integer id, HttpSession session) {
        ModelAndView mav = new ModelAndView();
        articleService.increaseClick(id);
        Article article = articleService.findById(id);
        Article tempArticle = new Article();
        tempArticle.setClassify(article.getClassify());
        session.setAttribute("similarityList", articleService.list(tempArticle, null, null, 0, 10));
        session.setAttribute("RandomArticleList", articleService.getRandomArticle(10)); // 10条随机文章
        // 判断该文章是否收藏
        boolean flag = false;
        User user = (User) session.getAttribute("user");
        if (user != null && user.getArticleIds() != null) {
            String artIds = user.getArticleIds();
            List<String> idsList = Arrays.asList(artIds.split(","));
            if (idsList.contains(id.toString())) {
                mav.addObject("flag", true);
            } else {
                mav.addObject("flag", flag);
            }
        }
  }

  /**
   * 分页查询评论
   * @param page
   * @param pageSize
   * @return
   */
  @RequestMapping("/massageList")
  public Map<String, Object> massageList(@RequestParam(value = "page", required = false) Integer page,
                                         @RequestParam(value = "pageSize", required = false) Integer pageSize) {
    List<Comment> commentList = commentService.massageList(page - 1, pageSize);
    Long total = commentService.getCount2();
    int totalPage = (int) (total % pageSize == 0 ? total / pageSize : total / pageSize + 1);
    Map<String, Object> resultMap = new HashMap<String, Object>();
    resultMap.put("totalPage", totalPage);
    resultMap.put("data", commentList);
    return resultMap;
  }

  /**
   * 添加评论
   * @Title: add
   * @param comment  评论实体
   * @return  参数说明
   * @return Map<String,Object>    返回类型
   * @throws
   */
  @RequestMapping("/add")
  public Map<String, Object> add(Comment comment, HttpSession session) {
    User currentUser = (User) session.getAttribute("user");
    Map<String, Object> resultMap = new HashMap<String, Object>();
    comment.setCommentDate(new Date());
    comment.setUser(currentUser);
    commentService.add(comment);
    if (comment.getArticle() != null) {
      articleService.increaseComment(comment.getArticle().getArticleId());
    }
    resultMap.put("comment", comment);
    resultMap.put("success", true);
    return resultMap;
  }
    List<String> lineIdList = new ArrayList<>(tempList);
    lineIdList.remove(artId);
    String ret = StringUtils.join(lineIdList, ",");

    user.setArticleIds(ret);

    userService.save(user);
    mav.setViewName("redirect:/viewCollection");
    return mav;
  }

  /**
   * 收藏
   * @param request
   * @param userId
   * @return
   */
  @RequestMapping("/addCollection")
  public ModelAndView addCollection(HttpServletRequest request, String artId) {
    ModelAndView mav = new ModelAndView();
    User user = (User) request.getSession().getAttribute("user");// 当前登录用户

    String artIds = user.getArticleIds();
    List<String> tempList = Arrays.asList(artIds.split(","));
    List<String> lineIdList = new ArrayList<>(tempList);
    lineIdList.add(artId);
    String ret = StringUtils.join(lineIdList, ",");

    user.setArticleIds(ret);

    userService.save(user);
    mav.setViewName("redirect:/viewCollection");
    return mav;
  }
}
package com.longwang.util;

/**
 * IP工具类
* @ClassName: IPUtil 
    }
}
package com.longwang.controller.admin;

/**
 * 文章控制器
 *
 */
@RestController
@RequestMapping("/admin/article")
public class ArticleAdminController {

    @Resource
    private ArticleService articleService;

    @Resource
    private StartupRunner startupRunner;

请添加图片描述

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值