Bläddra i källkod

经销商订单详情查询接口修改

guanglong 3 år sedan
förälder
incheckning
a481b0febb

+ 49 - 9
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/ChannelOrderMgrController.java

@@ -11,14 +11,17 @@ 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;
@@ -27,12 +30,14 @@ 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;
@@ -61,6 +66,12 @@ public class ChannelOrderMgrController extends BaseApiController {
   @Autowired
   private IChannelOrderDetailService channelOrderDetailService;
   
+  @Autowired 
+  private IChannelService channelService;
+  
+  @Autowired 
+  private IDeliveryCompanyService deliveryCompanyService;
+  
   @Autowired
   private ITicketBoxService ticketBoxService;
   
@@ -108,14 +119,38 @@ 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);
   }
   
 
@@ -132,7 +167,12 @@ 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("发货失败");

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

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

@@ -1,5 +1,8 @@
 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;
 
@@ -12,4 +15,7 @@ public class ChannelOrderItemVO extends ChannelOrderItem {
 	
 	// 盲票组编号
 	private String boxNo;
+	
+	// 发货的票包详情
+	private List<ChannelOrderDetail> detailList;
 }

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

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

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