소스 검색

Merge branch 'dev' into 'mp-server-test'

Dev

See merge request quanshu/mp-server!249
zhong chunping 3 년 전
부모
커밋
5d5ed1bf44
25개의 변경된 파일439개의 추가작업 그리고 43개의 파일을 삭제
  1. 111 11
      mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/ChannelOrderMgrController.java
  2. 32 21
      mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/UserDeliverOrderMgrController.java
  3. 28 0
      mp-service/src/main/java/com/qs/mp/admin/domain/param/ChannelOrderPkgParam.java
  4. 16 0
      mp-service/src/main/java/com/qs/mp/admin/domain/vo/TicketPackageVO.java
  5. 9 0
      mp-service/src/main/java/com/qs/mp/admin/mapper/TicketPackageMapper.java
  6. 6 0
      mp-service/src/main/java/com/qs/mp/admin/service/ITicketPackageService.java
  7. 11 0
      mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketPackageServiceImpl.java
  8. 7 1
      mp-service/src/main/java/com/qs/mp/channel/domain/ChannelOrder.java
  9. 26 0
      mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelOrderInfoVO.java
  10. 21 0
      mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelOrderItemVO.java
  11. 11 0
      mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelOrderItemMapper.java
  12. 14 0
      mp-service/src/main/java/com/qs/mp/channel/service/IChannelOrderItemService.java
  13. 1 1
      mp-service/src/main/java/com/qs/mp/channel/service/IChannelOrderService.java
  14. 11 0
      mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelOrderItemServiceImpl.java
  15. 9 6
      mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelOrderServiceImpl.java
  16. 7 0
      mp-service/src/main/java/com/qs/mp/user/domain/UserDeliverOrderItem.java
  17. 46 0
      mp-service/src/main/java/com/qs/mp/user/domain/vo/OrderDeliverItemVO.java
  18. 3 0
      mp-service/src/main/java/com/qs/mp/user/domain/vo/UserDeliverOrderVO.java
  19. 13 1
      mp-service/src/main/java/com/qs/mp/user/mapper/UserDeliverOrderItemMapper.java
  20. 16 0
      mp-service/src/main/java/com/qs/mp/user/service/IUserDeliverOrderItemService.java
  21. 10 0
      mp-service/src/main/java/com/qs/mp/user/service/impl/UserDeliverOrderItemServiceImpl.java
  22. 9 0
      mp-service/src/main/resources/mapper/admin/TicketPackageMapper.xml
  23. 9 0
      mp-service/src/main/resources/mapper/channel/ChannelOrderItemMapper.xml
  24. 2 1
      mp-service/src/main/resources/mapper/channel/ChannelOrderMapper.xml
  25. 11 1
      mp-service/src/main/resources/mapper/user/UserDeliverOrderItemMapper.xml

+ 111 - 11
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/ChannelOrderMgrController.java

@@ -2,28 +2,42 @@ package com.qs.mp.web.controller.api.admin;
 
 import com.alibaba.fastjson.JSONObject;
 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.param.ChannelOrderPkgParam;
 import com.qs.mp.admin.domain.param.ChannelOrderShipParam;
 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.ChannelOrderDetail;
 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.service.IChannelOrderDetailService;
 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;
 import com.qs.mp.common.core.page.TableDataInfo;
 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.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.web.controller.common.BaseApiController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import lombok.AllArgsConstructor;
 import ma.glasnost.orika.MapperFacade;
@@ -51,6 +65,18 @@ public class ChannelOrderMgrController extends BaseApiController {
 
   @Autowired
   private IChannelOrderDetailService channelOrderDetailService;
+  
+  @Autowired 
+  private IChannelService channelService;
+  
+  @Autowired 
+  private IDeliveryCompanyService deliveryCompanyService;
+  
+  @Autowired
+  private ITicketBoxService ticketBoxService;
+  
+  @Autowired
+  private ITicketPackageService ticketPackageService;
 
   @Autowired
   private MapperFacade mapperFacade;
@@ -93,17 +119,40 @@ public class ChannelOrderMgrController extends BaseApiController {
     if(null == order || StringUtils.isBlank(order.getOrderId())) {
     	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()
 				&& 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 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);
+	}
 }

+ 32 - 21
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/UserDeliverOrderMgrController.java

