Forráskód Böngészése

线下票停售(修复)

zhangkaikai 1 éve
szülő
commit
0a67805536

+ 27 - 1
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/TicketBoxMgrController.java

@@ -15,6 +15,10 @@ import com.qs.mp.admin.domain.vo.TicketAwardsVO;
 import com.qs.mp.admin.domain.vo.TicketBoxVO;
 import com.qs.mp.admin.service.*;
 import com.qs.mp.channel.domain.Channel;
+import com.qs.mp.channel.domain.ChannelOrder;
+import com.qs.mp.channel.domain.ChannelOrderItem;
+import com.qs.mp.channel.service.IChannelOrderItemService;
+import com.qs.mp.channel.service.IChannelOrderService;
 import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.common.annotation.Log;
 import com.qs.mp.common.core.domain.AjaxResult;
@@ -77,6 +81,12 @@ public class TicketBoxMgrController extends BaseApiController {
     @Autowired
     private ITicketBoxGoodsService ticketBoxGoodsService;
 
+    @Autowired
+    private IChannelOrderItemService channelOrderItemService;
+
+    @Autowired
+    private IChannelOrderService channelOrderService;
+
     @Value("${mp.exportUrl}")
     private String exportUrl;
 
@@ -268,7 +278,7 @@ public class TicketBoxMgrController extends BaseApiController {
         return AjaxResult.success("删除成功");
     }
 
-	/*@Log(title = "盲票导出", businessType = BusinessType.EXPORT)
+    /*@Log(title = "盲票导出", businessType = BusinessType.EXPORT)
 	@PostMapping("/export")
 	@PreAuthorize("@ss.hasPermi('business:ticket:export')")
 	public AjaxResult exportTicket(@RequestBody BathIdParam ids) {
@@ -491,6 +501,22 @@ public class TicketBoxMgrController extends BaseApiController {
         if (null == ticketBox) {
             return AjaxResult.error("参数异常,盲票组不存在");
         }
+
+        QueryWrapper<ChannelOrderItem> queryWrapper = new QueryWrapper<ChannelOrderItem>();
+        queryWrapper.eq("box_id", ticketBox.getBoxId());
+        List<String> orderIdList = channelOrderItemService.list(queryWrapper).stream().map(ChannelOrderItem::getOrderId).collect(Collectors.toList());
+        List<ChannelOrder> channelOrders = channelOrderService.listByIds(orderIdList);
+        for (ChannelOrder channelOrder : channelOrders) {
+            if (ChannelOrderStatusEnum.NOT_PAY.getValue().equals(channelOrder.getStatus().getValue())
+                    || ChannelOrderStatusEnum.NOT_DELIVER.getValue().equals(channelOrder.getStatus().getValue())) {
+                return AjaxResult.error("该票组有" + channelOrder.getStatus().getDesc() + "的订单,orderId:" + channelOrder.getOrderId());
+            }
+        }
+        // 预付票组不可停售
+        if (ticketBox.getPrePrice() == 0) {
+            return AjaxResult.error("该票组是预付票不可停售!");
+        }
+
         if((ticketBox.getStatus() == TicketBoxStatusEnum.PUT_ON || ticketBox.getStatus() == TicketBoxStatusEnum.PUT_OFF) && ticketBox.getType() == TicketTypeEnum.OFFLINE){
             ticketBoxService.update(new LambdaUpdateWrapper<TicketBox>()
                 .set(TicketBox::getStatus, TicketBoxStatusEnum.STOP)