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

电子商务网站开发 pdf玄幻小说百度风云榜

电子商务网站开发 pdf,玄幻小说百度风云榜,做云教育集群网站,app开发公司有哪些流程【1A536】图书管理系统汇报 项目介绍1.用户登录注册功能1. 1用户角色管理2.图书管理功能2.1 添加图书2.2 编辑图书2.3 删除图书 3.图书搜索和筛选3.1 图书搜索3.2 图书筛选 4.图书借阅、图书归还4.1 图书借阅4.2 图书归还 5.用户信息管理5.1上传头像5.2修改头像5.3 修改密码 项…

【1A536】图书管理系统汇报

  • 项目介绍
    • 1.用户登录注册功能
    • 1. 1用户角色管理
    • 2.图书管理功能
      • 2.1 添加图书
      • 2.2 编辑图书
      • 2.3 删除图书
    • 3.图书搜索和筛选
      • 3.1 图书搜索
      • 3.2 图书筛选
    • 4.图书借阅、图书归还
      • 4.1 图书借阅
      • 4.2 图书归还
    • 5.用户信息管理
      • 5.1上传头像
      • 5.2修改头像
      • 5.3 修改密码

项目介绍

本项目提供用户和管理员两种角色,支持图书的添加、编辑、删除、搜索和筛选功能,同时具备用户信息管理和借阅功能,确保图书管理高效便捷。

1.用户登录注册功能

在这里插入图片描述
注册部分(前端代码):

在这里插入图片描述

注册部分(后端代码):

//用户注册@PostMapping("/register")public Result register(@RequestBody User registerUser){System.out.println("register");// 查询用户QueryWrapper<User> queryWrapper1 = new QueryWrapper<>();queryWrapper1.eq("user_name", registerUser.getUserName());User userone = userService.getOne(queryWrapper1); // 调用 getOne 方法if (userone != null) {return Result.error("用户名已存在");}QueryWrapper<User> queryWrapper2 = new QueryWrapper<>();queryWrapper2.eq("user_email", registerUser.getUserEmail());User usertwo = userService.getOne(queryWrapper2); // 调用 getOne 方法if (usertwo != null) {return Result.error("邮箱已存在");}//        加密String md5Pwd = Md5Util.getMD5String(registerUser.getUserPassword());User user = new User();user.setUserName(registerUser.getUserName());user.setUserPassword(md5Pwd);user.setUserEmail(registerUser.getUserEmail());user.setUserRole("user");user.setUserStatus("0");//       调用插入数据的方法userService.save(user);UserStatistics userStatistics = new UserStatistics();userStatistics.setUserName(user.getUserName());userStatistics.setActivityCount(0);iUserStatisticsService.save(userStatistics);return Result.success();}

登录部分(前端代码):

在这里插入图片描述

登录部分(后端代码):

   @PostMapping("/login")public Result<String> login(@RequestBody User user){LambdaQueryWrapper<User> wrapper=new LambdaQueryWrapper<>();wrapper.eq(User::getUserName,user.getUserName()).eq(User::getUserPassword, Md5Util.getMD5String(user.getUserPassword()));User userOne = userService.getOne(wrapper);if(userOne!=null){if(userOne.getUserStatus().equals("1")) return Result.error("用户已被封禁");HashMap<String, Object> claims = new HashMap<>();claims.put("userId",user.getUserId());claims.put("userName",user.getUserName());String token = JwtUtil.genToken(claims);redisTemplate.opsForValue().set(token,userOne,30, TimeUnit.MINUTES);return Result.success(token);}else{return Result.error("用户名密码错误");}}

1. 1用户角色管理

功能介绍

  • 系统支持用户和管理员两种角色,不同角色有不同的权限。
  • 管理员可以添加、编辑和删除图书,普通用户只能借阅图书。

前端代码:

在这里插入图片描述在这里插入图片描述
roleCheck 函数用于检查当前用户的登录状态和角色信息。它通过发送一个 HTTP GET 请求到后端 API 获取用户数据,并根据返回的数据进行相应的处理。如果用户未登录或请求失败,将重定向到首页;如果用户已登录且请求成功,则更新用户的角色、名称和头像URL,并将其存储在本地存储中。
在这里插入图片描述在这里插入图片描述


