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<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 void addAddress(AddressInfoDto addressInfoDto) {
|
MallAddressInfo addressInfo = MallAddressInfoConversion.INSTANCE.dtoToEntity(addressInfoDto);
|
|
MallMember member = LoginUserUtil.getLoginUser();
|
Long memberId = member.getId();
|
List<MallAddressInfo> 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);
|
}
|
}
|