@@ -1,51 +1,34 @@
 package com.qs.mp.web.controller.api.admin;
 
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.qs.mp.admin.domain.CouponTicket;
-import com.qs.mp.admin.domain.Ticket;
-import com.qs.mp.admin.domain.TicketBox;
-import com.qs.mp.admin.domain.excel.TicketExcel;
-import com.qs.mp.admin.domain.param.BathIdParam;
 import com.qs.mp.admin.domain.param.UserDeliverOrderQueryParam;
 import com.qs.mp.admin.domain.param.UserDeliverOrderShipParam;
-import com.qs.mp.channel.domain.param.OrderPayParam;
 import com.qs.mp.common.annotation.Log;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.common.core.redis.RedisCache;
-import com.qs.mp.common.enums.BizTypeEnum;
 import com.qs.mp.common.enums.BusinessType;
 import com.qs.mp.common.enums.ErrorCodeEnum;
-import com.qs.mp.common.enums.PrizeStorageStatusEnum;
-import com.qs.mp.common.exception.ServiceException;
-import com.qs.mp.common.utils.RSAUtil;
-import com.qs.mp.framework.redis.RedisKey;
 import com.qs.mp.pay.service.IWalletService;
-import com.qs.mp.user.domain.UserAddr;
 import com.qs.mp.user.domain.UserDeliverOrder;
 import com.qs.mp.user.domain.UserDeliverOrderItem;
-import com.qs.mp.user.domain.UserPrizeStorage;
 import com.qs.mp.user.domain.excel.DeliverOrderExcel;
-import com.qs.mp.user.domain.param.DeliverOrderParam;
-import com.qs.mp.user.domain.vo.DeliverOrderSettleVO;
+import com.qs.mp.user.domain.vo.OrderDeliverItemVO;
 import com.qs.mp.user.domain.vo.UserDeliverOrderVO;
 import com.qs.mp.user.service.IUserAddrService;
 import com.qs.mp.user.service.IUserDeliverOrderItemService;
 import com.qs.mp.user.service.IUserDeliverOrderService;
 import com.qs.mp.user.service.IUserPrizeStorageService;
 import com.qs.mp.utils.ExcelUtil;
-import com.qs.mp.utils.SecurityUtils;
 import com.qs.mp.web.controller.common.BaseApiController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
 import java.util.ArrayList;
 import java.util.Comparator;
+import java.util.Date;
 import java.util.List;
-import java.util.concurrent.TimeUnit;
-import javax.validation.Valid;
 import lombok.AllArgsConstructor;
 import ma.glasnost.orika.MapperFacade;
 
@@ -56,6 +39,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/api/v1/mp/admin/deliver/order")
@@ -123,10 +107,35 @@ public class UserDeliverOrderMgrController extends BaseApiController {
 		queryWrapper.eq(UserDeliverOrder::getOrderId, order.getOrderId());
 		UserDeliverOrder userDeliverOrder = userDeliverOrderService.getOne(queryWrapper);
 		UserDeliverOrderVO userDeliverOrderVO = mapperFacade.map(userDeliverOrder, UserDeliverOrderVO.class);
-		userDeliverOrderVO.setItems(userDeliverOrderItemService.list(new LambdaQueryWrapper<UserDeliverOrderItem>()
-				.eq(UserDeliverOrderItem::getOrderId, userDeliverOrderVO.getOrderId())));
+		
+		List<UserDeliverOrderItem> orderItems = userDeliverOrderItemService.list(new LambdaQueryWrapper<UserDeliverOrderItem>()
+				.eq(UserDeliverOrderItem::getOrderId, userDeliverOrderVO.getOrderId()));
+		
+		userDeliverOrderVO.setItems(orderItems);
+		// 获取物流详情
+		userDeliverOrderVO.setDeliverList(getDeliverItemList(order.getOrderId(), orderItems));
 		return AjaxResult.success(userDeliverOrderVO);
 	}
