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

基于Android的共享书屋平台源码+论文

代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹
分享万套开题报告+任务书+答辩PPT模板
作者完整代码目录供你选择:
《SpringBoot网站项目》1800套
《SSM网站项目》1500套
《小程序项目》1600套
《APP项目》1500套
《Python网站项目》1300套
⬇️文章末尾可以获取联系方式,需要源码或者演示视频可以联系⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡

采用技术:

编程语言:Java
后端框架:SpringBoot
APP端框架:uni-app
数据库:MySQL
数据表数量:21张表
运行软件:HBuilder X

系统功能:


本系统实现管理员、用户模块。
管理员模块功能:发展历程、新闻资讯、书籍类型、菜单、网站介绍、论坛交流、管理员、用户、书籍信息、借书合约、借书订单、还书订单、确认归还、积分商品、积分兑换等。
用户模块功能:我的发布、我的收藏、书籍信息、借书合约、借书订单、还书订单、确认归还、积分兑换、新闻资讯、积分商品等。

运行截图:






















论文目录:




核心代码:

packagecom.controller;importjava.text.SimpleDateFormat;importcom.alibaba.fastjson.JSONObject;importjava.util.*;importorg.springframework.beans.BeanUtils;importjavax.servlet.http.HttpServletRequest;importorg.springframework.web.context.ContextLoader;importjavax.servlet.ServletContext;importcom.service.TokenService;importcom.utils.StringUtil;importjava.lang.reflect.InvocationTargetException;importcom.service.DictionaryService;importorg.apache.commons.lang3.StringUtils;importcom.annotation.IgnoreAuth;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.*;importcom.baomidou.mybatisplus.mapper.EntityWrapper;importcom.baomidou.mybatisplus.mapper.Wrapper;importcom.entity.YonghuEntity;importcom.service.YonghuService;importcom.entity.view.YonghuView;importcom.utils.PageUtils;importcom.utils.R;@RestController@Controller@RequestMapping("/yonghu")publicclassYonghuController{privatestaticfinalLoggerlogger=LoggerFactory.getLogger(YonghuController.class);@AutowiredprivateYonghuServiceyonghuService;@AutowiredprivateTokenServicetokenService;@AutowiredprivateDictionaryServicedictionaryService;//级联表service/** * 后端列表 */@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,HttpServletRequestrequest){logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));params.put("orderBy","id");PageUtilspage=yonghuService.queryPage(params);//字典表数据转换List<YonghuView>list=(List<YonghuView>)page.getList();for(YonghuViewc:list){//修改对应字典表字段dictionaryService.dictionaryConvert(c);}returnR.ok().put("data",page);}/** * 后端详情 */@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);YonghuEntityyonghu=yonghuService.selectById(id);if(yonghu!=null){//entity转viewYonghuViewview=newYonghuView();BeanUtils.copyProperties(yonghu,view);//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view);returnR.ok().put("data",view);}else{returnR.error(511,"查不到数据");}}/** * 后端保存 */@RequestMapping("/save")publicRsave(@RequestBodyYonghuEntityyonghu,HttpServletRequestrequest){logger.debug("save方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());Wrapper<YonghuEntity>queryWrapper=newEntityWrapper<YonghuEntity>().eq("username",yonghu.getUsername()).or().eq("yonghu_phone",yonghu.getYonghuPhone()).or().eq("yonghu_id_number",yonghu.getYonghuIdNumber());;logger.info("sql语句:"+queryWrapper.getSqlSegment());YonghuEntityyonghuEntity=yonghuService.selectOne(queryWrapper);if(yonghuEntity==null){yonghu.setCreateTime(newDate());yonghu.setPassword("123456");// String role = String.valueOf(request.getSession().getAttribute("role"));// if("".equals(role)){// yonghu.set// }yonghuService.insert(yonghu);returnR.ok();}else{returnR.error(511,"账户或者身份证号或者手机号已经被使用");}}/** * 后端修改 */@RequestMapping("/update")publicRupdate(@RequestBodyYonghuEntityyonghu,HttpServletRequestrequest){logger.debug("update方法:,,Controller:{},,yonghu:{}",this.getClass().getName(),yonghu.toString());//根据字段查询是否有相同数据Wrapper<YonghuEntity>queryWrapper=newEntityWrapper<YonghuEntity>().notIn("id",yonghu.getId()).andNew().eq("username",yonghu.getUsername()).or().eq("yonghu_phone",yonghu.getYonghuPhone()).or().eq("yonghu_id_number",yonghu.getYonghuIdNumber());;logger.info("sql语句:"+queryWrapper.getSqlSegment());YonghuEntityyonghuEntity=yonghuService.selectOne(queryWrapper);if("".equals(yonghu.getYonghuPhoto())||"null".equals(yonghu.getYonghuPhoto())){yonghu.setYonghuPhoto(null);}if(yonghuEntity==null){// String role = String.valueOf(request.getSession().getAttribute("role"));// if("".equals(role)){// yonghu.set// }yonghuService.updateById(yonghu);//根据id更新returnR.ok();}else{returnR.error(511,"账户或者身份证号或者手机号已经被使用");}}/** * 删除 */@RequestMapping("/delete")publicRdelete(@RequestBodyInteger[]ids){logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());yonghuService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}/** * 登录 */@IgnoreAuth@RequestMapping(value="/login")publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){YonghuEntityyonghu=yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("username",username));if(yonghu==null||!yonghu.getPassword().equals(password)){returnR.error("账号或密码不正确");}Stringtoken=tokenService.generateToken(yonghu.getId(),username,"yonghu","用户");Rr=R.ok();r.put("token",token);r.put("role","用户");r.put("username",yonghu.getYonghuName());r.put("tableName","yonghu");r.put("userId",yonghu.getId());returnr;}/** * 注册 */@IgnoreAuth@PostMapping(value="/register")publicRregister(@RequestBodyYonghuEntityyonghu){// ValidatorUtils.validateEntity(user);if(yonghuService.selectOne(newEntityWrapper<YonghuEntity>().eq("username",yonghu.getUsername()).orNew().eq("yonghu_phone",yonghu.getYonghuPhone()).orNew().eq("yonghu_id_number",yonghu.getYonghuIdNumber()))!=null){returnR.error("账户已存在或手机号或身份证号已经被使用");}yonghuService.insert(yonghu);returnR.ok();}/** * 重置密码 */@GetMapping(value="/resetPassword")publicRresetPassword(Integerid){YonghuEntityyonghu=newYonghuEntity();yonghu.setPassword("123456");yonghu.setId(id);yonghuService.updateById(yonghu);returnR.ok();}/** * 获取用户的session用户信息 */@RequestMapping("/session")publicRgetCurrYonghu(HttpServletRequestrequest){Integerid=(Integer)request.getSession().getAttribute("userId");YonghuEntityyonghu=yonghuService.selectById(id);returnR.ok().put("data",yonghu);}/** * 退出 */@GetMapping(value="logout")publicRlogout(HttpServletRequestrequest){request.getSession().invalidate();returnR.ok("退出成功");}}t("data",yonghu);}/** * 退出 */@GetMapping(value="logout")publicRlogout(HttpServletRequestrequest){request.getSession().invalidate();returnR.ok("退出成功");}}Session().invalidate();returnR.ok("退出成功");}}t("data",yonghu);}/** * 退出 */@GetMapping(value="logout")publicRlogout(HttpServletRequestrequest){request.getSession().invalidate();returnR.ok("退出成功");}}
http://www.jsqmd.com/news/964718/

相关文章:

  • 贯穿案例:某商城订单系统新增会员折扣
  • ARGIS制图效果展示
  • 2026年镇江公考/考公/公务员/省考/事业编/事业单位TOP5榜单:本地高上岸率与备考服务深度测评推荐 - 企业推荐官【官方】
  • CVPR26最佳论文提名:NitroGen,面向通用游戏智能体的 视觉-动作基础模型
  • 前台含税价格越来越敏感跨境卖家如何优化低客单页面表达
  • 2025-2026年建发金茂观宸电话查询:选房前需核实项目信息与合同条款 - 品牌推荐
  • GESP6级C++考试语法知识(五十三、动态规划----背包问题(六、分组背包)
  • 电源环路稳定性设计:从巴克豪森判据到仿真调试实战
  • Qwerty Learner:程序员如何在VSCode中边写代码边记单词的终极指南
  • Electron.NET与ASP.NET Core技术融合新范式:架构决策者的桌面应用开发革命
  • 降AI率工具红黑榜:实测3款热门工具,剖析实用程度与常见陷阱,文末附技巧
  • 别再手动烧录了!手把手教你为TMS320F28377D DSP实现串口Bootloader(附完整CMD文件配置)
  • OCRmyPDF完整指南:如何将扫描PDF转换为可搜索文档的终极解决方案
  • 【CSDN官方白皮书级实测】:非IT行业开通AI数字营销成功率86.7%,关键在第2步!
  • 给Arduino和树莓派选‘外挂’:手把手教你为传感器信号调理电路匹配运算放大器
  • 2026深圳搬家公司综合实力TOP5:口碑、价格、服务、售后全维度解析 - 从来都是英雄出少年
  • E-Hentai画廊批量下载终极方案:三步实现高效自动化管理
  • 2026北京迷你仓公司企业决策指南:选仓必问的八个问题,北京贴心存全部给出最优答案 - 企业深度横评dyy6420
  • 2026年 PCB压合机厂家推荐:高精密多层板/HDI板/软硬结合板压合设备源头品牌深度解析 - 品牌企业推荐师(官方)
  • 基于STM32与ESP8266的智能家居物联网实验板设计与实战
  • RAG 召回质量治理:用 Go 构建可调试的切片、检索与重排链路
  • AI辅助开发新思路:让快马平台智能设计368776与229053的协同应用架构
  • ACM能力契约模型:构建可治理的智能体操作系统
  • 基于Android的陪诊护理系统源码+论文
  • 侧发光吸顶灯拆解:从光学原理到电路设计,揭秘高性价比LED照明方案
  • 速看!!东湖高新职称评审专业有哪些专业可以选择?
  • 宝鸡电视柜定制技术拆解:宝鸡ENF级全屋定制环保包材/宝鸡全屋定制五金/宝鸡全屋柜体定制/宝鸡别墅全屋定制/宝鸡厨房整体定制/选择指南 - 优质品牌商家
  • 构建企业级IT服务管理平台:iTop架构深度解析与实施指南
  • 普宁工厂招聘平台推荐|服装厂、内衣厂批量招普工,哪个渠道最快最准 - 品牌观察
  • 2026年镇江考公/事业编培训机构推荐榜单:省考/事业单位上岸优选与课程深度解析 - 企业推荐官【官方】