| package cc.mrbird.febs.mall.service.impl; | 
|   | 
| import cc.mrbird.febs.common.entity.FebsResponse; | 
| import cc.mrbird.febs.common.exception.FebsException; | 
| import cc.mrbird.febs.common.utils.LoginUserUtil; | 
| import cc.mrbird.febs.mall.conversion.MallAddressInfoConversion; | 
| import cc.mrbird.febs.mall.dto.AddressInfoDto; | 
| import cc.mrbird.febs.mall.entity.MallAddressInfo; | 
| import cc.mrbird.febs.mall.entity.MallMember; | 
| import cc.mrbird.febs.mall.mapper.MallAddressInfoMapper; | 
| import cc.mrbird.febs.mall.service.IApiMallAddressInfoService; | 
| import cc.mrbird.febs.mall.vo.AddressInfoVo; | 
| import cn.hutool.core.collection.CollUtil; | 
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
| import lombok.RequiredArgsConstructor; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.springframework.stereotype.Service; | 
|   | 
| import java.util.Date; | 
| import java.util.List; | 
|   | 
| /** | 
|  * @author wzy | 
|  * @date 2021-09-18 | 
|  **/ | 
| @Slf4j | 
| @Service | 
| @RequiredArgsConstructor | 
| public class ApiMallAddressInfoServiceImpl extends ServiceImpl<MallAddressInfoMapper, MallAddressInfo> implements IApiMallAddressInfoService { | 
|   | 
|     @Override | 
|     public List<AddressInfoVo> findAddressInfoList() { | 
|         Long memberId = LoginUserUtil.getLoginUser().getId(); | 
|         List<MallAddressInfo> addressInfos = this.baseMapper.selectAddressInfoListByMemberId(memberId); | 
|   | 
|         return MallAddressInfoConversion.INSTANCE.entityListToVos(addressInfos); | 
|     } | 
|   | 
|     @Override | 
|     public FebsResponse addAddress(AddressInfoDto addressInfoDto) { | 
|         MallAddressInfo addressInfo = MallAddressInfoConversion.INSTANCE.dtoToEntity(addressInfoDto); | 
|   | 
|         MallMember member = LoginUserUtil.getLoginUser(); | 
|         Long memberId = member.getId(); | 
|         List<MallAddressInfo> existAddress = this.baseMapper.selectAddressInfoListByMemberId(memberId); | 
|         if (CollUtil.isEmpty(existAddress)) { | 
|             addressInfo.setIsDefault(MallAddressInfo.IS_DEFAULT_Y); | 
|         } else { | 
|             if (MallAddressInfo.IS_DEFAULT_Y.equals(addressInfoDto.getIsDefault())) { | 
|                 this.baseMapper.updateIsDefault(MallAddressInfo.IS_DEFAULT_N, memberId, null); | 
|             } | 
|         } | 
|   | 
|         addressInfo.setMemberId(memberId); | 
|         addressInfo.setCreatedBy(member.getPhone()); | 
|         addressInfo.setUpdatedBy(member.getPhone()); | 
|         this.baseMapper.insert(addressInfo); | 
|   | 
|         return new FebsResponse().success().data(addressInfo.getId()); | 
|     } | 
|   | 
|     @Override | 
|     public void modifyAddress(AddressInfoDto addressInfoDto) { | 
|         MallAddressInfo existAddress = this.baseMapper.selectById(addressInfoDto.getId()); | 
|         if (existAddress == null) { | 
|             throw new FebsException("地址不存在"); | 
|         } | 
|   | 
|         Long memberId = LoginUserUtil.getLoginUser().getId(); | 
|         MallAddressInfo addressInfo = MallAddressInfoConversion.INSTANCE.dtoToEntity(addressInfoDto); | 
|         if (MallAddressInfo.IS_DEFAULT_Y.equals(addressInfoDto.getIsDefault())) { | 
|             this.baseMapper.updateIsDefault(MallAddressInfo.IS_DEFAULT_N, memberId, null); | 
|         } | 
|   | 
|         addressInfo.setUpdatedTime(new Date()); | 
|         this.baseMapper.updateById(addressInfo); | 
|     } | 
|   | 
|     @Override | 
|     public void setDefaultAddress(Long id) { | 
|         MallAddressInfo addressInfo = this.baseMapper.selectById(id); | 
|         if (addressInfo == null) { | 
|             throw new FebsException("地址不存在"); | 
|         } | 
|   | 
|         MallMember member = LoginUserUtil.getLoginUser(); | 
|         this.baseMapper.updateIsDefault(MallAddressInfo.IS_DEFAULT_N, member.getId(), null); | 
|   | 
|         this.baseMapper.updateIsDefault(MallAddressInfo.IS_DEFAULT_Y, member.getId(), id); | 
|     } | 
| } |