+	
+	// 获取用户提货订单物流封装列表
+	private List<OrderDeliverItemVO> getDeliverItemList(String orderId, List<UserDeliverOrderItem> orderItems){
+		List<OrderDeliverItemVO> itemList = new ArrayList<OrderDeliverItemVO>();
+		// 1.查询物流公司信息
+		itemList = userDeliverOrderItemService.selectOrderDeliverItemVOList(orderId);
+		// 2.查询物流包裹内的商品信息
+		if(null != itemList && itemList.size() >0 
+				&& null != orderItems && orderItems.size() >0) {
+			for(OrderDeliverItemVO itemVO : itemList) {
+				if(null != itemVO && StringUtils.isNotBlank(itemVO.getDeliveryFlowId())) {
+					List<UserDeliverOrderItem> items = orderItems.stream()
+							.filter(obj -> StringUtils.isNotBlank(obj.getDeliveryFlowId()) && obj.getDeliveryFlowId().equals(itemVO.getDeliveryFlowId())).collect(Collectors.toList());
+					itemVO.setItems(items);
+				}
+			}
+		}
+		return itemList;
+	}
+	
 
 	/**
 	 * 订单发货
@@ -142,12 +151,14 @@ public class UserDeliverOrderMgrController extends BaseApiController {
 		List<UserDeliverOrderItem> itemList = new ArrayList<UserDeliverOrderItem>();
 		if(null != shipParam && null != shipParam.getItemIds()
 				&& shipParam.getItemIds().size() > 0) {
+			Date deliveryTime = new Date();
 			for(String itemId : shipParam.getItemIds() ) {
 				if(StringUtils.isNotBlank(itemId)) {
 					UserDeliverOrderItem item = new UserDeliverOrderItem();
 		        	item.setItemId(itemId);
 		        	item.setDeliveryId(shipParam.getDeliveryId());
 		        	item.setDeliveryFlowId(shipParam.getDeliveryFlowId());
+		        	item.setDeliveryTime(deliveryTime);
 		        	itemList.add(item);
 				}
 			}

+ 28 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/param/ChannelOrderPkgParam.java

@@ -0,0 +1,28 @@
+package com.qs.mp.admin.domain.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import lombok.Data;
+
+/**
+ * @describe 道发货订单可选择的票包列表筛选参数
+ * @auther quanshu
+ * @create 2022-03-022 20:43:44
+ */
+@ApiModel(value = "渠道发货订单可选择的票包列表筛选参数")
+@Data
+public class ChannelOrderPkgParam {
+
+	@ApiModelProperty(value = "订单编号", required = false)
+	private String orderId;
+
+
+	@ApiModelProperty(value = "盲票组ID", required = false)
+	private String boxId;
+	
+	
+	@ApiModelProperty(value = "盲票包编号", required = false)
+	private String pkgNo;
+
+}

+ 16 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/vo/TicketPackageVO.java

@@ -0,0 +1,16 @@
+package com.qs.mp.admin.domain.vo;
+
+import com.qs.mp.admin.domain.TicketPackage;
+
+import lombok.Data;
+
+/**
+ * @author liugl
+ * @Date 2022/3/22
+ */
+@Data
+public class TicketPackageVO extends TicketPackage {
+  
+  // 盲票组名称
+  private String title;
+}

+ 9 - 0
mp-service/src/main/java/com/qs/mp/admin/mapper/TicketPackageMapper.java

@@ -1,7 +1,15 @@
 package com.qs.mp.admin.mapper;
 
 import com.qs.mp.admin.domain.TicketPackage;
+import com.qs.mp.admin.domain.vo.TicketPackageVO;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 
 /**
  * @auther quanshu
@@ -10,4 +18,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface TicketPackageMapper extends BaseMapper<TicketPackage> {
 
+	List<TicketPackageVO> listTicketPackageVO(@Param(Constants.WRAPPER) Wrapper<TicketPackage> queryWrapper);
 }

+ 6 - 0
mp-service/src/main/java/com/qs/mp/admin/service/ITicketPackageService.java

@@ -1,6 +1,11 @@
 package com.qs.mp.admin.service;
 
 import com.qs.mp.admin.domain.TicketPackage;
+import com.qs.mp.admin.domain.vo.TicketPackageVO;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
@@ -13,4 +18,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ITicketPackageService extends IService<TicketPackage> {
 
+	List<TicketPackageVO> listTicketPackageVO(Wrapper<TicketPackage> queryWrapper);
 }

+ 11 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketPackageServiceImpl.java

@@ -1,9 +1,14 @@
 package com.qs.mp.admin.service.impl;
 
 import com.qs.mp.admin.domain.TicketPackage;
+import com.qs.mp.admin.domain.vo.TicketPackageVO;
 import com.qs.mp.admin.mapper.TicketPackageMapper;
 import com.qs.mp.admin.service.ITicketPackageService;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.List;
+
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +22,10 @@ import org.springframework.stereotype.Service;
 @Service
 public class TicketPackageServiceImpl extends ServiceImpl<TicketPackageMapper, TicketPackage> implements ITicketPackageService {
 
+	@Override
+	public List<TicketPackageVO> listTicketPackageVO(Wrapper<TicketPackage> queryWrapper) {
+		return getBaseMapper().listTicketPackageVO(queryWrapper);
+	}
+
+	
 }

+ 7 - 1
mp-service/src/main/java/com/qs/mp/channel/domain/ChannelOrder.java

@@ -124,13 +124,19 @@ public class ChannelOrder implements Serializable {
    * 物流ID
    */
   @TableField("delivery_id")
