From 7ef344dbe8fa92d479477d3cec483872f8080b77 Mon Sep 17 00:00:00 2001
From: jyy <jyy>
Date: Tue, 27 Jul 2021 12:01:27 +0800
Subject: [PATCH] Merge branch 'score_shop' into api_score_meger
---
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java | 272 ++++++++++++++++++++++--------------------------------
1 files changed, 112 insertions(+), 160 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java
index 8e0556f..9e78b10 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java
@@ -10,15 +10,12 @@
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.CollectionUtils;
-import com.matrix.core.tools.DateUtil;
import com.matrix.system.hive.plugin.util.MoneyUtil;
import com.matrix.system.hive.service.SysProjUseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import javax.xml.crypto.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -62,6 +59,9 @@
@Override
public int modify(SysProjUse sysProjUse) {
+ //插入套餐项目操作记录
+
+
return sysProjUseDao.update(sysProjUse);
@@ -198,24 +198,50 @@
@Override
public AjaxResult activeTc(SysProjUse proj) {
-
+ Date newDate = proj.getFailTime();
+ Date today = new Date();
SysProjUse taocan = sysProjUseDao.selectById(proj.getId());
switch (taocan.getStatus()) {
case Dictionary.TAOCAN_STATUS_WX:
// 如果到期,需要重新设置有效期
- if (taocan.getFailTime().before(new Date())) {
- taocan.setFailTime(DateUtil.getDateAfterMonth(new Date(),12));
+ if (newDate != null && !newDate.equals("")) {
+ taocan.setFailTime(newDate);
+ if (newDate.before(today)) {
+ return new AjaxResult(AjaxResult.STATUS_FAIL, "有效期要大于当前日期");
+ }
+ }
+
+ if (newDate == null && (taocan.getFailTime() == null || taocan.getFailTime().before(today))) {
+ return new AjaxResult(AjaxResult.STATUS_SUCCESS, "已过期");
}
break;
- //TODO 如果是冻结状态则要算出冻结的天数,延长有效期
case Dictionary.TAOCAN_STATUS_DJ:
+ SysProjuseFreeze freeze = new SysProjuseFreeze();
+ freeze.setOrderItemId(taocan.getId().toString());
+ freeze.setVipId(taocan.getVipId());
+ SysProjuseFreeze freezeProj = sysProjuseFreezeDao.selectByOrderItemId(freeze);
+ Date dateAfter = DateUtil.nextNDate(taocan.getFailTime(), freezeProj.getGapDays());
+ taocan.setFailTime(dateAfter);
break;
default:
return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择无效或者冻结的套餐");
}
taocan.setStatus(Dictionary.TAOCAN_STATUS_YX);
- sysProjUseDao.updateTcStatus(taocan.getId(),"有效");
+ sysProjUseDao.updateProjStatus(taocan);
+ SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ SysProjUseFlow useFlow=new SysProjUseFlow();
+ useFlow.setProjName(taocan.getProjName());
+ useFlow.setProjUseId(taocan.getId());
+ useFlow.setOptionType("人工修改");
+ useFlow.setRemark("设置为有效状态");
+ useFlow.setFailTime(taocan.getFailTime());
+ useFlow.setStatus(Dictionary.TAOCAN_STATUS_YX);
+ useFlow.setCreateBy(sysUsers.getSuName());
+ useFlow.setUpdateBy(sysUsers.getSuName());
+ sysProjUseDao.insertFlow(useFlow);
+
+
return new AjaxResult(AjaxResult.STATUS_SUCCESS, "操作成功");
}
@@ -243,6 +269,19 @@
} else {
i = sysProjuseFreezeDao.insert(freeze);
}
+
+ SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ SysProjUseFlow useFlow=new SysProjUseFlow();
+ useFlow.setProjName(taocan.getProjName());
+ useFlow.setProjUseId(taocan.getId());
+ useFlow.setOptionType("人工修改");
+ useFlow.setStatus(Dictionary.TAOCAN_STATUS_DJ);
+ useFlow.setRemark("冻结项目");
+
+ useFlow.setCreateBy(sysUsers.getSuName());
+ useFlow.setUpdateBy(sysUsers.getSuName());
+ sysProjUseDao.insertFlow(useFlow);
+
return i;
} else {
throw new GlobleException("未找到套餐");
@@ -288,73 +327,6 @@
return money;
}
- public double getTotalMoney(SysProjUse sysProjUse, MoneyCardUse cardUse, Long moneyCardUseId) {
- List<SysProjUse> list = sysProjUseDao.selectByModel(sysProjUse);
- double money = 0;
- if (CollectionUtils.isEmpty(list)) {
- throw new GlobleException("该套餐没有可退款的项目!");
- }
- //判断套餐是否存在欠款
- SysProjUse projuse = list.get(0);
- checkOrderStatu(projuse);
- if (!(projuse.getStatus().equals(Dictionary.TAOCAN_STATUS_YX))) {
- throw new GlobleException("不是有效套餐");
- }
- if (projuse.getSource().contains(Dictionary.TAOCAN_SOURCE_ZR)) {
- throw new GlobleException("转让的套餐不能退款");
- }
- if (projuse.getSource().contains(Dictionary.TAOCAN_SOURCE_ZS)) {
- throw new GlobleException("赠送的套餐不能退款");
- }
- //获取会员卡
- cardUse = moneyCardUseDao.selectVipCard(projuse.getVipId());
- String content;
- //如果是套餐卡
- ShoppingGoodsAssemble shoppingGoodsAssemble = shoppingGoodsAssembleDao.selectById(sysProjUse.getAssembleId());
- ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(shoppingGoodsAssemble.getShoppingGoodsId());
- if (Dictionary.SHOPPING_GOODS_TYPE_TCK.equals(projuse.getType())) {
- money = projuse.getBalance();
- //余次使用流水操作
-
- content = shoppingGoods.getName() + "退款¥" + projuse.getBalance();
- } else {
- for (SysProjUse itemUser : list) {
- Double emoney = MoneyUtil.mul(Double.parseDouble(itemUser.getSurplusCount() + ""), itemUser.getPrice());
- money = MoneyUtil.add(emoney, money);
- }
- //余次使用流水操作
- content = shoppingGoods.getName() + "退款¥" + money;
- }
-
-
- SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
- // 1、金额退到该用户的有效会籍卡中
- System.out.println("==========" + cardUse);
- if (moneyCardUseId != null) {
- if (cardUse == null) {
- content += "到现金。";
- } else {
- //SysOrderItem orderItem = orderItemDao.selectById(cardUse.getOrderItemId());
-
- StringBuilder contentBuild = new StringBuilder();
- contentBuild.append("到" + cardUse.getCardName())
- .append(",余次:" + cardUse.getLastCountName())
- .append(",本金余额:" + MoneyUtil.add(cardUse.getRealMoney(), money))
- .append(",赠送余额:" + cardUse.getGiftMoney())
- .append(",有效期:" + DateUtil.dateToString(cardUse.getFailTime(), DateUtil.DATE_FORMAT_MM))
- .append(",是否赠送:" + cardUse.getSourceName());
- content += contentBuild.toString();
-
- cardUse.setRealMoney(cardUse.getRealMoney() + money);
- ;
- moneyCardUseDao.update(cardUse);
-
- }
- } else {
- content += "到现金。";
- }
- return money;
- }
/**
* 检测是否存在欠款
@@ -386,27 +358,26 @@
throw new GlobleException("套餐已冻结");
}
taocan.setStatus(Dictionary.TAOCAN_STATUS_WX);
+
int i = sysProjUseDao.updateTcStatus(sysProjUse.getId(), "无效");
+
+ SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ SysProjUseFlow useFlow=new SysProjUseFlow();
+ useFlow.setProjName(taocan.getProjName());
+ useFlow.setProjUseId(taocan.getId());
+ useFlow.setOptionType("人工修改");
+ useFlow.setStatus(Dictionary.TAOCAN_STATUS_WX);
+ useFlow.setRemark("设置为无效状态");
+ useFlow.setFailTime(taocan.getFailTime());
+
+ useFlow.setCreateBy(sysUsers.getSuName());
+ useFlow.setUpdateBy(sysUsers.getSuName());
+ sysProjUseDao.insertFlow(useFlow);
+
return i;
}
- /**
- * cardUser暂时没有用到
- */
- @Override
- @Transactional(rollbackFor = Exception.class)
- public int returnMoneyTc(SysProjUse sysProjUse, MoneyCardUse cardUse, Long moneyCardUseId) {
- //充值记录
- //SysRechargeFlow flow=new SysRechargeFlow();
- // 计算出套餐所有项目的剩余次数的钱
- getTotalMoney(sysProjUse, cardUse, moneyCardUseId);
- //3、套餐下的项目状态改为退款
- sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_TK);
- int j = sysProjUseDao.updateProjStatus(sysProjUse);
-
- return j;
- }
/*********************以下为项目使用情况操作***********************/
@@ -504,6 +475,17 @@
} else {
i = sysProjuseFreezeDao.insert(freeze);
}
+ SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ SysProjUseFlow useFlow=new SysProjUseFlow();
+ useFlow.setProjName(sysProjUse.getProjName());
+ useFlow.setProjUseId(sysProjUse.getId());
+ useFlow.setOptionType("人工修改");
+ useFlow.setStatus(Dictionary.TAOCAN_STATUS_DJ);
+ useFlow.setRemark("冻结项目");
+
+ useFlow.setCreateBy(sysUsers.getSuName());
+ useFlow.setUpdateBy(sysUsers.getSuName());
+ sysProjUseDao.insertFlow(useFlow);
return i;
}
@@ -529,56 +511,24 @@
throw new GlobleException("套餐已冻结");
}
sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX);
- ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(sysProjUse.getProjId());
- String content = shoppingGoods.getName() + "设置为" + sysProjUse.getStatus();
+ SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ SysProjUseFlow useFlow=new SysProjUseFlow();
+ useFlow.setProjName(sysProjUse.getProjName());
+ useFlow.setProjUseId(sysProjUse.getId());
+ useFlow.setOptionType("人工修改");
+ useFlow.setStatus(Dictionary.TAOCAN_STATUS_WX);
+ useFlow.setRemark("设置为无效状态");
+ useFlow.setFailTime(sysProjUse.getFailTime());
+
+ useFlow.setCreateBy(sysUsers.getSuName());
+ useFlow.setUpdateBy(sysUsers.getSuName());
+ sysProjUseDao.insertFlow(useFlow);
return sysProjUseDao.update(sysProjUse);
}
- /**
- * 退款
- *
- * @param sysProjUse
- * @return
- */
- public int returnMoneyProj(SysProjUse sysProjUse, MoneyCardUse cardUse, Long moneyCardUseId) {
- int i = 0;
- sysProjUse = sysProjUseDao.selectById(sysProjUse.getId());
- //判断套餐是否存在欠款
- checkOrderStatu(sysProjUse);
- if (!(sysProjUse.getStatus().equals(Dictionary.TAOCAN_STATUS_YX))) {
- throw new GlobleException("不是有效项目");
- }
- if (sysProjUse.getSource().equals(Dictionary.TAOCAN_SOURCE_ZR)) {
- throw new GlobleException("转让的项目不能退款");
- }
- if (sysProjUse.getSource().equals(Dictionary.TAOCAN_SOURCE_ZS)) {
- throw new GlobleException("赠送的项目不能退款");
- }
- StringBuilder content = new StringBuilder();
- ShoppingGoodsAssemble shoppingGoodsAssemble = shoppingGoodsAssembleDao.selectById(sysProjUse.getAssembleId());
- ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(shoppingGoodsAssemble.getShoppingGoodsId());
- content.append(shoppingGoods + "退款");
- if (cardUse != null) {
- // 1、金额退到该用户的有效会籍卡中
- MoneyCardUse upCard = moneyCardUseDao.selectById(cardUse.getId());
- upCard.setRealMoney(upCard.getRealMoney() + sysProjUse.getBalance());
- ;
- moneyCardUseDao.update(upCard);
- content.append("到会籍卡(" + upCard.getCardName() + ")" + sysProjUse.getBalance() + "元")
- .append(",余次:" + upCard.getLastCountName())
- .append(",本金余额:" + upCard.getRealMoney())
- .append(",有效期:" + DateUtil.dateToString(upCard.getFailTime(), DateUtil.DATE_FORMAT_MM))
- .append(",是否赠送:" + upCard.getSourceName());
- } else {
- content.append("现金" + sysProjUse.getBalance() + "元");
- }
-
- sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_TK);
- return sysProjUseDao.update(sysProjUse);
- }
/**
* 设置为有效套餐
@@ -590,6 +540,7 @@
public AjaxResult activeProj(SysProjUse proj) {
Date today = new Date();
Date newDate = proj.getFailTime();
+
proj = sysProjUseDao.selectById(proj.getId());
switch (proj.getStatus()) {
case Dictionary.TAOCAN_STATUS_WX:
@@ -600,47 +551,42 @@
return new AjaxResult(AjaxResult.STATUS_FAIL, "有效期要大于当前日期");
}
}
- if (newDate == null && proj.getFailTime().before(today)) {
+ if (newDate == null && (proj.getFailTime() == null || proj.getFailTime().before(today))) {
return new AjaxResult(AjaxResult.STATUS_SUCCESS, "已过期");
}
break;
//如果是冻结状态则要算出冻结的天数,延长有效期
case Dictionary.TAOCAN_STATUS_DJ:
+ SysProjuseFreeze freeze = new SysProjuseFreeze();
+ freeze.setOrderItemId(proj.getId().toString());
+ freeze.setVipId(proj.getVipId());
+ SysProjuseFreeze freezeProj = sysProjuseFreezeDao.selectByOrderItemId(freeze);
+ Date dateAfter = DateUtil.nextNDate(proj.getFailTime(), freezeProj.getGapDays());
+ proj.setFailTime(dateAfter);
break;
default:
return new AjaxResult(AjaxResult.STATUS_FAIL, "请选择无效或者冻结的套餐");
}
proj.setStatus(Dictionary.TAOCAN_STATUS_YX);
sysProjUseDao.update(proj);
- StringBuilder content = new StringBuilder();
- ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(proj.getProjId());
- content.append(shoppingGoods.getName() + "设置为有效")
- .append(",有效期:" + DateUtil.dateToString(proj.getFailTime(), DateUtil.DATE_FORMAT_MM));
+ SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ SysProjUseFlow useFlow=new SysProjUseFlow();
+ useFlow.setProjName(proj.getProjName());
+ useFlow.setProjUseId(proj.getId());
+ useFlow.setOptionType("人工修改");
+ useFlow.setStatus(Dictionary.TAOCAN_STATUS_YX);
+ useFlow.setRemark("设置为有效状态");
+ useFlow.setFailTime(proj.getFailTime());
+
+ useFlow.setCreateBy(sysUsers.getSuName());
+ useFlow.setUpdateBy(sysUsers.getSuName());
+ sysProjUseDao.insertFlow(useFlow);
return new AjaxResult(AjaxResult.STATUS_SUCCESS, "操作成功");
}
- /**
- * 退款项目
- */
- @Override
- public double getTotalMoneyProj(SysProjUse sysProjUse) {
- sysProjUse = sysProjUseDao.selectById(sysProjUse.getId());
- //判断套餐是否存在欠款
- checkOrderStatu(sysProjUse);
- if (!(sysProjUse.getStatus().equals(Dictionary.TAOCAN_STATUS_YX))) {
- throw new GlobleException("不是有效项目");
- }
- if (sysProjUse.getSource().equals(Dictionary.TAOCAN_SOURCE_ZR)) {
- throw new GlobleException("转让的项目不能退款");
- }
- if (sysProjUse.getSource().contains(Dictionary.TAOCAN_SOURCE_ZS)) {
- throw new GlobleException("赠送的项目不能退款");
- }
- return sysProjUse.getBalance();
- }
@Override
@@ -649,9 +595,15 @@
}
@Override
- public List<SysProjUse> selectTaocanProjUse(Long taocanId) {
+ public List<SysProjUse> selectTaocanProjUse(Long taocanId, String status) {
SysProjUse projUse = new SysProjUse();
projUse.setTaocanId(taocanId);
+ projUse.setStatus(status);
return sysProjUseDao.selectByModel(projUse);
}
+
+ @Override
+ public List<SysProjUse> findTaocaoProjUseWithProj(SysProjUse sysProjUse) {
+ return sysProjUseDao.selectTaoCanListWithProj(sysProjUse);
+ }
}
\ No newline at end of file
--
Gitblit v1.9.1