package cc.mrbird.febs.mall.service.impl; 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 implements IApiMallAddressInfoService { @Override public List findAddressInfoList() { Long memberId = LoginUserUtil.getLoginUser().getId(); List addressInfos = this.baseMapper.selectAddressInfoListByMemberId(memberId); return MallAddressInfoConversion.INSTANCE.entityListToVos(addressInfos); } @Override public void addAddress(AddressInfoDto addressInfoDto) { MallAddressInfo addressInfo = MallAddressInfoConversion.INSTANCE.dtoToEntity(addressInfoDto); MallMember member = LoginUserUtil.getLoginUser(); Long memberId = member.getId(); List existAddress = this.baseMapper.selectList(null); 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); } @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); } }