|
@@ -51,6 +51,7 @@ import com.cyksj.service.coupon.CouponFontService;
|
|
|
import com.cyksj.service.distribute.equipment.EquipmentDistributeService;
|
|
import com.cyksj.service.distribute.equipment.EquipmentDistributeService;
|
|
|
import com.cyksj.service.giftcard.GiftCardOrderUseRecordService;
|
|
import com.cyksj.service.giftcard.GiftCardOrderUseRecordService;
|
|
|
import com.cyksj.service.mange.CmsOrderDonService;
|
|
import com.cyksj.service.mange.CmsOrderDonService;
|
|
|
|
|
+import com.cyksj.service.mange.MirrorUserCleatService;
|
|
|
import com.cyksj.service.mange.stock.GoodsDonStockService;
|
|
import com.cyksj.service.mange.stock.GoodsDonStockService;
|
|
|
import com.cyksj.service.market.MarketFrontService;
|
|
import com.cyksj.service.market.MarketFrontService;
|
|
|
import com.cyksj.service.order.OrderCommonService;
|
|
import com.cyksj.service.order.OrderCommonService;
|
|
@@ -193,6 +194,8 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
|
|
|
|
|
|
|
|
private final AccountMapper accountMapper;
|
|
private final AccountMapper accountMapper;
|
|
|
|
|
|
|
|
|
|
+ private final MirrorUserCleatService mirrorUserCleatService;
|
|
|
|
|
+
|
|
|
private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
|
|
private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -358,10 +361,13 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
//调用第三方接口退款
|
|
//调用第三方接口退款
|
|
|
- String outNo = orderRefundService.centerRefund(refundReq, orderDon);
|
|
|
|
|
|
|
+ String outNo = StrUtil.EMPTY;
|
|
|
|
|
+ if (refundReq.getRefundMoney() != null && refundReq.getRefundMoney().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
|
+ outNo = orderRefundService.centerRefund(refundReq, orderDon);
|
|
|
|
|
+ }
|
|
|
orderDon.setRefundDesc(refundReq.getRefundDesc());
|
|
orderDon.setRefundDesc(refundReq.getRefundDesc());
|
|
|
//记录退款信息
|
|
//记录退款信息
|
|
|
- commonRefund(orderDon, refundReq.getRefundMoney(), refundReq.getOperator(), goodsDon, sku, outNo, refundType, refundReq.getIsOnly(), refundReq.getRefundBalance(), refundReq.getChatImg());
|
|
|
|
|
|
|
+ commonRefund(orderDon, refundReq.getRefundMoney(), refundReq.getOperator(), goodsDon, sku, outNo, refundType, refundReq.getIsOnly(), refundReq.getRefundBalance(), refundReq.getChatImg(), refundReq.getDeductBalance());
|
|
|
//修改订单状态
|
|
//修改订单状态
|
|
|
orderDon.setStatus(OrderDon.Status.refund);
|
|
orderDon.setStatus(OrderDon.Status.refund);
|
|
|
orderDonMapper.updateById(orderDon);
|
|
orderDonMapper.updateById(orderDon);
|
|
@@ -690,11 +696,6 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
|
|
|
relation.setNewRelationId(newRelation.getId());
|
|
relation.setNewRelationId(newRelation.getId());
|
|
|
relationClearService.clearTicket(relation, source);
|
|
relationClearService.clearTicket(relation, source);
|
|
|
|
|
|
|
|
- //是否是GPT镜像规格
|
|
|
|
|
- if (orderDon.getOrderType() == 1) {
|
|
|
|
|
- delMirrorUser(orderDon.getGoodsId(), orderDon.getRelationId());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
//奈飞车票
|
|
//奈飞车票
|
|
|
if (orderDon.getGoodsId() == 1) {
|
|
if (orderDon.getGoodsId() == 1) {
|
|
|
User user = userMapper.selectById(newRelation.getUserId());
|
|
User user = userMapper.selectById(newRelation.getUserId());
|
|
@@ -911,7 +912,7 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
|
|
|
/**
|
|
/**
|
|
|
* 退款后 处理关联
|
|
* 退款后 处理关联
|
|
|
*/
|
|
*/
|
|
|
- public void commonRefund(OrderDon orderDon, BigDecimal refundMoney, String operator, GoodsDon goodsDon, GoodsDonSku sku, String outNo, String refundType, Boolean isOnly, BigDecimal refundBalance, String chatImg) {
|
|
|
|
|
|
|
+ public void commonRefund(OrderDon orderDon, BigDecimal refundMoney, String operator, GoodsDon goodsDon, GoodsDonSku sku, String outNo, String refundType, Boolean isOnly, BigDecimal refundBalance, String chatImg, BigDecimal deductBalance) {
|
|
|
TASK_POOL.execute(() -> {
|
|
TASK_POOL.execute(() -> {
|
|
|
orderRefundService.refundRecord(orderDon, refundMoney, operator, goodsDon, sku, outNo, refundType, chatImg);
|
|
orderRefundService.refundRecord(orderDon, refundMoney, operator, goodsDon, sku, outNo, refundType, chatImg);
|
|
|
//退款一次
|
|
//退款一次
|
|
@@ -935,7 +936,12 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
|
|
|
|
|
|
|
|
//若存在余额支付,退还余额
|
|
//若存在余额支付,退还余额
|
|
|
if (isOnly == null && orderDon.getBalance().compareTo(BigDecimal.ZERO) > 0) {
|
|
if (isOnly == null && orderDon.getBalance().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
- userBenefitsService.addUserBalance(orderDon.getUserId(), orderDon.getBalance(), UserBalanceSourceRecord.Source.refund, orderDon.getYhsId(), orderDon.getId(), goodsDon.getTitle() + UserBalanceSourceRecord.Source.refund.getDesc(), true);
|
|
|
|
|
|
|
+ BigDecimal addBalance = orderDon.getBalance();
|
|
|
|
|
+ //需额外扣除余额
|
|
|
|
|
+ if (deductBalance != null && deductBalance.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
|
+ addBalance = addBalance.subtract(deductBalance);
|
|
|
|
|
+ }
|
|
|
|
|
+ userBenefitsService.addUserBalance(orderDon.getUserId(), addBalance, UserBalanceSourceRecord.Source.refund, orderDon.getYhsId(), orderDon.getId(), goodsDon.getTitle() + UserBalanceSourceRecord.Source.refund.getDesc(), true);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
@@ -1051,7 +1057,7 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
|
|
|
}
|
|
}
|
|
|
//是否是GPT镜像规格
|
|
//是否是GPT镜像规格
|
|
|
if (orderDon.getOrderType() == 1) {
|
|
if (orderDon.getOrderType() == 1) {
|
|
|
- delMirrorUser(orderDon.getGoodsId(), orderDon.getRelationId());
|
|
|
|
|
|
|
+ mirrorUserCleatService.delMirrorUser(orderDon.getGoodsId(), orderDon.getRelationId());
|
|
|
}
|
|
}
|
|
|
//是否是分销订单
|
|
//是否是分销订单
|
|
|
//处理下级渠道分销提成
|
|
//处理下级渠道分销提成
|
|
@@ -1329,30 +1335,4 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
|
|
|
}
|
|
}
|
|
|
return relation;
|
|
return relation;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * 删除gptUser
|
|
|
|
|
- */
|
|
|
|
|
- @Override
|
|
|
|
|
- public void delMirrorUser(Long goodsId, Long relationId) {
|
|
|
|
|
- //gpt镜像
|
|
|
|
|
- if (goodsId != null && goodsId == 18) {
|
|
|
|
|
- Integer selectCount = chatgptUserMapper.selectCount(Wrappers.lambdaQuery(ChatgptUser.class)
|
|
|
|
|
- .eq(ChatgptUser::getRelationId, relationId));
|
|
|
|
|
- if (selectCount > 0) {
|
|
|
|
|
- chatgptUserMapper.delete(Wrappers.lambdaQuery(ChatgptUser.class)
|
|
|
|
|
- .eq(ChatgptUser::getRelationId, relationId));
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- //mj镜像
|
|
|
|
|
- if (goodsId != null && goodsId == 26) {
|
|
|
|
|
- MidjourneyUser user = midjourneyUserMapper.selectOne(Wrappers.lambdaQuery(MidjourneyUser.class)
|
|
|
|
|
- .eq(MidjourneyUser::getRelationId, relationId).last("limit 1"));
|
|
|
|
|
- if (user != null) {
|
|
|
|
|
- midjourneyUserMapper.delete(Wrappers.lambdaQuery(MidjourneyUser.class)
|
|
|
|
|
- .eq(MidjourneyUser::getRelationId, relationId));
|
|
|
|
|
- redisService.del(RedisService.key.MIDJOURNEY_USER.getName() + user.getUserToken());
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|