个人名片:

博主:酒徒ᝰ.
专栏:瑞吉外卖
个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来。
本篇励志:人会想很多事,而且多半是痛苦的,时光如水,我们无法阻止岁月的脚步,很多人,逐渐淡出了我们的视线,懂得了什么叫过客,很多事,已经不再属于我们的精彩,知道了这就叫过往。

本项目基于B站黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis plus开发核心技术的真java实战项目。

视频链接【黑马程序员Java项目实战《瑞吉外卖》,轻松掌握springboot + mybatis
plus开发核心技术的真java实战项目】 https://www.bilibili.com/video/BV13a411q753?
点击观看

目录

  • 1.查询全部地址地址
  • 2.添加收货地址
  • 3.修改地址
    • 1.页面回显
    • 2.保存地址
  • 4.删除地址
  • 5.默认地址
    • 1.设置默认地址
    • 2.查询默认地址

1.查询全部地址地址

分析:addressBook地址,GET方式,list地址

package com.itheima.reggie.controller;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.itheima.reggie.common.R;
import com.itheima.reggie.entity.AddressBook;
import com.itheima.reggie.service.IAddressBookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpSession;
import java.util.List;/*** <p>* 地址管理 前端控制器* </p>** @author 酒徒* @since 2022-09-04*/
@RestController
@RequestMapping("/addressBook")
public class AddressBookController {@Autowiredprivate IAddressBookService addressBookService;/*** 查询全部地址* @param session* @return*/@GetMapping("/list")public R<List<AddressBook>> list(HttpSession session){//根据用户id查询地址LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(AddressBook::getUserId, session.getAttribute("user"));List<AddressBook> list = addressBookService.list(queryWrapper);return R.success(list);}
}

2.添加收货地址

分析:addressBook地址,POST方式

/*** 添加地址* @param addressBook* @param session* @return*/
@PostMapping
public R<String> addressBook(@RequestBody AddressBook addressBook, HttpSession session){log.info("addressBook:{}", addressBook);//addressBook:AddressBook(id=null, userId=null, consignee=长津湖, sex=1, phone=13565895624, provinceCode=null, provinceName=null, cityCode=null, cityName=null, districtCode=null, districtName=null, detail=11, label=公司, isDefault=null, createTime=null, updateTime=null, createUser=null, updateUser=null, isDeleted=null)addressBook.setUserId((Long)session.getAttribute("user"));//添加创建时间和修改时间addressBook.setCreateTime(LocalDateTime.now());addressBook.setUpdateTime(LocalDateTime.now());//添加创建人和修改人addressBook.setCreateUser((Long)session.getAttribute("user"));addressBook.setUpdateUser((Long)session.getAttribute("user"));addressBookService.save(addressBook);return R.success("添加地址成功");
}

3.修改地址

1.页面回显

分析:addressBook地址,GET方式,id地址

/*** 修改地址——回显数据* @param id* @return*/
@GetMapping("/{id}")
public R<AddressBook> huixian(@PathVariable Long id){//根据id查询地址信息LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(AddressBook::getId, id);AddressBook addressBook = addressBookService.getOne(queryWrapper);return R.success(addressBook);
}

2.保存地址

分析:addressBook地址,PUT方式

/*** 修改地址——保存* @param addressBook* @param session* @return*/
@PutMapping
public R<String> addressBookupdate(@RequestBody AddressBook addressBook, HttpSession session){//设置修改时间addressBook.setUpdateTime(LocalDateTime.now());//设置修改人addressBook.setUpdateUser((Long)session.getAttribute("user"));addressBookService.updateById(addressBook);return R.success("修改成功");
}

4.删除地址

分析:addressBook地址,DELETE方式,ids属性

/*** 删除地址* @param ids* @param session* @return*/
@DeleteMapping()
public R<String> addressBook(@PathParam("ids") Long ids, HttpSession session){//通过ids删除地址LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(AddressBook::getId, ids).eq(AddressBook::getUserId, (Long)session.getAttribute("user"));addressBookService.remove(queryWrapper);return R.success("删除成功");
}

5.默认地址

1.设置默认地址

从上图分析:addressBook地址,PUT方式,default地址

/*** 设置默认地址* @param addressBook* @param session* @return*/
@PutMapping("/default")
public R<String> defaultSet(@RequestBody AddressBook addressBook, HttpSession session){//查询需要修改的addressBook//log.info("addressBook:{}", addressBook);//session:AddressBook(id=1565637284313284610, userId=null, consignee=null, sex=null, phone=null, provinceCode=null, provinceName=null, cityCode=null, cityName=null, districtCode=null, districtName=null, detail=null, label=null, isDefault=0, createTime=null, updateTime=null, createUser=null, updateUser=null, isDeleted=null)//根据用户id查询所有addressBook信息,将其中的isDefault全部改为0;LambdaQueryWrapper<AddressBook> wrapper = new LambdaQueryWrapper<>();wrapper.eq(AddressBook::getUserId, session.getAttribute("user"));List<AddressBook> addressBooks = addressBookService.list();for (AddressBook address : addressBooks) {address.setIsDefault(0);addressBookService.updateById(address);}//根据id查询addressBook信息LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(AddressBook::getId, addressBook.getId());AddressBook address = addressBookService.getOne(queryWrapper);log.info("address:{}", address);//address:AddressBook(id=1565637284313284610, userId=1, consignee=爱丽丝, sex=0, phone=18535004237, provinceCode=null, provinceName=null, cityCode=null, cityName=null, districtCode=null, districtName=null, detail=55, label=公司, isDefault=0, createTime=2022-09-02T17:46:31, updateTime=2022-09-08T19:15:07, createUser=1, updateUser=1, isDeleted=0)address.setIsDefault(1);addressBookService.updateById(address);return R.success("修改默认值成功");
}

2.查询默认地址

从上图分析:addressBook地址,GET方式,default地址
注意数据库addressBook中isDefault的类型,自动生产代码是Boolean类型,需要改为int类型

/*** 查询默认地址* @param session* @return*/
@GetMapping("/default")
public R<AddressBook> defaultAddress(HttpSession session){//查询addressBook中isDefault值  默认 0 否 1是LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(AddressBook::getUserId, session.getAttribute("user")).eq(AddressBook::getIsDefault, 1);AddressBook addressBook = addressBookService.getOne(queryWrapper);log.info("addressBook:{}",addressBook);if (addressBook == null){return R.error("没有默认地址");}else {return R.success(addressBook);}
}

猿创征文|瑞吉外卖——移动端_地址管理相关推荐

