|
|
@@ -500,7 +500,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
if (!order.getIsNoLogin()) {
|
|
|
if (order.getOrderType() == 2 && order.getIsChangeTicket()) {
|
|
|
//将奈飞月付车票更换成其他规格的车票
|
|
|
- changeTicketAndRecord(order.getPreSkuId(), order.getRelationId(), order.getId(), order.getNum(), sku);
|
|
|
+ changeTicketAndRecord(order.getPreSkuId(), order.getRelationId(), order.getId(), order.getNum(), sku, order.getUserId());
|
|
|
} else {
|
|
|
updateCarParkAndSendMsg(goodsDon, sku, order);
|
|
|
}
|
|
|
@@ -1804,37 +1804,27 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
* @param orderId 订单id
|
|
|
* @param afterSku 续费之后的规格
|
|
|
*/
|
|
|
- private void changeTicketAndRecord(Long preSkuId, Long preRelationId, Long orderId, Integer num, GoodsDonSku afterSku) {
|
|
|
+ private void changeTicketAndRecord(Long preSkuId, Long preRelationId, Long orderId, Integer num, GoodsDonSku afterSku, Long userId) {
|
|
|
Long afterSkuId = afterSku.getId();
|
|
|
//清理之前的车票
|
|
|
GroupsRelation relation = groupsRelationMapper.selectById(preRelationId);
|
|
|
if (relation != null) {
|
|
|
- Long userId = relation.getUserId();
|
|
|
groupRelationClearService.clearRenewGroupRelation(relation);
|
|
|
//记录更换车票记录
|
|
|
Date preStartTime = relation.getStartTime();
|
|
|
- Date preExpiryTime = relation.getStartTime();
|
|
|
- UserRenewChangeTicketRecord record = new UserRenewChangeTicketRecord();
|
|
|
- record.setUserId(userId);
|
|
|
- record.setPreRelationId(relation.getId());
|
|
|
- record.setPreSkuId(preSkuId);
|
|
|
- record.setPreStartTime(preStartTime);
|
|
|
- record.setPreExpiryTime(preExpiryTime);
|
|
|
- record.setRenewOrderId(orderId);
|
|
|
+ Date preExpiryTime = relation.getExpiryTime();
|
|
|
|
|
|
//获取续费规格的车票
|
|
|
GroupsRelation afterRelation = exchangeCodeService.getRelationNoOrder(afterSku, userId);
|
|
|
|
|
|
- record.setAfterSkuId(afterSkuId);
|
|
|
- record.setAfterRelationId(afterRelation.getId());
|
|
|
DateTime afterExpiryTime = DateUtil.offsetMonth(preExpiryTime, num * afterSku.getMonths());
|
|
|
- record.setAfterExpiryTime(afterExpiryTime);
|
|
|
|
|
|
afterRelation.setStartTime(preStartTime);
|
|
|
afterRelation.setExpiryTime(afterExpiryTime);
|
|
|
groupsRelationMapper.updateById(afterRelation);
|
|
|
|
|
|
- userRenewChangeTicketRecordMapper.insert(record);
|
|
|
+ //保存更换车票记录
|
|
|
+ saveChangeTicketRecord(preStartTime, preExpiryTime, relation.getId(), userId, preSkuId, orderId, num, afterSku, afterRelation.getId());
|
|
|
|
|
|
GroupsRelationView groupsRelationView = beanSearcher.searchFirst(GroupsRelationView.class, MapUtils.builder().field(GroupsRelationView::getUserId, userId)
|
|
|
.field(GroupsRelationView::getId, afterRelation.getId()).build());
|
|
|
@@ -1846,6 +1836,52 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
|
|
|
} catch (Exception e) {
|
|
|
log.error("发送更换用户:{}车票:{}通知消息错误e:{}", userId, afterRelation.getId(), StringUtil.getErrorText(e));
|
|
|
}
|
|
|
+ } else {
|
|
|
+ //之前的车票已被清除 加续费时间加到新的车票上
|
|
|
+ GroupsRelationView relationView = beanSearcher.searchFirst(GroupsRelationView.class, MapUtils.builder().field(GroupsRelationView::getUserId, userId)
|
|
|
+ .field(GroupsRelationView::getGoodsId, afterSku.getGoodsId()).build());
|
|
|
+ Date preStartTime = relation.getStartTime();
|
|
|
+ Date preExpiryTime = relation.getExpiryTime();
|
|
|
+ DateTime afterExpiryTime = DateUtil.offsetMonth(relationView.getExpiryTime(), num * afterSku.getMonths());
|
|
|
+
|
|
|
+ relationView.setExpiryTime(afterExpiryTime);
|
|
|
+ groupsRelationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
|
|
|
+ .set(GroupsRelation::getExpiryTime, relationView.getExpiryTime())
|
|
|
+ .eq(GroupsRelation::getId, relationView.getId()));
|
|
|
+
|
|
|
+ //保存更换车票记录
|
|
|
+ saveChangeTicketRecord(preStartTime, preExpiryTime, relationView.getId(), userId, preSkuId, orderId, num, afterSku, relationView.getId());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * @param preStartTime 续费之前的开始时间
|
|
|
+ * @param preExpiryTime 续费之前的过期时间
|
|
|
+ * @param preRelationId 之前的座位id
|
|
|
+ * @param userId 用户id
|
|
|
+ * @param preSkuId 之前座位的规格id
|
|
|
+ * @param orderId 订单id
|
|
|
+ * @param num 订单数量
|
|
|
+ * @param afterSku 续费之后的规格id
|
|
|
+ * @param afterRelationId 续费之后的座位id
|
|
|
+ */
|
|
|
+ public void saveChangeTicketRecord(Date preStartTime, Date preExpiryTime, Long preRelationId, Long userId, Long preSkuId, Long orderId, Integer num, GoodsDonSku afterSku, Long afterRelationId) {
|
|
|
+ Long afterSkuId = afterSku.getId();
|
|
|
+ //记录更换车票记录
|
|
|
+ UserRenewChangeTicketRecord record = new UserRenewChangeTicketRecord();
|
|
|
+ record.setUserId(userId);
|
|
|
+ record.setPreRelationId(preRelationId);
|
|
|
+ record.setPreSkuId(preSkuId);
|
|
|
+ record.setPreStartTime(preStartTime);
|
|
|
+ record.setPreExpiryTime(preExpiryTime);
|
|
|
+ record.setRenewOrderId(orderId);
|
|
|
+
|
|
|
+ record.setAfterSkuId(afterSkuId);
|
|
|
+ record.setAfterRelationId(afterRelationId);
|
|
|
+ DateTime afterExpiryTime = DateUtil.offsetMonth(preExpiryTime, num * afterSku.getMonths());
|
|
|
+ record.setAfterExpiryTime(afterExpiryTime);
|
|
|
+
|
|
|
+ userRenewChangeTicketRecordMapper.insert(record);
|
|
|
+ }
|
|
|
}
|