|
@@ -30,7 +30,9 @@ import cn.newfeifan.mall.module.pay.enums.order.PayOrderStatusEnum;
|
|
|
import cn.newfeifan.mall.module.product.api.comment.ProductCommentApi;
|
|
|
import cn.newfeifan.mall.module.product.api.comment.dto.ProductCommentCreateReqDTO;
|
|
|
import cn.newfeifan.mall.module.product.dal.dataobject.sku.ProductSkuDO;
|
|
|
+import cn.newfeifan.mall.module.product.dal.dataobject.spu.ProductSpuDO;
|
|
|
import cn.newfeifan.mall.module.product.dal.mysql.sku.ProductSkuMapper;
|
|
|
+import cn.newfeifan.mall.module.product.dal.mysql.spu.ProductSpuMapper;
|
|
|
import cn.newfeifan.mall.module.sale.dal.dataobject.shop.ShopDO;
|
|
|
import cn.newfeifan.mall.module.sale.dal.mysql.shop.ShopMapper;
|
|
|
import cn.newfeifan.mall.module.system.service.user.AdminUserService;
|
|
@@ -109,6 +111,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
|
|
|
@Resource
|
|
|
private ProductSkuMapper productSkuMapper;//add by ben 20240314
|
|
|
+ @Resource
|
|
|
+ private ProductSpuMapper productSpuMapper;
|
|
|
|
|
|
@Resource
|
|
|
private ShopMapper shopMapper;//add by ben 20240314
|
|
@@ -221,7 +225,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
@Override
|
|
|
public AppTradeOrderSettlementRespVO settlementOrder(Long userId, AppTradeOrderSettlementReqVO settlementReqVO) {
|
|
|
// 1. 获得收货地址
|
|
|
- MemberAddressRespDTO address = getAddress(userId, settlementReqVO.getAddressId(),settlementReqVO.getAddressType());
|
|
|
+ MemberAddressRespDTO address = getAddress(userId, settlementReqVO.getAddressId(), settlementReqVO.getAddressType());
|
|
|
if (address != null) {
|
|
|
settlementReqVO.setAddressId(address.getId());
|
|
|
}
|
|
@@ -276,7 +280,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
}
|
|
|
|
|
|
//如果是虚拟商品,则用自己的编写的程序返回
|
|
|
- if(Objects.equals(settlementReqVO.getDeliveryType(), VIRTUAL_PRODUCT.getType())){
|
|
|
+ if (Objects.equals(settlementReqVO.getDeliveryType(), VIRTUAL_PRODUCT.getType())) {
|
|
|
return getSettlement(settlementReqVO.getItems());
|
|
|
}
|
|
|
|
|
@@ -355,10 +359,11 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
|
|
|
/**
|
|
|
* 虚拟商品自走程序
|
|
|
+ *
|
|
|
* @param items 商品项数组
|
|
|
* @return AppTradeOrderSettlementRespVO
|
|
|
*/
|
|
|
- private AppTradeOrderSettlementRespVO getSettlement(List<AppTradeOrderSettlementReqVO.Item> items){
|
|
|
+ private AppTradeOrderSettlementRespVO getSettlement(List<AppTradeOrderSettlementReqVO.Item> items) {
|
|
|
|
|
|
// 4. 查询每个sku对应的店铺ID,并传回页面
|
|
|
List<AppTradeOrderSettlementReqVO.Item> productSkuList = items;
|
|
@@ -429,6 +434,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
ProductSkuDO productSkuDO = productSkuMapper.selectById(orderItems.get(0).getSkuId());
|
|
|
shopCalculateRespBO.setVirtualPayPrice(productSkuDO.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
|
|
|
shopCalculateRespBO.setVirtualTotalPrice(productSkuDO.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
|
|
|
+ shopCalculateRespBO.setPayPrice((int)productSkuDO.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
|
|
|
+ shopCalculateRespBO.setTotalPrice((int)productSkuDO.getHighPrecisionPrice().doubleValue() * orderItems.get(0).getCount());
|
|
|
}
|
|
|
|
|
|
//把重复的收货地址置为空
|
|
@@ -445,16 +452,16 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
/**
|
|
|
* 获得用户地址
|
|
|
*
|
|
|
- * @param userId 用户编号
|
|
|
- * @param addressId 地址编号
|
|
|
+ * @param userId 用户编号
|
|
|
+ * @param addressId 地址编号
|
|
|
* @param addressType 地址类别
|
|
|
* @return 地址
|
|
|
*/
|
|
|
- private MemberAddressRespDTO getAddress(Long userId, Long addressId ,Integer addressType) {
|
|
|
+ private MemberAddressRespDTO getAddress(Long userId, Long addressId, Integer addressType) {
|
|
|
if (addressId != null) {
|
|
|
- return addressApi.getAddress(addressId, userId,addressType);
|
|
|
+ return addressApi.getAddress(addressId, userId, addressType);
|
|
|
}
|
|
|
- return addressApi.getDefaultAddress(userId,addressType);
|
|
|
+ return addressApi.getDefaultAddress(userId, addressType);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -738,7 +745,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
Long tradeOrderId = order.getId();
|
|
|
String OrderNum = order.getNo();
|
|
|
Long payIntegral = order.getPayIntegral().longValue();//每个订单使用的积分
|
|
|
- integralService.updateUserIntegral(userId,userId, CaclEnum.ORDER_PAY_INTEGRAL, payIntegral * (-1), 0L, tradeOrderId, OrderNum);
|
|
|
+ integralService.updateUserIntegral(userId, userId, CaclEnum.ORDER_PAY_INTEGRAL, payIntegral * (-1), 0L, tradeOrderId, OrderNum);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -813,9 +820,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
|
|
|
/**
|
|
|
* 把商品的推广费总额,转换为消费者本人(直推人)、或消费者的推荐人 获得的冻结积分
|
|
|
- *
|
|
|
* @param promotionExpenses 商品的推广费总额
|
|
|
- * @param grossProfitPerc 推荐人/消费者本人额度 百分比
|
|
|
+ * @param grossProfitPerc 推荐人/消费者本人额度 百分比
|
|
|
* @return 输入推广费,对应的直推人获得的冻结积分
|
|
|
*/
|
|
|
public static Long promotionExpenses2GrossProfitAncestorQuota(
|
|
@@ -866,15 +872,15 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
// 物流信息
|
|
|
order.setDeliveryType(createReqVO.getDeliveryType());
|
|
|
if (Objects.equals(createReqVO.getDeliveryType(), DeliveryTypeEnum.EXPRESS.getType())) {
|
|
|
- MemberAddressRespDTO address = addressApi.getAddress(createReqVO.getAddressId(), userId,1);
|
|
|
+ MemberAddressRespDTO address = addressApi.getAddress(createReqVO.getAddressId(), userId, 1);
|
|
|
Assert.notNull(address, "地址({}) 不能为空", createReqVO.getAddressId()); // 价格计算时,已经计算
|
|
|
order.setReceiverName(address.getName()).setReceiverMobile(address.getMobile())
|
|
|
.setReceiverAreaId(address.getAreaId()).setReceiverDetailAddress(address.getDetailAddress());
|
|
|
} else if (Objects.equals(createReqVO.getDeliveryType(), DeliveryTypeEnum.PICK_UP.getType())) {
|
|
|
order.setReceiverName(createReqVO.getReceiverName()).setReceiverMobile(createReqVO.getReceiverMobile());
|
|
|
order.setPickUpVerifyCode(RandomUtil.randomNumbers(8)); // 随机一个核销码,长度为 8 位
|
|
|
- } else if(Objects.equals(createReqVO.getDeliveryType(), VIRTUAL_PRODUCT.getType())){
|
|
|
- MemberAddressRespDTO address = addressApi.getAddress(createReqVO.getAddressId(), userId,2);
|
|
|
+ } else if (Objects.equals(createReqVO.getDeliveryType(), VIRTUAL_PRODUCT.getType())) {
|
|
|
+ MemberAddressRespDTO address = addressApi.getAddress(createReqVO.getAddressId(), userId, 2);
|
|
|
order.setReceiverName(address.getName()).setReceiverMobile(address.getMobile())
|
|
|
.setReceiverDetailAddress(address.getDetailAddress());
|
|
|
}
|
|
@@ -921,8 +927,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
/**
|
|
|
* 创建子支付订单
|
|
|
*
|
|
|
- * @param order 订单
|
|
|
- * @param orderItems 订单详情
|
|
|
+ * @param order 订单
|
|
|
+ * @param orderItems 订单详情
|
|
|
* @param parentPayOrderId 父级支付订单id
|
|
|
* @param expireTime 支付过期时间
|
|
|
* @return 支付订单ID
|
|
@@ -1100,12 +1106,12 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
|
|
|
String OrderNum = order.getNo();
|
|
|
//修改购物者本人获得的冻结积分
|
|
|
- integralService.updateUserIntegral(tradeOrderDO.getUserId(),tradeOrderDO.getUserId(),CaclEnum.ORDER_PAY_INTEGRAL_CONSUMER, 0L, totalFreezeAmount, tradeOrderId, OrderNum);
|
|
|
+ integralService.updateUserIntegral(tradeOrderDO.getUserId(), tradeOrderDO.getUserId(), CaclEnum.ORDER_PAY_INTEGRAL_CONSUMER, 0L, totalFreezeAmount, tradeOrderId, OrderNum);
|
|
|
|
|
|
//修改推荐人(上级)获得的冻结积分
|
|
|
- integralService.updateUserIntegral(tradeOrderDO.getUserId(),ancesterUserId, CaclEnum.ORDER_PAY_INTEGRAL_ANCESTER, 0L, totalAncestorFreezeAmount, tradeOrderId, OrderNum);
|
|
|
+ integralService.updateUserIntegral(tradeOrderDO.getUserId(), ancesterUserId, CaclEnum.ORDER_PAY_INTEGRAL_ANCESTER, 0L, totalAncestorFreezeAmount, tradeOrderId, OrderNum);
|
|
|
log.warn("[TradeOrderUpdateServiceImpl.updateOrderPaid]$$$:[tradeOrderId({}),ancesterUserId({}),totalAncestorFreezeAmount({})]" + new Date(),
|
|
|
- tradeOrderId,ancesterUserId, totalAncestorFreezeAmount);
|
|
|
+ tradeOrderId, ancesterUserId, totalAncestorFreezeAmount);
|
|
|
|
|
|
allTradeOrderTotalFreezeAmount += totalFreezeAmount;//用户获得总的待确权冻结积分
|
|
|
|
|
@@ -1404,7 +1410,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
String orderNum = order.getNo();
|
|
|
//如果订单有使用积分,则退回积分
|
|
|
if (payIntegral > 0) {
|
|
|
- integralService.updateUserIntegral(userId,userId, CaclEnum.ORDER_CANCEL_BY_USER_REFUND_INTEGRAL, payIntegral, 0L, tradeOrderId, orderNum);
|
|
|
+ integralService.updateUserIntegral(userId, userId, CaclEnum.ORDER_CANCEL_BY_USER_REFUND_INTEGRAL, payIntegral, 0L, tradeOrderId, orderNum);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1436,7 +1442,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
|
|
Long userId = order.getUserId();
|
|
|
//如果订单有使用积分,则退回积分
|
|
|
if (payIntegral > 0) {
|
|
|
- integralService.updateUserIntegral(userId, userId,CaclEnum.ORDER_CANCEL_BY_SYSTEM_REFUND_INTEGRAL, payIntegral, 0L, tradeOrderId, orderNum);
|
|
|
+ integralService.updateUserIntegral(userId, userId, CaclEnum.ORDER_CANCEL_BY_SYSTEM_REFUND_INTEGRAL, payIntegral, 0L, tradeOrderId, orderNum);
|
|
|
}
|
|
|
|
|
|
count++;
|