package com.moyifan.controller;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.fileupload.FileItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import com.moyifan.po.Comments;
import com.moyifan.po.Plate;
import com.moyifan.po.Post;
import com.moyifan.po.Reply;
import com.moyifan.po.User;
import com.moyifan.service.CommentsService;
import com.moyifan.service.PlateService;
import com.moyifan.service.PostService;
import com.moyifan.service.ReplyService;
import com.moyifan.service.UserService;
import com.moyifan.util.CreateFileUtil;
/**
* 帖子Controller
*
* @author Administrator
*
*/
@Controller
@RequestMapping("/post")
public class PostController {
@Autowired
private UserService userService;// 注入用户service
@Autowired
private PlateService plateService;// 注入板块service
@Autowired
private PostService postService;// 注入帖子service
@Autowired
private CommentsService commentsService;// 注入CommentsService
@Autowired
private ReplyService replyService;//注入ReplyService
/**
* 跳转到发帖页面
*
* @param userId
* 当前用户的id
* @param model
* @return
*/
@RequestMapping("/{userId}/toNewPost")
public String toNewPost(@PathVariable("userId") int userId, Model model) {
User u = new User();
u = userService.findByUserId(userId);
model.addAttribute("user", u);
// 向主页传递板块信息
List<Plate> plateList = plateService.getAllPlate();
model.addAttribute("plateList", plateList);
// 向主页传递随机推荐帖子列表
List<Post> postList = postService.getRecommendedPostList();
model.addAttribute("postList", postList);
// 向主页传递最新十条帖子列表
List<Post> list = postService.getPostList();
List<User> userList = new ArrayList<User>();
for (int i = 0; i < postList.size(); i++) {
User us = userService.getUserById(postList.get(i).getUid());
userList.add(us);
}
model.addAttribute("list", list);
model.addAttribute("userList", userList);
return "post/new";
}
/**
* 发表帖子
*
* @param pic
* 照片数组
* @param request
* @param post
* 帖子详情
* @param path
* 照片上传路径
* @return
* @throws Exception
*/
@RequestMapping(value = "/newPost", method = RequestMethod.POST)
public String newPost(@RequestParam("file") CommonsMultipartFile[] pic,
HttpServletRequest request, Post post,
@RequestParam("path") String path) throws Exception {
post.setTime(new Date().toString());
post.setPhotoNum(pic.length - 2);
postService.newPost(post);
Plate plate=plateService.getPlateById(post.getPid());
plate.setNum(plate.getNum()+1);
plateService.updatePlate(plate);
int id = postService.getMaxId();
// 在根目录创建目录moyifan/id(id为文件夹名与数据库id匹配)
CreateFileUtil.createDir(path + "moyifan/" + id);
// 将图片文件存入目录
for (int i = 0; i < pic.length - 1; i++) {
FileItem fi = pic[i].getFileItem();
File file = new File(path + "moyifan/" + id + "/" + i + ".jpg");
fi.write(file);
}
return "redirect:/post/"+id+"/toPost/"+post.getUid();
}
/**
* 进入帖子列表
*
* @param userId
* 用户的id
* @param id
* 板块id
* @param model
* @return
*/
@RequestMapping("/{id}/toList/{userId}")
public String toList(@PathVariable("userId") int userId,
@PathVariable("id") int id, Model model) {
// 根据id获取板块信息
Plate plate = plateService.getPlateById(id);
// 向页面传递板块信息
model.addAttribute("plate", plate);
// 根据板块id获取帖子列表
List<Post> list = postService.getPostByPid(id);
List<User> userList = new ArrayList<User>();
for (int i = 0; i < list.size(); i++) {
User us = userService.getUserById(list.get(i).getUid());
userList.add(us);
}
// 想页面传递该板块下所有帖子信息
model.addAttribute("list", list);
model.addAttribute("userList", userList);
// 根据userId获取当前登录用户
User user = userService.findByUserId(userId);
// 向页面传递用户信息
model.addAttribute("user", user);
// 向主页传递板块信息
List<Plate> plateList = plateService.getAllPlate();
model.addAttribute("plateList", plateList);
// 向主页传递随机推荐帖子列表
List<Post> postList = postService.getRecommendedPostList();
model.addAttribute("postList", postList);
//获取管理员最新通知
Post adminPost=postService.getAdminPost();
//向页面传递最新通知
model.addAttribute("adminPost", adminPost);
return "post/list";
}
/**
* 跳转到帖子
* @param userId
* 用户的id
* @param id
* 帖子的id
* @param model
* @return
*/
@RequestMapping("/{id}/toPost/{userId}")
public String toPost(@PathVariable("userId") int userId,
@PathVariable("id") int id, Model model) {
// 根据userId获取当前登录用户
User user = userService.findByUserId(userId);
// 向页面传递用户信息
model.addAttribute("user", user);
// 向主页传递板块信息
List<Plate> plateList = plateService.getAllPlate();
model.addAttribute("plateList", plateList);
// 向主页传递随机推荐帖子列表
List<Post> postList = postService.getRecommendedPostList();
model.addAttribute("postList", postList);
//根据帖子id获取帖子详情
Post post=postService.getPostById(id);
//向页面传递帖子详情
model.addAttribute("post", post);
//根据作者id获取作者信息
User u=userService.findByUserId(post.getUid());
//向页面传递作者信息
model.addAttribute("zuozhe", u);
//根据帖子id获取评论列表
List<Comments> commentsList=commentsService.findCommentsByPost_id(id);
//想页面传递评论列表
model.addAttribute("commentsList", commentsList);
//获取评论者信息
List<User> userList = new ArrayList<User>();
for(int i=0;i<commentsList.size();i++){
User us = userService.getUserById(commentsList.get(i).getuserId());
userList.add(us);
}
//向页面传递评论者信息
model.addAttribute("userList", userList);
//根据帖子id获取回复列表
List<Reply> replylist=replyService.findListByPostId(post.getId());
//向主页传递回复列表
model.addAttribute("replylist", replylist);
//获取回复者信息
List<User> replyUserList = new ArrayList<User>();
for(int i=0;i<replylist.size();i++){
User us = userService.getUserById(replylist.get(i).getUserId());
replyUserList.add(us);
}
//向主页传递回复者信息
model.addAttribute("replyUserList", replyUserList);
return "post/post";
}
/**
* 返回首页
* @param userId
* 当前登录用户id
* @param model
* @return
*/
@RequestMapping("/{userId}/toIndex")
public String toIndex(@PathVariable("userId")int userId,Model model){
//向主页传递登录用户信息
User u=new User();
u=userService.findByUserId(userId);
model.addAttribute("user", u);
//向主页传递板块信息
List<Plate> plateList=plateService.getAllPlate();
model.addAttribute("plateList", plateList);
//向主页传递随机推荐帖子列表
List<Post> postList=postService.
没有合适的资源?快使用搜索试试~ 我知道了~
论坛毕设作品
共742个文件
png:233个
gif:64个
js:59个
需积分: 33 34 下载量 137 浏览量
2018-11-06
16:53:44
上传
评论 10
收藏 31.61MB ZIP 举报
温馨提示
关于个人论坛,或者是多人论坛的毕设作品。包含有发帖评论等等各项功能齐全。
资源详情
资源评论
资源推荐
收起资源包目录
论坛毕设作品 (742个子文件)
UserController.class 9KB
PostController.class 9KB
PlateController.class 5KB
NipostController.class 5KB
JumpController.class 5KB
AdminPostController.class 4KB
SearchUtil.class 4KB
NitypeController.class 4KB
CommentsController.class 4KB
testemail.class 3KB
CreateIndexUtil.class 3KB
EmailUtil.class 3KB
PostServiceImpl.class 2KB
User.class 2KB
Post.class 2KB
UserServiceImpl.class 2KB
Nipost.class 2KB
Reply.class 2KB
DeleteIndexUtil.class 2KB
Nireply.class 2KB
Comments.class 2KB
Nitype.class 2KB
NipostServiceImpl.class 2KB
NireplyController.class 1KB
ReplyController.class 1KB
CommentsServiceImpl.class 1KB
NitypeServiceImpl.class 1KB
PlateServiceImpl.class 1KB
Plate.class 1KB
ReplyServiceImpl.class 1KB
NireplyServiceImpl.class 1005B
CreateFileUtil.class 948B
PostService.class 733B
PostDao.class 721B
NipostService.class 589B
NipostDao.class 577B
UserService.class 574B
UserDao.class 562B
CommentsDao.class 533B
ReplyService.class 436B
ReplyDao.class 424B
CommentsService.class 410B
NitypeService.class 407B
NitypeDao.class 395B
PlateService.class 375B
PlateDao.class 363B
NireplyService.class 301B
NireplyDao.class 289B
.classpath 539B
org.eclipse.wst.common.component 473B
org.eclipse.wst.jsdt.ui.superType.container 49B
bootstrap.css 149KB
bootstrap.css 138KB
bootstrap.css 138KB
bootstrap5152.css 120KB
bootstrap.min.css 118KB
bootstrap.min.css 115KB
bootstrap.min.css 115KB
style.css 88KB
main5152.css 29KB
font-awesome.css 28KB
font-awesome.css 28KB
bootstrap-theme.css 26KB
font-awesome.min.css 23KB
font-awesome.min.css 23KB
bootstrap-theme.min.css 23KB
bootstrap-theme.css 22KB
bootstrap-theme.css 22KB
responsive5152.css 20KB
style.css 20KB
bootstrap-theme.min.css 19KB
bootstrap-theme.min.css 19KB
prettyPhotoaeb9.css 19KB
tinymce.css 9KB
default.css 9KB
common.css 6KB
style.css 4KB
style.css 4KB
green-skin5152.css 3KB
red-skin5152.css 3KB
form-elements.css 2KB
form-elements.css 2KB
blue-skin5152.css 2KB
index.css 2KB
moodList.css 2KB
select.css 2KB
jquery.page.css 1KB
article_detail.css 1KB
normalize.css 1KB
style1.css 1KB
about.css 885B
editor.css 605B
article.css 543B
fontawesome-webfont.eot 59KB
fontawesome-webfont.eot 59KB
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regular.eot 20KB
glyphicons-halflings-regular.eot 20KB
rocketFly.gif 20KB
tinymce.gif 12KB
共 742 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
雷园
- 粉丝: 38
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0