package com.peanut.modules.book.controller; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.peanut.common.utils.R; import com.peanut.modules.book.entity.UserAddress; import com.peanut.modules.book.service.UserAddressService; import com.peanut.modules.book.vo.UserAddressVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; @Slf4j @RestController @RequestMapping("book/userAddress") public class UserAddressController { @Autowired private UserAddressService userAddressService; /** * 获取地址信息 * * @param addressId address ID * @return R */ @RequestMapping("/info/{addressId}") public R info(@PathVariable("addressId") Integer addressId) { UserAddress userAddress = userAddressService.getById(addressId); UserAddressVo vo = new UserAddressVo(); BeanUtil.copyProperties(userAddress, vo); vo = userAddressService.getAddressName(vo, userAddress.getRegionCode()); return R.ok().put("result", vo); } /** * 保存 * * @param userAddress 用户地址 * @return R */ @RequestMapping("/save") public R save(@RequestBody UserAddress userAddress) { // 判断是否已经有默认的地址了 if ((userAddressService.getUserDefaultAddressCount(userAddress.getUserId()) >= 1) && userAddress.getIsDefault() == 1) { return R.error("已经存在默认地址"); } if(userAddress.getRegionCode()==null||userAddress.getRegionCode().equals("")){ return R.error("地址异常添加失败!"); } userAddressService.save(userAddress); return R.ok(); } @RequestMapping("/update") public R update(@RequestBody UserAddress userAddress) { if ((userAddressService.getUserDefaultAddressCount(userAddress.getUserId()) >= 1) && userAddress.getIsDefault() == 1) { return R.error("已经存在默认地址"); } userAddressService.updateById(userAddress); return R.ok(); } /** * 删除用户地址 * * @param id address ID * @return R */ @RequestMapping(value = "/delete", method = RequestMethod.GET) public R delete(@RequestParam("id") Integer id) { userAddressService.removeById(id); return R.ok(); } /** * 获取用户收货地址列表 * * @param userId 用户 ID * @return R */ @RequestMapping("/getUserAddress") public R getUserAddress(@RequestParam("userId") Integer userId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("user_id", userId); queryWrapper.orderByDesc("is_default"); List userAddressList = userAddressService.list(queryWrapper); List result = new ArrayList<>(); for (UserAddress userAddress : userAddressList) { UserAddressVo vo = new UserAddressVo(); BeanUtil.copyProperties(userAddress, vo); vo = userAddressService.getAddressName(vo, userAddress.getRegionCode()); result.add(vo); } return R.ok().put("list", result); } }