package org.huel.beasp.web.handler.user;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeSet;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.huel.beasp.entity.book.ApplyBook;
import org.huel.beasp.entity.book.Book;
import org.huel.beasp.entity.book.BookUser;
import org.huel.beasp.entity.book.Category;
import org.huel.beasp.entity.book.Exchange;
import org.huel.beasp.entity.book.Share;
import org.huel.beasp.entity.book.State;
import org.huel.beasp.entity.book.Style;
import org.huel.beasp.entity.book.Want;
import org.huel.beasp.entity.user.User;
import org.huel.beasp.exception.BeaspException;
import org.huel.beasp.service.book.ApplyBookService;
import org.huel.beasp.service.book.BookService;
import org.huel.beasp.service.book.BookUserService;
import org.huel.beasp.service.book.ExchangeService;
import org.huel.beasp.service.book.ShareService;
import org.huel.beasp.service.user.UserService;
import org.huel.beasp.service.user.VisitorService;
import org.huel.beasp.utils.Constants;
import org.huel.beasp.utils.FileUtils;
import org.huel.beasp.utils.WebUtils;
import org.huel.beasp.web.handler.dto.AjaxOper;
import org.huel.beasp.web.handler.dto.Wants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
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.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
/**
* 用户空间控制层
* 个人书籍:我的书籍、我的分享、我的交换、我的发布、我的待审核、我的浏览
* 书籍样式:我的样式
* @author 001
*
*/
@Controller
public class SpaceHandler {
@Autowired private UserService userService;
@Autowired private BookService bookService;
@Autowired private VisitorService visitorService;
@Autowired private BookUserService bookUserService;
@Autowired private ShareService shareService;
@Autowired private ExchangeService exchangeService;
@Autowired private ApplyBookService applyBookService;
/**
* 空间首页
* @return
* @throws ParseException
*/
@RequestMapping("/space/index")
public String index(@RequestParam(value="pageNo",required=true, defaultValue="1") String pageNoStr,
HttpSession session,Map<String, Object> map) throws ParseException {
Page<Book> books = bookService.getPageByStateAndUserId(WebUtils.getCurrentPage(pageNoStr), Constants.SPACE_PAGE_SIZE_TWELVE_FRONT, State.WAITCONFIRM, WebUtils.getUser(session));
List<Date> times = bookService.findCreateTimeByUser_IdAndState(WebUtils.getCurrentPage(pageNoStr), Constants.SPACE_PAGE_SIZE_TWELVE_FRONT, WebUtils.getUser(session).getId(), "WAITCONFIRM");
List<Category> categories = bookService.getCategoryByUserIdAndState(WebUtils.getUser(session).getId(), State.WAITCONFIRM);
getMapWithList(map, times, categories);
getMapWithBook(books, session, map);
return "front/user/space/index";
}
/**
* 空间首页(基于书籍类别id)
* @return
* @throws ParseException
*/
@RequestMapping("/space/index/cid/{cId}")
public String index(@PathVariable("cId") Integer cId,@RequestParam(value="pageNo",required=true, defaultValue="1") String pageNoStr,
HttpSession session,Map<String, Object> map) throws ParseException {
Page<Book> books = null;
List<Date> times = null;
List<Category> categories = null;
if(cId != null && cId > 0) {
books = bookService.findByCategory_IdAndUser_IdAndState(cId, WebUtils.getUser(session).getId(), State.WAITCONFIRM,
WebUtils.getCurrentPage(pageNoStr), Constants.SPACE_PAGE_SIZE_TWELVE_FRONT);
times = bookService.findCreateTimeByUser_IdAndStateAndCategory_Id(WebUtils.getCurrentPage(pageNoStr), Constants.SPACE_PAGE_SIZE_TWELVE_FRONT,
WebUtils.getUser(session).getId(), "WAITCONFIRM", cId);
categories = bookService.getCategoryByUserIdAndState(WebUtils.getUser(session).getId(), State.WAITCONFIRM);
} else {
index(pageNoStr, session, map);
}
getMapWithList(map, times, categories);
getMapWithBook(books, session, map);
return "front/user/space/index";
}
static String originPath = null;
static String newPath = null;
Integer originCateId = null;
Integer newCateId = null;
@ModelAttribute
public void getBook(@RequestParam(value="id", required=false) Integer id,
Map<String, Object> map, HttpServletRequest request) {
if(id != null && id>0) {
Book book = bookService.getOneById(id);
originPath = WebUtils.getRealPathByBook(book, request);//获取书籍原始路径
originCateId = book.getCategory().getId();
System.out.println(originPath+"---"+originCateId);
book.setCategory(null);//解决修改类别id
map.put("book", book);
}
}
/**
* 修改书籍信息
* @param book
* @param map
* @return
*/
@RequestMapping(value="/space/book/b/{id}", method=RequestMethod.PUT)
public String update(Book book, Map<String, Object> map, HttpServletRequest request) {
newPath = WebUtils.getRealPathByBook(book, request);
newCateId = book.getCategory().getId();
System.out.println(newPath+"---"+newCateId);
if(!originCateId.equals(newCateId)) {
modifyImagePos();
}
bookService.save(book);
if(book.getState().equals(State.EXCHANGE)) {//判断所编辑书籍的所在状态,并会到指定的状态界面
return "redirect:/space/book/s/1";
} else if(book.getState().equals(State.SHARE)) {
return "redirect:/space/book/s/2";
} else if(book.getState().equals(State.RELEASE)) {
return "redirect:/space/book/s/3";
}
return "redirect:/space/index";
}
/**
* 修改图片路径
*/
public static void modifyImagePos() {
FileUtils.copyFolder(originPath, newPath);//复制原来的图片目录到新的位置
FileUtils.delete(originPath);//删除原来的图片目录
}
/**
* 书籍编辑界面
* @param id
* @param map
* @return
*/
@RequestMapping(value="/space/book/b/{id}", method=RequestMethod.GET)
public String edit(@PathVariable("id") Integer id, Map<String, Object> map,
HttpSession session) {
initUpload(map);
map.put("book", bookService.getOneById(id));
getMapWithBook(null, session, map);
return "front/user/space/edit";
}
/**
* 求书籍确认
* @return
*/
@RequestMapping("/space/book/sure")
public String bookSure(@RequestParam("applyBookId") Integer applyBookId) {
if(applyBookId != null && applyBookId > 0) {
ApplyBook applyBook = applyBookService.getById(applyBookId);
if(applyBook.getState().equals(State.WAITSURE)) {//处于待申请者确认
applyBook.setState(State.WAITVERIFY);
applyBookService.saveOrUpdate(applyBook);
} else
return "redirect:/space/require";
}
return "redirect:/space/require";
}
/**
* 上传书籍
* @param book
* @param image
* @param request
* @param map
* @return
*/
@RequestMapping(value="/space/book/b", method=RequestMethod.POST)
public String upload(Book book, @RequestParam("image") MultipartFile image,
HttpServletRequest request, Map<String, Object> map, Wants wants,
@RequestParam(value="applyBookId", required=false) Integer applyBookId) {
if(image != null) {
if(!FileUtils.validateImageFileType(image, image.getContentType(), image.getOriginalFilename())) {
S
没有合适的资源?快使用搜索试试~ 我知道了~
毕设项目:书籍分享与交换平台.zip
共1324个文件
jpg:562个
class:165个
jsp:162个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 38 浏览量
2023-10-26
20:07:16
上传
评论 1
收藏 51.79MB ZIP 举报
温馨提示
matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行!
资源推荐
资源详情
资源评论
收起资源包目录
毕设项目:书籍分享与交换平台.zip (1324个子文件)
SpaceHandler.class 34KB
SpaceHandler.class 34KB
BookRepositoryTest.class 19KB
SettingsHandler.class 18KB
SettingsHandler.class 18KB
BookService.class 17KB
SpecifyHandler.class 15KB
SpecifyHandler.class 15KB
FrontBookHandler.class 14KB
FrontBookHandler.class 14KB
BookHandler.class 14KB
BookHandler.class 14KB
ApplyBookService.class 11KB
FileUtils.class 10KB
LoginHandler.class 10KB
LoginHandler.class 10KB
CoreHandler.class 10KB
CoreHandler.class 10KB
StyleHandler.class 9KB
StyleHandler.class 9KB
Book.class 9KB
ShareService.class 9KB
CategoryHandler.class 9KB
CategoryHandler.class 9KB
BookRepository.class 8KB
UserRepositoryTest.class 8KB
UserService.class 8KB
User.class 7KB
UserHandler.class 7KB
UserHandler.class 7KB
ExchangeService.class 7KB
ApplyBookHandler.class 7KB
ApplyBookHandler.class 7KB
BookRepositoryImpl.class 6KB
RegisterHandler.class 6KB
RegisterHandler.class 6KB
ChartView.class 6KB
ChartView.class 6KB
ImageSizer.class 6KB
CategoryService.class 5KB
CategoryRepositoryTest.class 5KB
ApplyBook.class 5KB
EmailSender.class 5KB
BookUserService.class 5KB
UrlFilterInterceptor.class 4KB
UrlFilterInterceptor.class 4KB
Exchange.class 4KB
ShareRepository.class 4KB
Style.class 4KB
StyleService.class 4KB
WebUtils.class 4KB
Category.class 4KB
MailUtils.class 4KB
AutoLoginInterceptor.class 4KB
AutoLoginInterceptor.class 4KB
State.class 4KB
ApplyBookRepository.class 4KB
VerifyCode.class 4KB
VerifyCode.class 4KB
Share.class 4KB
UserService$1.class 4KB
ExchangeRepository.class 3KB
ChartsAction.class 3KB
ChartsAction.class 3KB
BookService$1.class 3KB
BookUser.class 3KB
CityRepositoryTest.class 3KB
Comment.class 3KB
AutoLoginFilter.class 3KB
AutoLoginFilter.class 3KB
PageView.class 3KB
Mail.class 3KB
Want.class 3KB
Wants.class 3KB
Wants.class 3KB
CommentService.class 3KB
BookService$2.class 3KB
Visitor.class 2KB
CategoryService$1.class 2KB
CategoryService$2.class 2KB
VisitorService.class 2KB
CommonHandler.class 2KB
CommonHandler.class 2KB
BookUserRepository.class 2KB
LoginValidateFilter.class 2KB
LoginValidateFilter.class 2KB
MD5.class 2KB
CommentService$1.class 2KB
StyleService$1.class 2KB
BookService$3.class 2KB
MyDispatcherServlet.class 2KB
MyDispatcherServlet.class 2KB
UserService$2.class 2KB
CategoryService$3.class 2KB
SetCodeFilter.class 2KB
SetCodeFilter.class 2KB
CategoryRepository.class 2KB
UserRepository.class 2KB
HandshakeInterceptor.class 2KB
HandshakeInterceptor.class 2KB
共 1324 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
资源评论
天天501
- 粉丝: 596
- 资源: 4666
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- WebCrawler.scr
- 【计算机专业毕业设计】大学生就业信息管理系统设计源码.zip
- YOLO 数据集:8种路面缺陷病害检测【包含划分好的数据集、类别class文件、数据可视化脚本】
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于YOLOv8的FPS TPS AI自动锁定源码+使用步骤说明.zip
- JAVA实现Modbus RTU或Modbus TCPIP案例.zip
- 基于yolov8+streamlit的火灾检测部署源码+模型.zip
- 测试aaaaaaabbbbb
- VID20240521070643.mp4
- Android系统原理与开发学习要点详解-培训课件.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功