100 lines
3.3 KiB
Java
100 lines
3.3 KiB
Java
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<UserAddress> queryWrapper = new QueryWrapper<>();
|
|
queryWrapper.eq("user_id", userId);
|
|
queryWrapper.orderByDesc("is_default");
|
|
List<UserAddress> userAddressList = userAddressService.list(queryWrapper);
|
|
List<UserAddressVo> 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);
|
|
}
|
|
}
|