修改新增时,如选了默认地址,先清除当前默认地址

This commit is contained in:
wuchunlei
2024-05-14 17:53:46 +08:00
parent 4ccd2a670c
commit dd10365ca5
4 changed files with 24 additions and 23 deletions

View File

@@ -41,9 +41,8 @@ public class UserAddressController {
*/
@RequestMapping("/save")
public R save(@RequestBody UserAddress userAddress) {
// 判断是否已经有默认的地址了
if ((userAddressService.getUserDefaultAddressCount(userAddress.getUserId()) >= 1) && userAddress.getIsDefault() == 1) {
return R.error("已经存在默认地址");
if (userAddress.getIsDefault()==1){
userAddressService.clearUserDefaultAddress(userAddress.getUserId());
}
if(userAddress.getRegionCode()==null||userAddress.getRegionCode().equals("")){
return R.error("地址异常添加失败!");
@@ -58,14 +57,8 @@ public class UserAddressController {
@RequestMapping("/update")
public R update(@RequestBody UserAddress userAddress) {
LambdaQueryWrapper<UserAddress> wrapper = new LambdaQueryWrapper();
wrapper.eq(UserAddress::getId,userAddress.getId());
wrapper.eq(UserAddress::getIsDefault,1);
UserAddress ua = userAddressService.getOne(wrapper);
if (ua == null){
if ((userAddressService.getUserDefaultAddressCount(userAddress.getUserId()) >= 1) && userAddress.getIsDefault() == 1) {
return R.error("已经存在默认地址");
}
if (userAddress.getIsDefault()==1){
userAddressService.clearUserDefaultAddress(userAddress.getUserId());
}
String str = userAddress.getConsigneeName()+userAddress.getConsigneePhone()+userAddress.getDetailAddress();
if(str.contains("+")||str.contains("&")){

View File

@@ -12,6 +12,6 @@ public interface UserAddressService extends IService<UserAddress> {
UserAddressVo getAddressName(UserAddressVo vo, String regionCode);
int getUserDefaultAddressCount(Integer userId);
boolean clearUserDefaultAddress(Integer userId);
}

View File

@@ -63,10 +63,12 @@ public class UserAddressServiceImpl extends ServiceImpl<UserAddressDao, UserAddr
return vo;
}
public int getUserDefaultAddressCount(Integer userId) {
public boolean clearUserDefaultAddress(Integer userId) {
QueryWrapper<UserAddress> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_id", userId);
queryWrapper.eq("is_default", 1);
return this.count(queryWrapper);
UserAddress userAddress = this.getOne(queryWrapper);
userAddress.setIsDefault(0);
return this.updateById(userAddress);
}
}