用户地址管理---新增、设置默认地址、根据id查询所有地址、查询默认地址、查询指定用户的全部地址
2024-09-08 11:06:52
导入用户地址簿相关功能代码
需求分析:
地址簿,指的是移动端消费者用户的地址信息,用户登录成功后可以维护自己的地址信息。同一个用户可以有多个地址信息,但是只能有一个默认地址。
用户的地址信息会存储在address_book,即地址簿表中。
package com.itheima.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.itheima.common.BaseContext;
import com.itheima.common.R;
import com.itheima.entity.AddressBook;
import com.itheima.service.AddressBookService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import java.util.List; /**
* 地址簿管理
*/
@Slf4j
@RestController
@RequestMapping("/addressBook")
public class AddressBookController { @Autowired
private AddressBookService addressBookService; /**
* 新增
*/
@PostMapping
public R<AddressBook> save(@RequestBody AddressBook addressBook){
addressBook.setUserId(BaseContext.getCurrentId());
log.info("addressBook:{}", addressBook);
addressBookService.save(addressBook);
return R.success(addressBook);
} /**
* 设置默认地址
*/
@PutMapping("/default")
public R<AddressBook> setDefault(@RequestBody AddressBook addressBook){
log.info("addressBook:{}", addressBook);
LambdaUpdateWrapper<AddressBook> wrapper = new LambdaUpdateWrapper<>();
//通过用户id查询到用户保存的所有地址
wrapper.eq(AddressBook::getUserId, BaseContext.getCurrentId());
//将该用户的所有地址改为非默认
wrapper.set(AddressBook::getIsDefault, 0);
addressBookService.update(wrapper);
//将传过来的addressBook的地址设为默认地址
addressBook.setIsDefault(1);
addressBookService.updateById(addressBook);
return R.success(addressBook); } /**
* 根据id查询地址
* @param id
* @return
*/
@GetMapping("/{ID}")
public R get(@PathVariable Long id){
AddressBook addressBook = addressBookService.getById(id);
if(addressBook!=null){
return R.success(addressBook);
}else {
return R.error("没有找到该对象");
}
} /**
* 查询默认地址
* @return
*/
@GetMapping("/default")
public R<AddressBook> getDefault(){
LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AddressBook::getUserId, BaseContext.getCurrentId());
queryWrapper.eq(AddressBook::getIsDefault, 1); AddressBook addressBook = addressBookService.getOne(queryWrapper);
if(addressBook!=null){
return R.success(addressBook);
}else {
return R.error("没有找到该对象");
}
} /**
* 查询指定用户的全部地址
* @param addressBook
* @return
*/
@GetMapping("/list")
public R<List<AddressBook>> list(AddressBook addressBook){
addressBook.setUserId(BaseContext.getCurrentId());
log.info("addressBook:{}", addressBook); //条件构造器
LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(addressBook.getUserId()!=null, AddressBook::getUserId, addressBook.getUserId());
queryWrapper.orderByDesc(AddressBook::getUpdateTime); return R.success(addressBookService.list(queryWrapper));
} }
最新文章
- Python 2.7 因为少写括号导致的 SyntaxError 错误
- 3D touch 静态、动态设置及进入APP的跳转方式
- Android开发之 Android 的基本组件的概述
- phpeclipse常用快捷键
- 30. leetcode 121. Best Time to Buy and Sell Stock
- Struts2入门到放弃
- 如何使用 window api 转换字符集?
- MongoDB学习笔记(三)
- city-picker插件使用-移动h5三级联动
- pkg-config 详解
- OpenStack-Neutron-VPNaaS-代码
- [删括号][判断可行性的dp]
- centos时区设置
- MongoDB之 复制集搭建
- 【题解】 [HNOI2015]菜肴制作 (拓扑排序)
- 转:Creating a Nested ESXi 5 Environment
- Python 字符串操作函数一
- CA证书扫盲,https讲解
- 处理【由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面】
- js函数预编译