  1. 猿创征文|瑞吉外卖——移动端_邮箱验证码登录

    个人名片: 博主:酒徒ᝰ. 专栏:瑞吉外卖 个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来. 本篇励志:如果决意去做一件事了就不要再问自己和别人值不值得. 本项目基于B站黑马程序员Java项目实战 ...

  2. 猿创征文|瑞吉外卖——移动端_订单明细

    个人名片: 博主:酒徒ᝰ. 专栏:瑞吉外卖 个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来. 本篇励志:一些伤口之所以总会痛,那是因为你总是去摸.有一种女人像贝壳一样,外面很硬,内在其实很软.心里 ...

  3. 猿创征文|瑞吉外卖——管理端_订单明细

    个人名片: 博主:酒徒ᝰ. 专栏:瑞吉外卖 个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来. 本篇励志:一个人静静坐在电脑面前写代码的感觉,那是什么感觉?那是武林高手闭关修炼的感觉. 本项目基于B ...

  4. 猿创征文|瑞吉外卖——管理端_菜品管理_1

    个人名片: 博主:酒徒ᝰ. 专栏:瑞吉外卖 个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来. 本篇励志:真正的程序员不看参考手册,新手和胆小鬼才会看. 本项目基于B站黑马程序员Java项目实战&l ...