-  private String deliveryId;
+  private Long deliveryId;
 
   /**
    * 物流单号
    */
   @TableField("delivery_flow_id")
   private String deliveryFlowId;
+  
+  /**
+   * 发货时间
+   */
+  @TableField("delivery_time")
+  private Date deliveryTime;
 
   /**
    * 创建时间

+ 26 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelOrderInfoVO.java

@@ -0,0 +1,26 @@
+package com.qs.mp.channel.domain.vo;
+
+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.common.domain.DeliveryCompany;
+import com.qs.mp.common.mapper.DeliveryCompanyMapper;
+
+import java.util.List;
+import lombok.Data;
+
+/**
+ * @author zhongcp
+ * @Date 2022/3/3
+ */
+@Data
+public class ChannelOrderInfoVO extends ChannelOrder {
+	
+  // 渠道名称
+  private Channel channel;
+  
+  // 渠道名称
+  private DeliveryCompany deliveryCompany;
+	
+  private List<ChannelOrderItemVO> items;
+}

+ 21 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelOrderItemVO.java

@@ -0,0 +1,21 @@
+package com.qs.mp.channel.domain.vo;
+
+import java.util.List;
+
+import com.qs.mp.channel.domain.ChannelOrderDetail;
+import com.qs.mp.channel.domain.ChannelOrderItem;
+import lombok.Data;
+
+/**
+ * @author liugl
+ * @Date 2022/3/3
+ */
+@Data
+public class ChannelOrderItemVO extends ChannelOrderItem {
+	
+	// 盲票组编号
+	private String boxNo;
+	
+	// 发货的票包详情
+	private List<ChannelOrderDetail> detailList;
+}

+ 11 - 0
mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelOrderItemMapper.java

@@ -1,7 +1,17 @@
 package com.qs.mp.channel.mapper;
 
+import com.qs.mp.admin.domain.TicketPackage;
+import com.qs.mp.admin.domain.vo.TicketPackageVO;
 import com.qs.mp.channel.domain.ChannelOrderItem;
+import com.qs.mp.channel.domain.vo.ChannelOrderItemVO;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 
 /**
  * @auther quanshu
@@ -10,4 +20,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ChannelOrderItemMapper extends BaseMapper<ChannelOrderItem> {
 
+	List<ChannelOrderItemVO> listChannelOrderItemVO(@Param(Constants.WRAPPER) Wrapper<ChannelOrderItem> queryWrapper);
 }

+ 14 - 0
mp-service/src/main/java/com/qs/mp/channel/service/IChannelOrderItemService.java

@@ -1,6 +1,14 @@
 package com.qs.mp.channel.service;
 
 import com.qs.mp.channel.domain.ChannelOrderItem;
+import com.qs.mp.channel.domain.vo.ChannelOrderItemVO;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
@@ -13,4 +21,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IChannelOrderItemService extends IService<ChannelOrderItem> {
 
+	/**
+	 * 查询明细
+	 * @param queryWrapper
+	 * @return
+	 */
+	List<ChannelOrderItemVO> listChannelOrderItemVO(Wrapper<ChannelOrderItem> queryWrapper);
 }

+ 1 - 1
mp-service/src/main/java/com/qs/mp/channel/service/IChannelOrderService.java

