地址管理

/**
* 地址簿管理
*/
@Slf4j
@RestController
@RequestMapping("/addressBook")
public class AddressBookController {
@Autowired
private AddressBookService addressBookService;
/**
* 新增
*/
@PostMapping
public Result<AddressBook> save(@RequestBody AddressBook addressBook) {
Long userId = BaseContext.getCurrentId();
/*
* 这里留了个坑,我把数据库create_Id和更新时间等字段改成了非空了,算是遗留Bug
* 不知道为什么BaseContext拿不到用户Id数据,所以拿不到create_Id
*
* */
addressBook.setUserId(userId);
log.info("addressBook:{}", addressBook);
addressBookService.save(addressBook);
return Result.success(addressBook);
}
/**
* 设置默认地址
*/
@PutMapping("default")
public Result<AddressBook> setDefault(@RequestBody AddressBook addressBook) {
log.info("addressBook:{}", addressBook);
LambdaUpdateWrapper<AddressBook> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(AddressBook::getUserId, BaseContext.getCurrentId());
wrapper.set(AddressBook::getIsDefault, 0);
//SQL:update address_book set is_default = 0 where user_id = ?
addressBookService.update(wrapper);
addressBook.setIsDefault(1);
//SQL:update address_book set is_default = 1 where id = ?
addressBookService.updateById(addressBook);
return Result.success(addressBook);
}
/**
* 根据id查询地址
*/
@GetMapping("/{id}")
public Result get(@PathVariable Long id) {
AddressBook addressBook = addressBookService.getById(id);
if (addressBook != null) {
return Result.success(addressBook);
} else {
return Result.error("没有找到该对象");
}
}
/**
* 查询默认地址
*/
@GetMapping("default")
public Result<AddressBook> getDefault() {
LambdaQueryWrapper<AddressBook> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AddressBook::getUserId, BaseContext.getCurrentId());
queryWrapp