  5. 猿创征文|瑞吉外卖——移动端_购物车

    个人名片: 博主:酒徒ᝰ. 专栏:瑞吉外卖 个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来. 本篇励志:一份耕耘,一份收获.眼要看远,脚要近迈.在强者的眼中,没有最好,只有更好.向竞争挑战,向压力 ...

  6. 瑞吉外卖-移动端菜品展示功能,购物车添加菜品及修改等功能,用户下单功能及历史订单派送功能

    整理记录下学习整个瑞吉外卖项目,详细代码可在我的Gitee仓库瑞吉外卖实战克隆下载学习使用! 12.菜品展示 12.1 需求分析 12.2 更改前台页面使其正常显示 由于购物车功能还未进行开发,所以修 ...

  7. 黑马瑞吉外卖用户端顾客手机端页面展示

    八.顾客手机端页面展示 0.地址管理 需求分析: 一个用户可以有多个地址 一个用户只能设置一个默认地址 设置默认地址时,先将该用户下所有的地址都设置为不默认.再设置默认地址. 将AdressBook相 ...

  8. 瑞吉外卖之移动端菜品数据的展示

    瑞吉外卖之移动端菜品数据的展示 界面分析 界面分析 上篇我们主要完成了了瑞吉外卖移动端界面登录的功能.完成界面登录自然要进入主界面. 我们和前面的登录界面进行衔接上. 于是我们跳转到这个界面,也就是我 ...

  9. 项目-瑞吉外卖(1)

    项目-瑞吉外卖 基本要求 1.介绍 开发流程 角色分工 软件环境 开发环境,测试环境,生产环境 2.项目介绍 3.开发环境搭建 1.数据库环境搭建 创建数据库 导入表结构,运行外部SQL文件 /* N ...

最新文章

  1. snagit屏幕截图转pdf
  2. php directoryiterator,PHP DirectoryIterator getBasename()用法及代码示例
  3. 将中文日期转换成自己想要的格式如:2018年09月29日转换成2018-09-29
  4. 区块链游戏为何只剩下“炒币”的价值?
  5. linux 非登录shell自动,Linux登录shell和非登录(交互式shell)环境变量配置
  6. java 日志框架 详解_java日志框架系列(9):logback框架过滤器(filter)详解
  7. webservice restful类型接口的调用实例
  8. 电脑测速软件_不服跑个分!常见固态硬盘测速工具性价比盘点(上)
  9. [JavaScript]只需一行代码,轻松搞定快捷留言功能
  10. Python04 直线拟合 多项式曲线拟合 指数曲线拟合(附代码)
  11. qt如何在label中显示汉字_工控机中如何实现多屏显示
  12. vsftpd安装与配置
  13. 如何注册gmail邮箱
  14. Vue+ElementUI后台管理系统模板推荐
  15. php快捷方式 图标ie,pubwin删除IE快捷方式并自行创建IE快捷方式的问题解决方法...
  16. 首款国风链游打造视觉“饕餮盛宴” 见证元宇宙数字资产变革新峰
  17. 树莓派4b 4G 64位系统下安装opencv
  18. nginx启动、关闭、重启及常用的命令
  19. JXTA学习!!JXTA P2P 2.4
  20. Model Checking基础

热门文章

  1. 手机剪辑视频指南:去水印、加字幕、做转场,统统一键就搞定
  2. ChunJunOceanBase联合方案首次发布:构建一体化数据集成方案
  3. Unity3D插件 Doozy UI 学习(二):与DoozyUI的事件传递
  4. 微信扫码下载APP(带有蒙层)
  5. 获取字符串中最大的数字
  6. Router接口及连接
  7. DataNucleus之JDO操作示例
  8. pci规划的三个原则_LTE小区PCI规划原则
  9. 百度搜索引擎结果网址参数键盘重复速度(rsv_sug3)
  10. html网页肯德基设计代码作业,Illustrator设计一幅肯德基广告单页制作教程