订单 退款 问题

This commit is contained in:
2025-12-25 16:28:19 +08:00
parent 0b5ec53187
commit b171b1a81f
8 changed files with 105 additions and 36 deletions

View File

@@ -160,7 +160,7 @@ public class MkConsumeCashbackServiceImpl extends ServiceImpl<MkConsumeCashbackM
shopUserService.updateMoney(new ShopUserMoneyEditDTO().setId(shopUser.getId()).setType(1)
.setRelationId(mkConsumeCashbackRecord.getId()).setMoney(cashbackAmount).setBizEnum(ShopUserFlowBizEnum.CASHBACK)
.setRemark(StrUtil.format("订单消费: {}, 返现: {}", amount, cashbackAmount)));
log.info("订单返现 订单ID:{}, 店铺用户id: {}, 订单消费: {}, 返现: {}",orderId, shopUser.getId(), amount, cashbackAmount);
log.info("订单返现 订单ID:{}, 店铺用户id: {}, 订单消费: {}, 返现: {}", orderId, shopUser.getId(), amount, cashbackAmount);
AcUserMsg msg = new AcUserMsg()
.setUserId(userId)
@@ -176,4 +176,43 @@ public class MkConsumeCashbackServiceImpl extends ServiceImpl<MkConsumeCashbackM
}
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void removeCashback(Long shopId, Long userId, Long orderId, String orderNo) {
MkConsumeCashbackRecord record = consumeCashbackRecordService.getOne(query()
.eq(MkConsumeCashbackRecord::getShopId, shopId)
.eq(MkConsumeCashbackRecord::getUserId, userId)
.eq(MkConsumeCashbackRecord::getOrderNo, orderNo)
.eq(MkConsumeCashbackRecord::getOrderId, orderId));
if (record == null) {
return;
}
MkConsumeCashbackRecord mkConsumeCashbackRecord = new MkConsumeCashbackRecord()
.setOrderNo(orderNo)
.setOrderId(orderId)
.setMainShopId(record.getMainShopId())
.setShopId(shopId)
.setAmount(BigDecimal.ZERO)
.setCashbackAmount(record.getAmount().negate())
.setUserId(userId)
.setShopUserId(record.getShopUserId());
consumeCashbackRecordService.save(mkConsumeCashbackRecord);
shopUserService.updateMoney(new ShopUserMoneyEditDTO().setId(record.getShopUserId()).setType(0)
.setRelationId(mkConsumeCashbackRecord.getId())
.setMoney(record.getAmount())
.setBizEnum(ShopUserFlowBizEnum.CASHBACK)
.setRemark(StrUtil.format("订单退款,扣除返现: {}", record.getAmount())));
log.info("订单退款扣除返现 订单ID:{}, 店铺用户id: {}, 扣除返现: {}", orderId, record.getShopUserId(), record.getAmount());
AcUserMsg msg = new AcUserMsg()
.setUserId(userId)
.setShopId(shopId)
.setSourceId(orderId)
.setSourceType("order")
.setType("cash")
.setTitle("订单退款,消费返现扣除")
.setContent(StrUtil.format("返现扣除提醒: 订单退款扣除的{}元返现。订单编号:{}", record.getAmount(), orderNo));
acUserMsgService.addUserMsg(msg);
}
}

View File

@@ -23,6 +23,7 @@ import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -131,9 +132,6 @@ public class MkPointsUserServiceImpl extends ServiceImpl<MkPointsUserMapper, MkP
break;
case SUB:
pointsUser.setPointBalance(pointsUser.getPointBalance() - points);
if (pointsUser.getPointBalance() < 0) {
throw new CzgException("积分操作失败,积分不足");
}
points = -points;
break;
default:

View File

@@ -110,6 +110,17 @@ public class MkShopConsumerCouponServiceImpl extends ServiceImpl<MkShopConsumerC
}
}
@Override
public void removeConsumerCoupon(Long shopId, Long userId, Long orderId) {
recordService.remove(query()
.eq(MkShopCouponRecord::getShopId, shopId)
.eq(MkShopCouponRecord::getUserId, userId)
.eq(MkShopCouponRecord::getSourceFlowId, orderId)
.eq(MkShopCouponRecord::getSource, "消费赠券")
);
}
@Override
public MkShopConsumerCouponDTO getConsumerCouponById(Long id) {
AssertUtil.isNull(id, "ID不能为空");