From 60da6176964cb65963bd15e8a00772cc33efbf1a Mon Sep 17 00:00:00 2001 From: wzy <wzy19931122ai@163.com> Date: Fri, 07 Oct 2022 16:04:32 +0800 Subject: [PATCH] 修改退款时无法退款到储值卡的bug --- zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceHelper.java | 38 ++++++++++++++++++++++++++++++-------- 1 files changed, 30 insertions(+), 8 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceHelper.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceHelper.java index f2bde3f..bc75ac4 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceHelper.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceHelper.java @@ -12,7 +12,6 @@ import com.google.common.collect.Lists; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.exception.GlobleException; -import com.matrix.core.tools.DateUtil; import com.matrix.core.tools.LogUtil; import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; @@ -22,6 +21,7 @@ import com.matrix.system.common.dao.BusParameterSettingsDao; import com.matrix.system.common.service.OperationLogService; import com.matrix.system.constance.Dictionary; +import com.matrix.system.enums.BooleanEnum; import com.matrix.system.enums.OperationButtonEnum; import com.matrix.system.enums.OperationFunctionEnum; import com.matrix.system.hive.bean.*; @@ -31,7 +31,10 @@ import com.matrix.system.hive.plugin.util.CollectionUtils; import com.matrix.system.hive.plugin.util.MoneyUtil; import com.matrix.system.hive.pojo.CzXkVo; -import com.matrix.system.hive.service.*; +import com.matrix.system.hive.service.CodeService; +import com.matrix.system.hive.service.MoneyCardUseService; +import com.matrix.system.hive.service.SysInstoreInfoService; +import com.matrix.system.hive.service.SysProjUseService; import com.matrix.system.score.constant.ScoreSettingConstant; import com.matrix.system.score.entity.ScoreVipDetail; import com.matrix.system.score.service.ScoreVipDetailService; @@ -199,7 +202,7 @@ */ private boolean isGiftMoneyPay(SysOrder order) { BusParameterSettings giftiIsfree = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.SHOP_MANAGE_GIFTISFREE, order.getCompanyId()); - if (giftiIsfree.getParamValue().equals("是")) { + if (BooleanEnum.TRUE.getValue() == giftiIsfree.getIntParamValue()) { return order.getFlows().stream().allMatch(item -> SysOrderFlow.IS_GIFT_Y.equals(item.getIsGift()) && item.getAmount().doubleValue() > 0D); } else { @@ -260,12 +263,19 @@ /** * 储值卡退款 * @param order + * @param isWholeOrder 是否整个订单退款 */ - public void returnMoneyCardPay(SysOrder order) { + public void returnMoneyCardPay(SysOrder order, boolean isWholeOrder) { SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); List<MoneyCardOperationDto> moneyCardOperationDtos = Lists.newArrayList(); - List<SysOrderFlow> flows = sysOrderFlowDao.selectByOrderId(order.getId()); + List<SysOrderFlow> flows = null; + if (isWholeOrder) { + flows = sysOrderFlowDao.selectByOrderId(order.getId()); + } else { + flows = order.getFlows(); + } + // 非现金收款退回扣卡余额 for (SysOrderFlow flow : flows) { if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { @@ -277,11 +287,14 @@ dto.setCarUseId(flow.getCardId()); dto.setType(MoneyCardUseFlow.USE_TYPE_ORDRE_CANCEL); if (SysOrderFlow.IS_GIFT_Y.equals(flow.getIsGift())) { - dto.setGiftMoney(flow.getAmount().doubleValue()); + dto.setGiftMoney(flow.getAmount().abs().doubleValue()); } else { - dto.setRealMoney(flow.getAmount().doubleValue()); + dto.setRealMoney(flow.getAmount().abs().doubleValue()); } dto.setUpdateUser(user.getSuId()); + + // 用于通过校验 + dto.setOrderItemId(-1L); moneyCardOperationDtos.add(dto); } else { throw new GlobleException("无效的储值卡支付方式"); @@ -345,7 +358,8 @@ public void addOutStore(SysOrder order) { BusParameterSettings manageStockSetting = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WAREHOUSE_MANAGE_STOCK, order.getCompanyId()); - if (AppConstance.IS_Y.equals(manageStockSetting.getParamValue())) { +// if (AppConstance.IS_Y.equals(manageStockSetting.getParamValue())) { + if (BooleanEnum.TRUE.getValue() == manageStockSetting.getIntParamValue()) { List<SysOutStoreItem> storeItemList = new ArrayList<>(); @@ -624,11 +638,19 @@ for (SysOrderItem item : sysOrder.getItems()) { ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(item.getGoodsId()); item.setType(shoppingGoods.getGoodType()); + if (item.getZkPrice() == null) { + item.setZkPrice(shoppingGoods.getSealPice()); + } + if (item.getZkPrice() == 0) { item.setIsFree(Dictionary.FLAG_YES); } Double itemZkTotal = MoneyUtil.mul(item.getZkPrice(), Double.valueOf(item.getCount())); zkTotal = MoneyUtil.add(zkTotal, itemZkTotal); + + if (item.getPrice() == null) { + item.setPrice(shoppingGoods.getSealPice()); + } item.setStatus(Dictionary.ORDER_STATU_DFK); item.setRefundCount(0); } -- Gitblit v1.9.1