|
@@ -2,7 +2,6 @@ package com.qs.mp.user.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.qs.mp.admin.domain.Ticket;
|
|
@@ -40,6 +39,7 @@ import com.qs.mp.user.domain.UserTicketOrder;
|
|
|
import com.qs.mp.user.domain.UserTicketOrderItem;
|
|
|
import com.qs.mp.user.domain.vo.TicketOrderSettleVO;
|
|
|
import com.qs.mp.user.domain.vo.UserCouponVO;
|
|
|
+import com.qs.mp.user.domain.vo.UserShareVO;
|
|
|
import com.qs.mp.user.mapper.UserTicketOrderMapper;
|
|
|
import com.qs.mp.user.service.IUserCouponService;
|
|
|
import com.qs.mp.user.service.IUserTicketOrderItemService;
|
|
@@ -106,16 +106,16 @@ public class UserTicketOrderServiceImpl extends
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public String submitOrder(Long userId, TicketOrderSettleVO orderSettleVO) {
|
|
|
+ public String submitOrder(Long userId, TicketOrderSettleVO orderSettleVO, UserShareVO userShareVO) {
|
|
|
if (StringUtils.isBlank(orderSettleVO.getTicketId())) {
|
|
|
- return createOnlineOrder(userId, orderSettleVO);
|
|
|
+ return createOnlineOrder(userId, orderSettleVO, userShareVO);
|
|
|
}
|
|
|
|
|
|
// 线下票不需锁库存,待付款成功后再更新票组销量
|
|
|
return createOfflineOrder(userId, orderSettleVO);
|
|
|
}
|
|
|
|
|
|
- private String createOnlineOrder(Long userId, TicketOrderSettleVO orderSettleVO) {
|
|
|
+ private String createOnlineOrder(Long userId, TicketOrderSettleVO orderSettleVO, UserShareVO userShareVO) {
|
|
|
// 线上票更新票组销量,防止超卖
|
|
|
TicketBox ticketBox = ticketBoxService.getById(orderSettleVO.getBoxId());
|
|
|
if (ticketBox.getStatus() == TicketBoxStatusEnum.PUT_OFF
|
|
@@ -160,7 +160,30 @@ public class UserTicketOrderServiceImpl extends
|
|
|
ChannelUserRel channelUserRel = channelUserRelService.getOne(
|
|
|
new LambdaQueryWrapper<ChannelUserRel>()
|
|
|
.eq(ChannelUserRel::getUserId, userId));
|
|
|
- userTicketOrder.setChannelId(null == channelUserRel ? null : channelUserRel.getChannelId());
|
|
|
+ if (null != channelUserRel) {
|
|
|
+ userTicketOrder.setChannelId(channelUserRel.getChannelId());
|
|
|
+ } else {
|
|
|
+ // 没被绑定,看有没有分享者
|
|
|
+ if (null != userShareVO.getSuid() && 0 != userShareVO.getSuid()) {
|
|
|
+ if (UserShareVO.SHARE_TYPE_USER.equals(userShareVO.getType())) {
|
|
|
+ ChannelUserRel channelShareUserRel = channelUserRelService.getOne(
|
|
|
+ new LambdaQueryWrapper<ChannelUserRel>()
|
|
|
+ .eq(ChannelUserRel::getUserId, userShareVO.getSuid()));
|
|
|
+ if (null != channelShareUserRel) {
|
|
|
+ userTicketOrder.setChannelId(channelShareUserRel.getChannelId());
|
|
|
+ userTicketOrder.setShareInfo(JSONObject.toJSONString(userShareVO));
|
|
|
+ }
|
|
|
+ } else if (UserShareVO.SHARE_TYPE_SITE.equals(userShareVO.getType())) {
|
|
|
+ Channel channel = channelService.getOne(
|
|
|
+ new LambdaQueryWrapper<Channel>()
|
|
|
+ .eq(Channel::getUserId, userShareVO.getSuid()));
|
|
|
+ if (null != channel) {
|
|
|
+ userTicketOrder.setChannelId(channel.getChannelId());
|
|
|
+ userTicketOrder.setShareInfo(JSONObject.toJSONString(userShareVO));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
save(userTicketOrder);
|
|
|
|
|
|
for (int i = 0; i < orderSettleVO.getOrderNum(); i++) {
|