|
@@ -34,6 +34,7 @@ import com.cyksj.mapper.stock.GoodsSkuStockRelateMapper;
|
|
|
import com.cyksj.model.entity.*;
|
|
import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.excel.ExcelOrderDonInfo;
|
|
import com.cyksj.model.excel.ExcelOrderDonInfo;
|
|
|
import com.cyksj.model.manage.request.ReqSetLogisticsPost;
|
|
import com.cyksj.model.manage.request.ReqSetLogisticsPost;
|
|
|
|
|
+import com.cyksj.model.manage.views.GroupsRelationView;
|
|
|
import com.cyksj.model.request.ChangeRelationReq;
|
|
import com.cyksj.model.request.ChangeRelationReq;
|
|
|
import com.cyksj.model.request.ClickOutReq;
|
|
import com.cyksj.model.request.ClickOutReq;
|
|
|
import com.cyksj.model.request.OrderRefundReq;
|
|
import com.cyksj.model.request.OrderRefundReq;
|
|
@@ -50,6 +51,8 @@ import com.cyksj.service.relation.GroupRelationClearService;
|
|
|
import com.cyksj.service.stripe.StripeService;
|
|
import com.cyksj.service.stripe.StripeService;
|
|
|
import com.cyksj.service.user.UserBenefitsService;
|
|
import com.cyksj.service.user.UserBenefitsService;
|
|
|
import com.cyksj.service.wechat.WeChatService;
|
|
import com.cyksj.service.wechat.WeChatService;
|
|
|
|
|
+import com.ejlchina.searcher.BeanSearcher;
|
|
|
|
|
+import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
@@ -136,6 +139,8 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
|
|
|
|
|
|
|
|
private final EquipmentUserDistributeTransportBenefitsMapper transportBenefitsMapper;
|
|
private final EquipmentUserDistributeTransportBenefitsMapper transportBenefitsMapper;
|
|
|
|
|
|
|
|
|
|
+ private final BeanSearcher beanSearcher;
|
|
|
|
|
+
|
|
|
private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
|
|
private static final GlobalThreadPoolTaskExecutor TASK_POOL = GlobalThreadPoolTaskExecutor.getInstance();
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -355,7 +360,7 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
|
- public void changeRelation(ChangeRelationReq req) {
|
|
|
|
|
|
|
+ public void changeRelation(ChangeRelationReq req) throws Exception {
|
|
|
Long relationId = req.getRelationId();
|
|
Long relationId = req.getRelationId();
|
|
|
Long groupId = req.getGroupsId();
|
|
Long groupId = req.getGroupsId();
|
|
|
UserTicketClearedRecord.Source source = req.getSource();
|
|
UserTicketClearedRecord.Source source = req.getSource();
|
|
@@ -371,6 +376,37 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
|
|
|
.eq(OrderDon::getRelationId, relationId)
|
|
.eq(OrderDon::getRelationId, relationId)
|
|
|
.notIn(OrderDon::getStatus, Constant.noOrderStatus)
|
|
.notIn(OrderDon::getStatus, Constant.noOrderStatus)
|
|
|
.last("limit 1"));
|
|
.last("limit 1"));
|
|
|
|
|
+ OrderDiscountPlusPurchaseSkuRelation plusPurchaseSkuRelation = null;
|
|
|
|
|
+ List<Long> plus_relationList = null;
|
|
|
|
|
+ if (orderDon == null) {
|
|
|
|
|
+ List<OrderDiscountPlusPurchaseSkuRelation> plusPurchaseSkuRelations = orderDiscountPlusPurchaseSkuRelationMapper.selectPlusRelationByIdAndUserId(relation.getId(), relation.getUserId());
|
|
|
|
|
+ for (OrderDiscountPlusPurchaseSkuRelation data : plusPurchaseSkuRelations) {
|
|
|
|
|
+ String relationIds = data.getRelationIds();
|
|
|
|
|
+ if (StrUtil.isEmpty(relationIds)) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ List<Long> relationList = Jsons.parseList(relationIds, Long.class);
|
|
|
|
|
+ if (relationList.contains(relationId)) {
|
|
|
|
|
+ plusPurchaseSkuRelation = data;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (plusPurchaseSkuRelation != null) {
|
|
|
|
|
+ String relationIds = plusPurchaseSkuRelation.getRelationIds();
|
|
|
|
|
+ if (StrUtil.isNotEmpty(relationIds)) {
|
|
|
|
|
+ plus_relationList = Jsons.parseList(relationIds, Long.class);
|
|
|
|
|
+ if (plus_relationList.contains(relationId)) {
|
|
|
|
|
+ orderDon = new OrderDon();
|
|
|
|
|
+ GroupsRelationView groupsRelationView = beanSearcher.searchFirst(GroupsRelationView.class, MapUtils.builder().field(GroupsRelationView::getId, relationId).build());
|
|
|
|
|
+ Assert.notNull(groupsRelationView, "车票已不存在");
|
|
|
|
|
+ orderDon.setUserId(groupsRelationView.getUserId());
|
|
|
|
|
+ orderDon.setSkuId(groupsRelationView.getSkuId());
|
|
|
|
|
+ orderDon.setGoodsId(groupsRelationView.getGoodsId());
|
|
|
|
|
+ orderDon.setStatus(OrderDon.Status.complete);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
Assert.notNull(orderDon, "订单不存在");
|
|
Assert.notNull(orderDon, "订单不存在");
|
|
|
if (orderDon.getStatus() == OrderDon.Status.refund) {
|
|
if (orderDon.getStatus() == OrderDon.Status.refund) {
|
|
|
throw BusinessRuntimeException.getInstance("订单已退款");
|
|
throw BusinessRuntimeException.getInstance("订单已退款");
|
|
@@ -441,6 +477,12 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
|
|
|
});
|
|
});
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
+ if (plusPurchaseSkuRelation != null && plus_relationList != null) {
|
|
|
|
|
+ plus_relationList.remove(relationId);
|
|
|
|
|
+ plus_relationList.add(newRelation.getId());
|
|
|
|
|
+ plusPurchaseSkuRelation.setRelationIds(plus_relationList.toString());
|
|
|
|
|
+ orderDiscountPlusPurchaseSkuRelationMapper.updateById(plusPurchaseSkuRelation);
|
|
|
|
|
+ }
|
|
|
List<OrderDon> orderDonList = orderDonMapper.selectList(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getUserId, userId).eq(OrderDon::getRelationId, relationId).eq(OrderDon::getStatus, OrderDon.Status.complete));
|
|
List<OrderDon> orderDonList = orderDonMapper.selectList(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getUserId, userId).eq(OrderDon::getRelationId, relationId).eq(OrderDon::getStatus, OrderDon.Status.complete));
|
|
|
orderDonList.forEach(completeOrder->{
|
|
orderDonList.forEach(completeOrder->{
|
|
|
completeOrder.setRelationId(newRelation.getId());
|
|
completeOrder.setRelationId(newRelation.getId());
|