|
@@ -19,9 +19,11 @@ import com.xingxi.api.data.mapper.WxApiProductMapper;
|
|
|
import com.xingxi.api.model.*;
|
|
import com.xingxi.api.model.*;
|
|
|
import com.xingxi.api.service.OrderServiceI;
|
|
import com.xingxi.api.service.OrderServiceI;
|
|
|
import com.xingxi.business.Order.domain.Order;
|
|
import com.xingxi.business.Order.domain.Order;
|
|
|
|
|
+import com.xingxi.business.Order.domain.OrderDelivery;
|
|
|
import com.xingxi.business.Order.domain.OrderDeliveryExpr;
|
|
import com.xingxi.business.Order.domain.OrderDeliveryExpr;
|
|
|
import com.xingxi.business.Order.domain.OrderDetail;
|
|
import com.xingxi.business.Order.domain.OrderDetail;
|
|
|
import com.xingxi.business.Order.mapper.OrderDeliveryExprMapper;
|
|
import com.xingxi.business.Order.mapper.OrderDeliveryExprMapper;
|
|
|
|
|
+import com.xingxi.business.Order.mapper.OrderDeliveryMapper;
|
|
|
import com.xingxi.business.Order.mapper.OrderDetailMapper;
|
|
import com.xingxi.business.Order.mapper.OrderDetailMapper;
|
|
|
import com.xingxi.business.Order.mapper.OrderMapper;
|
|
import com.xingxi.business.Order.mapper.OrderMapper;
|
|
|
import com.xingxi.business.PaymentInfo.domain.PaymentInfo;
|
|
import com.xingxi.business.PaymentInfo.domain.PaymentInfo;
|
|
@@ -31,10 +33,7 @@ import com.xingxi.business.ProdInventory.domain.ProdInventoryBill;
|
|
|
import com.xingxi.business.ProdInventory.mapper.ProdInventoryBillMapper;
|
|
import com.xingxi.business.ProdInventory.mapper.ProdInventoryBillMapper;
|
|
|
import com.xingxi.business.UserAddress.domain.UserAddress;
|
|
import com.xingxi.business.UserAddress.domain.UserAddress;
|
|
|
import com.xingxi.common.core.domain.entity.SysUser;
|
|
import com.xingxi.common.core.domain.entity.SysUser;
|
|
|
-import com.xingxi.common.enums.EDelFlag;
|
|
|
|
|
-import com.xingxi.common.enums.EInventoryBillType;
|
|
|
|
|
-import com.xingxi.common.enums.EOrderDetailStatus;
|
|
|
|
|
-import com.xingxi.common.enums.EOrderStatus;
|
|
|
|
|
|
|
+import com.xingxi.common.enums.*;
|
|
|
import com.xingxi.common.exception.BusinessException;
|
|
import com.xingxi.common.exception.BusinessException;
|
|
|
import com.xingxi.common.mq.bo.order.OrderBO;
|
|
import com.xingxi.common.mq.bo.order.OrderBO;
|
|
|
import com.xingxi.common.mq.publisher.order.OrderCreatedMqPublisher;
|
|
import com.xingxi.common.mq.publisher.order.OrderCreatedMqPublisher;
|
|
@@ -45,10 +44,7 @@ import com.xingxi.common.utils.bean.BeanUtils;
|
|
|
import com.xingxi.common.utils.uuid.IdUtils;
|
|
import com.xingxi.common.utils.uuid.IdUtils;
|
|
|
import com.xingxi.master.merchant.domain.MerchantProd;
|
|
import com.xingxi.master.merchant.domain.MerchantProd;
|
|
|
import com.xingxi.master.merchant.mapper.MerchantProdMapper;
|
|
import com.xingxi.master.merchant.mapper.MerchantProdMapper;
|
|
|
-import com.xingxi.master.product.domain.Prod;
|
|
|
|
|
-import com.xingxi.master.product.domain.ProdAttrPrice;
|
|
|
|
|
-import com.xingxi.master.product.domain.ProdPic;
|
|
|
|
|
-import com.xingxi.master.product.domain.ProdVendor;
|
|
|
|
|
|
|
+import com.xingxi.master.product.domain.*;
|
|
|
import com.xingxi.master.product.mapper.*;
|
|
import com.xingxi.master.product.mapper.*;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -71,6 +67,8 @@ class OrderApiServiceImpl implements OrderServiceI {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private OrderDetailMapper orderDetailMapper;
|
|
private OrderDetailMapper orderDetailMapper;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
|
|
+ private OrderDeliveryMapper orderDeliveryMapper;
|
|
|
|
|
+ @Autowired
|
|
|
private ProdPicMapper prodPicMapper;
|
|
private ProdPicMapper prodPicMapper;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private OrderDeliveryExprMapper orderDeliveryExprMapper;
|
|
private OrderDeliveryExprMapper orderDeliveryExprMapper;
|
|
@@ -199,6 +197,7 @@ class OrderApiServiceImpl implements OrderServiceI {
|
|
|
BigDecimal prodAmt = BigDecimal.ZERO;
|
|
BigDecimal prodAmt = BigDecimal.ZERO;
|
|
|
|
|
|
|
|
List<OrderDetail> orderDetailItems = new ArrayList<>();
|
|
List<OrderDetail> orderDetailItems = new ArrayList<>();
|
|
|
|
|
+
|
|
|
for (OrderItemDTO orderItemDTO : orderItemDTOS) {
|
|
for (OrderItemDTO orderItemDTO : orderItemDTOS) {
|
|
|
// MerchantProd merchantProd = merchantProdMapper.selectMerchantProdByMercProdId(orderItemDTO.getMercProdId());
|
|
// MerchantProd merchantProd = merchantProdMapper.selectMerchantProdByMercProdId(orderItemDTO.getMercProdId());
|
|
|
MerchantProd condMerchant = new MerchantProd();
|
|
MerchantProd condMerchant = new MerchantProd();
|
|
@@ -222,13 +221,15 @@ class OrderApiServiceImpl implements OrderServiceI {
|
|
|
throw new BusinessException("未查询到商品的供应商");
|
|
throw new BusinessException("未查询到商品的供应商");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ ProdAttr prodAttr = prodAttrMapper.selectProdAttrByProdAttrId(merchantProd.getProdAttrId());
|
|
|
|
|
+
|
|
|
OrderDetail orderDetail = new OrderDetail();
|
|
OrderDetail orderDetail = new OrderDetail();
|
|
|
orderDetail.setOrderId(order.getOrderId());
|
|
orderDetail.setOrderId(order.getOrderId());
|
|
|
orderDetail.setOrderDetailStatus(EOrderDetailStatus.ORDERED.getVal());
|
|
orderDetail.setOrderDetailStatus(EOrderDetailStatus.ORDERED.getVal());
|
|
|
orderDetail.setProdId(merchantProd.getProdId());
|
|
orderDetail.setProdId(merchantProd.getProdId());
|
|
|
orderDetail.setProdName(prod.getProdName());
|
|
orderDetail.setProdName(prod.getProdName());
|
|
|
orderDetail.setProdAttrId(merchantProd.getProdAttrId());
|
|
orderDetail.setProdAttrId(merchantProd.getProdAttrId());
|
|
|
- orderDetail.setProdAttrName(prodAttrMapper.selectProdAttrByProdAttrId(merchantProd.getProdAttrId()).getAttrName());
|
|
|
|
|
|
|
+ orderDetail.setProdAttrName(prodAttr.getAttrName());
|
|
|
orderDetail.setVendorId(prodVendorList.get(0).getVendorId());
|
|
orderDetail.setVendorId(prodVendorList.get(0).getVendorId());
|
|
|
orderDetail.setQuantity(orderItemDTO.getCount());
|
|
orderDetail.setQuantity(orderItemDTO.getCount());
|
|
|
|
|
|
|
@@ -298,14 +299,76 @@ class OrderApiServiceImpl implements OrderServiceI {
|
|
|
order.setProdQuantity(prodQty);
|
|
order.setProdQuantity(prodQty);
|
|
|
orderMapper.updateOrder(order);
|
|
orderMapper.updateOrder(order);
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ OrderDetail condOd = new OrderDetail();
|
|
|
|
|
+ condOd.setOrderId(order.getOrderId());
|
|
|
|
|
+ condOd.setDelFlag(EDelFlag.NO.getVal());
|
|
|
|
|
+
|
|
|
|
|
+ List<OrderDetail> orderDetailList = orderDetailMapper.selectOrderDetailList(condOd);
|
|
|
|
|
+
|
|
|
|
|
+ List<OrderDelivery> orderDeliveryList = new ArrayList<>();
|
|
|
|
|
+
|
|
|
|
|
+ for (OrderDetail od : orderDetailList) {
|
|
|
|
|
+
|
|
|
|
|
+ ProdAttr prodAttr = prodAttrMapper.selectProdAttrByProdAttrId(od.getProdAttrId());
|
|
|
|
|
+
|
|
|
|
|
+ if (EAttrType.JOINT.getVal().equalsIgnoreCase(prodAttr.getAttrType())) {
|
|
|
|
|
+ ProdAttrJoint condProdAttrJoint = new ProdAttrJoint();
|
|
|
|
|
+ condProdAttrJoint.setProdId(prodAttr.getProdId());
|
|
|
|
|
+ condProdAttrJoint.setProdAttrId(prodAttr.getProdAttrId());
|
|
|
|
|
+
|
|
|
|
|
+ List<ProdAttrJoint> prodAttrJointList = wxApiProductMapper.selectProdAttrJointList(condProdAttrJoint);
|
|
|
|
|
+
|
|
|
|
|
+ for (ProdAttrJoint paj : prodAttrJointList) {
|
|
|
|
|
+
|
|
|
|
|
+ OrderDelivery orderDelivery = new OrderDelivery();
|
|
|
|
|
+ orderDelivery.setDelFlag(EDelFlag.NO.getVal());
|
|
|
|
|
+ orderDelivery.setOrderId(od.getOrderId());
|
|
|
|
|
+ orderDelivery.setOrderDetailId(od.getOrderDetailId());
|
|
|
|
|
+ orderDelivery.setProdId(paj.getJointProdId());
|
|
|
|
|
+ orderDelivery.setProdName(wxApiProductMapper.selectProdById(paj.getJointProdId()).getProdName());
|
|
|
|
|
+ orderDelivery.setProdAttrId(paj.getJointProdAttrId());
|
|
|
|
|
+ orderDelivery.setProdAttrName(wxApiProductMapper.selectProdAttrByProdAttrId(paj.getJointProdAttrId()).getAttrName());
|
|
|
|
|
+
|
|
|
|
|
+ orderDelivery.setVendorId(od.getVendorId());
|
|
|
|
|
+ orderDelivery.setQuantity(Long.valueOf(od.getQuantity()));
|
|
|
|
|
+ orderDelivery.setDelFlag(EDelFlag.NO.getVal());
|
|
|
|
|
+ orderDelivery.setCreateUser(userId.toString());
|
|
|
|
|
+ orderDelivery.setCreateTime(orderTime);
|
|
|
|
|
+ orderDelivery.setUpdateUser(userId.toString());
|
|
|
|
|
+ orderDelivery.setUpdateTime(orderTime);
|
|
|
|
|
+ orderDeliveryList.add(orderDelivery);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ OrderDelivery orderDelivery = new OrderDelivery();
|
|
|
|
|
+ orderDelivery.setDelFlag(EDelFlag.NO.getVal());
|
|
|
|
|
+ orderDelivery.setOrderId(od.getOrderId());
|
|
|
|
|
+ orderDelivery.setOrderDetailId(od.getOrderDetailId());
|
|
|
|
|
+ orderDelivery.setProdId(od.getProdId());
|
|
|
|
|
+ orderDelivery.setProdName(od.getProdName());
|
|
|
|
|
+ orderDelivery.setProdAttrId(od.getProdAttrId());
|
|
|
|
|
+ orderDelivery.setProdAttrName(od.getProdAttrName());
|
|
|
|
|
+ orderDelivery.setVendorId(od.getVendorId());
|
|
|
|
|
+ orderDelivery.setQuantity(Long.valueOf(od.getQuantity()));
|
|
|
|
|
+ orderDelivery.setDelFlag(EDelFlag.NO.getVal());
|
|
|
|
|
+ orderDelivery.setCreateUser(userId.toString());
|
|
|
|
|
+ orderDelivery.setCreateTime(orderTime);
|
|
|
|
|
+ orderDelivery.setUpdateUser(userId.toString());
|
|
|
|
|
+ orderDelivery.setUpdateTime(orderTime);
|
|
|
|
|
+ orderDeliveryList.add(orderDelivery);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ orderDeliveryMapper.batchInsertOrderDelivery(orderDeliveryList);
|
|
|
|
|
+
|
|
|
orderCreatedEvent(order);
|
|
orderCreatedEvent(order);
|
|
|
|
|
|
|
|
config = wxPayService.getConfig();
|
|
config = wxPayService.getConfig();
|
|
|
|
|
|
|
|
WxPayUnifiedOrderV3Result.JsapiResult result = callWxpay(order,currentUser.getWxOpenId(),order.getOrderAmount().intValue(),currentUser.getLoginIp());
|
|
WxPayUnifiedOrderV3Result.JsapiResult result = callWxpay(order,currentUser.getWxOpenId(),order.getOrderAmount().intValue(),currentUser.getLoginIp());
|
|
|
- OrderCreateResponse rtn = new OrderCreateResponse(order,new OrderPaySignDTO(order.getOrderId(),orderNo,result.getPaySign()));
|
|
|
|
|
|
|
|
|
|
- return rtn;
|
|
|
|
|
|
|
+ return new OrderCreateResponse(order,new OrderPaySignDTO(order.getOrderId(),orderNo,result.getPaySign()));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|