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

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

Mp server test

See merge request quanshu/mp-server!257
zhong chunping 3 éve
szülő
commit
05b4b4fc61
39 módosított fájl, 678 hozzáadás és 125 törlés
  1. 126 30
      mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/ChannelOrderMgrController.java
  2. 1 1
      mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/TicketBoxMgrController.java
  3. 63 62
      mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/UserDeliverOrderMgrController.java
  4. 2 2
      mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/ChannelWithdrawController.java
  5. 42 0
      mp-admin/src/test/java/com/qs/mp/api/UserDeliverOrderMgrControllerTest.java
  6. 1 1
      mp-admin/src/test/java/com/qs/mp/common/BaseControllerTest.java
  7. 10 3
      mp-service/src/main/java/com/qs/mp/admin/domain/Goods.java
  8. 28 0
      mp-service/src/main/java/com/qs/mp/admin/domain/param/ChannelOrderPkgParam.java
  9. 46 0
      mp-service/src/main/java/com/qs/mp/admin/domain/param/ChannelOrderQueryParam.java
  10. 4 5
      mp-service/src/main/java/com/qs/mp/admin/domain/param/UserDeliverOrderQueryParam.java
  11. 16 0
      mp-service/src/main/java/com/qs/mp/admin/domain/vo/TicketPackageVO.java
  12. 9 0
      mp-service/src/main/java/com/qs/mp/admin/mapper/TicketPackageMapper.java
  13. 6 0
      mp-service/src/main/java/com/qs/mp/admin/service/ITicketPackageService.java
  14. 11 0
      mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketPackageServiceImpl.java
  15. 7 1
      mp-service/src/main/java/com/qs/mp/channel/domain/ChannelOrder.java
  16. 26 0
      mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelOrderInfoVO.java
  17. 21 0
      mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelOrderItemVO.java
  18. 3 0
      mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelOrderVO.java
  19. 11 0
      mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelOrderItemMapper.java
  20. 16 0
      mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelOrderMapper.java
  21. 14 0
      mp-service/src/main/java/com/qs/mp/channel/service/IChannelOrderItemService.java
  22. 14 1
      mp-service/src/main/java/com/qs/mp/channel/service/IChannelOrderService.java
  23. 11 0
      mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelOrderItemServiceImpl.java
  24. 20 13
      mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelOrderServiceImpl.java
  25. 1 1
      mp-service/src/main/java/com/qs/mp/framework/service/impl/WxUrlLinkServiceImpl.java
  26. 7 0
      mp-service/src/main/java/com/qs/mp/user/domain/UserDeliverOrderItem.java
  27. 47 0
      mp-service/src/main/java/com/qs/mp/user/domain/vo/OrderDeliverItemVO.java
  28. 3 0
      mp-service/src/main/java/com/qs/mp/user/domain/vo/UserDeliverOrderVO.java
  29. 13 1
      mp-service/src/main/java/com/qs/mp/user/mapper/UserDeliverOrderItemMapper.java
  30. 9 2
      mp-service/src/main/java/com/qs/mp/user/mapper/UserDeliverOrderMapper.java
  31. 16 0
      mp-service/src/main/java/com/qs/mp/user/service/IUserDeliverOrderItemService.java
  32. 9 0
      mp-service/src/main/java/com/qs/mp/user/service/IUserDeliverOrderService.java
  33. 10 0
      mp-service/src/main/java/com/qs/mp/user/service/impl/UserDeliverOrderItemServiceImpl.java
  34. 7 0
      mp-service/src/main/java/com/qs/mp/user/service/impl/UserDeliverOrderServiceImpl.java
  35. 9 0
      mp-service/src/main/resources/mapper/admin/TicketPackageMapper.xml
  36. 9 0
      mp-service/src/main/resources/mapper/channel/ChannelOrderItemMapper.xml
  37. 10 1
      mp-service/src/main/resources/mapper/channel/ChannelOrderMapper.xml
  38. 11 1
      mp-service/src/main/resources/mapper/user/UserDeliverOrderItemMapper.xml
  39. 9 0
      mp-service/src/main/resources/mapper/user/UserDeliverOrderMapper.xml

+ 126 - 30
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/ChannelOrderMgrController.java

@@ -1,29 +1,38 @@
 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.TicketPackage;
