管理地址时,更新默认地址

This commit is contained in:
wuchunlei
2025-06-30 11:17:09 +08:00
parent 90283fb0ce
commit 3299d71e84
3 changed files with 19 additions and 5 deletions

View File

@@ -8,6 +8,7 @@ import com.peanut.modules.book.service.UserAddressService;
import com.peanut.modules.book.vo.UserAddressVo; import com.peanut.modules.book.vo.UserAddressVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList; import java.util.ArrayList;
@@ -43,9 +44,8 @@ public class UserAddressController {
*/ */
@RequestMapping("/save") @RequestMapping("/save")
public R save(@RequestBody UserAddress userAddress) { public R save(@RequestBody UserAddress userAddress) {
// 判断是否已经有默认的地址了 if (userAddress.getIsDefault()==1){
if ((userAddressService.getUserDefaultAddressCount(userAddress.getUserId()) >= 1) && userAddress.getIsDefault() == 1) { userAddressService.clearUserDefaultAddress(userAddress.getUserId());
return R.error("已经存在默认地址");
} }
if(userAddress.getRegionCode()==null||userAddress.getRegionCode().equals("")){ if(userAddress.getRegionCode()==null||userAddress.getRegionCode().equals("")){
return R.error("地址异常添加失败!"); return R.error("地址异常添加失败!");
@@ -59,9 +59,10 @@ public class UserAddressController {
} }
@RequestMapping("/update") @RequestMapping("/update")
@Transactional
public R update(@RequestBody UserAddress userAddress) { public R update(@RequestBody UserAddress userAddress) {
if ((userAddressService.getUserDefaultAddressCount(userAddress.getUserId()) >= 1) && userAddress.getIsDefault() == 1) { if (userAddress.getIsDefault()==1){
return R.error("已经存在默认地址"); userAddressService.clearUserDefaultAddress(userAddress.getUserId());
} }
String str = userAddress.getConsigneeName()+userAddress.getConsigneePhone()+userAddress.getDetailAddress(); String str = userAddress.getConsigneeName()+userAddress.getConsigneePhone()+userAddress.getDetailAddress();
if(str.contains("+")||str.contains("&")){ if(str.contains("+")||str.contains("&")){

View File

@@ -19,5 +19,7 @@ public interface UserAddressService extends IService<UserAddress> {
UserAddressVo getAddressName(UserAddressVo vo, String regionCode); UserAddressVo getAddressName(UserAddressVo vo, String regionCode);
int getUserDefaultAddressCount(Integer userId); int getUserDefaultAddressCount(Integer userId);
void clearUserDefaultAddress(Integer userId);
} }

View File

@@ -88,4 +88,15 @@ public class UserAddressServiceImpl extends ServiceImpl<UserAddressDao, UserAddr
queryWrapper.eq("is_default", 1); queryWrapper.eq("is_default", 1);
return this.count(queryWrapper); return this.count(queryWrapper);
} }
public void clearUserDefaultAddress(Integer userId) {
QueryWrapper<UserAddress> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_id", userId);
queryWrapper.eq("is_default", 1);
UserAddress userAddress = this.getOne(queryWrapper);
if (userAddress != null) {
userAddress.setIsDefault(0);
this.updateById(userAddress);
}
}
} }