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/SysOrderServiceImpl.java | 93 ++++++++++++++++++++--------------------------
1 files changed, 41 insertions(+), 52 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 0e85cd7..77709be 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
@@ -401,8 +401,6 @@
//获取折扣-----
Double zk = zk = 1.0;
- //验证商品是否只购买了一次
- checkBuyOnce(car, info.getId());
SysOrder order = new SysOrder();
SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
@@ -433,8 +431,7 @@
int count = 0;
// 设置订单条目
for (ShoppingCarItem carItem : car.getCarItems()) {
- // 检测最大销售数量
- checkIsArrivedMax(carItem);
+
SysOrderItem orderItem = new SysOrderItem();
orderItem.setOrderId(order.getId());
orderItem.setCount(carItem.getCount());
@@ -472,20 +469,6 @@
}
- /**
- * 验证商品是否购买过一次
- *
- * @Title: checkBuyOnce @author:jyy @param car void 返回类型 @date
- * 2016年9月22日 上午10:05:33 @throws
- */
- private void checkBuyOnce(ShoppingCarItemsVo car, Long vipId) {
- for (ShoppingCarItem carItem : car.getCarItems()) {
- if (shoppingGoodsDao.selectBuyCount(carItem.getGoodsId(), vipId) > 0) {
- ShoppingGoods goods = shoppingGoodsDao.selectById(carItem.getGoodsId());
- throw new GlobleException(goods.getName() + "只能购买一次!");
- }
- }
- }
/**
* jyy 收款
@@ -500,9 +483,6 @@
//检查交易限制调整
checkSealLimit(pageOrder);
-
- //交易业绩设置是否合理
- checkAchieveIsOk(pageOrder);
// 更新收款时间
@@ -575,27 +555,7 @@
}
- /**
- * 交易业绩设置是否合理
- * @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("划扣业绩不等于储值卡扣款金额,请修改业绩设置!");
- }
- }
/**
* 设置会员消费积分
@@ -981,7 +941,6 @@
moneyCardUse.setGiftMoney(moneyCar.getReferencePice());
moneyCardUse.setRealMoney(moneyCar.getSealPice());
moneyCardUse.setGoodsId(moneyCar.getId());
- moneyCardUse.setIsOver(Dictionary.FLAG_NO_N);
moneyCardUse.setOrderItemId(sysOrderItem.getId());
moneyCardUse.setSource(Dictionary.TAOCAN_SOURCE_GM);
moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_YX);
@@ -1280,11 +1239,19 @@
//赠送项目是否计算消耗业绩否则 赠送产品按原价计算消耗
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);
}
@@ -1324,7 +1291,7 @@
taocanProjUse.setIsCourse(taocanShoppingGoods.getIsCourse());
taocanProjUse.setIsInfinite(taocanShoppingGoods.getIsInfinite());
// 赠送和打折后金额为0的都视为赠送项目
- if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_NO) && sysOrderItem.getZkPrice() > 0) {
+ if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_NO) && sysOrderItem.getZkPrice() > 0 && !isGiftMoneyPay(order)) {
taocanProjUse.setSource(Dictionary.TAOCAN_SOURCE_GM);
} else {
taocanProjUse.setSource(Dictionary.TAOCAN_SOURCE_ZS);
@@ -1377,8 +1344,10 @@
puse.setProjName(sysOrderItem.getShoppingGoods().getName());
+
+
// 赠送和打折后金额为0的都视为赠送项目
- if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_NO) && sysOrderItem.getZkPrice() > 0) {
+ if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_NO) && sysOrderItem.getZkPrice() > 0 && !isGiftMoneyPay(order)) {
puse.setSource(Dictionary.TAOCAN_SOURCE_GM);
puse.setPrice(sysOrderItem.getZkPrice());
} else {
@@ -1386,7 +1355,11 @@
//赠送项目是否计算消耗业绩否则 赠送产品按原价计算消耗
boolean zsConsumeAchieve = projServicesService.skipServiceOrderStep(Dictionary.ZS_CONSUME_ACHIEVE);
if(zsConsumeAchieve){
- puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice());
+ if(sysOrderItem.getPrice()>0){
+ puse.setPrice(sysOrderItem.getZkPrice());
+ }else{
+ puse.setPrice(sysOrderItem.getShoppingGoods().getSealPice());
+ }
}else{
puse.setPrice(0D);
}
@@ -1398,6 +1371,23 @@
puse.setFailTime(invalidTime);
puse.setBalance(sysOrderItem.getShoppingGoods().getSealPice()*puse.getSurplusCount());
sysProjUseDao.insert(puse);
+ }
+
+ /**
+ * 全是赠送金额,且配置了赠送金额购买计算为赠送
+ * @param order
+ * @return
+ */
+ private boolean isGiftMoneyPay(SysOrder order) {
+ BusParameterSettings giftiIsfree = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.SHOP_MANAGE_GIFTISFREE, order.getCompanyId());
+ if(giftiIsfree.getParamValue().equals("是")){
+ return order.getFlows().stream().allMatch(item -> SysOrderFlow.IS_GIFT_Y.equals(item.getIsGift())
+ && item.getAmount().doubleValue() >0D);
+ }else{
+ return false;
+ }
+
+
}
@@ -1549,7 +1539,7 @@
sourceOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_Y);
// sourceOrder.setStatu(Dictionary.ORDER_STATU_TK);
sysOrderDao.update(sourceOrder);
- SysOrder oldOrder=sysOrderDao.selectById( sysOrder.getOldOrderId());
+ SysOrder oldOrder=sysOrderDao.selectById(sysOrder.getOldOrderId());
sysOrder.setId(null);
sysOrder.setStaffId(user.getSuId());
@@ -1722,7 +1712,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);
@@ -1739,7 +1729,6 @@
if (Dictionary.SHOPPING_GOODS_TYPE_CZK.equals(item.getType())) {
MoneyCardUse queryCardUse = new MoneyCardUse();
- queryCardUse.setIsOver(Dictionary.FLAG_NO_N);
queryCardUse.setStatus(Dictionary.TAOCAN_STATUS_YX);
queryCardUse.setOrderItemId(item.getOldItemId());
--
Gitblit v1.9.1