|
@@ -306,15 +306,20 @@ public class UserTicketOrderServiceImpl extends
|
|
|
ticket = ticketService.getById(orderItem.getTicketId());
|
|
|
}
|
|
|
// 开幸运数字,更新ticket状态为已激活
|
|
|
- ticket.setPlainLuckyNum(Integer.valueOf(RSAUtil.decrypt(ticket.getCipherLuckyNum())));
|
|
|
- ticket.setStatus(TicketStatusEnum.ACTIVATED);
|
|
|
- boolean rtn = ticketService.updateById(ticket);
|
|
|
+ boolean rtn = ticketService.update(
|
|
|
+ new LambdaUpdateWrapper<Ticket>().set(Ticket::getPlainLuckyNum,
|
|
|
+ Integer.valueOf(RSAUtil.decrypt(ticket.getCipherLuckyNum())))
|
|
|
+ .set(Ticket::getStatus, TicketStatusEnum.ACTIVATED)
|
|
|
+ .eq(Ticket::getTicketId, ticket.getTicketId()));
|
|
|
Assert.isTrue(rtn, "支付回调用户购票订单处理,更新盲票状态失败,ticketId:" + ticket.getTicketId());
|
|
|
}
|
|
|
|
|
|
// 更新订单状态为已完成
|
|
|
- ticketOrder.setStatus(UserTicketOrderStatusEnum.FINISHED);
|
|
|
- boolean updateRst = updateById(ticketOrder);
|
|
|
+ boolean updateRst = update(
|
|
|
+ new LambdaUpdateWrapper<UserTicketOrder>().set(UserTicketOrder::getStatus,
|
|
|
+ UserTicketOrderStatusEnum.FINISHED)
|
|
|
+ .eq(UserTicketOrder::getOrderId, ticketOrder.getOrderId())
|
|
|
+ .eq(UserTicketOrder::getStatus, UserTicketOrderStatusEnum.NOT_PAY));
|
|
|
Assert.isTrue(updateRst, "支付回调用户购票订单处理,更新订单状态失败,orderId:" + ticketOrder.getOrderId());
|
|
|
|
|
|
try {
|
|
@@ -339,32 +344,61 @@ public class UserTicketOrderServiceImpl extends
|
|
|
Channel channel = channelService.getById(ticketOrder.getChannelId());
|
|
|
ChannelCommission siteCommission = saveSiteCommAmt(ticketOrder, ticketBox, channel);
|
|
|
// 经销商账户余额增加
|
|
|
- ChannelMoneyLog moneyLog = new ChannelMoneyLog();
|
|
|
- moneyLog.setChannelId(channel.getChannelId());
|
|
|
- moneyLog.setType(ChannelMoneyEnum.COMMISSION);
|
|
|
- moneyLog.setLogMoney(siteCommission.getCommAmt());
|
|
|
- moneyLog.setBizTime(new Date());
|
|
|
- moneyLog.setRefType(ChannelMoneyBizTypeEnum.COMMISSION);
|
|
|
- moneyLog.setRefId(String.valueOf(siteCommission.getId()));
|
|
|
- channelMoneyLogService.changeMoney(moneyLog);
|
|
|
+ changeMoney(channel, siteCommission);
|
|
|
|
|
|
int sumCommAmt = siteCommission.getCommAmt();
|
|
|
// 渠道分润
|
|
|
while (channel.getParentId() > 0) {
|
|
|
channel = channelService.getById(channel.getParentId());
|
|
|
ChannelCommission channelCommission = new ChannelCommission();
|
|
|
+ channelCommission.setChannelId(channel.getChannelId());
|
|
|
+ channelCommission.setOrderId(siteCommission.getOrderId());
|
|
|
+ channelCommission.setBoxId(siteCommission.getBoxId());
|
|
|
+ channelCommission.setSaleAmt(siteCommission.getSaleAmt());
|
|
|
+ channelCommission.setSaleCommRate(siteCommission.getSaleCommRate());
|
|
|
+ channelCommission.setSaleCommAmt(siteCommission.getSaleCommAmt());
|
|
|
+ channelCommission.setCommRate(channel.getCommRate());
|
|
|
+ channelCommission.setCommAmt(new BigDecimal(channelCommission.getSaleCommAmt()).multiply(
|
|
|
+ channelCommission.getCommRate()).intValue() - sumCommAmt);
|
|
|
+ channelCommissionService.save(channelCommission);
|
|
|
+ sumCommAmt += channelCommission.getCommAmt();
|
|
|
}
|
|
|
// 线下票如果用户没被绑定,则保存经销商用户绑定关系
|
|
|
-
|
|
|
+ ChannelUserRel channelUserRel = channelUserRelService.getOne(
|
|
|
+ new LambdaQueryWrapper<ChannelUserRel>()
|
|
|
+ .eq(ChannelUserRel::getUserId, ticketOrder.getUserId()));
|
|
|
+ if (null == channelUserRel) {
|
|
|
+ channelUserRel = new ChannelUserRel();
|
|
|
+ channelUserRel.setChannelId(ticketOrder.getChannelId());
|
|
|
+ channelUserRel.setUserId(ticketOrder.getUserId());
|
|
|
+ channelUserRelService.save(channelUserRel);
|
|
|
+ }
|
|
|
} else {
|
|
|
- LogUtil.info(logger, "渠道结佣时,订单对应的渠道不存在,无需结佣。itemId:{0}",
|
|
|
+ LogUtil.info(logger, "渠道结佣时,订单对应的渠道不存在,无需结佣。orderId:{0}",
|
|
|
ticketOrder.getOrderId());
|
|
|
}
|
|
|
+ boolean rst = update(
|
|
|
+ new LambdaUpdateWrapper<UserTicketOrder>().set(UserTicketOrder::getCommStatus,
|
|
|
+ CommStatusEnum.YES)
|
|
|
+ .eq(UserTicketOrder::getOrderId, orderId)
|
|
|
+ .eq(UserTicketOrder::getCommStatus, CommStatusEnum.DOING));
|
|
|
+ Assert.isTrue(rst, "渠道结佣完成,更新订单状态失败。orderId:" + orderId);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
|
|
|
- return false;
|
|
|
+ private void changeMoney(Channel channel, ChannelCommission siteCommission) {
|
|
|
+ ChannelMoneyLog moneyLog = new ChannelMoneyLog();
|
|
|
+ moneyLog.setChannelId(channel.getChannelId());
|
|
|
+ moneyLog.setType(ChannelMoneyEnum.COMMISSION);
|
|
|
+ moneyLog.setLogMoney(siteCommission.getCommAmt());
|
|
|
+ moneyLog.setBizTime(new Date());
|
|
|
+ moneyLog.setRefType(ChannelMoneyBizTypeEnum.COMMISSION);
|
|
|
+ moneyLog.setRefId(String.valueOf(siteCommission.getId()));
|
|
|
+ channelMoneyLogService.changeMoney(moneyLog);
|
|
|
}
|
|
|
|
|
|
- private ChannelCommission saveSiteCommAmt(UserTicketOrder ticketOrder, TicketBox ticketBox, Channel channel) {
|
|
|
+ private ChannelCommission saveSiteCommAmt(UserTicketOrder ticketOrder, TicketBox ticketBox,
|
|
|
+ Channel channel) {
|
|
|
ChannelCommission siteCommission = new ChannelCommission();
|
|
|
siteCommission.setChannelId(channel.getChannelId());
|
|
|
siteCommission.setOrderId(ticketOrder.getOrderId());
|