+import com.qs.mp.admin.domain.param.ChannelOrderPkgParam;
+import com.qs.mp.admin.domain.param.ChannelOrderQueryParam;
 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.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.user.domain.UserDeliverOrderItem;
+import com.qs.mp.common.enums.TicketPkgStatusEnum;
+import com.qs.mp.common.service.IDeliveryCompanyService;
 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,12 +60,18 @@ public class ChannelOrderMgrController extends BaseApiController {
 
   @Autowired
   private IChannelOrderDetailService channelOrderDetailService;
-
+  
+  @Autowired 
+  private IChannelService channelService;
+  
+  @Autowired 
+  private IDeliveryCompanyService deliveryCompanyService;
+  
   @Autowired
-  private MapperFacade mapperFacade;
+  private ITicketPackageService ticketPackageService;
 
   @Autowired
-  private RedisCache redisCache;
+  private MapperFacade mapperFacade;
 
   /**
    * 订单列表
@@ -64,23 +79,22 @@ public class ChannelOrderMgrController extends BaseApiController {
   @PostMapping("/list")
   @ApiOperation(value = "订单列表" , notes = "获取所有订单信息")
   @PreAuthorize("@ss.hasPermi('order:channel:list')")
-  public TableDataInfo list(@RequestBody JSONObject param) {
-   // Long channelId = SecurityUtils.getLoginUser().getChannelId();
-    Integer status = param.getInteger("status");
+  public TableDataInfo list(@RequestBody ChannelOrderQueryParam queryParam) {
     startPage();
-    LambdaQueryWrapper<ChannelOrder> queryWrapper = new LambdaQueryWrapper<ChannelOrder>();
-    // queryWrapper.eq(ChannelOrder::getChannelId, channelId);
-    queryWrapper.eq(null != status, ChannelOrder::getStatus, status);
-    queryWrapper.orderByDesc(ChannelOrder::getCreatedTime);
-    List<ChannelOrder> channelOrders = channelOrderService.list(queryWrapper);
-    List<ChannelOrderVO> channelOrderVOList = mapperFacade.mapAsList(channelOrders, ChannelOrderVO.class);
+    QueryWrapper<ChannelOrder> queryWrapper = new QueryWrapper<ChannelOrder>();
+    queryWrapper.eq(null != queryParam && null != queryParam.getChannelId(), "t1.channel_id" ,queryParam.getChannelId());
+    queryWrapper.eq(null != queryParam && StringUtils.isNotBlank(queryParam.getOrderId()), "t1.order_id" ,queryParam.getOrderId());
+	queryWrapper.eq(null != queryParam && null != queryParam.getStatus(), "t1.`status`" ,queryParam.getStatus());
+	queryWrapper.ge(null != queryParam && null != queryParam.getStartTime(),  "t1.create_time", queryParam.getStartTime());
+	queryWrapper.le(null != queryParam && null != queryParam.getEndTime(), "t1.create_time", queryParam.getEndTime());
+	queryWrapper.like(null != queryParam && StringUtils.isNotBlank(queryParam.getTitle()), "t1.title", queryParam.getTitle());
+    queryWrapper.orderByDesc("t1.order_id");
+    List<ChannelOrderVO> channelOrderVOList = channelOrderService.selectChannelOrderVoList(queryWrapper);
     for (ChannelOrderVO channelOrderVO : channelOrderVOList) {
       channelOrderVO.setItems(channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>()
           .eq(ChannelOrderItem::getOrderId, channelOrderVO.getOrderId())));
     }
-    TableDataInfo rspData = getDataTable(channelOrders);
-    rspData.setRows(channelOrderVOList);
-    return rspData;
+    return getDataTable(channelOrderVOList);
   }
 
   /**
@@ -93,17 +107,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);
   }
-
-
+  
 
   /**
    * 订单发货
@@ -116,12 +153,71 @@ public class ChannelOrderMgrController extends BaseApiController {
 		if(null == shipParam || StringUtils.isBlank(shipParam.getOrderId())) {
 			return error(ErrorCodeEnum.ERROR_CODE_1001);
 		}
+		
+		ChannelOrder order  = channelOrderService.getById(shipParam.getOrderId());
+		if(null == order || StringUtils.isBlank(order.getOrderId()) 
+				|| null == order.getChannelId()) {
+			return error(ErrorCodeEnum.ERROR_CODE_1001);
+		}
+		
 		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.setChannelId(order.getChannelId());
+			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);
+	}
 }

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

@@ -93,7 +93,7 @@ public class TicketBoxMgrController extends BaseApiController {
 	@PreAuthorize("@ss.hasPermi('business:ticket:list')")
 	public TableDataInfo list(@RequestBody TicketBox ticketBox) {
 		startPage();
-		List<TicketBox> list = ticketBoxService.list(new QueryWrapper<>());
+		List<TicketBox> list = ticketBoxService.list(new QueryWrapper<TicketBox>().orderByDesc("FIELD(`status`, 'wait', 'doing', 'done', 'on', 'off')").orderByDesc("box_id"));
 		return getDataTable(list);
 	}
 

+ 63 - 62
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/UserDeliverOrderMgrController.java

@@ -1,55 +1,33 @@
 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;
-
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -69,20 +47,20 @@ public class UserDeliverOrderMgrController extends BaseApiController {
 	@Autowired
 	private IUserDeliverOrderItemService userDeliverOrderItemService;
 
-	@Autowired
-	private IUserPrizeStorageService userPrizeStorageService;
-
-	@Autowired
-	private IUserAddrService userAddrService;
-
-	@Autowired
-	private IWalletService walletService;
+//	@Autowired
+//	private IUserPrizeStorageService userPrizeStorageService;
+//
+//	@Autowired
+//	private IUserAddrService userAddrService;
+//
+//	@Autowired
+//	private IWalletService walletService;
 
 	@Autowired
 	private MapperFacade mapperFacade;
 
-	@Autowired
-	private RedisCache redisCache;
+//	@Autowired
+//	private RedisCache redisCache;
 
 	/**
 	 * 用户提货订单列表
@@ -93,10 +71,10 @@ public class UserDeliverOrderMgrController extends BaseApiController {
 	public TableDataInfo list(@RequestBody UserDeliverOrderQueryParam queryParam) {
 		startPage();
 		QueryWrapper<UserDeliverOrder> queryWrapper = new QueryWrapper<UserDeliverOrder>();
-		queryWrapper.eq(null != queryParam && StringUtils.isNotBlank(queryParam.getOrderId()), "t1.order_id" ,queryParam.getOrderId());
-		queryWrapper.eq(null != queryParam && null != queryParam.getStatus(), "t1.`status`" ,queryParam.getStatus());
-		queryWrapper.ge(null != queryParam && null != queryParam.getStartTime(), "t1.create_time", queryParam.getStartTime());
-		queryWrapper.le(null != queryParam && null != queryParam.getEndTime(), "t1.create_time", queryParam.getEndTime());
+		queryWrapper.eq(null != queryParam && StringUtils.isNotBlank(queryParam.getOrderId()), "t1.order_id", queryParam.getOrderId());
+		queryWrapper.eq(null != queryParam && null != queryParam.getStatus(), "t1.`status`", queryParam.getStatus());
+		queryWrapper.ge(null != queryParam && null != queryParam.getStartTime(), "t1.created_time", queryParam.getStartTime());
+		queryWrapper.le(null != queryParam && null != queryParam.getEndTime(), "t1.created_time", queryParam.getEndTime());
 		queryWrapper.like(null != queryParam && StringUtils.isNotBlank(queryParam.getNickName()), "t2.nick_name", queryParam.getNickName());
 		queryWrapper.like(null != queryParam && StringUtils.isNotBlank(queryParam.getTitle()), "t3.title", queryParam.getTitle());
 		queryWrapper.orderByDesc("t1.order_id");
@@ -119,15 +97,36 @@ public class UserDeliverOrderMgrController extends BaseApiController {
 		if (null == order || StringUtils.isBlank(order.getOrderId())) {
 			return error(ErrorCodeEnum.ERROR_CODE_1001);
 		}
-		LambdaQueryWrapper<UserDeliverOrder> queryWrapper = new LambdaQueryWrapper<UserDeliverOrder>();
-		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())));
+		UserDeliverOrderVO userDeliverOrderVO = userDeliverOrderService.selectUserDeliverOrderVo(order.getOrderId());
+		if (null == userDeliverOrderVO || StringUtils.isBlank(userDeliverOrderVO.getOrderId())) {
+			return error(ErrorCodeEnum.ERROR_CODE_1001);
+		}
+		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.查询物流包裹内的商品信息
+		for (OrderDeliverItemVO itemVO : itemList) {
+			for (UserDeliverOrderItem item : orderItems) {
+				if (itemVO.getDeliveryFlowId().equals(item.getDeliveryFlowId())) {
+					UserDeliverOrderItem flowItem = new UserDeliverOrderItem();
+					BeanUtils.copyProperties(item, flowItem);
+					itemVO.getItems().add(flowItem);
+				}
+			}
+		}
+		return itemList;
+	}
+
 	/**
 	 * 订单发货
 	 */
@@ -136,23 +135,24 @@ public class UserDeliverOrderMgrController extends BaseApiController {
 	@ApiOperation(value = "订单发货", notes = "在订单发货页面提交")
 	@PreAuthorize("@ss.hasPermi('order:deliver:ship')")
 	public AjaxResult ship(@RequestBody UserDeliverOrderShipParam shipParam) {
-		if(null == shipParam || StringUtils.isBlank(shipParam.getOrderId())) {
+		if (null == shipParam || StringUtils.isBlank(shipParam.getOrderId())) {
 			return error(ErrorCodeEnum.ERROR_CODE_1001);
 		}
 		List<UserDeliverOrderItem> itemList = new ArrayList<UserDeliverOrderItem>();
-		if(null != shipParam && null != shipParam.getItemIds()
-				&& shipParam.getItemIds().size() > 0) {
-			for(String itemId : shipParam.getItemIds() ) {
-				if(StringUtils.isNotBlank(itemId)) {
+		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());
-		        	itemList.add(item);
+					item.setItemId(itemId);
+					item.setDeliveryId(shipParam.getDeliveryId());
+					item.setDeliveryFlowId(shipParam.getDeliveryFlowId());
+					item.setDeliveryTime(deliveryTime);
+					itemList.add(item);
 				}
 			}
 		}
-		if(null != itemList && itemList.size() > 0) {
+		if (null != itemList && itemList.size() > 0) {
 			boolean rtn = userDeliverOrderService.userDeliverOrderShip(shipParam.getOrderId(), itemList);
 			return rtn ? AjaxResult.success() : AjaxResult.error("发货失败");
 		}
@@ -168,10 +168,10 @@ public class UserDeliverOrderMgrController extends BaseApiController {
 		List<UserDeliverOrderVO> listAll = new ArrayList<UserDeliverOrderVO>();
 		// 首先查询要导出的数据总数
 		QueryWrapper<UserDeliverOrder> queryWrapper = new QueryWrapper<UserDeliverOrder>();
-		queryWrapper.eq(null != queryParam && StringUtils.isNotBlank(queryParam.getOrderId()), "t1.order_id" ,queryParam.getOrderId());
-		queryWrapper.eq(null != queryParam && null != queryParam.getStatus(), "t1.`status`" ,queryParam.getStatus());
-		queryWrapper.ge(null != queryParam && null != queryParam.getStartTime(), "t1.create_time", queryParam.getStartTime());
-		queryWrapper.le(null != queryParam && null != queryParam.getEndTime(), "t1.create_time", queryParam.getEndTime());
+		queryWrapper.eq(null != queryParam && StringUtils.isNotBlank(queryParam.getOrderId()), "t1.order_id", queryParam.getOrderId());
+		queryWrapper.eq(null != queryParam && null != queryParam.getStatus(), "t1.`status`", queryParam.getStatus());
+		queryWrapper.ge(null != queryParam && null != queryParam.getStartTime(), "t1.created_time", queryParam.getStartTime());
+		queryWrapper.le(null != queryParam && null != queryParam.getEndTime(), "t1.created_time", queryParam.getEndTime());
 		queryWrapper.like(null != queryParam && StringUtils.isNotBlank(queryParam.getNickName()), "t2.nick_name", queryParam.getNickName());
 		queryWrapper.like(null != queryParam && StringUtils.isNotBlank(queryParam.getTitle()), "t3.title", queryParam.getTitle());
 		queryWrapper.orderByDesc("t1.order_id");
@@ -187,7 +187,7 @@ public class UserDeliverOrderMgrController extends BaseApiController {
 				List<UserDeliverOrderVO> userDeliverOrderVOList = userDeliverOrderService.selectUserDeliverOrderVoList(queryWrapper);
 				for (UserDeliverOrderVO userDeliverOrderVO : userDeliverOrderVOList) {
 					userDeliverOrderVO.setItems(userDeliverOrderItemService.list(new LambdaQueryWrapper<UserDeliverOrderItem>()
-							.eq(UserDeliverOrderItem::getOrderId, userDeliverOrderVO.getOrderId())));
+									.eq(UserDeliverOrderItem::getOrderId, userDeliverOrderVO.getOrderId())));
 				}
 				if (null != userDeliverOrderVOList && userDeliverOrderVOList.size() > 0) {
 					listAll.addAll(userDeliverOrderVOList);
@@ -197,7 +197,7 @@ public class UserDeliverOrderMgrController extends BaseApiController {
 			listAll = userDeliverOrderService.selectUserDeliverOrderVoList(queryWrapper);
 			for (UserDeliverOrderVO userDeliverOrderVO : listAll) {
 				userDeliverOrderVO.setItems(userDeliverOrderItemService.list(new LambdaQueryWrapper<UserDeliverOrderItem>()
-						.eq(UserDeliverOrderItem::getOrderId, userDeliverOrderVO.getOrderId())));
+								.eq(UserDeliverOrderItem::getOrderId, userDeliverOrderVO.getOrderId())));
 			}
 		}
 
@@ -226,7 +226,8 @@ public class UserDeliverOrderMgrController extends BaseApiController {
 									+ deliverOrder.getArea() + deliverOrder.getAddress();
 							deliverOrderExcel.setAddress(address);
 							deliverOrderExcel.setStatus(deliverOrder.getStatus().getDesc());
-							deliverOrderExcel.setItemStatus(StringUtils.isNotBlank(userDeliverOrderItem.getDeliveryFlowId())?"已发货":"未发货");
+							deliverOrderExcel.setItemStatus(
+									StringUtils.isNotBlank(userDeliverOrderItem.getDeliveryFlowId()) ? "已发货" : "未发货");
 							excelList.add(deliverOrderExcel);
 						}
 					}

+ 2 - 2
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/ChannelWithdrawController.java

@@ -92,9 +92,9 @@ public class ChannelWithdrawController extends BaseApiController {
         StringUtils.isNotBlank(feeRateValue) ? feeRateValue : FEE_RATE_DEFAULT_VALUE);
     Long channelId = SecurityUtils.getLoginUser().getChannelId();
     Channel channel = channelService.getById(channelId);
-    if (channel.getMoney() < 50000) {
+    /*if (channel.getMoney() < 50000) {
       return AjaxResult.error("账户余额不足500元");
-    }
+    }*/
     if (param.getMoney() > channel.getMoney() ) {
       return AjaxResult.error("提现金额超出了余额");
     }

+ 42 - 0
mp-admin/src/test/java/com/qs/mp/api/UserDeliverOrderMgrControllerTest.java

@@ -0,0 +1,42 @@
+package com.qs.mp.api;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.jupiter.api.Test;
+
+import com.alibaba.fastjson.JSON;
+import com.qs.mp.common.BaseControllerTest;
+
+/**
+ * @auther duota
+ * @create 2021 2021/9/7 6:36 下午
+ * @describe
+ */
+public class UserDeliverOrderMgrControllerTest extends BaseControllerTest {
+
+  /**
+   * 发送短信验证码接口
+   */
+  @Test
+  public void testList(){
+    Map<String, Object> map = new HashMap<String, Object>();
+	int pageNum = 1;
+	int pageSize = 10;
+	map.put("pageNum", pageNum);
+	map.put("pageSize", pageSize);
+	String params = JSON.toJSONString(map);
+    String url = "http://localhost:8080/api/v1/mp/admin/deliver/order/list?";
+    System.out.println(request(url, params));
+  }
+  
+  
+  @Test
+  public void testQuery(){
+    Map<String, Object> map = new HashMap<String, Object>();
+	map.put("orderId", "95588124524032822218");
+	String params = JSON.toJSONString(map);
+    String url = "http://localhost:8080/api/v1/mp/admin/deliver/order/detail?";
+    System.out.println(request(url, params));
+  }
+}

+ 1 - 1
mp-admin/src/test/java/com/qs/mp/common/BaseControllerTest.java

@@ -31,7 +31,7 @@ public class BaseControllerTest {
     headers.put("content-type", "application/json; charset=UTF-8");
     headers.put("x-zz-timestamp", timestamp);
     // 本地登录状态
-    String token = "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjEyY2NjMzUyLTZmZWQtNDVlNC04NzIzLWJlNjliOWM0Zjg0NCJ9.GAYmA8UEM3Tt97rAGl6PHSAC1wMqrxIlsbmBIpDXdmOACyYcYBgatAxLArovIJlEs1kYDVw_Z64nkE46I6Im2g";
+    String token = "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijg3ZWM0OGMwLWQ4ZWYtNDcwYS05ZTQ5LThhOWI0NWMzOWM3MSJ9.q3l1Q0xoWBvXY6eZKfEAKXHZclb2ssMdGO4xd5IjvSNnIRdOLT8kA9jsGo8iR2KZOXjaEfN_DBxPfD6vGZpemg";
 
     if (!StringUtils.isBlank(token)) {
       headers.put("Authorization", "Bearer "+token);

+ 10 - 3
mp-service/src/main/java/com/qs/mp/admin/domain/Goods.java

@@ -179,7 +179,14 @@ public class Goods implements Serializable {
           
           Map<String,Object> mapObj = new HashMap<String,Object>();
           mapObj.put("name", key);
-          mapObj.put("value", value);
+          if(value instanceof List<?>) {
+        	  mapObj.put("value", value);
+          }else {
+        	  List<Object> list = new ArrayList<>();
+        	  list.add(value+"");
+        	  mapObj.put("value", list);
+          }
+         
           mapList.add(mapObj);
       }
 	  
@@ -196,12 +203,12 @@ public class Goods implements Serializable {
 		System.out.println("isb == " + isb);
 		List<Object> list = new ArrayList<>();
 		if (isa) {
-			list.addAll((List<Object>) a);
+			list.addAll((List<?>) a);
 		} else {
 			list.add(a+"");
 		}
 		if (isb) {
-			list.addAll((List<Object>) b);
+			list.addAll((List<?>) b);
 		} else {
 			list.add(b+"");
 		}

+ 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;
+
+}

+ 46 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/param/ChannelOrderQueryParam.java

@@ -0,0 +1,46 @@
+package com.qs.mp.admin.domain.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+import lombok.Data;
+
+/**
+ * @describe 经销商订单列表查询参数
+ * @auther quanshu
+ * @create 2022-03-07 20:43:44
+ */
+@ApiModel(value = "经销商订单列表查询参数")
+@Data
+public class ChannelOrderQueryParam {
+
+
+
+	@ApiModelProperty(value = "商品名称", required = false)
+	private String title;
+
+	@ApiModelProperty(value = "订单编号", required = false)
+	private String orderId;
+	
+	@ApiModelProperty(value = "经销商ID", required = false)
+	private Long channelId;
+
+	@ApiModelProperty(value = "订单状态", required = false)
+	private Integer status;
+	
+	/**
+	 * 下单区间-开始时间
+	 */
+	@ApiModelProperty(value = "开始时间", required = false)
+	private Date startTime;
+
+	/**
+	 * 下单区间-截止时间
+	 */
+	@ApiModelProperty(value = "截止时间", required = false)
+	private Date endTime;
+
+
+}

+ 4 - 5
mp-service/src/main/java/com/qs/mp/admin/domain/param/UserDeliverOrderQueryParam.java

@@ -24,20 +24,19 @@ public class UserDeliverOrderQueryParam {
 
 	@ApiModelProperty(value = "商品名称", required = false)
 	private String title;
-	
+
 	@ApiModelProperty(value = "订单编号", required = false)
 	private String orderId;
-	
+
 	@ApiModelProperty(value = "订单状态", required = false)
-	@JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
-	private DeliverOrderStatusEnum status;
+	private Integer status;
 
 	/**
 	 * 下单区间-开始时间
 	 */
 	@ApiModelProperty(value = "开始时间", required = false)
 	private Date startTime;
-	
+
 	/**
 	 * 下单区间-截止时间
 	 */

+ 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;
+}

+ 3 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelOrderVO.java

@@ -11,5 +11,8 @@ import lombok.Data;
  */
 @Data
 public class ChannelOrderVO extends ChannelOrder {
+	
   private List<ChannelOrderItem> items;
+  
+  private String channelName;  // 经销商名称
 }

+ 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);
 }

+ 16 - 0
mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelOrderMapper.java

@@ -1,7 +1,15 @@
 package com.qs.mp.channel.mapper;
 
 import com.qs.mp.channel.domain.ChannelOrder;
+import com.qs.mp.channel.domain.vo.ChannelOrderVO;
+
+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,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ChannelOrderMapper extends BaseMapper<ChannelOrder> {
 
+
+	/**
+	 * 获取经销商订单列表信息,支持翻页
+	 * 
+	 * @param wrapper
+	 * @return
+	 */
+	public List<ChannelOrderVO> selectChannelOrderVoList(@Param(Constants.WRAPPER) Wrapper<ChannelOrder> wrapper);
 }

+ 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);
 }

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

@@ -4,9 +4,13 @@ import com.qs.mp.channel.domain.ChannelOrder;
 
 import java.util.List;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qs.mp.channel.domain.vo.ChannelOrderSettleVO;
+import com.qs.mp.channel.domain.vo.ChannelOrderVO;
 import com.qs.mp.pay.domain.PayOrder;
+import com.qs.mp.user.domain.UserDeliverOrder;
+import com.qs.mp.user.domain.vo.UserDeliverOrderVO;
 
 /**
  * <p>
@@ -48,5 +52,14 @@ public interface IChannelOrderService extends IService<ChannelOrder> {
 	 * @param pkgIds
 	 * @return
 	 */
-	boolean channelOrderShip(String orderId, List<String> pkgIdList);
+	boolean channelOrderShip(ChannelOrder channelOrder, List<String> pkgIdList);
+	
+	
+	/**
+	 * 获取经销商订单列表信息,支持翻页
+	 * 
+	 * @param wrapper
+	 * @return
+	 */
+	public List<ChannelOrderVO> selectChannelOrderVoList(Wrapper<ChannelOrder> wrapper);
 }

