Compare commits

..

No commits in common. "479f0c10794f2d4a6dfd420114208f07137c2208" and "a9d146cba16506ce7e9588a355f6906747ae38fe" have entirely different histories.

5 changed files with 131 additions and 255 deletions

View File

@ -45,7 +45,7 @@ public class OrderInfoVo {
private BigDecimal payFee; private BigDecimal payFee;
@Schema(description = "地址id") @Schema(description = "地址id")
private Long addressId; private Integer addressId;
@Schema(description = "收货人姓名(前端用)") @Schema(description = "收货人姓名(前端用)")
private String realName; private String realName;

View File

@ -6,9 +6,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils; import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import cn.iocoder.yudao.module.member.api.address.AddressApi; import cn.iocoder.yudao.module.member.api.address.AddressApi;
import cn.iocoder.yudao.module.member.api.address.UserAddressApi;
import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO; import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO;
import cn.iocoder.yudao.module.member.api.address.dto.UserAddressRespDTO;
import cn.iocoder.yudao.module.member.api.user.MemberUserApi; import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
import cn.iocoder.yudao.module.shop.constants.PayConstants; import cn.iocoder.yudao.module.shop.constants.PayConstants;
@ -21,21 +19,14 @@ import cn.iocoder.yudao.module.shop.constants.SysConfigConstants;
import cn.iocoder.yudao.module.shop.convert.order.StoreOrderConvert; import cn.iocoder.yudao.module.shop.convert.order.StoreOrderConvert;
import cn.iocoder.yudao.module.shop.convert.order.StoreOrderOneConvert; import cn.iocoder.yudao.module.shop.convert.order.StoreOrderOneConvert;
import cn.iocoder.yudao.module.shop.dal.dataobject.cat.StoreCart; import cn.iocoder.yudao.module.shop.dal.dataobject.cat.StoreCart;
import cn.iocoder.yudao.module.shop.dal.dataobject.express.ShippingTemplatesDO;
import cn.iocoder.yudao.module.shop.dal.dataobject.express.ShippingTemplatesFreeDO;
import cn.iocoder.yudao.module.shop.dal.dataobject.express.ShippingTemplatesRegionDO;
import cn.iocoder.yudao.module.shop.dal.dataobject.order.StoreOrder; import cn.iocoder.yudao.module.shop.dal.dataobject.order.StoreOrder;
import cn.iocoder.yudao.module.shop.dal.dataobject.order.StoreOrderInfo; import cn.iocoder.yudao.module.shop.dal.dataobject.order.StoreOrderInfo;
import cn.iocoder.yudao.module.shop.dal.dataobject.product.StoreProduct; import cn.iocoder.yudao.module.shop.dal.dataobject.product.StoreProduct;
import cn.iocoder.yudao.module.shop.dal.dataobject.product.StoreProductAttrValue; import cn.iocoder.yudao.module.shop.dal.dataobject.product.StoreProductAttrValue;
import cn.iocoder.yudao.module.shop.dal.mysql.express.ShippingTemplatesMapper;
import cn.iocoder.yudao.module.shop.dal.mysql.order.StoreOrderMapper; import cn.iocoder.yudao.module.shop.dal.mysql.order.StoreOrderMapper;
import cn.iocoder.yudao.module.shop.request.order.*; import cn.iocoder.yudao.module.shop.request.order.*;
import cn.iocoder.yudao.module.shop.request.product.StoreProductReplyAddRequest; import cn.iocoder.yudao.module.shop.request.product.StoreProductReplyAddRequest;
import cn.iocoder.yudao.module.shop.response.order.*; import cn.iocoder.yudao.module.shop.response.order.*;
import cn.iocoder.yudao.module.shop.service.express.ShippingTemplatesFreeService;
import cn.iocoder.yudao.module.shop.service.express.ShippingTemplatesRegionService;
import cn.iocoder.yudao.module.shop.service.express.ShippingTemplatesService;
import cn.iocoder.yudao.module.shop.service.order.OrderService; import cn.iocoder.yudao.module.shop.service.order.OrderService;
import cn.iocoder.yudao.module.shop.service.order.StoreOrderInfoService; import cn.iocoder.yudao.module.shop.service.order.StoreOrderInfoService;
import cn.iocoder.yudao.module.shop.service.order.StoreOrderService; import cn.iocoder.yudao.module.shop.service.order.StoreOrderService;
@ -119,18 +110,16 @@ public class OrderServiceImpl implements OrderService {
@Autowired @Autowired
private AddressApi addressApi; private AddressApi addressApi;
@Autowired
private UserAddressApi userAddressApi;
@Autowired // @Autowired
private ShippingTemplatesService shippingTemplatesApi; // private ShippingTemplatesApi shippingTemplatesApi;
//
@Autowired // @Autowired
private ShippingTemplatesFreeService shippingTemplatesFreeApi; // private ShippingTemplatesFreeApi shippingTemplatesFreeApi;
//
@Autowired // @Autowired
private ShippingTemplatesRegionService shippingTemplatesRegionApi; // private ShippingTemplatesRegionApi shippingTemplatesRegionApi;
@Autowired @Autowired
private StoreProductService storeProductService; private StoreProductService storeProductService;
@ -612,116 +601,116 @@ public class OrderServiceImpl implements OrderService {
/** /**
* *
*/ */
private void getFreightFee(OrderInfoVo orderInfoVo, UserAddressRespDTO userAddress) { private void getFreightFee(OrderInfoVo orderInfoVo, AddressRespDTO userAddress) {
// 判断是否满额包邮 type=1按件数 2按重量 3按体积 // // 判断是否满额包邮 type=1按件数 2按重量 3按体积
// 全场满额包邮开关 // // 全场满额包邮开关
String postageSwitchString = apiConfigApi.getConfigKey(SysConfigConstants.STORE_FEE_POSTAGE_SWITCH).toString(); // String postageSwitchString = apiConfigApi.getConfigKey(SysConfigConstants.STORE_FEE_POSTAGE_SWITCH).toString();
// 全场满额包邮金额 // // 全场满额包邮金额
String storeFreePostageString = apiConfigApi.getConfigKey(SysConfigConstants.STORE_FEE_POSTAGE).toString(); // String storeFreePostageString = apiConfigApi.getConfigKey(SysConfigConstants.STORE_FEE_POSTAGE).toString();
BigDecimal storePostage = BigDecimal.ZERO; // BigDecimal storePostage = BigDecimal.ZERO;
if (postageSwitchString.equals("true") && (storeFreePostageString.equals("0") || orderInfoVo.getProTotalFee().compareTo(new BigDecimal(storeFreePostageString)) >= 0)) { // if (postageSwitchString.equals("true") && (storeFreePostageString.equals("0") || orderInfoVo.getProTotalFee().compareTo(new BigDecimal(storeFreePostageString)) >= 0)) {
storePostage = BigDecimal.ZERO; // storePostage = BigDecimal.ZERO;
} else if (ObjectUtil.isNull(userAddress) || userAddress.getCityId() <= 0) { // } else if (ObjectUtil.isNull(userAddress) || userAddress.getCityId() <= 0) {
// 用户地址不存在默认运费为0元 // // 用户地址不存在默认运费为0元
storePostage = BigDecimal.ZERO; // storePostage = BigDecimal.ZERO;
} else { // } else {
// 有用户地址的情况下 // // 有用户地址的情况下
// 运费根据商品计算 // // 运费根据商品计算
Map<Integer, MyRecord> proMap = new HashMap<>(); // Map<Integer, MyRecord> proMap = new HashMap<>();
orderInfoVo.getOrderDetailList().forEach(e -> { // orderInfoVo.getOrderDetailList().forEach(e -> {
Integer proId = e.getProductId(); // Integer proId = e.getProductId();
if (proMap.containsKey(proId)) { // if (proMap.containsKey(proId)) {
MyRecord record = proMap.get(proId); // MyRecord record = proMap.get(proId);
record.set("totalPrice", record.getBigDecimal("totalPrice").add(e.getPrice().multiply(BigDecimal.valueOf(e.getPayNum())))); // record.set("totalPrice", record.getBigDecimal("totalPrice").add(e.getPrice().multiply(BigDecimal.valueOf(e.getPayNum()))));
record.set("totalNum", record.getInt("totalNum") + e.getPayNum()); // record.set("totalNum", record.getInt("totalNum") + e.getPayNum());
BigDecimal weight = e.getWeight().multiply(BigDecimal.valueOf(e.getPayNum())); // BigDecimal weight = e.getWeight().multiply(BigDecimal.valueOf(e.getPayNum()));
record.set("weight", record.getBigDecimal("weight").add(weight)); // record.set("weight", record.getBigDecimal("weight").add(weight));
BigDecimal volume = e.getVolume().multiply(BigDecimal.valueOf(e.getPayNum())); // BigDecimal volume = e.getVolume().multiply(BigDecimal.valueOf(e.getPayNum()));
record.set("volume", record.getBigDecimal("volume").add(volume)); // record.set("volume", record.getBigDecimal("volume").add(volume));
} else { // } else {
MyRecord record = new MyRecord(); // MyRecord record = new MyRecord();
record.set("totalPrice", e.getPrice().multiply(BigDecimal.valueOf(e.getPayNum()))); // record.set("totalPrice", e.getPrice().multiply(BigDecimal.valueOf(e.getPayNum())));
record.set("totalNum", e.getPayNum()); // record.set("totalNum", e.getPayNum());
record.set("tempId", e.getTempId()); // record.set("tempId", e.getTempId());
record.set("proId", proId); // record.set("proId", proId);
BigDecimal weight = e.getWeight().multiply(BigDecimal.valueOf(e.getPayNum())); // BigDecimal weight = e.getWeight().multiply(BigDecimal.valueOf(e.getPayNum()));
record.set("weight", weight); // record.set("weight", weight);
BigDecimal volume = e.getVolume().multiply(BigDecimal.valueOf(e.getPayNum())); // BigDecimal volume = e.getVolume().multiply(BigDecimal.valueOf(e.getPayNum()));
record.set("volume", volume); // record.set("volume", volume);
//
proMap.put(proId, record); // proMap.put(proId, record);
} // }
}); // });
//
// 指定包邮(单品运费模板)> 指定区域配送(单品运费模板) // // 指定包邮(单品运费模板)> 指定区域配送(单品运费模板)
int cityId = userAddress.getCityId(); // int cityId = userAddress.getCityId();
//
for (Map.Entry<Integer, MyRecord> m : proMap.entrySet()) { // for (Map.Entry<Integer, MyRecord> m : proMap.entrySet()) {
MyRecord value = m.getValue(); // MyRecord value = m.getValue();
Integer tempId = value.getInt("tempId"); // Integer tempId = value.getInt("tempId");
ShippingTemplatesDO shippingTemplatesDO = shippingTemplatesApi.getById(tempId); // ShippingTemplatesDO shippingTemplatesDO = shippingTemplatesApi.getById(tempId);
if (shippingTemplatesDO.getAppoint()) {// 指定包邮 // if (shippingTemplatesDO.getAppoint()) {// 指定包邮
// 判断是否在指定包邮区域内 // // 判断是否在指定包邮区域内
// 必须满足件数 + 金额 才能包邮 // // 必须满足件数 + 金额 才能包邮
ShippingTemplatesFreeDO shippingTemplatesFree = shippingTemplatesFreeApi.getByTempIdAndCityId(tempId, cityId); // ShippingTemplatesFreeDO shippingTemplatesFree = shippingTemplatesFreeApi.getByTempIdAndCityId(tempId, cityId);
if (ObjectUtil.isNotNull(shippingTemplatesFree)) { // 在包邮区域内 // if (ObjectUtil.isNotNull(shippingTemplatesFree)) { // 在包邮区域内
BigDecimal freeNum = shippingTemplatesFree.getNumber(); // BigDecimal freeNum = shippingTemplatesFree.getNumber();
BigDecimal multiply = value.getBigDecimal("totalPrice"); // BigDecimal multiply = value.getBigDecimal("totalPrice");
if (new BigDecimal(value.getInt("totalNum")).compareTo(freeNum) >= 0 && multiply.compareTo(shippingTemplatesFree.getPrice()) >= 0) { // if (new BigDecimal(value.getInt("totalNum")).compareTo(freeNum) >= 0 && multiply.compareTo(shippingTemplatesFree.getPrice()) >= 0) {
// 满足件数 + 金额 = 包邮 // // 满足件数 + 金额 = 包邮
continue; // continue;
} // }
} // }
} // }
// 不满足指定包邮条件,走指定区域配送 // // 不满足指定包邮条件,走指定区域配送
ShippingTemplatesRegionDO shippingTemplatesRegion = shippingTemplatesRegionApi.getByTempIdAndCityId(tempId, cityId); // ShippingTemplatesRegionDO shippingTemplatesRegion = shippingTemplatesRegionApi.getByTempIdAndCityId(tempId, cityId);
if (ObjectUtil.isNull(shippingTemplatesRegion)) { // if (ObjectUtil.isNull(shippingTemplatesRegion)) {
throw new ServiceException("计算运费时,未找到全国运费配置"); // throw new ServiceException("计算运费时,未找到全国运费配置");
} // }
//
// 判断计费方式:件数、重量、体积 // // 判断计费方式:件数、重量、体积
switch (shippingTemplatesDO.getType()) { // switch (shippingTemplatesDO.getType()) {
case 1: // 件数 // case 1: // 件数
// 判断件数是否超过首件 // // 判断件数是否超过首件
Integer num = value.getInt("totalNum"); // Integer num = value.getInt("totalNum");
if (num <= shippingTemplatesRegion.getFirst().intValue()) { // if (num <= shippingTemplatesRegion.getFirst().intValue()) {
storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice()); // storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice());
} else {// 超过首件的需要计算续件 // } else {// 超过首件的需要计算续件
int renewalNum = num - shippingTemplatesRegion.getFirst().intValue(); // int renewalNum = num - shippingTemplatesRegion.getFirst().intValue();
// 剩余件数/续件 = 需要计算的续件费用的次数 // // 剩余件数/续件 = 需要计算的续件费用的次数
BigDecimal divide = new BigDecimal(renewalNum).divide(shippingTemplatesRegion.getRenewal(), 0, BigDecimal.ROUND_UP); // BigDecimal divide = new BigDecimal(renewalNum).divide(shippingTemplatesRegion.getRenewal(), 0, BigDecimal.ROUND_UP);
BigDecimal renewalPrice = shippingTemplatesRegion.getRenewalPrice().multiply(divide); // BigDecimal renewalPrice = shippingTemplatesRegion.getRenewalPrice().multiply(divide);
storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice()).add(renewalPrice); // storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice()).add(renewalPrice);
} // }
break; // break;
case 2: // 重量 // case 2: // 重量
BigDecimal weight = value.getBigDecimal("weight"); // BigDecimal weight = value.getBigDecimal("weight");
if (weight.compareTo(shippingTemplatesRegion.getFirst()) <= 0) { // if (weight.compareTo(shippingTemplatesRegion.getFirst()) <= 0) {
storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice()); // storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice());
} else {// 超过首件的需要计算续件 // } else {// 超过首件的需要计算续件
BigDecimal renewalNum = weight.subtract(shippingTemplatesRegion.getFirst()); // BigDecimal renewalNum = weight.subtract(shippingTemplatesRegion.getFirst());
// 剩余件数/续件 = 需要计算的续件费用的次数 // // 剩余件数/续件 = 需要计算的续件费用的次数
BigDecimal divide = renewalNum.divide(shippingTemplatesRegion.getRenewal(), 0, BigDecimal.ROUND_UP); // BigDecimal divide = renewalNum.divide(shippingTemplatesRegion.getRenewal(), 0, BigDecimal.ROUND_UP);
BigDecimal renewalPrice = shippingTemplatesRegion.getRenewalPrice().multiply(divide); // BigDecimal renewalPrice = shippingTemplatesRegion.getRenewalPrice().multiply(divide);
storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice()).add(renewalPrice); // storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice()).add(renewalPrice);
} // }
break; // break;
case 3: // 体积 // case 3: // 体积
BigDecimal volume = value.getBigDecimal("volume"); // BigDecimal volume = value.getBigDecimal("volume");
if (volume.compareTo(shippingTemplatesRegion.getFirst()) <= 0) { // if (volume.compareTo(shippingTemplatesRegion.getFirst()) <= 0) {
storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice()); // storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice());
} else {// 超过首件的需要计算续件 // } else {// 超过首件的需要计算续件
BigDecimal renewalNum = volume.subtract(shippingTemplatesRegion.getFirst()); // BigDecimal renewalNum = volume.subtract(shippingTemplatesRegion.getFirst());
// 剩余件数/续件 = 需要计算的续件费用的次数 // // 剩余件数/续件 = 需要计算的续件费用的次数
BigDecimal divide = renewalNum.divide(shippingTemplatesRegion.getRenewal(), 0, BigDecimal.ROUND_UP); // BigDecimal divide = renewalNum.divide(shippingTemplatesRegion.getRenewal(), 0, BigDecimal.ROUND_UP);
BigDecimal renewalPrice = shippingTemplatesRegion.getRenewalPrice().multiply(divide); // BigDecimal renewalPrice = shippingTemplatesRegion.getRenewalPrice().multiply(divide);
storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice()).add(renewalPrice); // storePostage = storePostage.add(shippingTemplatesRegion.getFirstPrice()).add(renewalPrice);
} // }
break; // break;
} // }
} // }
} // }
orderInfoVo.setFreightFee(storePostage); // orderInfoVo.setFreightFee(storePostage);
} }
/** /**
@ -751,22 +740,22 @@ public class OrderServiceImpl implements OrderService {
int orderProNum = orderInfoVo.getOrderDetailList().stream().mapToInt(OrderInfoDetailVo::getPayNum).sum(); int orderProNum = orderInfoVo.getOrderDetailList().stream().mapToInt(OrderInfoDetailVo::getPayNum).sum();
orderInfoVo.setOrderProNum(orderProNum); orderInfoVo.setOrderProNum(orderProNum);
// 获取默认地址 // 获取默认地址
UserAddressRespDTO userAddress = userAddressApi.getDefaultByUid(user.getId()); AddressRespDTO userAddress = addressApi.getDefaultByUid(user.getId());
if (ObjectUtil.isNotNull(userAddress)) { if (ObjectUtil.isNotNull(userAddress)) {
// 计算运费 // 计算运费
getFreightFee(orderInfoVo, userAddress); getFreightFee(orderInfoVo, userAddress);
orderInfoVo.setAddressId(userAddress.getId()); orderInfoVo.setAddressId(userAddress.getId());
orderInfoVo.setRealName(userAddress.getRealName()); orderInfoVo.setRealName(userAddress.getName());
orderInfoVo.setPhone(userAddress.getPhone()); orderInfoVo.setPhone(userAddress.getMobile());
orderInfoVo.setProvince(userAddress.getProvince()); orderInfoVo.setProvince(userAddress.getProvince());
orderInfoVo.setCity(userAddress.getCity()); orderInfoVo.setCity(userAddress.getCity());
orderInfoVo.setDistrict(userAddress.getDistrict()); orderInfoVo.setDistrict(userAddress.getDistrict());
orderInfoVo.setDetail(userAddress.getDetail()); orderInfoVo.setDetail(userAddress.getDetailAddress());
} else { } else {
orderInfoVo.setFreightFee(BigDecimal.ZERO); orderInfoVo.setFreightFee(BigDecimal.ZERO);
} }
// 实际支付金额 // 实际支付金额
orderInfoVo.setPayFee(orderInfoVo.getProTotalFee().add(BigDecimal.ZERO)); orderInfoVo.setPayFee(orderInfoVo.getProTotalFee().add(orderInfoVo.getFreightFee()));
//用户剩余积分 //用户剩余积分
//用户剩余经验 //用户剩余经验
// 缓存订单 // 缓存订单
@ -1044,7 +1033,7 @@ public class OrderServiceImpl implements OrderService {
// 快递配送,无地址 // 快递配送,无地址
priceResponse.setFreightFee(BigDecimal.ZERO); priceResponse.setFreightFee(BigDecimal.ZERO);
} else {// 快递配送,有地址 } else {// 快递配送,有地址
UserAddressRespDTO userAddress = userAddressApi.getById(request.getAddressId()); AddressRespDTO userAddress = addressApi.getById(request.getAddressId());
if (ObjectUtil.isNull(userAddress)) { if (ObjectUtil.isNull(userAddress)) {
priceResponse.setFreightFee(BigDecimal.ZERO); priceResponse.setFreightFee(BigDecimal.ZERO);
} else { } else {
@ -1052,7 +1041,7 @@ public class OrderServiceImpl implements OrderService {
priceResponse.setFreightFee(orderInfoVo.getFreightFee()); priceResponse.setFreightFee(orderInfoVo.getFreightFee());
} }
} }
// 计算优惠券金额 现在不开启优惠卷功能 // 计算优惠券金额
// if (orderInfoVo.getProTotalFee().compareTo(storeCouponUser.getMoney()) <= 0) { // if (orderInfoVo.getProTotalFee().compareTo(storeCouponUser.getMoney()) <= 0) {
// priceResponse.setCouponFee(orderInfoVo.getProTotalFee()); // priceResponse.setCouponFee(orderInfoVo.getProTotalFee());
@ -1067,7 +1056,6 @@ public class OrderServiceImpl implements OrderService {
// priceResponse.setCouponFee(storeCouponUser.getMoney()); // priceResponse.setCouponFee(storeCouponUser.getMoney());
// } // }
priceResponse.setProTotalFee(orderInfoVo.getProTotalFee());
// 积分部分 // 积分部分
// 使用积分 // 使用积分
@ -1130,13 +1118,13 @@ public class OrderServiceImpl implements OrderService {
String userAddressStr = ""; String userAddressStr = "";
if (orderRequest.getShippingType() == 1) { // 快递配送 if (orderRequest.getShippingType() == 1) { // 快递配送
if (orderRequest.getAddressId() <= 0) throw new ServiceException("请选择收货地址"); if (orderRequest.getAddressId() <= 0) throw new ServiceException("请选择收货地址");
UserAddressRespDTO userAddress = userAddressApi.getById(orderRequest.getAddressId()); AddressRespDTO userAddress = addressApi.getById(orderRequest.getAddressId());
if (ObjectUtil.isNull(userAddress)) { if (ObjectUtil.isNull(userAddress) || userAddress.getDeleted()) {
throw new ServiceException("收货地址有误"); throw new ServiceException("收货地址有误");
} }
orderRequest.setRealName(userAddress.getRealName()); orderRequest.setRealName(userAddress.getName());
orderRequest.setPhone(userAddress.getPhone()); orderRequest.setPhone(userAddress.getMobile());
userAddressStr = userAddress.getProvince() + userAddress.getCity() + userAddress.getDistrict() + userAddress.getDetail(); userAddressStr = userAddress.getProvince() + userAddress.getCity() + userAddress.getDistrict() + userAddress.getDetailAddress();
}else if (orderRequest.getShippingType() == 2) { // 到店自提 }else if (orderRequest.getShippingType() == 2) { // 到店自提
if (StringUtils.isBlank(orderRequest.getRealName()) || StringUtils.isBlank(orderRequest.getPhone())) { if (StringUtils.isBlank(orderRequest.getRealName()) || StringUtils.isBlank(orderRequest.getPhone())) {
throw new ServiceException("请填写姓名和电话"); throw new ServiceException("请填写姓名和电话");

View File

@ -1,21 +0,0 @@
package cn.iocoder.yudao.module.member.api.address;
import cn.iocoder.yudao.module.member.api.address.dto.UserAddressRespDTO;
/**
* @Title:UserAddressApi
* @Description: TODO
* @author: tangqian
* @date: 2023/5/24 14:39
* @version: V1.0.0
*/
public interface UserAddressApi {
UserAddressRespDTO getById(Long addressId);
/**
*
* @return UserAddress
*/
UserAddressRespDTO getDefaultByUid(Long uid);
}

