Administrator
2026-06-12 e28f4db774879138d947b32f7e9f1ec8e5e56077
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAddressInfoServiceImpl.java
@@ -3,19 +3,31 @@
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.common.utils.RedisUtils;
import cc.mrbird.febs.mall.conversion.MallAddressInfoConversion;
import cc.mrbird.febs.mall.dto.AddressInfoDto;
import cc.mrbird.febs.mall.dto.ApiIdentifyAddressDto;
import cc.mrbird.febs.mall.entity.MallAddressInfo;
import cc.mrbird.febs.mall.entity.MallAddressWorld;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.mapper.MallAddressInfoMapper;
import cc.mrbird.febs.mall.mapper.MallAddressWorldMapper;
import cc.mrbird.febs.mall.service.IApiMallAddressInfoService;
import cc.mrbird.febs.mall.vo.AddressInfoVo;
import cc.mrbird.febs.pay.util.WechatConfigure;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import okhttp3.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.Date;
import java.util.List;
@@ -28,64 +40,63 @@
@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);
    @Autowired
    private RedisUtils redisUtils;
    @Autowired
    private MallAddressWorldMapper mallAddressWorldMapper;
        return MallAddressInfoConversion.INSTANCE.entityListToVos(addressInfos);
    @Override
    public FebsResponse findAddressInfo() {
        Long id = LoginUserUtil.getLoginUser().getId();
        AddressInfoVo addressInfoVo = new AddressInfoVo();
        List<MallAddressInfo> mallAddressInfos = this.baseMapper.selectList(
                Wrappers.lambdaQuery(MallAddressInfo.class)
                        .eq(MallAddressInfo::getMemberId, id)
        );
        if (CollUtil.isNotEmpty(mallAddressInfos)){
            MallAddressInfo mallAddressInfo = mallAddressInfos.get(0);
            addressInfoVo.setId(mallAddressInfo.getId());
            addressInfoVo.setName(mallAddressInfo.getName());
            addressInfoVo.setFirstName(mallAddressInfo.getFristName());
            addressInfoVo.setAddress(mallAddressInfo.getAddress());
            addressInfoVo.setArea(mallAddressInfo.getArea());
            addressInfoVo.setPostcode(mallAddressInfo.getPostcode());
            addressInfoVo.setPhone(mallAddressInfo.getPhone());
            addressInfoVo.setCity(mallAddressInfo.getCity());
            addressInfoVo.setProvince(mallAddressInfo.getProvince());
            addressInfoVo.setCountry(mallAddressInfo.getCountry());
        }
        return new FebsResponse().success().data(addressInfoVo);
    }
    @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("地址不存在");
        }
    public FebsResponse modifyAddress(AddressInfoDto addressInfoDto) {
        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);
        }
        this.baseMapper.update(
                null,
                Wrappers.lambdaUpdate(MallAddressInfo.class)
                        .set(MallAddressInfo::getName, addressInfoDto.getName())
                        .set(MallAddressInfo::getFristName, addressInfoDto.getFirstName())
                        .set(MallAddressInfo::getAddress, addressInfoDto.getAddress())
                        .set(MallAddressInfo::getArea, addressInfoDto.getArea())
                        .set(MallAddressInfo::getPostcode, addressInfoDto.getPostcode())
                        .set(MallAddressInfo::getPhone, addressInfoDto.getPhone())
                        .set(MallAddressInfo::getCity, addressInfoDto.getCity())
                        .set(MallAddressInfo::getProvince, addressInfoDto.getProvince())
                        .set(MallAddressInfo::getCountry, addressInfoDto.getCountry())
                        .eq(MallAddressInfo::getMemberId, memberId)
        );
        addressInfo.setUpdatedTime(new Date());
        this.baseMapper.updateById(addressInfo);
        return new FebsResponse().success();
    }
    @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);
    }
}