+ 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);
+	}
+
+	
 }

+ 20 - 13
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelOrderServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qs.mp.channel.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -15,6 +16,7 @@ import com.qs.mp.channel.domain.ChannelOrderDetail;
 import com.qs.mp.channel.domain.ChannelOrderItem;
 import com.qs.mp.channel.domain.vo.ChannelCartVO;
 import com.qs.mp.channel.domain.vo.ChannelOrderSettleVO;
+import com.qs.mp.channel.domain.vo.ChannelOrderVO;
 import com.qs.mp.channel.mapper.ChannelOrderMapper;
 import com.qs.mp.channel.service.IChannelCartService;
 import com.qs.mp.channel.service.IChannelOrderDetailService;
@@ -66,10 +68,10 @@ public class ChannelOrderServiceImpl extends
 
   @Autowired
   private IChannelCartService channelCartService;
-  
+
   @Autowired
   private ITicketPackageService ticketPackageService;
-  
+
   @Autowired
   private IChannelOrderDetailService channelOrderDetailervice;
 
@@ -208,12 +210,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 +227,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 +244,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());
@@ -256,23 +256,30 @@ public class ChannelOrderServiceImpl extends
 			if(null != orderItem && StringUtils.isNotBlank(orderItem.getBoxId()) ) {
 				long totalNum = ticketPkgList.stream().filter(TicketPackage -> TicketPackage.getBoxId().equals(orderItem.getBoxId())).count();
 				if(totalNum != orderItem.getOrderNum()) {
-					String msg = "票组"+orderItem.getTitle()+"盲票包" + (totalNum > orderItem.getOrderNum()?"少于":"已超出")+"订单购买的盲票包数量";
+					String msg = "票组"+orderItem.getTitle()+"盲票包" + (totalNum < orderItem.getOrderNum()?"少于":"已超出")+"订单购买的盲票包数量";
 					throw new ServiceException(msg);
 				}
 			}
 		}
