From 929715e2485051bee11cecadd5d650eb44df5fdd Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 27 May 2022 19:47:47 +0800
Subject: [PATCH] Merge branch 'developer'
---
zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml | 6 ++++++
zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java | 2 ++
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 22 ++++++++++++++++++++++
3 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java
index 7a26149..820f0c4 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/MoneyCardUseFlowDao.java
@@ -35,5 +35,7 @@
public MoneyCardUseFlow selectById(Long id);
int updateVipCardId(@Param("vipId") Long vipId, @Param("cardId") Long cardId);
+
+ double selectCardUseAmount(Long cardId);
}
\ No newline at end of file
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 f0b2641..e233097 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
@@ -925,6 +925,28 @@
}
});
+ // 充值卡订单欠款检测
+ if (Dictionary.FLAG_NO_N.equals(moneyCardUse.getIsVipCar())) {
+ SysOrder sysOrder = sysOrderDao.selectById(orderItemDao.selectById(moneyCardUse.getOrderItemId()).getOrderId());
+ if (Dictionary.ORDER_STATU_QK.equals(sysOrder.getStatu())) {
+ if (SysOrderFlow.IS_GIFT_Y.equals(flow.getIsGift())) {
+ throw new GlobleException("充值卡订单存在欠款,无法使用赠送余额支付");
+ }
+
+ // 若该笔订单中,有多项明细,则充值卡直接无法支付; 若订单中,仅充值卡一项,则已付款和充值卡使用情况判断是否可使用
+ List<SysOrderItem> items = orderItemDao.selectByOrderId(sysOrder.getId());
+ if (items.size() > 1) {
+ throw new GlobleException("充值卡订单存在欠款,无法支付");
+ } else {
+ double totalUse = moneyCardUseFlowDao.selectCardUseAmount(moneyCardUse.getId());
+ Double hasPay = sysOrder.getZkTotal() - sysOrder.getArrears();
+ if (hasPay < (totalUse + flow.getAmount().doubleValue())) {
+ throw new GlobleException("充值卡订单存在欠款,已支付金额不足");
+ }
+ }
+ }
+ }
+
SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
MoneyCardUseFlow moneyCardUseFlow = new MoneyCardUseFlow();
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml
index 96da104..8ab6258 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/MoneyCardUseFlowDao.xml
@@ -366,6 +366,12 @@
set car_use_id=#{cardId}
where vip_id=#{vipId} and type='会员充值'
</update>
+
+ <select id="selectCardUseAmount" resultType="java.lang.Double">
+ select IFNULL(ABS(sum(IFNULL(total, 0))), 0)
+ from money_card_use_flow
+ where car_use_id=#{cardId} and type='消费扣款'
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1