当前位置: 首页 > news >正文

基于SpringBoot的图书个性化推荐系统-048

一、项目技术栈

Java开发工具:JDK1.8
后端框架:SpringBoot
前端:采用HTML和Vue相结合开发
数据库:MySQL5.7和Navicat管理工具结合
服务器:Tomcat8.5
开发软件:IDEA / Eclipse
是否Maven项目:是

二、源码获取
源码获取

三、项目视频
视频链接
四、功能截图





五、代码实现
图书信息评论

package com.controller;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Arrays;import java.util.Calendar;import java.util.Map;import java.util.HashMap;import java.util.Iterator;import java.util.Date;import java.util.List;import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import com.baomidou.mybatisplus.mapper.EntityWrapper;import com.baomidou.mybatisplus.mapper.Wrapper;import com.annotation.IgnoreAuth;import com.entity.DiscusstushuxinxiEntity;import com.entity.view.DiscusstushuxinxiView;import com.service.DiscusstushuxinxiService;import com.service.TokenService;import com.utils.PageUtils;import com.utils.R;import com.utils.MD5Util;import com.utils.MPUtil;import com.utils.CommonUtil;/** * 图书信息评论表 */@RestController@RequestMapping("/discusstushuxinxi")publicclassDiscusstushuxinxiController{@AutowiredprivateDiscusstushuxinxiServicediscusstushuxinxiService;/** * 后端列表 */@RequestMapping("/page")publicRpage(@RequestParam Map<String,Object>params,DiscusstushuxinxiEntitydiscusstushuxinxi,HttpServletRequestrequest){EntityWrapper<DiscusstushuxinxiEntity>ew=newEntityWrapper<DiscusstushuxinxiEntity>();PageUtilspage=discusstushuxinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,discusstushuxinxi),params),params));returnR.ok().put("data",page);}/** * 前端列表 */@IgnoreAuth@RequestMapping("/list")publicRlist(@RequestParam Map<String,Object>params,DiscusstushuxinxiEntitydiscusstushuxinxi,HttpServletRequestrequest){EntityWrapper<DiscusstushuxinxiEntity>ew=newEntityWrapper<DiscusstushuxinxiEntity>();PageUtilspage=discusstushuxinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,discusstushuxinxi),params),params));returnR.ok().put("data",page);}/** * 列表 */@RequestMapping("/lists")publicRlist(DiscusstushuxinxiEntitydiscusstushuxinxi){EntityWrapper<DiscusstushuxinxiEntity>ew=newEntityWrapper<DiscusstushuxinxiEntity>();ew.allEq(MPUtil.allEQMapPre(discusstushuxinxi,"discusstushuxinxi"));returnR.ok().put("data",discusstushuxinxiService.selectListView(ew));}/** * 查询 */@RequestMapping("/query")publicRquery(DiscusstushuxinxiEntitydiscusstushuxinxi){EntityWrapper<DiscusstushuxinxiEntity>ew=newEntityWrapper<DiscusstushuxinxiEntity>();ew.allEq(MPUtil.allEQMapPre(discusstushuxinxi,"discusstushuxinxi"));DiscusstushuxinxiViewdiscusstushuxinxiView=discusstushuxinxiService.selectView(ew);returnR.ok("查询图书信息评论表成功").put("data",discusstushuxinxiView);}/** * 后端详情 */@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){DiscusstushuxinxiEntitydiscusstushuxinxi=discusstushuxinxiService.selectById(id);returnR.ok().put("data",discusstushuxinxi);}/** * 前端详情 */@RequestMapping("/detail/{id}")publicRdetail(@PathVariable("id")Longid){DiscusstushuxinxiEntitydiscusstushuxinxi=discusstushuxinxiService.selectById(id);returnR.ok().put("data",discusstushuxinxi);}/** * 后端保存 */@RequestMapping("/save")publicRsave(@RequestBodyDiscusstushuxinxiEntitydiscusstushuxinxi,HttpServletRequestrequest){discusstushuxinxi.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(discusstushuxinxi);discusstushuxinxiService.insert(discusstushuxinxi);returnR.ok();}/** * 前端保存 */@RequestMapping("/add")publicRadd(@RequestBodyDiscusstushuxinxiEntitydiscusstushuxinxi,HttpServletRequestrequest){discusstushuxinxi.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(discusstushuxinxi);discusstushuxinxiService.insert(discusstushuxinxi);returnR.ok();}/** * 修改 */@RequestMapping("/update")publicRupdate(@RequestBodyDiscusstushuxinxiEntitydiscusstushuxinxi,HttpServletRequestrequest){//ValidatorUtils.validateEntity(discusstushuxinxi);discusstushuxinxiService.updateById(discusstushuxinxi);//全部更新returnR.ok();}/** * 删除 */@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){discusstushuxinxiService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}/** * 提醒接口 */@RequestMapping("/remind/{columnName}/{type}")publicRremindCount(@PathVariable("columnName")StringcolumnName,HttpServletRequestrequest,@PathVariable("type")Stringtype,@RequestParamMap<String,Object>map){map.put("column",columnName);map.put("type",type);if(type.equals("2")){SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");Calendarc=Calendar.getInstance();DateremindStartDate=null;DateremindEndDate=null;if(map.get("remindstart")!=null){IntegerremindStart=Integer.parseInt(map.get("remindstart").toString());c.setTime(newDate());c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate=c.getTime();map.put("remindstart",sdf.format(remindStartDate));}if(map.get("remindend")!=null){IntegerremindEnd=Integer.parseInt(map.get("remindend").toString());c.setTime(newDate());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate=c.getTime();map.put("remindend",sdf.format(remindEndDate));}}Wrapper<DiscusstushuxinxiEntity>wrapper=newEntityWrapper<DiscusstushuxinxiEntity>();if(map.get("remindstart")!=null){wrapper.ge(columnName,map.get("remindstart"));}if(map.get("remindend")!=null){wrapper.le(columnName,map.get("remindend"));}intcount=discusstushuxinxiService.selectCount(wrapper);returnR.ok().put("count",count);}}

留言板

package com.controller;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Arrays;import java.util.Calendar;import java.util.Map;import java.util.HashMap;import java.util.Iterator;import java.util.Date;import java.util.List;import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import com.baomidou.mybatisplus.mapper.EntityWrapper;import com.baomidou.mybatisplus.mapper.Wrapper;import com.annotation.IgnoreAuth;import com.entity.MessagesEntity;import com.entity.view.MessagesView;import com.service.MessagesService;import com.service.TokenService;import com.utils.PageUtils;import com.utils.R;import com.utils.MD5Util;import com.utils.MPUtil;import com.utils.CommonUtil;/** * 留言板 */@RestController@RequestMapping("/messages")publicclassMessagesController{@AutowiredprivateMessagesServicemessagesService;/** * 后端列表 */@RequestMapping("/page")publicRpage(@RequestParam Map<String,Object>params,MessagesEntitymessages,HttpServletRequestrequest){if(!request.getSession().getAttribute("role").toString().equals("管理员")){messages.setUserid((Long)request.getSession().getAttribute("userId"));}EntityWrapper<MessagesEntity>ew=newEntityWrapper<MessagesEntity>();PageUtilspage=messagesService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,messages),params),params));returnR.ok().put("data",page);}/** * 前端列表 */@RequestMapping("/list")publicRlist(@RequestParam Map<String,Object>params,MessagesEntitymessages,HttpServletRequestrequest){if(!request.getSession().getAttribute("role").toString().equals("管理员")){messages.setUserid((Long)request.getSession().getAttribute("userId"));}EntityWrapper<MessagesEntity>ew=newEntityWrapper<MessagesEntity>();PageUtilspage=messagesService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,messages),params),params));returnR.ok().put("data",page);}/** * 列表 */@RequestMapping("/lists")publicRlist(MessagesEntitymessages){EntityWrapper<MessagesEntity>ew=newEntityWrapper<MessagesEntity>();ew.allEq(MPUtil.allEQMapPre(messages,"messages"));returnR.ok().put("data",messagesService.selectListView(ew));}/** * 查询 */@RequestMapping("/query")publicRquery(MessagesEntitymessages){EntityWrapper<MessagesEntity>ew=newEntityWrapper<MessagesEntity>();ew.allEq(MPUtil.allEQMapPre(messages,"messages"));MessagesViewmessagesView=messagesService.selectView(ew);returnR.ok("查询留言板成功").put("data",messagesView);}/** * 后端详情 */@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){MessagesEntitymessages=messagesService.selectById(id);returnR.ok().put("data",messages);}/** * 前端详情 */@RequestMapping("/detail/{id}")publicRdetail(@PathVariable("id")Longid){MessagesEntitymessages=messagesService.selectById(id);returnR.ok().put("data",messages);}/** * 后端保存 */@RequestMapping("/save")publicRsave(@RequestBodyMessagesEntitymessages,HttpServletRequestrequest){messages.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(messages);messagesService.insert(messages);returnR.ok();}/** * 前端保存 */@RequestMapping("/add")publicRadd(@RequestBodyMessagesEntitymessages,HttpServletRequestrequest){messages.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(messages);messages.setUserid((Long)request.getSession().getAttribute("userId"));messagesService.insert(messages);returnR.ok();}/** * 修改 */@RequestMapping("/update")publicRupdate(@RequestBodyMessagesEntitymessages,HttpServletRequestrequest){//ValidatorUtils.validateEntity(messages);messagesService.updateById(messages);//全部更新returnR.ok();}/** * 删除 */@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){messagesService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}/** * 提醒接口 */@RequestMapping("/remind/{columnName}/{type}")publicRremindCount(@PathVariable("columnName")StringcolumnName,HttpServletRequestrequest,@PathVariable("type")Stringtype,@RequestParamMap<String,Object>map){map.put("column",columnName);map.put("type",type);if(type.equals("2")){SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");Calendarc=Calendar.getInstance();DateremindStartDate=null;DateremindEndDate=null;if(map.get("remindstart")!=null){IntegerremindStart=Integer.parseInt(map.get("remindstart").toString());c.setTime(newDate());c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate=c.getTime();map.put("remindstart",sdf.format(remindStartDate));}if(map.get("remindend")!=null){IntegerremindEnd=Integer.parseInt(map.get("remindend").toString());c.setTime(newDate());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate=c.getTime();map.put("remindend",sdf.format(remindEndDate));}}Wrapper<MessagesEntity>wrapper=newEntityWrapper<MessagesEntity>();if(map.get("remindstart")!=null){wrapper.ge(columnName,map.get("remindstart"));}if(map.get("remindend")!=null){wrapper.le(columnName,map.get("remindend"));}intcount=messagesService.selectCount(wrapper);returnR.ok().put("count",count);}}

退换图书

package com.controller;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Arrays;import java.util.Calendar;import java.util.Map;import java.util.HashMap;import java.util.Iterator;import java.util.Date;import java.util.List;import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import com.baomidou.mybatisplus.mapper.EntityWrapper;import com.baomidou.mybatisplus.mapper.Wrapper;import com.annotation.IgnoreAuth;import com.entity.TuihuantushuEntity;import com.entity.view.TuihuantushuView;import com.service.TuihuantushuService;import com.service.TokenService;import com.utils.PageUtils;import com.utils.R;import com.utils.MD5Util;import com.utils.MPUtil;import com.utils.CommonUtil;/** * 退换图书 */@RestController@RequestMapping("/tuihuantushu")publicclassTuihuantushuController{@AutowiredprivateTuihuantushuServicetuihuantushuService;/** * 后端列表 */@RequestMapping("/page")publicRpage(@RequestParam Map<String,Object>params,TuihuantushuEntitytuihuantushu,HttpServletRequestrequest){StringtableName=request.getSession().getAttribute("tableName").toString();if(tableName.equals("xuesheng")){tuihuantushu.setXuehao((String)request.getSession().getAttribute("username"));}EntityWrapper<TuihuantushuEntity>ew=newEntityWrapper<TuihuantushuEntity>();PageUtilspage=tuihuantushuService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,tuihuantushu),params),params));returnR.ok().put("data",page);}/** * 前端列表 */@RequestMapping("/list")publicRlist(@RequestParam Map<String,Object>params,TuihuantushuEntitytuihuantushu,HttpServletRequestrequest){EntityWrapper<TuihuantushuEntity>ew=newEntityWrapper<TuihuantushuEntity>();PageUtilspage=tuihuantushuService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,tuihuantushu),params),params));returnR.ok().put("data",page);}/** * 列表 */@RequestMapping("/lists")publicRlist(TuihuantushuEntitytuihuantushu){EntityWrapper<TuihuantushuEntity>ew=newEntityWrapper<TuihuantushuEntity>();ew.allEq(MPUtil.allEQMapPre(tuihuantushu,"tuihuantushu"));returnR.ok().put("data",tuihuantushuService.selectListView(ew));}/** * 查询 */@RequestMapping("/query")publicRquery(TuihuantushuEntitytuihuantushu){EntityWrapper<TuihuantushuEntity>ew=newEntityWrapper<TuihuantushuEntity>();ew.allEq(MPUtil.allEQMapPre(tuihuantushu,"tuihuantushu"));TuihuantushuViewtuihuantushuView=tuihuantushuService.selectView(ew);returnR.ok("查询退换图书成功").put("data",tuihuantushuView);}/** * 后端详情 */@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){TuihuantushuEntitytuihuantushu=tuihuantushuService.selectById(id);returnR.ok().put("data",tuihuantushu);}/** * 前端详情 */@RequestMapping("/detail/{id}")publicRdetail(@PathVariable("id")Longid){TuihuantushuEntitytuihuantushu=tuihuantushuService.selectById(id);returnR.ok().put("data",tuihuantushu);}/** * 后端保存 */@RequestMapping("/save")publicRsave(@RequestBodyTuihuantushuEntitytuihuantushu,HttpServletRequestrequest){tuihuantushu.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(tuihuantushu);tuihuantushuService.insert(tuihuantushu);returnR.ok();}/** * 前端保存 */@RequestMapping("/add")publicRadd(@RequestBodyTuihuantushuEntitytuihuantushu,HttpServletRequestrequest){tuihuantushu.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(tuihuantushu);tuihuantushuService.insert(tuihuantushu);returnR.ok();}/** * 修改 */@RequestMapping("/update")publicRupdate(@RequestBodyTuihuantushuEntitytuihuantushu,HttpServletRequestrequest){//ValidatorUtils.validateEntity(tuihuantushu);tuihuantushuService.updateById(tuihuantushu);//全部更新returnR.ok();}/** * 删除 */@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){tuihuantushuService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}/** * 提醒接口 */@RequestMapping("/remind/{columnName}/{type}")publicRremindCount(@PathVariable("columnName")StringcolumnName,HttpServletRequestrequest,@PathVariable("type")Stringtype,@RequestParamMap<String,Object>map){map.put("column",columnName);map.put("type",type);if(type.equals("2")){SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");Calendarc=Calendar.getInstance();DateremindStartDate=null;DateremindEndDate=null;if(map.get("remindstart")!=null){IntegerremindStart=Integer.parseInt(map.get("remindstart").toString());c.setTime(newDate());c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate=c.getTime();map.put("remindstart",sdf.format(remindStartDate));}if(map.get("remindend")!=null){IntegerremindEnd=Integer.parseInt(map.get("remindend").toString());c.setTime(newDate());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate=c.getTime();map.put("remindend",sdf.format(remindEndDate));}}Wrapper<TuihuantushuEntity>wrapper=newEntityWrapper<TuihuantushuEntity>();if(map.get("remindstart")!=null){wrapper.ge(columnName,map.get("remindstart"));}if(map.get("remindend")!=null){wrapper.le(columnName,map.get("remindend"));}StringtableName=request.getSession().getAttribute("tableName").toString();if(tableName.equals("xuesheng")){wrapper.eq("xuehao",(String)request.getSession().getAttribute("username"));}intcount=tuihuantushuService.selectCount(wrapper);returnR.ok().put("count",count);}}

上万套源码,每日分享源码,谢谢你的关注和喜欢,需要可以联系主页信息。

http://www.cnnetsun.cn/news/18122.html

相关文章:

  • 游戏增强工具YimMenu:从入门到精通的完整指南
  • B站视频下载神器:BiliDownloader完全使用手册
  • 如何快速合并分割APK:开源工具的终极解决方案指南
  • 实时语音转写技术革命:WhisperLiveKit如何重塑语音交互体验
  • 基于海马体突触修剪机制的动态剪枝策略在量化交易系统中的实现
  • 【毕业设计/课程设计】桃树种植环境检测系统系统源码+论文+PPT+数据
  • 模型识别对象
  • ChatBox与Ollama连接故障快速诊断手册
  • 网络安全零基础入门终极指南:一份值得你坚持跟完的详细进阶路径
  • 用AI 5分钟构建Sharding-JDBC原型验证方案
  • 2011—2021年浙江省肺结核发病率预测:基于三体模型和三体预测法附Matlab代码
  • 对比实验:LangChain-ChatChat vs 传统对话开发效率
  • 建议收藏:大模型RAG架构必备的向量数据库选型指南(7大主流方案全面对比)
  • DeepLX vs DeepL官方API:开源免费方案的技术突围之路
  • 15分钟搭建:SVN小乌龟+Jenkins自动化部署原型
  • 深度丨从孤岛到协同:区域医疗供应链的数智化重构
  • VoxCPM-0.5B:真人级语音克隆与实时交互的终极解决方案
  • 电商系统千万级订单的Sharding-JDBC实战
  • 越来越多妈妈选择有机A2β-酪蛋白奶源婴幼儿奶粉?真相在这里!
  • TikTok直播录制终极指南:轻松保存精彩直播的完整方案
  • a2β-酪蛋白奶源和有机奶源哪个更好,揭秘最新排行榜
  • mask xcf 文件
  • 基于SSM的企业生产监控与管理系统毕业设计项目源码
  • 如何用Stream-rec实现全自动直播录制?新手必看终极指南
  • 【路径规划】基于RRT和RRT-connect算法实现机器人路径规划附matlab代码
  • 【智能优化算法】Noorulden Basil优化算法(NB Optimizer)的MATLAB实现
  • 群晖Audio Station歌词插件终极指南:让QQ音乐歌词完美显示
  • 南京大学学位论文LaTeX模板完整使用教程
  • MySQL 知识点复习- 6.MySQL语法顺序
  • CENTOS 7服务器chronyd同步本地时间服务器时间设置详解