|
|
@@ -1,6 +1,8 @@
|
|
|
package com.kxs.product.biz.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.lang.Snowflake;
|
|
|
import cn.hutool.core.util.EnumUtil;
|
|
|
+import cn.hutool.core.util.IdUtil;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
@@ -14,13 +16,16 @@ import com.kxs.common.security.util.SecurityUtils;
|
|
|
import com.kxs.product.api.dto.kxsapp.ticket.TicketTransferDTO;
|
|
|
import com.kxs.product.api.dto.kxsapp.ticket.TicketTransferQuery;
|
|
|
import com.kxs.product.api.model.KxsTicket;
|
|
|
+import com.kxs.product.api.model.KxsTicketTransferInfo;
|
|
|
import com.kxs.product.api.vo.kxsapp.ticket.TicketTransferDetailVO;
|
|
|
import com.kxs.product.api.vo.kxsapp.ticket.TicketTransferListVO;
|
|
|
import com.kxs.product.biz.constant.enums.ProductErrorTypeEnum;
|
|
|
import com.kxs.product.biz.constant.enums.TicketTypeEnum;
|
|
|
import com.kxs.product.biz.mapper.KxsTicketMapper;
|
|
|
+import com.kxs.product.biz.mapper.KxsTicketTransferInfoMapper;
|
|
|
import com.kxs.product.biz.mapper.KxsTicketTransferMapper;
|
|
|
import com.kxs.product.api.model.KxsTicketTransfer;
|
|
|
+import com.kxs.product.biz.service.KxsTicketTransferInfoService;
|
|
|
import com.kxs.product.biz.service.KxsTicketTransferService;
|
|
|
import com.kxs.user.api.feign.RemoteKxsUserService;
|
|
|
import com.kxs.user.api.model.KxsUser;
|
|
|
@@ -29,7 +34,9 @@ import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 客小爽券码划拨记录表(KxsTicketTransfer)表服务实现类
|
|
|
@@ -46,6 +53,7 @@ public class KxsTicketTransferServiceImpl extends ServiceImpl<KxsTicketTransferM
|
|
|
private final KxsTicketMapper kxsTicketMapper;
|
|
|
|
|
|
private final KxsTicketTransferMapper kxsTicketTransferMapper;
|
|
|
+ private final KxsTicketTransferInfoService kxsTicketTransferInfoService;
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@@ -53,6 +61,10 @@ public class KxsTicketTransferServiceImpl extends ServiceImpl<KxsTicketTransferM
|
|
|
|
|
|
Integer userId = SecurityUtils.getUser().getId().intValue();
|
|
|
|
|
|
+ //订单号
|
|
|
+ Snowflake snowflake = IdUtil.getSnowflake(1, userId);
|
|
|
+ String orderSn = "SC" + snowflake.nextId();
|
|
|
+
|
|
|
//查询用户信息
|
|
|
R<KxsUser> sendResult = remoteKxsUserService.loadUserById(userId, SecurityConstants.FROM_IN);
|
|
|
KxsUser sendUser = RetOps.of(sendResult)
|
|
|
@@ -70,6 +82,8 @@ public class KxsTicketTransferServiceImpl extends ServiceImpl<KxsTicketTransferM
|
|
|
return R.failed(ProductErrorTypeEnum.USER_IS_NOT_FIND.getDescription());
|
|
|
}
|
|
|
|
|
|
+ //划拨明细集合
|
|
|
+ List<KxsTicketTransferInfo> kxsTicketTransferInfos = new ArrayList<>();
|
|
|
for (String ticketCode : param.getTicketCodes()) {
|
|
|
KxsTicket kxsTicket = kxsTicketMapper.selectOne(Wrappers.<KxsTicket>lambdaQuery().eq(KxsTicket::getTicketCode, ticketCode));
|
|
|
if (kxsTicket == null) {
|
|
|
@@ -85,6 +99,12 @@ public class KxsTicketTransferServiceImpl extends ServiceImpl<KxsTicketTransferM
|
|
|
//修改机具所属
|
|
|
kxsTicketMapper.updateById(kxsTicket);
|
|
|
|
|
|
+ //划拨明细
|
|
|
+ KxsTicketTransferInfo kxsTicketTransferInfo = new KxsTicketTransferInfo();
|
|
|
+ kxsTicketTransferInfo.setTicketCode(ticketCode);
|
|
|
+ kxsTicketTransferInfo.setTicketId(kxsTicket.getId());
|
|
|
+ kxsTicketTransferInfo.setOrderSn(orderSn);
|
|
|
+ kxsTicketTransferInfos.add(kxsTicketTransferInfo);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -98,14 +118,13 @@ public class KxsTicketTransferServiceImpl extends ServiceImpl<KxsTicketTransferM
|
|
|
ticketTransfer.setToUserId(toUser.getId());
|
|
|
ticketTransfer.setToUserName(toUser.getUsername());
|
|
|
ticketTransfer.setToUserCode(toUser.getUserCode());
|
|
|
-
|
|
|
- ticketTransfer.setTicketCodes(String.join(",", param.getTicketCodes()));
|
|
|
ticketTransfer.setTransferNum(param.getTicketCodes().size());
|
|
|
ticketTransfer.setTicketType(param.getTicketType());
|
|
|
+ ticketTransfer.setOrderSn(orderSn);
|
|
|
|
|
|
//插入划拨记录
|
|
|
kxsTicketTransferMapper.insert(ticketTransfer);
|
|
|
-
|
|
|
+ kxsTicketTransferInfoService.saveBatch(kxsTicketTransferInfos);
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
@@ -114,8 +133,6 @@ public class KxsTicketTransferServiceImpl extends ServiceImpl<KxsTicketTransferM
|
|
|
|
|
|
Long userId = SecurityUtils.getUser().getId();
|
|
|
|
|
|
- IPage<TicketTransferListVO> byPage = baseMapper.getByPage(page, ticketTransferQuery);
|
|
|
-
|
|
|
//拨入查询
|
|
|
if (ticketTransferQuery.getTransferType() == 1) {
|
|
|
ticketTransferQuery.setToUserId(userId.intValue());
|
|
|
@@ -125,7 +142,7 @@ public class KxsTicketTransferServiceImpl extends ServiceImpl<KxsTicketTransferM
|
|
|
ticketTransferQuery.setSendUserId(userId.intValue());
|
|
|
}
|
|
|
|
|
|
- return byPage;
|
|
|
+ return baseMapper.getByPage(page, ticketTransferQuery);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -161,7 +178,10 @@ public class KxsTicketTransferServiceImpl extends ServiceImpl<KxsTicketTransferM
|
|
|
|
|
|
String ticketType = EnumUtil.getFieldBy(TicketTypeEnum::getDescription, TicketTypeEnum::getType, kxsTicketTransfer.getTicketType());
|
|
|
transferDetailVO.setTicketType(String.valueOf(kxsTicketTransfer.getTicketType()));
|
|
|
- transferDetailVO.setTicketTypeSn(ticketType);
|
|
|
+ //查询券码集合
|
|
|
+ List<KxsTicketTransferInfo> list = kxsTicketTransferInfoService.list(Wrappers.<KxsTicketTransferInfo>lambdaQuery().eq(KxsTicketTransferInfo::getOrderSn, kxsTicketTransfer.getOrderSn()));
|
|
|
+ List<String> ticketCodes = list.stream().map(KxsTicketTransferInfo::getTicketCode).collect(Collectors.toList());
|
|
|
+ transferDetailVO.setTicketCodes(ticketCodes);
|
|
|
|
|
|
return transferDetailVO;
|
|
|
}
|