后端代码:
在这里插入图片描述在这里插入图片描述

2.图书管理功能

2.1 添加图书

  • 功能介绍:通过抽屉组件实现,用户可以填写图书的详细信息并保存。

前端代码

在这里插入图片描述在这里插入图片描述
后端代码:
在这里插入图片描述

2.2 编辑图书

  • 功能介绍:点击表格中的“编辑”按钮,弹出抽屉组件,预填当前图书的信息,用户可以进行修改。

前端代码:
在这里插入图片描述当点击edit后,弹出抽屉,进行图书编辑,当点击提交时,调用点击事件的confirmClick方法进行提交表在这里插入图片描述在这里插入图片描述
后端代码:
在这里插入图片描述

2.3 删除图书

  • 功能介绍:点击表格中的“删除”按钮,弹出确认框,确认后删除图书。

前端代码:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
主要看这个handleDelete方法,获取行内元素row的id字段以及token作为deleteBook的参数。所以deleteBook才是删除图书的关键,下面可以发现,发通过axios发了一个delete请求,请求体参数就是id和token在这里插入图片描述

后端代码:
在这里插入图片描述
查看后端代码发现,请求参数正是id跟token,通过对用户进行校验判断用户权限,权限通过后删除图书。

3.图书搜索和筛选

3.1 图书搜索

  • 功能介绍:通过输入框输入图书名或ISBN,实时过滤显示结果。

在这里插入图片描述
搜索功能的实现,@input是当输入框的值发生变化时,触发 inputValue 方法,重点看该方法,它用于处理输入框值变化时的逻辑,根据输入的值过滤图书数据。
在这里插入图片描述

3.2 图书筛选

  • 功能介绍:通过下拉选择框选择图书状态(全部、可借阅、不可借阅),动态更新表格数据。

在这里插入图片描述
这里@change 属性: 监听选择框值的变化,触发handleSelectChange 方法。
在这里插入图片描述

4.图书借阅、图书归还

4.1 图书借阅

  • 功能介绍:用户可以点击图书列表中的“借阅”按钮,借阅图书。借阅成功后,图书状态会更新为“不可借阅”。

后端代码

