基于javaweb+mysql的ssm+maven在线小说阅读系统(读者+作者+管理员)(java+ssm+jsp+mysql+maven)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM+Maven在线小说阅读系统(读者+作者+管理员)(java+ssm+jsp+mysql+maven)
一、项目简述
功能包括: 1:用户及主要操作功能 游客可以浏览网站的主页,登陆注册,小说湿度,下单购 买,订单查询,个人信息查询,留言评论。 2:作者模块 作者登录注册,小说发表,小说维护等等。 3:作者模块 管理员登录,读者管理,小说管理,评论管理,充值订单 管理,订阅订单管理,折扣活动管理等等
二、项目运行
环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。
return resultData;
}
@RequestMapping("/rloginPage")
public String rloginPage(){
return "front/register";
}
/**
* 退出登陆的方法
* @return
*/
@RequestMapping("/logout")
public String logout(HttpServletRequest request){
// 只需要去将保存到session的数据干掉即可
request.getSession().setAttribute("admin",null);
// 重定向和转发的区别?
// 重定向: 1. 客户端行为 2. 两次请求 3. 不能携带前一次请求的数据
// 转发: 1. 服务器端行为 2. 一次请求 3. 能够携带前一次请求的数据
return "redirect:/loginPage";
}
}
@Controller
public class MessageController {
@Autowired
private MessageService messageService;
@Autowired
private BookService bookService;
@RequestMapping("/message/list")
return "novel";
}
// 留言编辑页面
@RequestMapping("/message/editPage")
public String editPage(Model model,Integer id){
// 从数据库查询到的数据
Message dbMessage = messageService.findById(id);
model.addAttribute("message",dbMessage);
return "message/message-edit";
}
// 更新留言信息的方法
@RequestMapping("/message/edit")
@ResponseBody
public ResultData edit(Message message){
return messageService.edit(message);
}
// 批量删除
@RequestMapping("/message/deleteAll")
@ResponseBody
public ResultData deleteAll(@RequestParam(name = "ids") String ids){
// 将ids转换成数组
String[] idArr=ids.split(",");
return messageService.mesDelete(idArr);
}
}
@Controller
public class DiscountController {
@Autowired
private DiscountService discountService;
/**
* 员工编辑页面
* @return
*/
@RequestMapping("/admin/editPage")
public String editPage(Model model,Integer id){
// 从数据库查询到的数据
Admin dbAdmin = adminService.findById(id);
model.addAttribute("admin",dbAdmin);
return "admin/admin-edit";
}
/**
* 更新员工基本信息的方法
* @param admin
* @return
*/
@RequestMapping("/admin/edit")
@ResponseBody
public ResultData edit(Admin admin){
return adminService.edit(admin);
}
/**
* 批量删除
* @return
*/
@RequestMapping("/admin/deleteAll")
@ResponseBody
public ResultData deleteAll(@RequestParam(name = "ids") String ids){
// 将ids转换成数组
String[] idArr = ids.split(",");
return adminService.batchDelete(idArr);
}
@RequestMapping("/admin/upload")
@ResponseBody
public ResultData upload(MultipartFile file){
return adminService.upload(file);
}
/**
* excel数据的导出
*/
@RequestMapping("/admin/export")
public void export(HttpServletResponse response) throws IOException {
// 查询到所有的数据
public ResultData deleteAll(@RequestParam(name="ids") String ids){
//将ids转为数组
String[] idArr = ids.split(",");
//将字符串数组转为int数组
return historyService.batchDelete(idArr);
}
}
@Controller
public class CollectController {
@Autowired
private CollectService collectService;
@RequestMapping("reader/collect")
public String list(Model model,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "5") Integer pageSize){
PageInfo<Collect> pageInfo=collectService.list(page,pageSize);
model.addAttribute("list",pageInfo.getList());
model.addAttribute("pageInfo",pageInfo);
return "reader/collect-list";
}
//搜索读者显示列表
@RequestMapping("/reader/collectsearch")
public String searchList(Model model,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "5") Integer pageSize,
String keyword){
PageInfo<Collect> pageInfo = collectService.searchList(page, pageSize, keyword);
model.addAttribute("list",pageInfo.getList());
model.addAttribute("pageInfo",pageInfo);
model.addAttribute("chapter",dbChapter);
return "chapter/chapter-edit";
}
//更新基本信息
@RequestMapping("/chapter/edit")
@ResponseBody
public ResultData edit(Chapter chapter){
System.out.println("qqqqqqqqqqqq"+chapter.toString());
return chapterService.edit(chapter);
}
// search
@RequestMapping("/chapter/search")
public String searchList(Model model,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "3") Integer pageSize,
String keyword) {
PageInfo<Chapter> pageInfo=chapterService.searchList(page,pageSize,keyword);
model.addAttribute("list",pageInfo.getList());
model.addAttribute("pageInfo",pageInfo);
return "chapter/chapter-list";
}
// 批量删除
@RequestMapping("/chapter/deleteAll")
@ResponseBody
public ResultData deleteAll(@RequestParam(name="ids") String ids){
//将ids转为数组
String[] idArr = ids.split(",");
//将字符串数组转为int数组
return chapterService.batchDelete(idArr);
}
@RequestMapping("/chapter/findByBookId")
@ResponseBody
public List<Chapter> findByBookId(Integer bookId){
List<Chapter> chapterList = chapterService.findByBookId(bookId);
int a = 0;
return chapterList;
}
@RequestMapping("/chapter/upload")
@ResponseBody
public ResultData upload(MultipartFile file){
int a=10;
return chapterService.upload(file);
}
}
if (ids.length == 0) {
return new ResultData(8001, "批量删除数据异常");
}
if (bookMapper.batchUpdateStatus(ids)) {
return new ResultData(200, "批量删除数据成功");
}
return new ResultData(8002, "批量删除数据失败");
}
//search
@Override
public PageInfo<Book> searchList(Integer page, Integer pageSize, String keyword) {
PageHelper.startPage(page, pageSize);
List<Book> list = bookMapper.findByName("%" + keyword + "%");
return new PageInfo<>(list);
}
@Override
public PageInfo<Book> searchList1(Integer page, Integer pageSize, String keyword1) {
PageHelper.startPage(page, pageSize);
List<Book> list = bookMapper.findByAuthor("%" + keyword1 + "%");
return new PageInfo<>(list);
}
/**
* 通过类型查询
*
* @param bookType
* @return
*/
@Override
public List<Book> findByType(Integer bookType) {
List<Book> list = bookMapper.findByType(bookType);
return list;
}
/**
* 通过类型查询
*
* @param
* @return
*/
@Override
public List<Book> findRandList() {
List<Book> list = bookMapper.findList(new HashMap<>());
List<Book> bookList = new ArrayList<Book>();
for (int i = 0; i < Math.min(6, bookList.size() + 1); i++) {
int rand = (int) ((Math.random()) * bookList.size());
bookList.add(list.get(rand));
}
return bookList;
}
@Controller
public class BookOrderController {
@Autowired
private BookOrderService bookOrderService;
@Autowired
private BookService bookService;
@RequestMapping("/bookorder/bookorderlist")
public String bookorderlist(Model model,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "3") Integer pageSize) {
PageInfo<BookOrder> pageInfo = bookOrderService.list(page, pageSize);
//将数据转发到页面
model.addAttribute("list", pageInfo.getList());
model.addAttribute("pageInfo", pageInfo);
return "bookorder/bookorder-list";
}
@RequestMapping("/bookorder/orderSearch")
public String searchList(Model model,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "3") Integer pageSize,
String keyword) {
// 将ids转换成数组
String[] idArr = ids.split(",");
return adminService.batchDelete(idArr);
}
@RequestMapping("/admin/upload")
@ResponseBody
public ResultData upload(MultipartFile file){
return adminService.upload(file);
}
/**
* excel数据的导出
*/
@RequestMapping("/admin/export")
public void export(HttpServletResponse response) throws IOException {
// 查询到所有的数据
List<Admin> list = adminService.list();
Workbook workbook = ExcelUtil.exportExcel(list);
// 告诉浏览器 需要下载文件
response.setHeader("Content-Disposition","attachment;fileName="+System.currentTimeMillis()+".xlsx");
//获取输出流
ServletOutputStream outputStream = response.getOutputStream();
// 输出表格数据
workbook.write(outputStream);
// 关闭资源
outputStream.close();
workbook.close();
}
}
/**
* 登陆操作
* @return
*/
@RequestMapping("/login")
@ResponseBody// 该方法返回的是json字符串
public ResultData login(Admin admin,HttpServletRequest request){
request.getSession().setAttribute("currentLoginAuthorId", null);
// 登陆操作
ResultData resultData = adminService.login(admin);
// 判断登陆成功,将用户数据保存到 session中
// 如何获取session对象?
if(resultData.getCode() == 200){
HttpSession session = request.getSession();
session.setAttribute("admin",resultData.getData());
}
return resultData;
}
@RequestMapping("/rloginPage")
public String rloginPage(){
return "front/register";
}
/**
* 退出登陆的方法
* @return
*/
@RequestMapping("/logout")
public String logout(HttpServletRequest request){
// 只需要去将保存到session的数据干掉即可
request.getSession().setAttribute("admin",null);
// 重定向和转发的区别?
// 重定向: 1. 客户端行为 2. 两次请求 3. 不能携带前一次请求的数据
// 转发: 1. 服务器端行为 2. 一次请求 3. 能够携带前一次请求的数据
return "redirect:/loginPage";
}
}
}
/**
* 批量删除
* @return
*/
@RequestMapping("/admin/deleteAll")
@ResponseBody
public ResultData deleteAll(@RequestParam(name = "ids") String ids){
// 将ids转换成数组
String[] idArr = ids.split(",");
return adminService.batchDelete(idArr);
}
@RequestMapping("/admin/upload")
@ResponseBody
public ResultData upload(MultipartFile file){
return adminService.upload(file);
}
/**
* excel数据的导出
*/
@RequestMapping("/admin/export")
public void export(HttpServletResponse response) throws IOException {
// 查询到所有的数据
List<Admin> list = adminService.list();
Workbook workbook = ExcelUtil.exportExcel(list);
// 告诉浏览器 需要下载文件
response.setHeader("Content-Disposition","attachment;fileName="+System.currentTimeMillis()+".xlsx");
//获取输出流
ServletOutputStream outputStream = response.getOutputStream();
// 输出表格数据
@ResponseBody
public ResultData deleteAll(@RequestParam(name="ids") String ids){
//将ids转为数组
String[] idArr = ids.split(",");
//将字符串数组转为int数组
return historyService.batchDelete(idArr);
}
}
@Controller
public class CollectController {
@Autowired
private CollectService collectService;
@RequestMapping("reader/collect")
public String list(Model model,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "5") Integer pageSize){
PageInfo<Collect> pageInfo=collectService.list(page,pageSize);
model.addAttribute("list",pageInfo.getList());
model.addAttribute("pageInfo",pageInfo);
return "reader/collect-list";
}
//搜索读者显示列表
@RequestMapping("/reader/collectsearch")
public String searchList(Model model,
@RequestParam(defaultValue = "1") Integer page,
model.addAttribute("messageList",messageList);
return "novel";
}
// 留言编辑页面
@RequestMapping("/message/editPage")
public String editPage(Model model,Integer id){
// 从数据库查询到的数据
Message dbMessage = messageService.findById(id);
model.addAttribute("message",dbMessage);
return "message/message-edit";
}
// 更新留言信息的方法
@RequestMapping("/message/edit")
@ResponseBody
public ResultData edit(Message message){
return messageService.edit(message);
}
// 批量删除
@RequestMapping("/message/deleteAll")
@ResponseBody
public ResultData deleteAll(@RequestParam(name = "ids") String ids){
// 将ids转换成数组
String[] idArr=ids.split(",");
return messageService.mesDelete(idArr);
}
}
@Controller
public class DiscountController {
@Autowired
/**
* 编辑读者状态信息
* @param readerId : 当前读者Id
* @param readerStatus: 读者当前状态
* @return
*/
@RequestMapping("/reader/editStatus")
@ResponseBody
public ResultData editStatus(Integer readerId, Integer readerStatus){
return readerService.updateStatus(readerId, readerStatus);
}
/**
* 编辑读者
* @param
* @param
* @return
*/
@RequestMapping("/reader/editPage")
public String editPage(Model model, Integer readerId){
Reader dbreadder = readerService.findById(readerId);
model.addAttribute("reader",dbreadder);
return "reader/reader-edit";
}
/**
* 更新读者基本信息的方法
* @param reader
* @return
*/
@RequestMapping("/reader/edit")
@ResponseBody
public ResultData edit(Reader reader){
return readerService.edit(reader);
}
/**
* 批量删除
* @param ids
* @return
*/
@RequestMapping("/reader/deleteAll")
@ResponseBody
public ResultData deleteAll(@RequestParam(name = "ids") String ids){
// 将ids转换成数组
String[] idArr=ids.split(",");
return readerService.batchDelete(idArr);
};
/**
@RequestMapping("/rechargeorder/add")
@ResponseBody
public ResultData add(RechargeOrder rechargeOrder) {
return rechargeOrderService.add(rechargeOrder);
}
@RequestMapping("/rechargeorder/editStatus")
@ResponseBody
public ResultData editStatus(Integer id, Integer status) {
return rechargeOrderService.updateStatus(id,status);
}
@RequestMapping("/rechargeorder/deleteAll")
@ResponseBody
public ResultData deleteAll(@RequestParam(name = "ids") String ids){
// 将ids转换成数组
String[] idArr = ids.split(",");
return rechargeOrderService.batchDelete(idArr);
}
@RequestMapping("/rechargeorder/delete")
@ResponseBody
public ResultData delete(Integer rechargeId,Integer rechargeStatus){
return rechargeOrderService.delete(rechargeId,rechargeStatus);
}
}
@Controller
public class HistoryController {
@Autowired
@Controller
public class BookController {
@Autowired
private BookService bookService;
// @Autowired
// private BookService bookService;
//小说列表
@RequestMapping("/book/list")
public String list(Model model,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "3") Integer pageSize) {
PageInfo<Book> pageInfo=bookService.list(page,pageSize);
model.addAttribute("list",pageInfo.getList());
model.addAttribute("pageInfo",pageInfo);
return "book/book-list";
}
@Controller
public class MessageController {
@Autowired
private MessageService messageService;
@Autowired
private BookService bookService;
@RequestMapping("/message/list")
public String list(Model model,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "5") Integer pageSize){
PageInfo<Message> pageInfo=messageService.list(page,pageSize);
//将数据转发到页面
model.addAttribute("list",pageInfo.getList());
model.addAttribute("pageInfo",pageInfo);
return "message/message-list";
}
@RequestMapping("/message/addMessage")
public String addMessage(){
return "message/message-add";
}
}
//搜索读者显示列表
@RequestMapping("/reader/search")
public String searchList(Model model,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "5") Integer pageSize,
String keyword){
PageInfo<Reader> pageInfo = readerService.searchList(page, pageSize, keyword);
model.addAttribute("list",pageInfo.getList());
model.addAttribute("pageInfo",pageInfo);
return "reader/reader-list";
}
//读者删除列表
@RequestMapping("/reader/deleteList")
public String deleteList(Model model,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "5") Integer pageSize){
PageInfo<Reader> pageInfo = readerService.DeleteList(page,pageSize);
model.addAttribute("list",pageInfo.getList());
model.addAttribute("pageInfo",pageInfo);
return "reader/reader-del";
}
//添加读者
@RequestMapping("/reader/addPage")
public String addPage(){
return "front/register";
}
// 添加读者的方法
@RequestMapping("/reader/add")
@ResponseBody
public ResultData add(Reader reader){
return readerService.add(reader);
}
/**
* 编辑读者状态信息
* @param readerId : 当前读者Id
* @param readerStatus: 读者当前状态
* @return
*/
@RequestMapping("/reader/editStatus")
@ResponseBody
public ResultData editStatus(Integer readerId, Integer readerStatus){
return readerService.updateStatus(readerId, readerStatus);
}