Files
nuttyreading-java/src/main/java/com/peanut/modules/book/controller/UserAddressController.java
wangjinlei 57641b2e2a log-slf4j
2023-11-22 10:45:21 +08:00

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);
}
}