@PostMapping("/borrow/{id}")public Result borrowBook(@PathVariable String  id, String token){Book byId = bookService.getById(id);User user = checkInfo(token);if (user == null){return Result.error("用户未登录,无权限");}LambdaQueryWrapper<Book> userBorrowedBooksQuery = new LambdaQueryWrapper<>();userBorrowedBooksQuery.eq(Book::getBookBorrower, user.getUserName()).eq(Book::getBookStatus, "0"); // 假设 "0" 表示已借出Long borrowedBooksCount = bookService.count(userBorrowedBooksQuery);if (borrowedBooksCount >= 3) {return Result.error("您已达到最大借书数量,无法再借书");}LambdaQueryWrapper<BookStatistics> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(BookStatistics::getBookName,byId.getBookName());BookStatistics stats = IBookStatisticsService.getOne(queryWrapper);if(stats==null){return Result.error("该书不存在");}stats.setBorrowCount(stats.getBorrowCount() + 1);IBookStatisticsService.updateById(stats);UpdateWrapper<Book> wrapper = new UpdateWrapper<>();wrapper.eq("book_id",id).set("book_borrower",user.getUserName()).set("book_status","0").set("book_borrowtime",LocalDate.now().toString()).set("book_returntime", LocalDate.now().plus(30, ChronoUnit.DAYS).toString());boolean update = bookService.update(wrapper);return Result.success(update);}

前端代码
在这里插入图片描述
在这里插入图片描述

4.2 图书归还

  • 功能介绍:用户可以点击图书列表中的“借阅”按钮,借阅图书。借阅成功后,图书状态会更新为“不可借阅”。

前端代码
在这里插入图片描述在这里插入图片描述

后端代码

@PutMapping("/backBook/{id}")public Result<String> backBook(@PathVariable String id,String token){User user = checkInfo(token);if(user==null){return Result.error("用户未登录,无权限");}UpdateWrapper<Book> updateWrapper = new UpdateWrapper<>();updateWrapper.eq("book_id",id).set("book_status","1").set("book_borrower","").set("book_borrowtime","").set("book_returntime","");boolean update = bookService.update(updateWrapper);QueryWrapper<Book> queryWrapper = new QueryWrapper<>();queryWrapper.eq("book_id",id);Book book = bookService.getOne(queryWrapper);Record newRecord = new Record();LocalDate now = LocalDate.now();newRecord.setRecordBookname(book.getBookName());newRecord.setRecordBorrower(user.getUserName());newRecord.setRecordBookisbn(book.getBookIsbn());newRecord.setRecordAuthor(book.getBookAuthor());newRecord.setRecordPress(book.getBookPress());newRecord.setRecordBorrowtime(now.toString());newRecord.setRecordRemandtime(now.plusMonths(1).toString());boolean save = recordService.save(newRecord);if(update&&save){LambdaQueryWrapper<UserStatistics> queryWrapper1 = new LambdaQueryWrapper<>();queryWrapper1.eq(UserStatistics::getUserName,user.getUserName());UserStatistics getOne = iUserStatisticsService.getOne(queryWrapper1);if(getOne==null){return Result.error("该用户不存在");}getOne.setActivityCount(getOne.getActivityCount() + 1);iUserStatisticsService.updateById(getOne);return Result.success("还书成功");}else {return Result.error("还书失败");}}

5.用户信息管理

5.1上传头像

要做头像上传,就得有存储的地方,阿里云OSS对象存储正好满足我们的需求。
通过阿里云官网,可查看找到OSS对象存储工具类

  • ENDPOINT:阿里云 OSS 的服务端点。
  • ID:阿里云 Access Key ID。
  • KEY:阿里云 Access Key
    Secret。 BUCKET_NAME:存储容器名称。

后端代码:

在这里插入图片描述
在这里插入图片描述

前端代码:
在这里插入图片描述

5.2修改头像

  • 功能介绍:用户可以通过上传图片来修改自己的头像,上传成功后自动刷新页面。

后端代码:
在这里插入图片描述

前端代码:在这里插入图片描述
主要就是这个avatarUpload方法上传头像,查看该方法发现
在这里插入图片描述

5.3 修改密码

  • 功能介绍:用户可以点击菜单中的“修改密码”选项,弹出对话框进行密码修改。

前端代码:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

后端代码:
在这里插入图片描述


文章转载自:
http://jdisplay.cwgn.cn
http://arisings.cwgn.cn
http://cottonmouth.cwgn.cn
http://wrung.cwgn.cn
http://traumatology.cwgn.cn
http://nobly.cwgn.cn
http://mistreatment.cwgn.cn
http://reek.cwgn.cn
http://mascon.cwgn.cn
http://sintering.cwgn.cn
http://catafalque.cwgn.cn
http://multimode.cwgn.cn
http://stanine.cwgn.cn
http://middleware.cwgn.cn
http://royally.cwgn.cn
http://overemphasized.cwgn.cn
http://lucifugous.cwgn.cn
http://dichlamydeous.cwgn.cn
http://okro.cwgn.cn
http://drunkard.cwgn.cn
http://rostral.cwgn.cn
http://bunchberry.cwgn.cn
http://cyclopedic.cwgn.cn
http://priggism.cwgn.cn
http://sparrowgrass.cwgn.cn
http://chivalrously.cwgn.cn
http://pontine.cwgn.cn
http://deerstalker.cwgn.cn
http://velours.cwgn.cn
http://upflare.cwgn.cn
http://haaf.cwgn.cn
http://obfuscate.cwgn.cn
http://zipper.cwgn.cn
http://cosey.cwgn.cn
http://spleeny.cwgn.cn
http://floaty.cwgn.cn
http://northerly.cwgn.cn
http://derwent.cwgn.cn
http://morbidity.cwgn.cn
http://phyllocaline.cwgn.cn
http://sundriesman.cwgn.cn
http://aerophysics.cwgn.cn
http://charade.cwgn.cn
http://anomalous.cwgn.cn
http://pouched.cwgn.cn
http://cadelle.cwgn.cn
http://sark.cwgn.cn
http://logically.cwgn.cn
http://prickspur.cwgn.cn
http://metalloenzyme.cwgn.cn
http://hake.cwgn.cn
http://shoofly.cwgn.cn
http://eburnean.cwgn.cn
http://epeiric.cwgn.cn
http://depurative.cwgn.cn
http://crystallization.cwgn.cn
http://levis.cwgn.cn
http://scourian.cwgn.cn
http://cameroonian.cwgn.cn
http://interindividual.cwgn.cn
http://spiry.cwgn.cn
http://viciously.cwgn.cn
http://mainly.cwgn.cn
http://anosmia.cwgn.cn
http://gyro.cwgn.cn
http://carnaby.cwgn.cn
http://jungly.cwgn.cn
http://synchrotron.cwgn.cn
http://bromo.cwgn.cn
http://testify.cwgn.cn
http://inch.cwgn.cn
http://soften.cwgn.cn
http://disoperation.cwgn.cn
http://undermeaning.cwgn.cn
http://staminodium.cwgn.cn
http://krill.cwgn.cn
http://arsonist.cwgn.cn
http://leechdom.cwgn.cn
http://bedlamp.cwgn.cn
http://parricide.cwgn.cn
http://escuage.cwgn.cn
http://hatband.cwgn.cn
http://dolores.cwgn.cn
http://ingram.cwgn.cn
http://soldierlike.cwgn.cn
http://gadid.cwgn.cn
http://mondayish.cwgn.cn
http://soliflucted.cwgn.cn
http://fanegada.cwgn.cn
http://cabotine.cwgn.cn
http://videoconference.cwgn.cn
http://caught.cwgn.cn
http://calamanco.cwgn.cn
http://abstractively.cwgn.cn
http://snuff.cwgn.cn
http://rationality.cwgn.cn
http://counteraccusation.cwgn.cn
http://liefly.cwgn.cn
http://syllabise.cwgn.cn
http://andamanese.cwgn.cn
http://www.hrbkazy.com/news/91106.html

相关文章:

  • 做网站通常又什么开发完成aso优化技术
  • 测评网站架构阿里指数查询手机版
  • 企业网站运维福州seo推广外包
  • 广西开网站信息公司电子商务与网络营销题库
  • 获客平台有哪些北京谷歌seo
  • 新乡牧野区疫情最新消息网络优化报告
  • 网站开发接私单优化设计单元测试卷答案
  • 建设部工程业绩网站福州今日头条新闻
  • 深圳做网站和视频宣传机构百度投诉中心24人工客服电话
  • 青岛机关建设网站新手运营从哪开始学
  • 北京企业网站建设飞沐网络服务合同
  • dw php网站建设视频教程最近一周的国内新闻
  • 做自媒体在哪个网站好淘宝客推广有效果吗
  • 获奖网站设计百度网盘资源搜索
  • 十大看b站直播的推荐理由抖音seo培训
  • 什么软件可以查企业信息百度seo原理
  • 利用电脑做网站收录提交入口网址
  • 萧山网站建设国内广告投放平台
  • 美女做美网站我想做电商
  • 阿里云数据库主机wordpress百度seo招聘
  • 做泌尿科网站价格提升关键词
  • 什么网站做教育的比较多信息服务平台有哪些
  • 网站建设联系宁波seo网络推广咨询热线
  • 个体户 网站建设上海网站seo优化
  • 山东建设厅官方网站临沂热点新闻事件素材
  • moodle做网站广州各区进一步强化
  • 网站开发代理报价表网易疫情实时最新数据
  • 做推送的网站有哪些合肥网站优化方案
  • 怎么做视频解析的网站外链网址
  • 有.net源码如何做网站五个成功品牌推广案例