From e1ff283be2a6ca6ed8cead6248b4efa8eb005f6e Mon Sep 17 00:00:00 2001 From: JiangYouYao <ak473600000> Date: Fri, 18 Mar 2022 13:51:29 +0800 Subject: [PATCH] 重构:订单取消逻辑 --- zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceHelper.java | 93 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 90 insertions(+), 3 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 fc54596..b403130 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 @@ -30,6 +30,7 @@ import com.matrix.system.hive.dto.ProjUseOperationDto; 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.CodeService; import com.matrix.system.hive.service.MoneyCardUseService; import com.matrix.system.hive.service.SysProjUseService; @@ -43,6 +44,7 @@ import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -96,16 +98,18 @@ @Autowired BusParameterSettingsDao busParameterSettingsDao; - @Autowired private WarehouseDao warehouseDao; @Autowired MoneyCardUseService moneyCardUseService; - @Autowired private SysOrderItemDao orderItemDao; + + + @Autowired + MoneyCardUseDao moneyCardUseDao; /** * 创建支付流水 @@ -206,6 +210,7 @@ public void cardPaySk(SysOrder pageOrder) { + SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); List<SysOrderFlow> flows = pageOrder.getFlows(); List<Long> goodsIds = pageOrder.getItems().stream().map(e -> e.getGoodsId()).collect(Collectors.toList()); @@ -241,12 +246,53 @@ } } + + /** + * 储值卡退款 + * @param order + */ + public void returnMoneyCardPay(SysOrder order) { + SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); + List<MoneyCardPayDto> moneyCardPayDtoList = Lists.newArrayList(); + + List<SysOrderFlow> flows = sysOrderFlowDao.selectByOrderId(order.getId()); + // 非现金收款退回扣卡余额 + for (SysOrderFlow flow : flows) { + if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { + if (flow.getCardId() != null) { + MoneyCardPayDto dto = new MoneyCardPayDto(); + dto.setOrderNo(order.getOrderNo()); + dto.setOrderId(order.getId()); + dto.setCount(1); + dto.setCarUseId(flow.getCardId()); + dto.setType(MoneyCardUseFlow.USE_TYPE_ORDRE_CANCEL); + if (SysOrderFlow.IS_GIFT_Y.equals(flow.getIsGift())) { + dto.setGiftMoney(flow.getAmount().doubleValue()); + } else { + dto.setRealMoney(flow.getAmount().doubleValue()); + } + dto.setUpdateUser(user.getSuId()); + moneyCardPayDtoList.add(dto); + } else { + throw new GlobleException("无效的储值卡支付方式"); + } + } + } + + if (CollectionUtils.isNotEmpty(moneyCardPayDtoList)) { + LogUtil.info("退回储值卡余额{}", JSON.toJSONString(moneyCardPayDtoList)); + moneyCardUseService.changeMoneyCard(moneyCardPayDtoList); + } + } + /** * @param sourceOrder 如果购买了充值卡设置会员的充值卡 * @author:姜友瑶 * @date 2016年9月19日 */ public void addMoneyCardUse(SysOrder sourceOrder) { + + List<MoneyCardOperationDto> moneyCardOperationDtos = Lists.newArrayList(); List<SysOrderItem> orderItemList = sourceOrder.getItems(); for (SysOrderItem sysOrderItem : orderItemList) { @@ -573,9 +619,11 @@ SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); sysOrder.setZkTotal(zkTotal); sysOrder.setStatu(Dictionary.ORDER_STATU_DFK); - + sysOrder.setShopId(user.getShopId()); sysOrder.setStaffId(user.getSuId()); sysOrder.setCompanyId(user.getCompanyId()); + sysOrder.setOrderTime(new Date()); + sysOrder.setOrderType(SysOrder.ORDER_TYPE_SEAL); //新增订单 sysOrder.setOrderNo(codeService.getOrderCode()); @@ -629,6 +677,45 @@ sysOrderItem.setOrderId(sysOrder.getId()); orderItemDao.insert(sysOrderItem); }); + + SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); + //保存单据日志 + operationLogService.saveOperation(sysOrder.getCompanyId(), sysOrder.getShopId(), user.getSuId(), + OperationFunctionEnum.ORDER, + OperationButtonEnum.UPDATE, + sysOrder.getId(), + sysOrder.getOrderNo(), + sysOrder.getVipId()); + return sysOrder; } + + /** + * 创建充值订单 + * @param czVo + * @return + */ + public SysOrder createCzOrder(CzXkVo czVo){ + + MoneyCardUse cardUser = moneyCardUseDao.selectVipCard(czVo.getVipId()); + + SysOrder order= new SysOrder(); + order.setFlows(czVo.getFlows()); + order.setVipId(czVo.getVipId()); + order.setRemark(cardUser.getCardName()); + + SysOrderItem orderItem = new SysOrderItem(); + ShoppingGoods shoppingGoods = shoppingGoodsDao.selectVipCzGoods(); + orderItem.setGoodsId(shoppingGoods.getId()); + orderItem.setType(Dictionary.SHOPPING_GOODS_TYPE_CZK); + orderItem.setCount(1); + orderItem.setIsFree(Dictionary.FLAG_NO); + orderItem.setZkPrice(czVo.getBjmoney()); + orderItem.setAchieveList(czVo.getAchaeveList()); + order.setItems(Arrays.asList(orderItem)); + saveOrder(order); + return order; + } + + } \ No newline at end of file -- Gitblit v1.9.1