From b12efd16399d217756bf71b92d88b29bd4781295 Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Fri, 12 Mar 2021 14:18:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/score_shop' into score_shop
---
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 56 ++++++++++++++++++++++++++++++++------------------------
1 files changed, 32 insertions(+), 24 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
index 2068607..7fac417 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -278,23 +278,22 @@
throw new GlobleException("订单已取消");
}
- List<SysOrderItem> sysOrderItems = orderItemDao.selectByOrderId(id);
+ List<SysOrderFlow> flows = sysOrderFlowDao.selectByOrderId(id);
+ // 非现金收款退回扣卡余额
+ for (SysOrderFlow flow : flows) {
+ if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) {
- for (SysOrderItem orderItem : sysOrderItems) {
-
- //非现金收款退回扣卡余额
- if (StringUtils.isNotBlank(orderItem.getPayMethodDetail())) {
-
- MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(orderItem.getPayMethodDetail()));
+ MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId());
MoneyCardUseFlow moneyCardUseFlow = new MoneyCardUseFlow();
if (moneyCardUse != null) {
-
// 根据订单明细判断是赠送金额购买还是本金购买
-
- moneyCardUseFlow.setTotal(orderItem.getCardPay());
- moneyCardUse.setRealMoney(MoneyUtil.add(moneyCardUse.getRealMoney(), orderItem.getCardPay()));
- //TODO 目前无法退回到具体的赠送金额还是本金
+ moneyCardUseFlow.setTotal(flow.getAmount().doubleValue());
+ if (SysOrderFlow.IS_GIFT_Y.equals(flow.getIsGift())) {
+ moneyCardUse.setGiftMoney(MoneyUtil.add(moneyCardUse.getGiftMoney(), flow.getAmount().doubleValue()));
+ } else {
+ moneyCardUse.setRealMoney(MoneyUtil.add(moneyCardUse.getRealMoney(), flow.getAmount().doubleValue()));
+ }
if (!moneyCardUse.getIsVipCar().equals(Dictionary.FLAG_YES_Y)) {
if (moneyCardUse.getLastCount() != null) {
@@ -316,29 +315,26 @@
moneyCardUseFlowDao.insert(moneyCardUseFlow);
}
}
+ }
+
+ List<SysOrderItem> sysOrderItems = orderItemDao.selectByOrderId(id);
+ for (SysOrderItem orderItem : sysOrderItems) {
// 充值卡类型退款
if (Dictionary.SHOPPING_GOODS_TYPE_CZK.equals(orderItem.getType())) {
-
ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(orderItem.getGoodsId());
-
-
//删除购买的充值卡
moneyCardUseDao.deleteByOrderItemId(orderItem.getId());
-
} else if (Dictionary.SHOPPING_GOODS_TYPE_XM.equals(orderItem.getType())
|| Dictionary.SHOPPING_GOODS_TYPE_TC.equals(orderItem.getType())) {
// 项目套餐退款
// 删除套餐项目使用情况
sysProjUseDao.deleteByOrderItemId(orderItem.getId());
-
-
} else if (Dictionary.SHOPPING_GOODS_TYPE_ZHK.equals(orderItem.getType())) {
// 综合卡
// 删除套餐项目使用情况
sysProjUseDao.deleteByOrderItemId(orderItem.getId());
// 删除充值卡
moneyCardUseDao.deleteByOrderItemId(orderItem.getId());
-
}
}
@@ -368,8 +364,6 @@
// 取消订单
order.setStatu(Dictionary.ORDER_STATU_YQX);
-
-
return sysOrderDao.update(order);
}
@@ -535,7 +529,7 @@
ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId);
flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品");
// 若是退款,则取负数
- if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) {
+ if (SysOrder.ORDER_TYPE_REFUND==sourceOrder.getOrderType()) {
flow.setFlowType(SysOrderFlow.FLOW_TYPE_REFUND);
flow.setAmount(flow.getAmount().negate());
flow.setOrderId(sourceOrder.getOldOrderId());
@@ -546,6 +540,7 @@
//欠款处理
if (SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod())) {
+ sourceOrder.setStatu(Dictionary.ORDER_STATU_QK);
sourceOrder.setArrears(flow.getAmount().doubleValue());
sysOrderDao.update(sourceOrder);
}
@@ -680,6 +675,14 @@
return true;
} else {
// 不是一卡通,
+ // 判断卡是否可应用于所有产品
+ ShoppingGoods cardGoods = shoppingGoodsDao.selectById(moneyCardUse.getGoodsId());
+ if (cardGoods != null) {
+ if (Dictionary.FLAG_YES.equals(cardGoods.getCarIsAll())) {
+ return true;
+ }
+ }
+
// 比较分类
MoneyCardAssemble moneyCardAssemble = new MoneyCardAssemble();
moneyCardAssemble.setCardId(moneyCardUse.getGoodsId());
@@ -1268,7 +1271,8 @@
//原订单设置为退款状态
SysOrder sourceOrder=new SysOrder();
sourceOrder.setId(sysOrder.getOldOrderId());
- sourceOrder.setStatu(Dictionary.ORDER_STATU_TK);
+ sourceOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_Y);
+// sourceOrder.setStatu(Dictionary.ORDER_STATU_TK);
sysOrderDao.update(sourceOrder);
sysOrder.setId(null);
@@ -1276,9 +1280,13 @@
sysOrder.setCompanyId(user.getCompanyId());
sysOrder.setShopId(user.getShopId());
sysOrder.setOrderType(SysOrder.ORDER_TYPE_REFUND);
- sysOrder.setOrderTime(new Date());
+ sysOrder.setStatu(Dictionary.ORDER_STATU_YFK);
+ Date now = new Date();
+ sysOrder.setOrderTime(now);
+ sysOrder.setPayTime(now);
sysOrder.setOrderNo(codeService.getRefundOrderNo());
sysOrder.setZkTotal(-sysOrder.getZkTotal());
+ sysOrder.setOrderType(SysOrder.ORDER_TYPE_REFUND);
//新增订单
sysOrderDao.insert(sysOrder);
//插入明细
--
Gitblit v1.9.1