View File

@ -1,41 +0,0 @@
package cn.iocoder.yudao.module.member.api.address.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
/**
* @Title:UserAddressRespDTO
* @Description: TODO
* @author: tangqian
* @date: 2023/5/24 14:46
* @version: V1.0.0
*/
@Data
public class UserAddressRespDTO {
private Long id;
private Long userId;
private String realName;
private String phone;
private String province;
private String city;
private Integer cityId;
private String district;
private String detail;
private Integer postCode;
private String longitude;
private String latitude;
private Boolean isDefault;
}

View File

@ -1,50 +0,0 @@
package cn.iocoder.yudao.module.member.api.address;
import cn.iocoder.yudao.module.member.api.address.dto.AddressRespDTO;
import cn.iocoder.yudao.module.member.api.address.dto.UserAddressRespDTO;
import cn.iocoder.yudao.module.member.convert.address.AddressConvert;
import cn.iocoder.yudao.module.member.dal.dataobject.address.AddressDO;
import cn.iocoder.yudao.module.member.dal.dataobject.address.UserAddress;
import cn.iocoder.yudao.module.member.dal.mysql.address.UserAddressMapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
/**
* @Title:UserAddressApiImpl
* @Description: TODO
* @author: tangqian
* @date: 2023/5/24 14:40
* @version: V1.0.0
*/
@Service
@Validated
public class UserAddressApiImpl implements UserAddressApi{
@Autowired
private UserAddressMapper addressMapper;
@Override
public UserAddressRespDTO getById(Long addressId) {
UserAddressRespDTO respDTO = new UserAddressRespDTO();
LambdaQueryWrapper<UserAddress> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(UserAddress::getId, addressId);
UserAddress userAddress = addressMapper.selectOne(lambdaQueryWrapper);
BeanUtils.copyProperties(userAddress,respDTO);
return respDTO;
}
@Override
public UserAddressRespDTO getDefaultByUid(Long uid) {
UserAddressRespDTO respDTO = new UserAddressRespDTO();
LambdaQueryWrapper<UserAddress> lambdaQueryWrapper = Wrappers.lambdaQuery();
lambdaQueryWrapper.eq(UserAddress::getIsDefault, true);
lambdaQueryWrapper.eq(UserAddress::getUserId, uid);
UserAddress userAddress = addressMapper.selectOne(lambdaQueryWrapper);
if (null != userAddress) {
BeanUtils.copyProperties(userAddress,respDTO);
}
return respDTO;
}
}