|
@@ -40,6 +40,7 @@ import com.caimei.modules.user.utils.UserUtils;
|
|
import com.caimei.po.ProductLadderPrice;
|
|
import com.caimei.po.ProductLadderPrice;
|
|
import com.caimei.po.neworder.CmShopOrder;
|
|
import com.caimei.po.neworder.CmShopOrder;
|
|
import com.caimei.utils.*;
|
|
import com.caimei.utils.*;
|
|
|
|
+import com.google.common.util.concurrent.AtomicDouble;
|
|
import com.thinkgem.jeesite.common.config.Global;
|
|
import com.thinkgem.jeesite.common.config.Global;
|
|
import com.thinkgem.jeesite.common.persistence.Page;
|
|
import com.thinkgem.jeesite.common.persistence.Page;
|
|
import com.thinkgem.jeesite.common.service.CrudService;
|
|
import com.thinkgem.jeesite.common.service.CrudService;
|
|
@@ -47,6 +48,7 @@ import com.thinkgem.jeesite.common.utils.DateUtils;
|
|
import com.thinkgem.jeesite.common.utils.StringUtils;
|
|
import com.thinkgem.jeesite.common.utils.StringUtils;
|
|
import com.thinkgem.jeesite.modules.sys.utils.DictUtils;
|
|
import com.thinkgem.jeesite.modules.sys.utils.DictUtils;
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
|
+import org.h2.util.New;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -138,6 +140,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
|
|
synchronized (NewOrderService.class) {
|
|
synchronized (NewOrderService.class) {
|
|
NewOrder dbOrder = newOrderDao.findByOrderID(newOrder.getOrderID());
|
|
NewOrder dbOrder = newOrderDao.findByOrderID(newOrder.getOrderID());
|
|
boolean flag = false;// 是否新增标志
|
|
boolean flag = false;// 是否新增标志
|
|
|
|
+ boolean onlinePay = true; // 能否线上支付
|
|
if (newOrder.getOrderID() == null) {
|
|
if (newOrder.getOrderID() == null) {
|
|
flag = true;
|
|
flag = true;
|
|
newOrder.setOrderNo(OrderUtil.geneAdminOrderNo());
|
|
newOrder.setOrderNo(OrderUtil.geneAdminOrderNo());
|
|
@@ -174,6 +177,14 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
|
|
if (newOrder.getAffirmPaymentFlag() == null) {
|
|
if (newOrder.getAffirmPaymentFlag() == null) {
|
|
newOrder.setAffirmPaymentFlag("0");
|
|
newOrder.setAffirmPaymentFlag("0");
|
|
}
|
|
}
|
|
|
|
+ // 有赠品不能线上支付
|
|
|
|
+ if (newOrder.getPresentCount() > 0 || newOrder.getPromotionalGiftsCount() > 0) {
|
|
|
|
+ onlinePay = false;
|
|
|
|
+ }
|
|
|
|
+ // 用余额不能线上支付
|
|
|
|
+ if (newOrder.getBalancePayFee() != null && newOrder.getBalancePayFee() > 0) {
|
|
|
|
+ onlinePay = false;
|
|
|
|
+ }
|
|
// 协销订单设置会所信息
|
|
// 协销订单设置会所信息
|
|
if (newOrder.getBpOrderUserinfo() != null && newOrder.getBpOrderUserinfo().getClubId() != null) {
|
|
if (newOrder.getBpOrderUserinfo() != null && newOrder.getBpOrderUserinfo().getClubId() != null) {
|
|
newOrder.setClubID(newOrder.getBpOrderUserinfo().getClubId().intValue());
|
|
newOrder.setClubID(newOrder.getBpOrderUserinfo().getClubId().intValue());
|
|
@@ -201,6 +212,12 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
|
|
|
|
|
|
//采购中选中保存的订单商品
|
|
//采购中选中保存的订单商品
|
|
List<NewOrderProduct> orderProducts = newOrder.getOrderProduct();
|
|
List<NewOrderProduct> orderProducts = newOrder.getOrderProduct();
|
|
|
|
+ for (NewOrderProduct orderProduct : orderProducts) {
|
|
|
|
+ if (StringUtils.isEmpty(orderProduct.getSplitCode())) {
|
|
|
|
+ onlinePay = false;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
double preferential = 0d;
|
|
double preferential = 0d;
|
|
double discountFee = 0d;
|
|
double discountFee = 0d;
|
|
double productTotalFee = 0D;
|
|
double productTotalFee = 0D;
|
|
@@ -408,7 +425,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
|
|
//新增加的订单,那么删除原有的子订单 和订单商品信息
|
|
//新增加的订单,那么删除原有的子订单 和订单商品信息
|
|
newOrderProductDao.deleteByOrderID(newOrder.getOrderID());
|
|
newOrderProductDao.deleteByOrderID(newOrder.getOrderID());
|
|
newShopOrderDao.deleteByOrderID(newOrder.getOrderID());
|
|
newShopOrderDao.deleteByOrderID(newOrder.getOrderID());
|
|
- OrderUtil.orderSplit(newOrder);
|
|
|
|
|
|
+ OrderUtil.orderSplit(newOrder, onlinePay);
|
|
// 重新生成这些子订单 和订单商品信息
|
|
// 重新生成这些子订单 和订单商品信息
|
|
for (NewShopOrder shopOrder : newOrder.getNewShopOrders()) {
|
|
for (NewShopOrder shopOrder : newOrder.getNewShopOrders()) {
|
|
shopOrder.setOrderID(newOrder.getOrderID());
|
|
shopOrder.setOrderID(newOrder.getOrderID());
|
|
@@ -425,7 +442,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
|
|
for (NewOrderProduct orderProduct : shopOrder.getNewOrderProducts()) {
|
|
for (NewOrderProduct orderProduct : shopOrder.getNewOrderProducts()) {
|
|
productName.append(orderProduct.getName());
|
|
productName.append(orderProduct.getName());
|
|
// 没有折扣时促销才生效
|
|
// 没有折扣时促销才生效
|
|
- if (orderProduct.getDiscount() >= 100d) {
|
|
|
|
|
|
+ if (orderProduct.getDiscount() >= 100d && !onlinePay) {
|
|
if (null != promotionsList && promotionsList.size() > 0) {
|
|
if (null != promotionsList && promotionsList.size() > 0) {
|
|
for (CmPromotion promotion : promotionsList) {
|
|
for (CmPromotion promotion : promotionsList) {
|
|
if ("3".equals(promotion.getType())) {
|
|
if ("3".equals(promotion.getType())) {
|
|
@@ -481,19 +498,87 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
|
|
shopOrder.setShouldPayShopAmount(shopProductAmount + shopTaxFee);
|
|
shopOrder.setShouldPayShopAmount(shopProductAmount + shopTaxFee);
|
|
shopOrder.setPayedShopAmount(0D);
|
|
shopOrder.setPayedShopAmount(0D);
|
|
shopOrder.setShopOtherFee(0D);
|
|
shopOrder.setShopOtherFee(0D);
|
|
|
|
+ }
|
|
|
|
+ if (onlinePay) {
|
|
|
|
+ //线上支付分摊优惠总和到子订单
|
|
|
|
+ //经理折扣+优惠券+满减
|
|
|
|
+ double allDiscount = MathUtil.add(MathUtil.add(newOrder.getCouponAmount(), newOrder.getPromotionFullReduction()),newOrder.getDiscountFee()).doubleValue();
|
|
|
|
+ // 分摊优惠前总佣金
|
|
|
|
+ AtomicDouble oldBrokerage = new AtomicDouble(0);
|
|
|
|
+ List<NewShopOrder> shopOrderList = newOrder.getNewShopOrders();
|
|
|
|
+ shopOrderList.forEach(shopOrder->{
|
|
|
|
+ oldBrokerage.set(MathUtil.add(oldBrokerage.get(), shopOrder.getBrokerage()).doubleValue());
|
|
|
|
+ });
|
|
|
|
+ // 按分摊前的佣金排序
|
|
|
|
+ shopOrderList.sort((o1, o2) -> o2.getBrokerage().compareTo(o1.getBrokerage()));
|
|
|
|
+ // 前面子订单的分摊优惠总和
|
|
|
|
+ AtomicDouble allReduction = new AtomicDouble(0);
|
|
|
|
+ if (allDiscount > 0) {
|
|
|
|
+ for (int i = 0; i < shopOrderList.size(); i++) {
|
|
|
|
+ NewShopOrder shopOrder = shopOrderList.get(i);
|
|
|
|
+ if (i < shopOrderList.size() - 1) {
|
|
|
|
+ //最终支付金额=分摊前支付金额oldprice-折扣*(分摊前佣金/分摊前总佣金)
|
|
|
|
+ //优惠分摊金额
|
|
|
|
+ double v = MathUtil.mul(allDiscount, MathUtil.div(shopOrder.getBrokerage(), oldBrokerage.get()), 2).doubleValue();
|
|
|
|
+ shopOrder.setEachDiscount(v);
|
|
|
|
+ //子订单真实支付金额
|
|
|
|
+ double realPay = MathUtil.round(MathUtil.sub(shopOrder.getNeedPayAmount(), v), 2).doubleValue();
|
|
|
|
+ shopOrder.setRealPay(realPay);
|
|
|
|
+ allReduction.set(MathUtil.add(v, allReduction.get()).doubleValue());
|
|
|
|
+ }
|
|
|
|
+ if (i == shopOrderList.size() - 1) {
|
|
|
|
+ //最后一个子订单的分摊优惠金额=全优惠allDiscount-已分摊
|
|
|
|
+ double v = MathUtil.sub(allDiscount, allReduction.get()).doubleValue();
|
|
|
|
+ shopOrder.setEachDiscount(v);
|
|
|
|
+ shopOrder.setRealPay(MathUtil.round(MathUtil.sub(shopOrder.getNeedPayAmount(), v), 2).doubleValue());
|
|
|
|
+ }
|
|
|
|
+ //有优惠金额,最高手续费=支付金额*0.65%>10取0.65,不大于取10(合利宝最高0.65%)
|
|
|
|
+ double realPay = shopOrder.getRealPay();
|
|
|
|
+ double charge = MathUtil.mul(realPay, 0.0065, 2).doubleValue() > 10 ? MathUtil.mul(realPay, 0.0065, 2).doubleValue() : 10;
|
|
|
|
+ //佣金>最高手续费可以线上,否则线下
|
|
|
|
+ double bro = MathUtil.sub(realPay, shopOrder.getShouldPayShopAmount()).doubleValue();
|
|
|
|
+ if (bro < charge) {
|
|
|
|
+ onlinePay = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //无优惠金额
|
|
|
|
+ for (int i = 0; i < shopOrderList.size(); i++) {
|
|
|
|
+ NewShopOrder shopOrder = shopOrderList.get(i);
|
|
|
|
+ double realPay = shopOrder.getNeedPayAmount();
|
|
|
|
+ shopOrder.setRealPay(realPay);
|
|
|
|
+ shopOrder.setEachDiscount(0d);
|
|
|
|
+ double charge = MathUtil.mul(realPay, 0.0065, 2).doubleValue() > 10 ? MathUtil.mul(realPay, 0.0065, 2).doubleValue() : 10;
|
|
|
|
+ double bro = shopOrder.getBrokerage();
|
|
|
|
+ shopOrder.setRealPay(realPay);
|
|
|
|
+ shopOrder.setEachDiscount(0d);
|
|
|
|
+ if (bro < charge) {
|
|
|
|
+ onlinePay = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 更新主订单线上支付按钮
|
|
|
|
+ * onlinePayFlag:0可以 1不可以
|
|
|
|
+ */
|
|
|
|
+ Integer onlinePayFlag = onlinePay ? 0 : 1;
|
|
|
|
+ newOrder.setOnlinePayFlag(onlinePayFlag.toString());
|
|
|
|
+ // 更新子订单信息
|
|
|
|
+ for (NewShopOrder shopOrder : newOrder.getNewShopOrders()) {
|
|
newShopOrderDao.update(shopOrder);
|
|
newShopOrderDao.update(shopOrder);
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
// 重新保存逻辑
|
|
// 重新保存逻辑
|
|
//把从页面上传过来的orderProduct 根据 shopID 来分组
|
|
//把从页面上传过来的orderProduct 根据 shopID 来分组
|
|
- Map<Integer, List<NewOrderProduct>> orderProductMap = new HashMap<>();
|
|
|
|
|
|
+ Map<String, List<NewOrderProduct>> orderProductMap = new HashMap<>();
|
|
for (NewOrderProduct op : newOrder.getOrderProduct()) {
|
|
for (NewOrderProduct op : newOrder.getOrderProduct()) {
|
|
- if (orderProductMap.containsKey(op.getShopID())) {
|
|
|
|
- orderProductMap.get(op.getShopID()).add(op);
|
|
|
|
|
|
+ if (orderProductMap.containsKey(onlinePay ? op.getSplitCode() + "-" + op.getShopID() : op.getShopID().toString())) {
|
|
|
|
+ orderProductMap.get(onlinePay ? op.getSplitCode() + "-" + op.getShopID() : op.getShopID().toString()).add(op);
|
|
} else {
|
|
} else {
|
|
List<NewOrderProduct> l = new ArrayList<>();
|
|
List<NewOrderProduct> l = new ArrayList<>();
|
|
l.add(op);
|
|
l.add(op);
|
|
- orderProductMap.put(op.getShopID(), l);
|
|
|
|
|
|
+ orderProductMap.put(onlinePay ? op.getSplitCode() + "-" + op.getShopID() : op.getShopID().toString(), l);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// orderProduct 分组完成
|
|
// orderProduct 分组完成
|
|
@@ -503,7 +588,7 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
|
|
//删除多余的shopOrder记录
|
|
//删除多余的shopOrder记录
|
|
for (NewShopOrder s : dbShopOrders) {
|
|
for (NewShopOrder s : dbShopOrders) {
|
|
// 说明这个重新选择的orderProduct已经不包含这个供应商shopID的商品了
|
|
// 说明这个重新选择的orderProduct已经不包含这个供应商shopID的商品了
|
|
- if (!orderProductMap.containsKey(s.getShopID())) {
|
|
|
|
|
|
+ if (!orderProductMap.containsKey(onlinePay ? s.getSplitCode() + "-" + s.getShopID() : s.getShopID().toString())) {
|
|
newShopOrderDao.delete(s);
|
|
newShopOrderDao.delete(s);
|
|
}
|
|
}
|
|
s.setSendOutStatus("1");
|
|
s.setSendOutStatus("1");
|
|
@@ -511,17 +596,18 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
|
|
shopOrderNoIndex = shopOrderNoIndex < shopOrderIndex ? shopOrderIndex : shopOrderNoIndex;
|
|
shopOrderNoIndex = shopOrderNoIndex < shopOrderIndex ? shopOrderIndex : shopOrderNoIndex;
|
|
}
|
|
}
|
|
//更新其余的shopOrder的信息
|
|
//更新其余的shopOrder的信息
|
|
|
|
+ List<NewShopOrder> newShopOrderList = new ArrayList<>();
|
|
A:
|
|
A:
|
|
- for (Map.Entry<Integer, List<NewOrderProduct>> entry : orderProductMap.entrySet()) {
|
|
|
|
|
|
+ for (Map.Entry<String, List<NewOrderProduct>> entry : orderProductMap.entrySet()) {
|
|
for (NewShopOrder s : dbShopOrders) {
|
|
for (NewShopOrder s : dbShopOrders) {
|
|
- if (s.getShopID().intValue() == entry.getKey().intValue()) {
|
|
|
|
- OrderUtil.updateShopOrderInfo(s, entry.getValue(), newOrder.getPromotions());
|
|
|
|
- newShopOrderDao.update(s);
|
|
|
|
|
|
+ if ((onlinePay ? s.getSplitCode() + "-" + s.getShopID() : s.getShopID().toString()).equals(entry.getKey())) {
|
|
|
|
+ OrderUtil.updateShopOrderInfo(s, entry.getValue(), newOrder.getPromotions(), onlinePay);
|
|
|
|
+ newShopOrderList.add(s);
|
|
continue A;
|
|
continue A;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
NewShopOrder newShopOrder = new NewShopOrder();
|
|
NewShopOrder newShopOrder = new NewShopOrder();
|
|
- OrderUtil.updateShopOrderInfo(newShopOrder, entry.getValue(), newOrder.getPromotions());
|
|
|
|
|
|
+ OrderUtil.updateShopOrderInfo(newShopOrder, entry.getValue(), newOrder.getPromotions(), onlinePay);
|
|
newShopOrder.setShopOrderNo(OrderUtil.getshopOrderNo(newOrder.getOrderNo(), ++shopOrderNoIndex));
|
|
newShopOrder.setShopOrderNo(OrderUtil.getshopOrderNo(newOrder.getOrderNo(), ++shopOrderNoIndex));
|
|
newShopOrder.setSendOutStatus("1");
|
|
newShopOrder.setSendOutStatus("1");
|
|
newShopOrder.setOrderNo(newOrder.getOrderNo());
|
|
newShopOrder.setOrderNo(newOrder.getOrderNo());
|
|
@@ -555,12 +641,93 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
|
|
newShopOrder.setDelFlag("0");
|
|
newShopOrder.setDelFlag("0");
|
|
newShopOrder.setPayFlag("0");
|
|
newShopOrder.setPayFlag("0");
|
|
newShopOrder.setSplitFlag("1");// 订单默认可拆分
|
|
newShopOrder.setSplitFlag("1");// 订单默认可拆分
|
|
- newShopOrderDao.insert(newShopOrder);
|
|
|
|
- for (NewOrderProduct product : orderProducts) {
|
|
|
|
- if (product.getShopID().intValue() == newShopOrder.getShopID().intValue()) {
|
|
|
|
- product.setShopOrderID(newShopOrder.getShopOrderID());
|
|
|
|
- product.setShopOrderNo(newShopOrder.getShopOrderNo());
|
|
|
|
- product.setOrderPromotionsId(product.getOrderPromotionsId());
|
|
|
|
|
|
+ newShopOrder.setShopReceiptStatus("3".equals(newOrder.getReceiptStatus()) ? 3 : 1);
|
|
|
|
+ newShopOrder.setRealPay(0d);
|
|
|
|
+ newShopOrder.setEachDiscount(0d);
|
|
|
|
+ newShopOrder.setReceiptAmount(0d);
|
|
|
|
+ NewOrderProduct orderProduct = orderProducts.get(0);
|
|
|
|
+ if (null != orderProduct) {
|
|
|
|
+ newShopOrder.setSplitCode(orderProduct.getSplitCode());
|
|
|
|
+ }
|
|
|
|
+ newShopOrderList.add(newShopOrder);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ if (onlinePay) {
|
|
|
|
+ //线上支付分摊优惠总和到子订单
|
|
|
|
+ //经理折扣+优惠券+满减
|
|
|
|
+ double allDiscount = MathUtil.add(MathUtil.add(newOrder.getCouponAmount(), newOrder.getPromotionFullReduction()),newOrder.getDiscountFee()).doubleValue();
|
|
|
|
+ // 分摊优惠前总佣金
|
|
|
|
+ AtomicDouble oldBrokerage = new AtomicDouble(0);
|
|
|
|
+ newShopOrderList.forEach(shopOrder->{
|
|
|
|
+ oldBrokerage.set(MathUtil.add(oldBrokerage.get(), shopOrder.getBrokerage()).doubleValue());
|
|
|
|
+ });
|
|
|
|
+ // 按分摊前的佣金排序
|
|
|
|
+ newShopOrderList.sort((o1, o2) -> o2.getBrokerage().compareTo(o1.getBrokerage()));
|
|
|
|
+ // 前面子订单的分摊优惠总和
|
|
|
|
+ AtomicDouble allReduction = new AtomicDouble(0);
|
|
|
|
+ if (allDiscount > 0) {
|
|
|
|
+ for (int i = 0; i < newShopOrderList.size(); i++) {
|
|
|
|
+ NewShopOrder shopOrder = newShopOrderList.get(i);
|
|
|
|
+ if (i < newShopOrderList.size() - 1) {
|
|
|
|
+ //最终支付金额=分摊前支付金额oldprice-折扣*(分摊前佣金/分摊前总佣金)
|
|
|
|
+ //优惠分摊金额
|
|
|
|
+ double v = MathUtil.mul(allDiscount, MathUtil.div(shopOrder.getBrokerage(), oldBrokerage.get()), 2).doubleValue();
|
|
|
|
+ shopOrder.setEachDiscount(v);
|
|
|
|
+ //子订单真实支付金额
|
|
|
|
+ double realPay = MathUtil.round(MathUtil.sub(shopOrder.getNeedPayAmount(), v), 2).doubleValue();
|
|
|
|
+ shopOrder.setRealPay(realPay);
|
|
|
|
+ allReduction.set(MathUtil.add(v, allReduction.get()).doubleValue());
|
|
|
|
+ }
|
|
|
|
+ if (i == newShopOrderList.size() - 1) {
|
|
|
|
+ //最后一个子订单的分摊优惠金额=全优惠allDiscount-已分摊
|
|
|
|
+ double v = MathUtil.sub(allDiscount, allReduction.get()).doubleValue();
|
|
|
|
+ shopOrder.setEachDiscount(v);
|
|
|
|
+ shopOrder.setRealPay(MathUtil.round(MathUtil.sub(shopOrder.getNeedPayAmount(), v), 2).doubleValue());
|
|
|
|
+ }
|
|
|
|
+ //有优惠金额,最高手续费=支付金额*0.65%>10取0.65,不大于取10(合利宝最高0.65%)
|
|
|
|
+ double realPay = shopOrder.getRealPay();
|
|
|
|
+ double charge = MathUtil.mul(realPay, 0.0065, 2).doubleValue() > 10 ? MathUtil.mul(realPay, 0.0065, 2).doubleValue() : 10;
|
|
|
|
+ //佣金>最高手续费可以线上,否则线下
|
|
|
|
+ double bro = MathUtil.sub(realPay, shopOrder.getShouldPayShopAmount()).doubleValue();
|
|
|
|
+ if (bro < charge) {
|
|
|
|
+ onlinePay = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //无优惠金额
|
|
|
|
+ for (int i = 0; i < newShopOrderList.size(); i++) {
|
|
|
|
+ NewShopOrder shopOrder = newShopOrderList.get(i);
|
|
|
|
+ double realPay = shopOrder.getNeedPayAmount();
|
|
|
|
+ shopOrder.setRealPay(realPay);
|
|
|
|
+ shopOrder.setEachDiscount(0d);
|
|
|
|
+ double charge = MathUtil.mul(realPay, 0.0065, 2).doubleValue() > 10 ? MathUtil.mul(realPay, 0.0065, 2).doubleValue() : 10;
|
|
|
|
+ double bro = shopOrder.getBrokerage();
|
|
|
|
+ shopOrder.setRealPay(realPay);
|
|
|
|
+ shopOrder.setEachDiscount(0d);
|
|
|
|
+ if (bro < charge) {
|
|
|
|
+ onlinePay = false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 更新主订单线上支付按钮
|
|
|
|
+ * onlinePayFlag:0可以 1不可以
|
|
|
|
+ */
|
|
|
|
+ Integer onlinePayFlag = onlinePay ? 0 : 1;
|
|
|
|
+ newOrder.setOnlinePayFlag(onlinePayFlag.toString());
|
|
|
|
+ // 保存子订单
|
|
|
|
+ for (NewShopOrder newShopOrder : newShopOrderList) {
|
|
|
|
+ if (null != newShopOrder.getShopOrderID()) {
|
|
|
|
+ newShopOrderDao.update(newShopOrder);
|
|
|
|
+ } else {
|
|
|
|
+ newShopOrderDao.insert(newShopOrder);
|
|
|
|
+ for (NewOrderProduct product : orderProducts) {
|
|
|
|
+ if (product.getShopID().intValue() == newShopOrder.getShopID().intValue() && (onlinePay && product.getSplitCode().equals(newShopOrder.getSplitCode()))) {
|
|
|
|
+ product.setShopOrderID(newShopOrder.getShopOrderID());
|
|
|
|
+ product.setShopOrderNo(newShopOrder.getShopOrderNo());
|
|
|
|
+ product.setOrderPromotionsId(product.getOrderPromotionsId());
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1698,9 +1865,9 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
|
|
}
|
|
}
|
|
dbShopOrder.setSplitFlag("0");// 拆分后订单无法再次拆分
|
|
dbShopOrder.setSplitFlag("0");// 拆分后订单无法再次拆分
|
|
newShopOrder.setSplitFlag("0");
|
|
newShopOrder.setSplitFlag("0");
|
|
- OrderUtil.updateShopOrderInfo(dbShopOrder, oldOrderProductList, null); // 根据拆分后的订单商品重新统计子订单信息
|
|
|
|
|
|
+ OrderUtil.updateShopOrderInfo(dbShopOrder, oldOrderProductList, null, true); // 根据拆分后的订单商品重新统计子订单信息
|
|
newShopOrderDao.updateByShopOrderID(dbShopOrder);// 更新原来的子订单
|
|
newShopOrderDao.updateByShopOrderID(dbShopOrder);// 更新原来的子订单
|
|
- OrderUtil.updateShopOrderInfo(newShopOrder, newOrderProductList, null);
|
|
|
|
|
|
+ OrderUtil.updateShopOrderInfo(newShopOrder, newOrderProductList, null, true);
|
|
newShopOrder.setShopOrderNo(OrderUtil.getshopOrderNo(dbShopOrder.getOrderNo(), ++bigNum));
|
|
newShopOrder.setShopOrderNo(OrderUtil.getshopOrderNo(dbShopOrder.getOrderNo(), ++bigNum));
|
|
newShopOrderDao.insert(newShopOrder);// 插入新增的拆分订单
|
|
newShopOrderDao.insert(newShopOrder);// 插入新增的拆分订单
|
|
String orderProductIDs = "";
|
|
String orderProductIDs = "";
|
|
@@ -1795,13 +1962,13 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
|
|
for (Map.Entry<Integer, List<NewOrderProduct>> entry : orderProductMap.entrySet()) {
|
|
for (Map.Entry<Integer, List<NewOrderProduct>> entry : orderProductMap.entrySet()) {
|
|
for (NewShopOrder s : dbShopOrders) {
|
|
for (NewShopOrder s : dbShopOrders) {
|
|
if (s.getShopID().intValue() == entry.getKey().intValue()) {
|
|
if (s.getShopID().intValue() == entry.getKey().intValue()) {
|
|
- OrderUtil.updateShopOrderInfo(s, entry.getValue(), null);
|
|
|
|
|
|
+ OrderUtil.updateShopOrderInfo(s, entry.getValue(), null, true);
|
|
newShopOrderDao.update(s);
|
|
newShopOrderDao.update(s);
|
|
continue A;
|
|
continue A;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
NewShopOrder newShopOrder = new NewShopOrder();
|
|
NewShopOrder newShopOrder = new NewShopOrder();
|
|
- OrderUtil.updateShopOrderInfo(newShopOrder, entry.getValue(), null);
|
|
|
|
|
|
+ OrderUtil.updateShopOrderInfo(newShopOrder, entry.getValue(), null, true);
|
|
newShopOrder.setShopOrderNo(OrderUtil.getshopOrderNo(newOrder.getOrderNo(), ++shopOrderNoIndex));
|
|
newShopOrder.setShopOrderNo(OrderUtil.getshopOrderNo(newOrder.getOrderNo(), ++shopOrderNoIndex));
|
|
newShopOrder.setOrderNo(newOrder.getOrderNo());
|
|
newShopOrder.setOrderNo(newOrder.getOrderNo());
|
|
newShopOrder.setOrderID(newOrder.getOrderID());
|
|
newShopOrder.setOrderID(newOrder.getOrderID());
|