|
@@ -2,28 +2,42 @@ package com.qs.mp.web.controller.api.admin;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.qs.mp.admin.domain.TicketBox;
|
|
import com.qs.mp.admin.domain.TicketPackage;
|
|
import com.qs.mp.admin.domain.TicketPackage;
|
|
|
|
+import com.qs.mp.admin.domain.param.ChannelOrderPkgParam;
|
|
import com.qs.mp.admin.domain.param.ChannelOrderShipParam;
|
|
import com.qs.mp.admin.domain.param.ChannelOrderShipParam;
|
|
import com.qs.mp.admin.domain.param.UserDeliverOrderShipParam;
|
|
import com.qs.mp.admin.domain.param.UserDeliverOrderShipParam;
|
|
|
|
+import com.qs.mp.admin.domain.vo.TicketPackageVO;
|
|
|
|
+import com.qs.mp.admin.service.ITicketBoxService;
|
|
|
|
+import com.qs.mp.admin.service.ITicketPackageService;
|
|
|
|
+import com.qs.mp.channel.domain.Channel;
|
|
import com.qs.mp.channel.domain.ChannelOrder;
|
|
import com.qs.mp.channel.domain.ChannelOrder;
|
|
import com.qs.mp.channel.domain.ChannelOrderDetail;
|
|
import com.qs.mp.channel.domain.ChannelOrderDetail;
|
|
import com.qs.mp.channel.domain.ChannelOrderItem;
|
|
import com.qs.mp.channel.domain.ChannelOrderItem;
|
|
|
|
+import com.qs.mp.channel.domain.vo.ChannelOrderInfoVO;
|
|
|
|
+import com.qs.mp.channel.domain.vo.ChannelOrderItemVO;
|
|
import com.qs.mp.channel.domain.vo.ChannelOrderVO;
|
|
import com.qs.mp.channel.domain.vo.ChannelOrderVO;
|
|
import com.qs.mp.channel.service.IChannelOrderDetailService;
|
|
import com.qs.mp.channel.service.IChannelOrderDetailService;
|
|
import com.qs.mp.channel.service.IChannelOrderItemService;
|
|
import com.qs.mp.channel.service.IChannelOrderItemService;
|
|
import com.qs.mp.channel.service.IChannelOrderService;
|
|
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.annotation.Log;
|
|
import com.qs.mp.common.core.domain.AjaxResult;
|
|
import com.qs.mp.common.core.domain.AjaxResult;
|
|
import com.qs.mp.common.core.page.TableDataInfo;
|
|
import com.qs.mp.common.core.page.TableDataInfo;
|
|
import com.qs.mp.common.core.redis.RedisCache;
|
|
import com.qs.mp.common.core.redis.RedisCache;
|
|
|
|
+import com.qs.mp.common.domain.DeliveryCompany;
|
|
import com.qs.mp.common.enums.BusinessType;
|
|
import com.qs.mp.common.enums.BusinessType;
|
|
import com.qs.mp.common.enums.ErrorCodeEnum;
|
|
import com.qs.mp.common.enums.ErrorCodeEnum;
|
|
|
|
+import com.qs.mp.common.enums.TicketPkgStatusEnum;
|
|
|
|
+import com.qs.mp.common.service.IDeliveryCompanyService;
|
|
import com.qs.mp.user.domain.UserDeliverOrderItem;
|
|
import com.qs.mp.user.domain.UserDeliverOrderItem;
|
|
import com.qs.mp.web.controller.common.BaseApiController;
|
|
import com.qs.mp.web.controller.common.BaseApiController;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
+import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
import ma.glasnost.orika.MapperFacade;
|
|
import ma.glasnost.orika.MapperFacade;
|
|
@@ -51,6 +65,18 @@ public class ChannelOrderMgrController extends BaseApiController {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private IChannelOrderDetailService channelOrderDetailService;
|
|
private IChannelOrderDetailService channelOrderDetailService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private IChannelService channelService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private IDeliveryCompanyService deliveryCompanyService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ITicketBoxService ticketBoxService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private ITicketPackageService ticketPackageService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private MapperFacade mapperFacade;
|
|
private MapperFacade mapperFacade;
|
|
@@ -93,17 +119,40 @@ public class ChannelOrderMgrController extends BaseApiController {
|
|
if(null == order || StringUtils.isBlank(order.getOrderId())) {
|
|
if(null == order || StringUtils.isBlank(order.getOrderId())) {
|
|
return error(ErrorCodeEnum.ERROR_CODE_1001);
|
|
return error(ErrorCodeEnum.ERROR_CODE_1001);
|
|
}
|
|
}
|
|
- LambdaQueryWrapper<ChannelOrder> queryWrapper = new LambdaQueryWrapper<ChannelOrder>();
|
|
|
|
- queryWrapper.eq(ChannelOrder::getOrderId, order.getOrderId());
|
|
|
|
-
|
|
|
|
- ChannelOrder channelOrder = channelOrderService.getOne(queryWrapper);
|
|
|
|
- ChannelOrderVO channelOrderVO = mapperFacade.map(channelOrder, ChannelOrderVO.class);
|
|
|
|
- channelOrderVO.setItems(channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>()
|
|
|
|
- .eq(ChannelOrderItem::getOrderId, channelOrderVO.getOrderId())));
|
|
|
|
- return AjaxResult.success(channelOrderVO);
|
|
|
|
|
|
+ ChannelOrder channelOrder = channelOrderService.getById(order.getOrderId());
|
|
|
|
+ if(null == channelOrder || StringUtils.isBlank(channelOrder.getOrderId())) {
|
|
|
|
+ return error(ErrorCodeEnum.ERROR_CODE_1001);
|
|
|
|
+ }
|
|
|
|
+ ChannelOrderInfoVO channelOrderInfoVO = mapperFacade.map(channelOrder, ChannelOrderInfoVO.class);
|
|
|
|
+
|
|
|
|
+ if(null != channelOrderInfoVO && null != channelOrderInfoVO.getChannelId()) {
|
|
|
|
+ Channel channel = channelService.getById(channelOrderInfoVO.getChannelId());
|
|
|
|
+ channelOrderInfoVO.setChannel(channel);
|
|
|
|
+ }
|
|
|
|
+ if(null != channelOrderInfoVO && null != channelOrderInfoVO.getDeliveryId()) {
|
|
|
|
+ DeliveryCompany deliveryCompany = deliveryCompanyService.getById(channelOrderInfoVO.getDeliveryId());
|
|
|
|
+ channelOrderInfoVO.setDeliveryCompany(deliveryCompany);
|
|
|
|
+ }
|
|
|
|
+ List<ChannelOrderItem> itemList = channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>()
|
|
|
|
+ .eq(ChannelOrderItem::getOrderId, channelOrderInfoVO.getOrderId()));
|
|
|
|
+
|
|
|
|
+ List<ChannelOrderItemVO> itemVOList = mapperFacade.mapAsList(itemList, ChannelOrderItemVO.class);
|
|
|
|
+ if(null != itemVOList && itemVOList.size() > 0) {
|
|
|
|
+ for(ChannelOrderItemVO itemVO : itemVOList) {
|
|
|
|
+ if(null != itemVO && StringUtils.isNotBlank(itemVO.getBoxId())
|
|
|
|
+ && StringUtils.isNotBlank(itemVO.getOrderId())) {
|
|
|
|
+ LambdaQueryWrapper<ChannelOrderDetail> detailQueryWrapper = new LambdaQueryWrapper<ChannelOrderDetail>();
|
|
|
|
+ detailQueryWrapper.eq(ChannelOrderDetail::getOrderId, itemVO.getOrderId());
|
|
|
|
+ detailQueryWrapper.eq(ChannelOrderDetail::getBoxId, itemVO.getBoxId());
|
|
|
|
+ List<ChannelOrderDetail> detailList = channelOrderDetailService.list(detailQueryWrapper);
|
|
|
|
+ itemVO.setDetailList(detailList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ channelOrderInfoVO.setItems(itemVOList);
|
|
|
|
+ return AjaxResult.success(channelOrderInfoVO);
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
|
|
/**
|
|
/**
|
|
* 订单发货
|
|
* 订单发货
|
|
@@ -118,10 +167,61 @@ public class ChannelOrderMgrController extends BaseApiController {
|
|
}
|
|
}
|
|
if(null != shipParam && null != shipParam.getPkgIds()
|
|
if(null != shipParam && null != shipParam.getPkgIds()
|
|
&& shipParam.getPkgIds().size() > 0) {
|
|
&& shipParam.getPkgIds().size() > 0) {
|
|
- boolean rtn = channelOrderService.channelOrderShip(shipParam.getOrderId(), shipParam.getPkgIds());
|
|
|
|
|
|
+ ChannelOrder channelOrder = new ChannelOrder();
|
|
|
|
+ channelOrder.setOrderId(shipParam.getOrderId());
|
|
|
|
+ channelOrder.setDeliveryId(shipParam.getDeliveryId());
|
|
|
|
+ channelOrder.setDeliveryFlowId(shipParam.getDeliveryFlowId());
|
|
|
|
+ channelOrder.setDeliveryTime(new Date());
|
|
|
|
+ boolean rtn = channelOrderService.channelOrderShip(channelOrder, shipParam.getPkgIds());
|
|
return rtn ? AjaxResult.success() : AjaxResult.error("发货失败");
|
|
return rtn ? AjaxResult.success() : AjaxResult.error("发货失败");
|
|
}
|
|
}
|
|
return AjaxResult.error("发货失败");
|
|
return AjaxResult.error("发货失败");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @PostMapping("/item/list")
|
|
|
|
+ @ApiOperation(value = "获取经销商订单盲票组列表", notes = "")
|
|
|
|
+ public AjaxResult list(@RequestBody ChannelOrder order) {
|
|
|
|
+ List<ChannelOrderItemVO> list = new ArrayList<ChannelOrderItemVO>();
|
|
|
|
+ if (null != order && StringUtils.isNotBlank(order.getOrderId())) {
|
|
|
|
+ QueryWrapper<ChannelOrderItem> queryWrapper = new QueryWrapper<ChannelOrderItem>();
|
|
|
|
+ queryWrapper.eq("t1.order_id", order.getOrderId());
|
|
|
|
+ list = channelOrderItemService.listChannelOrderItemVO(queryWrapper);
|
|
|
|
+ }
|
|
|
|
+ return AjaxResult.success(list);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @PostMapping("/ticket/pkg/list")
|
|
|
|
+ @ApiOperation(value = "经销商订单发货筛选盲票包列表", notes = "")
|
|
|
|
+ public AjaxResult list(@RequestBody ChannelOrderPkgParam orderPkgParam) {
|
|
|
|
+ List<TicketPackageVO> list = new ArrayList<TicketPackageVO>();
|
|
|
|
+ QueryWrapper<TicketPackage> queryWrapper = new QueryWrapper<TicketPackage>();
|
|
|
|
+ queryWrapper.eq("t1.`status`", TicketPkgStatusEnum.FOR_SALE); // 筛选待售
|
|
|
|
+ if (null != orderPkgParam && StringUtils.isNotBlank(orderPkgParam.getPkgNo())) {
|
|
|
|
+ queryWrapper.like("t1.pkg_no", orderPkgParam.getPkgNo());
|
|
|
|
+ }
|
|
|
|
+ if (null != orderPkgParam && StringUtils.isNotBlank(orderPkgParam.getBoxId())) {
|
|
|
|
+ queryWrapper.eq("t1.box_id", orderPkgParam.getBoxId());
|
|
|
|
+ list = ticketPackageService.listTicketPackageVO(queryWrapper);
|
|
|
|
+ } else {
|
|
|
|
+ if (null != orderPkgParam && StringUtils.isNotBlank(orderPkgParam.getOrderId())) {
|
|
|
|
+ // 查询订单明细
|
|
|
|
+ List<ChannelOrderItem> itemList = channelOrderItemService
|
|
|
|
+ .list(new LambdaQueryWrapper<ChannelOrderItem>().eq(ChannelOrderItem::getOrderId,
|
|
|
|
+ orderPkgParam.getOrderId()));
|
|
|
|
+ if (null != itemList && itemList.size() > 0) {
|
|
|
|
+ List<String> boxIds = new ArrayList<String>();
|
|
|
|
+ for (ChannelOrderItem item : itemList) {
|
|
|
|
+ if (null != item && StringUtils.isNotBlank(item.getBoxId())) {
|
|
|
|
+ boxIds.add(item.getBoxId());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (null != boxIds && boxIds.size() > 0) {
|
|
|
|
+ queryWrapper.in("t1.box_id", boxIds);
|
|
|
|
+ list = ticketPackageService.listTicketPackageVO(queryWrapper);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return AjaxResult.success(list);
|
|
|
|
+ }
|
|
}
|
|
}
|