From 2c44627f994fc2dadd507a5795ce750730c691f8 Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Thu, 29 Jul 2021 20:49:13 +0800
Subject: [PATCH] bug修复
---
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 110 +++++++++++++++++++++++-------------------------------
1 files changed, 47 insertions(+), 63 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 bb0717b..83b57f5 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
@@ -484,9 +484,6 @@
//检查交易限制调整
checkSealLimit(pageOrder);
- //交易业绩设置是否合理
- checkAchieveIsOk(pageOrder);
-
// 更新收款时间
pageOrder.setPayTime(new Date());
@@ -527,58 +524,38 @@
* 检查产品销售次数
*/
private void checkSealLimit(SysOrder pageOrder) {
- pageOrder.getItems().forEach(item->{
- ShoppingGoods shopGoods = shoppingGoodsDao.selectById(item.getGoodsId());
+ pageOrder.getItems().forEach(item->{
+ ShoppingGoods shopGoods = shoppingGoodsDao.selectById(item.getGoodsId());
- //最大销售次数检测
- Integer maxNum = shopGoods.getCarMaxSaleCount();
- if (maxNum != null && maxNum != 0) {
- Integer buyNum = orderItemDao.selectByGoodsId(shopGoods.getId(),null);
- if ((buyNum + item.getCount()) > maxNum) {
- throw new GlobleException(shopGoods.getName() + "已超过最大销售数量");
- }
- if ((buyNum + item.getCount()) == maxNum) {
- if (!shopGoods.getStaus().equals(Dictionary.BUSINESS_STATE_DOWN)) {
- shopGoods.setStaus(Dictionary.BUSINESS_STATE_DOWN);
- shoppingGoodsDao.update(shopGoods);
- }
- }
- }
- //每人限购次数检测
- Integer onceCount = shopGoods.getIsOnce();
- if(onceCount!=null && onceCount!=0){
- Integer buyOnceCount = orderItemDao.selectByGoodsId(shopGoods.getId(),pageOrder.getVipId());
+ //最大销售次数检测
+ Integer maxNum = shopGoods.getCarMaxSaleCount();
+ if (maxNum != null && maxNum != 0) {
+ Integer buyNum = orderItemDao.selectByGoodsId(shopGoods.getId(),null);
+ if ((buyNum + item.getCount()) > maxNum) {
+ throw new GlobleException(shopGoods.getName() + "已超过最大销售数量");
+ }
+ if ((buyNum + item.getCount()) == maxNum) {
+ if (!shopGoods.getStaus().equals(Dictionary.BUSINESS_STATE_DOWN)) {
+ shopGoods.setStaus(Dictionary.BUSINESS_STATE_DOWN);
+ shoppingGoodsDao.update(shopGoods);
+ }
+ }
+ }
+ //每人限购次数检测
+ Integer onceCount = shopGoods.getIsOnce();
+ if(onceCount!=null && onceCount!=0){
+ Integer buyOnceCount = orderItemDao.selectByGoodsId(shopGoods.getId(),pageOrder.getVipId());
- if ((buyOnceCount + item.getCount()) > onceCount) {
- throw new GlobleException(shopGoods.getName() + "每人限购"+onceCount+"次");
- }
- }
+ if ((buyOnceCount + item.getCount()) > onceCount) {
+ throw new GlobleException(shopGoods.getName() + "每人限购"+onceCount+"次");
+ }
+ }
- });
+ });
}
- /**
- * 交易业绩设置是否合理
- * @param pageOrder
- */
- private void checkAchieveIsOk(SysOrder pageOrder) {
- double huakouSum = pageOrder.getItems().stream()
- .mapToDouble(
- item ->
- item.getAchieveList().stream()
- .filter(achieveNew -> "划扣".equals(achieveNew.getPayMethod()))
- .mapToDouble(achieve -> achieve.getGoodsCash()).sum()
- ).sum();
- double czkPay= pageOrder.getFlows().stream()
- .filter(sysOrderFlow -> "储值卡".equals(sysOrderFlow.getPayMethod()))
- .mapToDouble(sysOrderFlow ->sysOrderFlow.getAmount().doubleValue()).sum();
-
- if(czkPay!=huakouSum){
- throw new GlobleException("划扣业绩不等于储值卡扣款金额,请修改业绩设置!");
- }
- }
/**
* 设置会员消费积分
@@ -689,15 +666,15 @@
//添加自己的积分
if(selfScore>0){
- scoreVipDetailService.addScore(
- vipInfo.getId(),
- pageOrder.getStaffId(),
- pageOrder.getShopId(),
- selfScore,
- pageOrder.getId(),
- ScoreVipDetail.SCORE_VIP_TYPE_CASH,
- "消费奖励"
- );
+ scoreVipDetailService.addScore(
+ vipInfo.getId(),
+ pageOrder.getStaffId(),
+ pageOrder.getShopId(),
+ selfScore,
+ pageOrder.getId(),
+ ScoreVipDetail.SCORE_VIP_TYPE_CASH,
+ "消费奖励"
+ );
}
if(vipInfo.getRecommendId()!=null){
@@ -1262,10 +1239,17 @@
//赠送项目是否计算消耗业绩否则 赠送产品按原价计算消耗
boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE);
if(zsConsumeAchieve){
- if (taocanId == null) {
- puse.setPrice(goodsAssemble.getShoppingGoods().getPrice() );
- } else {
- puse.setPrice(goodsAssemble.getPrice());
+ if(sysOrderItem.getPrice()>0){
+
+ //大于0 不修改金额
+
+ }else{
+ //等于0取原价
+ if (taocanId == null) {
+ puse.setPrice(goodsAssemble.getShoppingGoods().getPrice() );
+ } else {
+ puse.setPrice(goodsAssemble.getPrice());
+ }
}
}else{
puse.setPrice(0D);
@@ -1702,7 +1686,7 @@
int sub = sysProjUse.getSurplusCount() - item.getCount();
if (sub < 0) {
- throw new GlobleException("项目余次不足");
+ throw new GlobleException("项目余次不足");
}else if(sub==0){
sysProjUse.setIsOver(Dictionary.FLAG_YES_Y);
sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX);
@@ -1723,7 +1707,7 @@
List<SysProjUse> sysProjUses = sysProjUseDao.selectByModel(queryProjUse);
- for (int i = 0; i < item.getCount(); i++) {
+ for (int i = 0; i < sysProjUses.size(); i++) {
SysProjUse sysProjUse = sysProjUses.get(i);
sysProjUse.setIsOver(Dictionary.FLAG_YES_Y);
--
Gitblit v1.9.1