-		
+
 		boolean res = channelOrderDetailervice.saveBatch(detailList);
 		if(res) {
 			// 修改票包已销售状态
 			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;
 	}
-	  
-  
+
+	@Override
+	public List<ChannelOrderVO> selectChannelOrderVoList(Wrapper<ChannelOrder> wrapper) {
+		return getBaseMapper().selectChannelOrderVoList(wrapper);
+	}
 }

+ 1 - 1
mp-service/src/main/java/com/qs/mp/framework/service/impl/WxUrlLinkServiceImpl.java

@@ -100,7 +100,7 @@ public class WxUrlLinkServiceImpl implements IWxUrlLinkService {
     param.put("path", path + "?" + scene); // 页面路径
     //param.put("scene", scene); // 参数
 //    param.put("check_path", true);// 为 true 时 page 必须是已经发布的小程序存在的页面(否则报错);为 false 时允许小程序未发布或者 page 不存在
-    param.put("env_version", "release");
+    param.put("env_version", "trial");
     // 获取access_token
     String accessToken = appTokenService.getAccessToken(appId);
     InputStream in = HttpUtils.sendImagePost(

+ 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;
+  
   /**
    * 创建时间
    */

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

@@ -0,0 +1,47 @@
+package com.qs.mp.user.domain.vo;
+
+import com.qs.mp.user.domain.UserDeliverOrderItem;
+
+import java.util.ArrayList;
+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 = new ArrayList<>();
+}

+ 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);
 }

