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

(自用)Java学习-5.16(取消收藏,批量操作,修改密码,用户更新,上传头像)

1. 取消收藏功能
  • 前端实现

    • 用户点击“取消收藏”按钮时,前端通过变量status判断当前状态(0为未收藏,1为已收藏)。

    • 发送AJAX请求到后端接口:

      • 添加收藏/favoriteise/addFavoriteise?pid=商品ID,成功后将按钮状态更新为“取消收藏”(图标变为实心)。

      • 取消收藏/favoriteise/dropFavoriteise?fid=收藏记录ID,成功后恢复为“加入收藏”(图标变为空心)。

    • 使用confirm()弹窗确认操作。

  • 后端实现

    • 控制器:接收fid参数,调用服务层删除收藏记录。

    • SQL逻辑DELETE FROM t_favorites WHERE fid=#{fid},直接删除指定收藏记录。


2. 购物车操作
  • 增减商品数量

    • 前端:点击“+”或“-”按钮触发addNum(cid)reduceNum(cid),发送请求到/cart/addNum/cart/reduceNum,动态更新页面显示的数量和小计。

    • 后端

      • 查询购物车记录:SELECT * FROM t_cart WHERE cid=#{cid}

      • 更新数量:UPDATE t_cart SET num=#{num},并记录修改时间。

  • 全选操作

    • 勾选“全选”按钮触发checkAll(),请求/cart/getTotalNum获取所有购物车数据,计算总数量和总金额,更新页面显示。

    • SQL逻辑SELECT * FROM t_cart,返回全部购物车数据。

  • 批量删除

    • 勾选多个商品后,前端将选中的cid数组发送到/cart/batchDelete

    • SQL逻辑DELETE FROM t_cart WHERE cid IN (id1, id2, ...),通过<foreach>动态拼接ID列表。


3. 修改密码功能
  • 前端实现

    • 输入原密码时触发异步校验(/users/checkoldval),验证通过后允许提交新密码。

    • 提交时校验两次新密码一致性,发送请求到/users/modifiedPass

  • 后端实现

    • 密码加密:使用getMd5Password()结合盐值加密新密码。

    • SQL逻辑UPDATE t_user SET password=新密码 WHERE uid=用户ID

    • 修改成功后清除用户会话,跳转至登录页。


4. 用户资料更新
  • 展示资料

    • 请求/users/showOneUser获取当前用户信息(如用户名、电话、性别),动态填充表单。

    • 根据性别动态渲染单选按钮(男/女)。

  • 更新资料

    • 提交表单数据到/users/editUserInfo,后端更新t_user表中对应字段(如phoneemailgender)。

    • SQL逻辑:动态生成UPDATE语句,仅更新非空字段。


5. 上传头像功能
  • 前端实现

    • 使用<form>表单提交文件,设置enctype="multipart/form-data",提交到/uploadpic/savepic

  • 后端实现

    • 阿里云OSS配置:通过application.yml读取OSS参数(Endpoint、AccessKey等)。

    • 文件处理

      1. 生成唯一文件名(UUID + 文件后缀)。

      2. 上传文件到OSS指定路径(如userName/新文件名)。

      3. 将OSS文件路径存入用户表t_useravatar字段。

    • SQL逻辑UPDATE t_user SET avatar=文件路径 WHERE uid=用户ID


6. 关键技术点
  1. 前后端交互

    • 使用AJAX异步请求,配合JSON数据格式,实现无刷新操作(如购物车数量更新)。

    • RESTful风格接口设计(如/cart/addNum/users/modifiedPass)。

  2. 数据库操作

    • MyBatis动态SQL(如<if>条件判断、<foreach>批量删除)。

    • 联表查询优化数据展示(如购物车关联商品信息)。

  3. 安全与扩展

    • 用户会话管理(HttpSession存储用户ID和用户名)。

    • 文件上传通过OSS实现分布式存储,提升系统扩展性。

相关文章:

  • 相机定屏问题分析四:【cameraserver 最大request buffer超标】后置视频模式预览定屏闪退至桌面
  • 自动驾驶规划控制教程——不确定环境下的决策规划
  • 函数到底有多少细节?
  • Docker+MobaXterm+x11实现容器UI界面转发本地
  • rlemasklib 安装笔记
  • algolia使用配置教程-为SSG静态站增加algolia搜索功能
  • 投影机光源三代发展史:从高压汞灯、白光 LED 到三色光源
  • 【Python】日期计算和自动化运行脚本
  • 2025年我国低空经济产业链研究与梳理
  • IEEE Journal on Selected Areas in Communications 2025年论文整理2(中英文摘要)
  • 某验4无感探针-js逆向
  • 第九章 Java基础-集合
  • Redis数据迁移方案及持久化机制详解
  • Java怎么实现父子线程的值传递?InheritableThreadLocal类和transmittable-thread-local类?
  • MySQL :MySQL基本概念
  • 安全生产例题
  • day2 MySQL表数据操作
  • 大数据分析06 数据排序汇总
  • 常见JDK安装配置
  • 代码随想录算法训练营第60期第四十九天打卡
  • 惠州网站建设模板/百度小说风云榜今天
  • 网站建设要点/2022年传销最新消息
  • 那些做测评的网站好/免费手游推广平台
  • 自己做公司网站/百度开户代理
  • 科技有限公司经营范围有哪些/安徽seo推广公司
  • 影楼做网站/seo软件优化