From 7e6a42fdddef2cc7981d736a138c719aba53563c Mon Sep 17 00:00:00 2001
From: JiangYouYao <ak473600000>
Date: Fri, 11 Mar 2022 18:12:04 +0800
Subject: [PATCH] 重构:充值卡
---
zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java | 140 ++++++++++++++++++++++++----------------------
1 files changed, 73 insertions(+), 67 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java
index ff1dcb2..2b6ba2e 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java
@@ -1,21 +1,19 @@
package com.matrix.system.hive.service.imp;
-import com.matrix.core.constance.MatrixConstance;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.PaginationVO;
-import com.matrix.core.tools.WebUtil;
-import com.matrix.system.common.bean.SysUsers;
+import com.matrix.core.pojo.VerificationResult;
+import com.matrix.core.tools.DateUtil;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
-import com.matrix.system.hive.plugin.util.DateUtils;
-import com.matrix.system.hive.plugin.util.MoneyUtil;
+import com.matrix.system.hive.dto.MoneyCardChangeDto;
import com.matrix.system.hive.service.MoneyCardUseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.text.DecimalFormat;
import java.util.Date;
import java.util.List;
@@ -24,7 +22,7 @@
* @date 2016-09-17 10:17
*/
@Service("moneyCardUseService")
-public class MoneyCardUseServiceImpl implements MoneyCardUseService {
+public class MoneyCardUseServiceImpl extends ServiceImpl<MoneyCardUseDao,MoneyCardUse> implements MoneyCardUseService {
@Autowired
@@ -41,6 +39,72 @@
@Autowired
private SysVipLevelDao viplevelDao;
+
+ @Autowired
+ ShoppingGoodsDao shoppingGoodsDao;
+
+ @Autowired
+ MoneyCardAssembleDao moneyCardAssembleDao;
+
+ @Override
+ public void changeMoneyCard(List<MoneyCardChangeDto> moneyCardChangeDtoList) {
+
+ // 判断商品是否在充值卡的限制购买,判断分类
+ moneyCardChangeDtoList.forEach(cardUse->{
+ VerificationResult verificationResult = checkIsBangding(cardUse, cardUse.getGoodsIds());
+ if (!verificationResult.isJudgeResult()) {
+ throw new GlobleException(verificationResult.getMsg());
+ }
+ });
+
+ moneyCardChangeDtoList.get().forEach(item -> {
+ if (!isInBangding(moneyCardUse, item.getGoodsId())) {
+ throw new GlobleException(shoppingGoodsDao.selectById(item.getGoodsId()).getName() + "不在" + moneyCardUse.getCardName() + "优惠中");
+ }
+ });
+
+
+ }
+
+ private VerificationResult checkIsBangding(MoneyCardChangeDto moneyCardUse, List<Long> goodsIds) {
+ // 如果是一卡通则肯定在绑定范围内
+
+ if (moneyCardUse.getIsVipCar().equals(Dictionary.FLAG_YES_Y)) {
+ 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());
+ List<MoneyCardAssemble> cardAssembleList = moneyCardAssembleDao.selectByModel(moneyCardAssemble);
+ ShoppingGoods yhGoods = shoppingGoodsDao.selectById(goodsId);
+ boolean flag = false;
+ for (MoneyCardAssemble cardAssemble : cardAssembleList) {
+ // 比较类型
+ if (cardAssemble.getType().equals(Dictionary.CZK_ASSEMBLE_FL)) {
+ if (yhGoods.getCateId().equals(cardAssemble.getCateId())) {
+ flag = true;
+ break;
+ }
+ } else {
+ // 比较绑定
+ if (yhGoods.getId().equals(cardAssemble.getGoodsId())) {
+ flag = true;
+ break;
+ }
+ }
+ }
+ return flag;
+ }
+ }
@Override
public int add(MoneyCardUse moneyCardUse) {
@@ -208,69 +272,12 @@
content.append("获取会员" + getObj.getVipInfo().getVipName() + "的" + getObj.getCardName())
.append(",余次:" + getObj.getLastCountName())
.append(",本金余额:" + getObj.getRealMoney())
- .append(",有效期:" + DateUtils.dateToString(getObj.getFailTime(), DateUtils.DATE_FORMAT_MM))
+ .append(",有效期:" + DateUtil.dateToString(getObj.getFailTime(), DateUtil.DATE_FORMAT_MM))
.append(",是否赠送:" + getObj.getSourceName());
}
}
- //退款
- @Override
- public int returnMoney(MoneyCardUse moneyCardUse, Long hjkId) {
-
- MoneyCardUse realObj = moneyCardUseDao.selectById(moneyCardUse.getId());
-
- //检测商品是否已付款完成
- if (realObj.getOrderItemId() != 1) {//不是数据迁移过来的判断付款状态
- checkOrderStatu(realObj.getOrderItemId());
- }
-
- if (!realObj.getStatus().equals(Dictionary.TAOCAN_STATUS_YX)) {
- throw new GlobleException("不是有效充值卡");
- }
-
- if (realObj.getSource().contains(Dictionary.TAOCAN_SOURCE_ZR)) {
- throw new GlobleException("转让的充值卡不能退款");
- }
- if (realObj.getSource().contains(Dictionary.TAOCAN_SOURCE_ZS)) {
- throw new GlobleException("赠送的充值卡不能退款");
- }
-
- if (Dictionary.FLAG_YES_Y.equals(realObj.getIsVipCar())) {
- //更新会员等级
- realObj.getVipInfo().setLevelId(0L);
- infoDao.update(realObj.getVipInfo());
- }
- StringBuilder content = new StringBuilder();
-
- //有会籍卡退到会籍卡中,无则退了现金
- if (hjkId != null && !hjkId.equals("")) {
- MoneyCardUse vipCard = moneyCardUseDao.selectById(hjkId);
- vipCard.setRealMoney(vipCard.getRealMoney() + realObj.getRealMoney());
- moneyCardUseDao.update(vipCard);
- content.append(realObj.getCardName() + "退款¥" + realObj.getRealMoney() + "到会籍卡")
- .append(vipCard.getCardName())
- .append(",余次:" + vipCard.getLastCountName())
- .append(",本金余额:" + vipCard.getRealMoney())
- .append(",有效期:" + DateUtils.dateToString(vipCard.getFailTime(), DateUtils.DATE_FORMAT_MM))
- .append(",是否赠送:" + vipCard.getSourceName());
- } else {
- content.append(realObj.getCardName() + "退款现金¥" + moneyCardUse.getReturnMonery() + "");
- }
- DecimalFormat df = new DecimalFormat("#.00");
- double d = Double.valueOf(df.format(realObj.getRealMoney() - Double.valueOf(moneyCardUse.getReturnMonery())));
- //退款的本金为零,状态为已退款
- realObj.setRealMoney(d);
- //赠送金额也清零
- realObj.setGiftMoney(0.0);
- if (d <= 0) {
- realObj.setStatus(Dictionary.TAOCAN_STATUS_TK);
- }
- int i = moneyCardUseDao.update(realObj);
- SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
- //新增退款流水
- return i;
- }
//设置为有效
@Override
@@ -284,8 +291,7 @@
}
}
moneyCardUseDao.update(proj);
- StringBuilder content = new StringBuilder();
- content.append(proj.getCardName() + "设置有效");
+
}
//设置为失效
--
Gitblit v1.9.1