+ 9 - 2
mp-service/src/main/java/com/qs/mp/user/mapper/UserDeliverOrderMapper.java

@@ -1,7 +1,5 @@
 package com.qs.mp.user.mapper;
 
-import com.qs.mp.channel.domain.Channel;
-import com.qs.mp.channel.domain.vo.ChannelVO;
 import com.qs.mp.user.domain.UserDeliverOrder;
 import com.qs.mp.user.domain.vo.UserDeliverOrderVO;
 
@@ -34,4 +32,13 @@ public interface UserDeliverOrderMapper extends BaseMapper<UserDeliverOrder> {
 	 * @return
 	 */
 	public int selectUserDeliverOrderCount(@Param(Constants.WRAPPER) Wrapper<UserDeliverOrder> wrapper);
+	
+	
+	/**
+	 * 获取用户提货订单信息VO
+	 * 
+	 * @param wrapper
+	 * @return
+	 */
+	public UserDeliverOrderVO selectUserDeliverOrderVo(@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);
+	
 }

+ 9 - 0
mp-service/src/main/java/com/qs/mp/user/service/IUserDeliverOrderService.java

@@ -67,6 +67,15 @@ public interface IUserDeliverOrderService extends IService<UserDeliverOrder> {
 	public int selectUserDeliverOrderCount(Wrapper<UserDeliverOrder> wrapper);
 	
 	
+	/**
+	 * 获取用户提货订单信息VO
+	 * 
+	 * @param wrapper
+	 * @return
+	 */
+	public UserDeliverOrderVO selectUserDeliverOrderVo(String orderId);
+	
+	
 	/**
 	 * 用户提货订单发货
 	 * @param 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);
+	}
+
+	
 }

+ 7 - 0
mp-service/src/main/java/com/qs/mp/user/service/impl/UserDeliverOrderServiceImpl.java

@@ -171,4 +171,11 @@ public class UserDeliverOrderServiceImpl extends ServiceImpl<UserDeliverOrderMap
 		}
 		return false;
 	}
+
+	@Override
+	public UserDeliverOrderVO selectUserDeliverOrderVo(String orderId) {
+		return getBaseMapper().selectUserDeliverOrderVo(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>

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

@@ -22,13 +22,22 @@
         <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>
+    
+    <!-- 查询用户提货订单列表 -->
+    <select id="selectChannelOrderVoList" resultType="com.qs.mp.channel.domain.vo.ChannelOrderVO">
+		select DISTINCT t1.* , t2.name channelName
+		from mp_channel_order t1
+		left join mp_channel t2 on t1.channel_id = t2.channel_id
+		${ew.customSqlSegment}
+	</select>
 
 </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>

+ 9 - 0
mp-service/src/main/resources/mapper/user/UserDeliverOrderMapper.xml

@@ -46,5 +46,14 @@
 		${ew.customSqlSegment}
 	</select>
 	
+	 <!-- 查询用户提货订单列表 -->
+    <select id="selectUserDeliverOrderVo" resultType="com.qs.mp.user.domain.vo.UserDeliverOrderVO">
+		select t1.* , t2.nick_name nickName
+		from mp_user_deliver_order t1
+		left join sys_user t2 on t1.user_id = t2.user_id
+		where t1.order_id = #{orderId}
+	</select>
+	
+	
 
 </mapper>