@@ -48,5 +48,5 @@ public interface IChannelOrderService extends IService<ChannelOrder> {
 	 * @param pkgIds
 	 * @return
 	 */
-	boolean channelOrderShip(String orderId, List<String> pkgIdList);
+	boolean channelOrderShip(ChannelOrder channelOrder, List<String> pkgIdList);
 }

+ 11 - 0
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelOrderItemServiceImpl.java

@@ -1,9 +1,14 @@
 package com.qs.mp.channel.service.impl;
 
 import com.qs.mp.channel.domain.ChannelOrderItem;
+import com.qs.mp.channel.domain.vo.ChannelOrderItemVO;
 import com.qs.mp.channel.mapper.ChannelOrderItemMapper;
 import com.qs.mp.channel.service.IChannelOrderItemService;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.List;
+
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +22,10 @@ import org.springframework.stereotype.Service;
 @Service
 public class ChannelOrderItemServiceImpl extends ServiceImpl<ChannelOrderItemMapper, ChannelOrderItem> implements IChannelOrderItemService {
 
+	@Override
+	public List<ChannelOrderItemVO> listChannelOrderItemVO(Wrapper<ChannelOrderItem> queryWrapper) {
+		return getBaseMapper().listChannelOrderItemVO(queryWrapper);
+	}
+
+	
 }

+ 9 - 6
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelOrderServiceImpl.java

@@ -208,12 +208,10 @@ public class ChannelOrderServiceImpl extends
 
 	@Override
 	@Transactional
