|
@@ -9,8 +9,10 @@ import com.qs.mp.admin.domain.GoodsSku;
|
|
|
import com.qs.mp.admin.domain.param.UserDeliverOrderShipParam;
|
|
|
import com.qs.mp.admin.service.IGoodsService;
|
|
|
import com.qs.mp.admin.service.IGoodsSkuService;
|
|
|
+import com.qs.mp.common.domain.DeliveryCompany;
|
|
|
import com.qs.mp.common.enums.*;
|
|
|
import com.qs.mp.common.exception.ServiceException;
|
|
|
+import com.qs.mp.common.service.IDeliveryCompanyService;
|
|
|
import com.qs.mp.common.utils.DateUtils;
|
|
|
import com.qs.mp.common.utils.LogUtil;
|
|
|
import com.qs.mp.pay.domain.PayOrder;
|
|
@@ -20,6 +22,7 @@ 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.UserTicketOrder;
|
|
|
+import com.qs.mp.user.domain.excel.DeliverOrderExcel;
|
|
|
import com.qs.mp.user.domain.param.UserDeliverOrderCancelParam;
|
|
|
import com.qs.mp.user.domain.vo.DeliverOrderSettleVO;
|
|
|
import com.qs.mp.user.domain.vo.UserDeliverOrderVO;
|
|
@@ -29,6 +32,7 @@ import com.qs.mp.user.service.IUserDeliverOrderService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.qs.mp.user.service.IUserPrizeStorageService;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
@@ -71,6 +75,9 @@ public class UserDeliverOrderServiceImpl extends ServiceImpl<UserDeliverOrderMap
|
|
|
@Autowired
|
|
|
private IGoodsSkuService goodsSkuService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IDeliveryCompanyService deliveryCompanyService;
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public String submitOrder(Long userId, String memo, DeliverOrderSettleVO orderSettleVO) {
|
|
@@ -290,6 +297,81 @@ public class UserDeliverOrderServiceImpl extends ServiceImpl<UserDeliverOrderMap
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public String batchShip(List<DeliverOrderExcel> deliverOrderExcelList) {
|
|
|
+ // 成功数量
|
|
|
+ int successNum = 0;
|
|
|
+ // 失败数量
|
|
|
+ int failNum = 0;
|
|
|
+ // 失败原因
|
|
|
+ StringBuilder failSb = new StringBuilder();
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ for (DeliverOrderExcel deliverOrderExcel : deliverOrderExcelList) {
|
|
|
+ String failContent = "";
|
|
|
+ boolean flag = true;
|
|
|
+
|
|
|
+
|
|
|
+ DeliveryCompany deliveryCompany = deliveryCompanyService.getOne(new LambdaQueryWrapper<DeliveryCompany>().eq(DeliveryCompany::getCompanyName, deliverOrderExcel.getCompanyName()));
|
|
|
+ if (Objects.isNull(deliveryCompany)) {
|
|
|
+ flag = false;
|
|
|
+ failContent = "物流公司不存在";
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (flag) {
|
|
|
+ // 校验订单信息
|
|
|
+ UserDeliverOrderItem userDeliverOrderItem = userDeliverOrderItemService.getById(deliverOrderExcel.getItemId());
|
|
|
+ if (Objects.isNull(userDeliverOrderItem)) {
|
|
|
+ flag = false;
|
|
|
+ failContent = "订单明细ID不存在";
|
|
|
+ } else if (Objects.nonNull(userDeliverOrderItem.getDeliveryTime())) {
|
|
|
+ flag = false;
|
|
|
+ failContent = "商品已发货";
|
|
|
+ } else {
|
|
|
+ List<UserDeliverOrderItem> itemList = new ArrayList<UserDeliverOrderItem>();
|
|
|
+ // 构建发货参数,进行发货
|
|
|
+ UserDeliverOrderItem item = new UserDeliverOrderItem();
|
|
|
+ // 快递发货,设置物流信息
|
|
|
+ item.setItemId(userDeliverOrderItem.getItemId());
|
|
|
+ item.setDeliveryId(deliveryCompany.getDeliveryId());
|
|
|
+ item.setDeliveryFlowId(deliverOrderExcel.getDeliveryFlowId());
|
|
|
+ item.setDeliveryTime(new Date());
|
|
|
+ itemList.add(item);
|
|
|
+ boolean rtn = this.userDeliverOrderShip(userDeliverOrderItem.getOrderId(), itemList);
|
|
|
+ if (!rtn) {
|
|
|
+ flag = false;
|
|
|
+ failContent = "发货失败,请重试";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!flag) {
|
|
|
+ failNum++;
|
|
|
+ failSb.append("订单编号:")
|
|
|
+ .append(deliverOrderExcel.getOrderId())
|
|
|
+ .append(" 商品ID:")
|
|
|
+ .append(deliverOrderExcel.getGoodsId())
|
|
|
+ .append(" 商品名称:")
|
|
|
+ .append(deliverOrderExcel.getTitle())
|
|
|
+ .append(" 发货失败原因:")
|
|
|
+ .append(failContent)
|
|
|
+ .append("<br>");
|
|
|
+ } else {
|
|
|
+ successNum++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ sb.append("发货成功:")
|
|
|
+ .append(successNum)
|
|
|
+ .append("<br>")
|
|
|
+ .append("发货失败:")
|
|
|
+ .append(failNum)
|
|
|
+ .append("<br>")
|
|
|
+ .append(failSb);
|
|
|
+
|
|
|
+ return sb.toString();
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean updateShipInfo(UserDeliverOrderShipParam shipParam) {
|