|
|
@@ -3704,83 +3704,6 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
}
|
|
|
|
|
|
|
|
|
- @Override
|
|
|
- public OrderDon submitRenewUpgrade(OrderPayRequest payRequest) {
|
|
|
- Long packageId = payRequest.getPackageId();
|
|
|
- Long relationId = payRequest.getRelationId();
|
|
|
- if (relationId == null) {
|
|
|
- throw BusinessRuntimeException.getInstance("系统异常");
|
|
|
- }
|
|
|
- Long userId = payRequest.getUserId();
|
|
|
- User user = userMapper.selectById(userId);
|
|
|
- if (user == null) throw BusinessRuntimeException.getGatewayApiCode(GatewayApiCode.CMS_TOKEN_VALID);
|
|
|
- if (user.getIsBlack()) throw BusinessRuntimeException.getInstance("系统检测操作异常,请稍后再试");
|
|
|
- List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, user);
|
|
|
- int noPayCount = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
|
|
|
- .in(OrderDon::getUserId, userIdList)
|
|
|
- .eq(OrderDon::getRelationId, payRequest.getRelationId())
|
|
|
- .eq(OrderDon::getStatus, OrderDon.Status.noPayment.toString()));
|
|
|
- if (noPayCount > 0) {
|
|
|
- throw new BusinessRuntimeException("您有未支付订单.");
|
|
|
- }
|
|
|
- GroupsRelation groupsRelation = getGroupsRelation(payRequest.getUserId(), payRequest.getRelationId());
|
|
|
- GroupsTrips groupsTrips = getGroupsTrips(groupsRelation);
|
|
|
- GoodsDonSku goodsDonSku = goodsDonSkuMapper.selectById(groupsTrips.getSkuId());
|
|
|
- GoodsDon goodsDon = goodsDonMapper.selectById(goodsDonSku.getGoodsId());
|
|
|
- if (!goodsDonSku.getIsMirror()) {
|
|
|
- throw BusinessRuntimeException.getInstance("系统异常");
|
|
|
- }
|
|
|
- Long renewSkuId = payRequest.getSkuId();
|
|
|
- GoodsDonSku renewSku = goodsDonSkuMapper.selectById(renewSkuId);
|
|
|
- //校验同规格
|
|
|
- if (!ObjectUtil.equal(goodsDonSku.getGoodsId(), renewSku.getGoodsId())) {
|
|
|
- throw BusinessRuntimeException.getInstance("系统异常");
|
|
|
- }
|
|
|
-
|
|
|
- OrderDon orderDon = new OrderDon();
|
|
|
- orderDon.setUserId(userId);
|
|
|
- orderDon.setGoodsId(goodsDonSku.getGoodsId());
|
|
|
- orderDon.setRelationId(relationId);
|
|
|
- orderDon.setSkuId(renewSkuId);
|
|
|
- //续费订单
|
|
|
- orderDon.setOrderType(2);
|
|
|
- RenewUpgradePackage renewUpgradePackage = renewUpgradePackageMapper.selectOne(Wrappers.lambdaQuery(RenewUpgradePackage.class)
|
|
|
- .eq(RenewUpgradePackage::getId, packageId)
|
|
|
- .eq(RenewUpgradePackage::getStatus, 1)
|
|
|
- .eq(RenewUpgradePackage::getDeleted, 1));
|
|
|
- if (renewUpgradePackage == null) {
|
|
|
- throw BusinessRuntimeException.getInstance("续费升级套餐不存在");
|
|
|
- }
|
|
|
- BigDecimal price = renewSku.getPrice();
|
|
|
- orderDon.setOriMoney(price);
|
|
|
- orderDon.setRealMoney(price);
|
|
|
- BigDecimal discountPrice = price.multiply(renewUpgradePackage.getDiscount());
|
|
|
- orderDon.setMoney(discountPrice);
|
|
|
-
|
|
|
- StringBuilder payTitle = new StringBuilder();
|
|
|
- payTitle.append(goodsDon.getTitle()).append(renewSku.getSpecVal());
|
|
|
- orderDon.setPayTitle(payTitle.toString());
|
|
|
- String donNo = SEQUENCE.nextId().toString();
|
|
|
- orderDon.setOrderNo(donNo);
|
|
|
- orderDon.setStatus(OrderDon.Status.noPayment);
|
|
|
-
|
|
|
- //虚拟商品订单,是否是分销订单
|
|
|
- setDistributeOrderMark(orderDon, goodsDon.getType(), user.getId());
|
|
|
-
|
|
|
- //存在余额
|
|
|
- deductBalancePayOrderMoney(orderDon, payRequest.getBalance(), user);
|
|
|
-
|
|
|
- orderDonMapper.insert(orderDon);
|
|
|
- //记录续费升级的规格
|
|
|
- recordRenewOrderDon(orderDon, renewUpgradePackage, groupsTrips);
|
|
|
-
|
|
|
- jobManager.addJob(EXPIRY_TIME, () -> {
|
|
|
- closeOrder(orderDon.getId(), null);
|
|
|
- });
|
|
|
- return orderDon;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
@Override
|
|
|
public OrderDon submitRenewUpgrade(OrderPayRequest payRequest) {
|
|
|
Long packageId = payRequest.getPackageId();
|