当前位置: 首页 > 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实现分布式存储,提升系统扩展性。

http://www.xdnf.cn/news/670735.html

相关文章:

  • 基于 Operator 部署 Prometheus 实现 K8S 监控
  • Spark实时流数据处理实例(SparkStreaming通话记录消息处理)
  • 【md2html python 将 Markdown 文本转换为 HTML】
  • HTML Day02
  • pythonday30
  • Spark SQL进阶:解锁大数据处理的新姿势
  • AG32 DMAC实现内部MCU与FPGA通信【知识库】
  • 运维自动化工具 ansible 知识点总结
  • 域控账号密码抓取
  • C++数据结构 : 哈希表的实现
  • 2025上半年软考高级系统架构设计师经验分享
  • 第十一节:第一部分:正则表达式:应用案例、爬取信息、搜索替换
  • 牙科低对比度模体,衡量牙科影像设备的性能和诊断能力的工具
  • 8种使用克劳德4的方法,目前可用随时更新!
  • 人工智能与机器学习从理论、技术与实践的多维对比
  • 打造AI智能旅行规划器:基于LLM和Crew AI的Agent实践
  • Flash Attention:让Transformer飞起来的硬件优化技术
  • 宝塔安装easyswoole框架
  • Cherry Studio连接配置MCP服务器
  • wsl图形界面显示
  • 探讨Facebook的元宇宙愿景下的虚拟现实技术
  • 【2025最新】Cline自定义API配置完全指南:接入Claude 3.7/GPT-4o
  • 用C#完成最小二乘法拟合平面方程,再计算点到面的距离
  • OpenGL Chan视频学习-8 How I Deal with Shaders in OpenGL
  • 深入理解设计模式之状态模式
  • kubernetes网络详解(内部网络、Pod IP分配、CNI)
  • 操作系统期中考试
  • 如何彻底禁用WordPress中的评论
  • 三、web安全-信息收集
  • 网络:华为S5720-52X-SI交换机重置console密码