-	public boolean channelOrderShip(String orderId, List<String> pkgIdList) {
-		ChannelOrder channelOrder = getById(orderId);
+	public boolean channelOrderShip(ChannelOrder channelOrder, List<String> pkgIdList) {
 		if(null == channelOrder || StringUtils.isBlank(channelOrder.getOrderId())) {
 			throw new ServiceException("发货订单异常,发货失败");
 		}
-		
 		List<TicketPackage> ticketPkgList = new ArrayList<TicketPackage>();
 		if(null != pkgIdList && pkgIdList.size() > 0) {
 			LambdaQueryWrapper<TicketPackage> queryWrapper = new LambdaQueryWrapper<TicketPackage>();
@@ -227,7 +225,7 @@ public class ChannelOrderServiceImpl extends
 		}
 		List<ChannelOrderItem> orderItemList = channelOrderItemService.list(
 		        new LambdaQueryWrapper<ChannelOrderItem>()
-		            .eq(ChannelOrderItem::getOrderId, orderId));
+		            .eq(ChannelOrderItem::getOrderId, channelOrder.getOrderId()));
 		// 验证发货的盲票包是否与订单中的盲票包数量一致
 		if(null == orderItemList || orderItemList.size() == 0 ) {
 			throw new ServiceException("订单明细查询异常, 发货失败");
@@ -244,7 +242,7 @@ public class ChannelOrderServiceImpl extends
 				ChannelOrderDetail channelOrderDetail = new ChannelOrderDetail();
 				channelOrderDetail.setBoxId(ticketPackage.getBoxId());
 				channelOrderDetail.setPkgId(ticketPackage.getPkgId());
-				channelOrderDetail.setOrderId(orderId);
+				channelOrderDetail.setOrderId(channelOrder.getOrderId());
 				channelOrderDetail.setStartSn(ticketPackage.getStartSn());
 				channelOrderDetail.setEndSn(ticketPackage.getEndSn());
 				channelOrderDetail.setChannelId(channelOrder.getChannelId());
@@ -268,7 +266,12 @@ public class ChannelOrderServiceImpl extends
 			LambdaUpdateWrapper<TicketPackage> updateWrapper = new LambdaUpdateWrapper<TicketPackage>();
 			updateWrapper.set(TicketPackage::getStatus, TicketPkgStatusEnum.SOLD);
 			updateWrapper.in(TicketPackage::getPkgId, pkgIdList);
-			return ticketPackageService.update(updateWrapper);
+			boolean rtn = ticketPackageService.update(updateWrapper);
+			if(rtn){
+				// 修改订单信息
+				channelOrder.setStatus(ChannelOrderStatusEnum.NOT_CONFIRM);
+				return updateById(channelOrder);
+			}
 		}
 		
 		return false;

+ 7 - 0
mp-service/src/main/java/com/qs/mp/user/domain/UserDeliverOrderItem.java

@@ -85,6 +85,13 @@ public class UserDeliverOrderItem implements Serializable {
   @TableField("delivery_flow_id")
   private String deliveryFlowId;
 
+  
+  /**
+   * 发货时间
+   */
+  @TableField("delivery_time")
+  private Date deliveryTime;
+  
   /**
    * 创建时间
    */

+ 46 - 0
mp-service/src/main/java/com/qs/mp/user/domain/vo/OrderDeliverItemVO.java

@@ -0,0 +1,46 @@
+package com.qs.mp.user.domain.vo;
+
+import com.qs.mp.user.domain.UserDeliverOrderItem;
+
+import java.util.Date;
+import java.util.List;
+import lombok.Data;
+
+/**
+ * @author 用户提货订单物流信息
+ * @Date 2022/3/17
+ */
+@Data
+public class OrderDeliverItemVO {
+	
+	/**
+	   * 物流公司ID
+	   */
+	  private Long deliveryId;
+	  
+	  // 物流公司名称
+	  private  String companyName;
+
+	  /**
+	   * 公司主页
+	   */
+	  private String companyHomeUrl;
+
+	  /**
+	   * 物流查询接口
+	   */
+	  private String queryUrl;
+	  
+	  /**
+	   * 物流单号ID
+	   */
+	  private String deliveryFlowId;
+	  
+	  /**
+	   * 发货时间
+	   */
+	  private Date deliveryTime;
+
+	  // 物流商品清单
+	  List<UserDeliverOrderItem> items;
+}

+ 3 - 0
mp-service/src/main/java/com/qs/mp/user/domain/vo/UserDeliverOrderVO.java

@@ -16,4 +16,7 @@ public class UserDeliverOrderVO extends UserDeliverOrder {
   // 用户昵称
   private String nickName;
   
+  // 物流信息
+  List<OrderDeliverItemVO> deliverList;
+  
 }

+ 13 - 1
mp-service/src/main/java/com/qs/mp/user/mapper/UserDeliverOrderItemMapper.java

@@ -1,8 +1,13 @@
 package com.qs.mp.user.mapper;
 
 import com.qs.mp.user.domain.UserDeliverOrderItem;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qs.mp.user.domain.vo.OrderDeliverItemVO;
+
+import java.util.List;
 
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 /**
  * @auther quanshu
  * @create 2022-03-07 20:45:43
@@ -10,4 +15,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface UserDeliverOrderItemMapper extends BaseMapper<UserDeliverOrderItem> {
 
+	/**
+	 * 获取用户提货订单物流列表信息
+	 * 
+	 * @param wrapper
+	 * @return
+	 */
+	public List<OrderDeliverItemVO> selectOrderDeliverItemVOList(@Param("orderId") String orderId);
 }

+ 16 - 0
mp-service/src/main/java/com/qs/mp/user/service/IUserDeliverOrderItemService.java

@@ -1,6 +1,13 @@
 package com.qs.mp.user.service;
 
+import com.qs.mp.user.domain.UserDeliverOrder;
 import com.qs.mp.user.domain.UserDeliverOrderItem;
+import com.qs.mp.user.domain.vo.OrderDeliverItemVO;
+import com.qs.mp.user.domain.vo.UserDeliverOrderVO;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
@@ -13,4 +20,13 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IUserDeliverOrderItemService extends IService<UserDeliverOrderItem> {
 
+	
+	/**
+	 * 获取用户提货订单物流列表信息
+	 * 
+	 * @param wrapper
+	 * @return
+	 */
+	public List<OrderDeliverItemVO> selectOrderDeliverItemVOList(String orderId);
+	
 }

+ 10 - 0
mp-service/src/main/java/com/qs/mp/user/service/impl/UserDeliverOrderItemServiceImpl.java

@@ -1,9 +1,13 @@
 package com.qs.mp.user.service.impl;
 
 import com.qs.mp.user.domain.UserDeliverOrderItem;
+import com.qs.mp.user.domain.vo.OrderDeliverItemVO;
 import com.qs.mp.user.mapper.UserDeliverOrderItemMapper;
 import com.qs.mp.user.service.IUserDeliverOrderItemService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+import java.util.List;
+
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +21,10 @@ import org.springframework.stereotype.Service;
 @Service
 public class UserDeliverOrderItemServiceImpl extends ServiceImpl<UserDeliverOrderItemMapper, UserDeliverOrderItem> implements IUserDeliverOrderItemService {
 
+	@Override
+	public List<OrderDeliverItemVO> selectOrderDeliverItemVOList(String orderId) {
+		return getBaseMapper().selectOrderDeliverItemVOList(orderId);
+	}
+
+	
 }

+ 9 - 0
mp-service/src/main/resources/mapper/admin/TicketPackageMapper.xml

@@ -18,5 +18,14 @@
     <sql id="Base_Column_List">
         pkg_id, box_id, pkg_no, start_sn, end_sn, status, created_time, updated_time
     </sql>
+    
+    
+    <!-- 查询盲票包列表 -->
+    <select id="listTicketPackageVO" resultType="com.qs.mp.admin.domain.vo.TicketPackageVO">
+		select t1.* , t2.title
+		from mp_ticket_package t1
+		left join mp_ticket_box t2 on t1.box_id = t2.box_id
+		${ew.customSqlSegment}
+	</select>
 
 </mapper>

+ 9 - 0
mp-service/src/main/resources/mapper/channel/ChannelOrderItemMapper.xml

@@ -24,4 +24,13 @@
         id, order_id, channel_id, title, pic_url, box_id, properties, pkg_unit, face_price, order_num, sale_price, created_time, updated_time
     </sql>
 
+
+    <!-- 查询订单明细列表 -->
+    <select id="listChannelOrderItemVO" resultType="com.qs.mp.channel.domain.vo.ChannelOrderItemVO">
+		select t1.* , t2.box_no boxNo
+		from mp_channel_order_item t1
+		left join mp_ticket_box t2 on t1.box_id = t2.box_id
+		${ew.customSqlSegment}
+	</select>
+	
 </mapper>

+ 2 - 1
mp-service/src/main/resources/mapper/channel/ChannelOrderMapper.xml

@@ -22,13 +22,14 @@
         <result column="address" property="address" />
         <result column="delivery_id" property="deliveryId" />
         <result column="delivery_flow_id" property="deliveryFlowId" />
+        <result column="delivery_time" property="deliveryTime" />
         <result column="created_time" property="createdTime" />
         <result column="updated_time" property="updatedTime" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        order_id, channel_id, title, order_amt, discount_amt, freight_amt, pay_amt, status, pkg_num, memo, receiver, tel, province, city, area, address, delivery_id, delivery_flow_id, created_time, updated_time
+        order_id, channel_id, title, order_amt, discount_amt, freight_amt, pay_amt, status, pkg_num, memo, receiver, tel, province, city, area, address, delivery_id, delivery_flow_id, delivery_time, created_time, updated_time
     </sql>
 
 </mapper>

+ 11 - 1
mp-service/src/main/resources/mapper/user/UserDeliverOrderItemMapper.xml

@@ -15,13 +15,23 @@
         <result column="goods_num" property="goodsNum" />
         <result column="delivery_id" property="deliveryId" />
         <result column="delivery_flow_id" property="deliveryFlowId" />
+        <result column="delivery_time" property="deliveryTime" />
         <result column="created_time" property="createdTime" />
         <result column="updated_time" property="updatedTime" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        item_id, order_id, storage_id, goods_id, sku_id, properties, title, pic_url, goods_num, delivery_id, delivery_flow_id, created_time, updated_time
+        item_id, order_id, storage_id, goods_id, sku_id, properties, title, pic_url, goods_num, delivery_id, delivery_flow_id, delivery_time, created_time, updated_time
     </sql>
+    
+    
+    <!-- 查询用户提货物流清单列表 -->
+    <select id="selectOrderDeliverItemVOList" resultType="com.qs.mp.user.domain.vo.OrderDeliverItemVO">
+		select DISTINCT t1.delivery_id , t1.delivery_flow_id, t1.delivery_time, t2.company_name ,t2.company_home_url ,t2.query_url
+		from mp_user_deliver_order_item t1
+		left join mp_delivery_company t2 on t1.delivery_id = t2.delivery_id
+		where t1.order_id = #{orderId} and t1.delivery_flow_id is not null
+	</select>
 
 </mapper>