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/SysOrderServiceImpl.java | 143 ++++++++++------------------------------------- 1 files changed, 32 insertions(+), 111 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 def632f..bd48315 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 @@ -9,7 +9,6 @@ import com.matrix.core.pojo.PaginationVO; import com.matrix.core.tools.DateUtil; import com.matrix.core.tools.LogUtil; -import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; import com.matrix.system.app.dto.OrderListDto; import com.matrix.system.app.mapper.SysProjUseMapper; @@ -30,6 +29,7 @@ import com.matrix.system.hive.bean.*; import com.matrix.system.hive.dao.*; import com.matrix.system.hive.dto.GoodsSealLimitDto; +import com.matrix.system.hive.dto.MoneyCardPayDto; import com.matrix.system.hive.dto.SysOrderItemDto; import com.matrix.system.hive.plugin.util.CollectionUtils; import com.matrix.system.hive.plugin.util.MoneyUtil; @@ -68,7 +68,7 @@ @Autowired SysVipInfoDao sysVipInfoDao; @Autowired - SysOutStoreDao sysOutStoreDao; + SysOutStoreService sysOutStoreService; @Autowired SysOutStoreItemDao sysOutStoreItemDao; @Autowired @@ -153,7 +153,7 @@ if (Objects.isNull(sysOrder.getId())) { LogUtil.info("新增正向订单"); - return sysOrderServiceHelper.saveOrder(sysOrder); + return sysOrderServiceHelper.saveOrder(sysOrder,SysOrder.ORDER_TYPE_SEAL); } else { LogUtil.info("修改订单"); return sysOrderServiceHelper.modifyOrder(sysOrder); @@ -197,6 +197,7 @@ //储值卡退款 sysOrderServiceHelper.returnMoneyCardPay(order); + //套餐项目取消 List<SysOrderItem> sysOrderItems = orderItemDao.selectByOrderId(order.getId()); for (SysOrderItem orderItem : sysOrderItems) { // 充值卡类型退款 @@ -214,24 +215,14 @@ //删除出库单,恢复库存 SysOutStore sysOutStore = new SysOutStore(); sysOutStore.setOrderId(order.getId()); - List<SysOutStore> sysOutStores = sysOutStoreDao.selectByModel(sysOutStore); + List<SysOutStore> sysOutStores = sysOutStoreService.findByModel(sysOutStore); if (sysOutStores.size() == 1) { sysOutStore = sysOutStores.get(0); - List<SysOutStoreItem> outStoreItemList = sysOutStoreItemDao.selectByOrderId(sysOutStore.getId()); - for (SysOutStoreItem item : outStoreItemList) { - SysStoreInfo sysStoreInfo = storeInfoDao.selectById(item.getStoreId()); - sysStoreInfo.setStoreTotal(sysStoreInfo.getStoreTotal() + item.getAmount()); - //更新库存 - storeInfoDao.update(sysStoreInfo); - } - sysOutStoreDao.deleteById(sysOutStore.getId()); - sysOutStoreItemDao.deleteByOrderId(sysOutStore.getId()); + sysOutStoreService.cancelOutStore(sysOutStore.getId()); } // 删除业绩 - AchieveNew achieveNew = new AchieveNew(); - achieveNew.setOrderId(order.getId()); - achieveNewService.removeByModel(achieveNew); + achieveNewService.removeByOrderId(order.getId()); // 删除收款记录 sysOrderFlowDao.deleteByOrderId(order.getId()); @@ -242,6 +233,7 @@ // 取消订单 order.setStatu(Dictionary.ORDER_STATU_YQX); sysOrderDao.update(order); + //保存单据日志 operationLogService.saveOperation(order.getCompanyId(), order.getShopId(), sysUsers.getSuId(), OperationFunctionEnum.ORDER, @@ -285,16 +277,13 @@ */ @Override @Transactional(rollbackFor = Exception.class) - public void updateReceiptMoney(SysOrder pageOrder) throws GlobleException { + public void payOrder(SysOrder pageOrder) throws GlobleException { //校验订单是否满足收款条件 checkOrderAblePay(pageOrder); // 更新订单主表信息 - updateOrderInfo(pageOrder); - - // 设置用户为成交客户 - sysVipInfoService.updateDealStatus(pageOrder.getVipId(), BooleanEnum.TRUE.getValue()); + payEndUpdateOrderInfo(pageOrder); //添加支付流水 sysOrderServiceHelper.addOrderFlow(pageOrder, false); @@ -344,7 +333,7 @@ * * @param pageOrder */ - private void updateOrderInfo(SysOrder pageOrder) { + private void payEndUpdateOrderInfo(SysOrder pageOrder) { LogUtil.info("付款更新订单信息 id={}", pageOrder.getId()); SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); pageOrder.setCashierId(user.getSuId()); @@ -381,8 +370,8 @@ sysOrderDao.update(pageOrder); - - + // 设置用户为成交客户 + sysVipInfoService.updateDealStatus(pageOrder.getVipId(), BooleanEnum.TRUE.getValue()); } /** @@ -497,91 +486,33 @@ */ @Override @Transactional(rollbackFor = Exception.class) - public SysOrder updateAddCardMoney(CzXkVo czVo) { - SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); - -// SysVipInfo vip = (SysVipInfo) WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER); -// czVo.setVipId(vip.getId()); - - //更新会员会员卡金额 - MoneyCardUse cardUser = moneyCardUseDao.selectVipCard(czVo.getVipId()); - cardUser.setRealMoney(MoneyUtil.add(cardUser.getRealMoney(), czVo.getBjmoney())); - cardUser.setGiftMoney(MoneyUtil.add(cardUser.getGiftMoney(), czVo.getGiftMoney())); - moneyCardUseDao.update(cardUser); - - - // 为会员新增积分 - SysVipInfo vipInfo = sysVipInfoDao.selectById(cardUser.getVipId()); - vipInfo.setPointAll(vipInfo.getPointAll() == null ? 0 : vipInfo.getPointAll() + czVo.getJf()); - sysVipInfoDao.update(vipInfo); - + public SysOrder moneyCardCz(CzXkVo czVo) { // 新增一个充值订单 - SysOrder order = new SysOrder(); - order.setArrears(0D); - order.setTotal(czVo.getBjmoney()); - order.setZkTotal(czVo.getBjmoney()); - order.setCashPay(czVo.getBjmoney()); - order.setShopId(user.getShopId()); - order.setOrderNo(codeService.getOrderCode()); - order.setVipId(czVo.getVipId()); - Date orderTime = new Date(); - if (StringUtils.isNotBlank(czVo.getDateTime())) { - orderTime = DateUtil.stringToDateNew(czVo.getDateTime(), DateUtil.DATE_FORMAT_DD); - } - order.setOrderTime(orderTime); - order.setPayTime(orderTime); - order.setRemark(cardUser.getCardName()); - order.setStaffId(user.getSuId()); - order.setIsCross(2 + ""); - order.setOrderType(SysOrder.ORDER_TYPE_SEAL); - order.setStatu(Dictionary.ORDER_STATU_YFK); - order.setCompanyId(user.getCompanyId()); - sysOrderDao.insert(order); + SysOrder order =sysOrderServiceHelper.createCzOrder(czVo); - SysOrderItem orderItem = new SysOrderItem(); - orderItem.setOrderId(order.getId()); - orderItem.setOrderNo(order.getOrderNo()); - orderItem.setArrears(0D); - ShoppingGoods shoppingGoods = shoppingGoodsDao.selectVipCzGoods(); - orderItem.setGoodsId(shoppingGoods.getId()); - orderItem.setPayMethod(Dictionary.PAY_TYPE_MOENY); - orderItem.setCashPay(czVo.getBjmoney()); - orderItem.setZkPrice(czVo.getBjmoney()); - orderItem.setCardPay(0D); - orderItem.setType(Dictionary.SHOPPING_GOODS_TYPE_CZK); - orderItem.setCount(1); - orderItem.setIsFree(Dictionary.FLAG_NO); - orderItem.setPrice(czVo.getBjmoney()); - orderItem.setStatus(Dictionary.ORDER_STATU_YFK); - orderItem.setAchieveList(czVo.getAchaeveList()); - orderItem.setShoppingGoods(shoppingGoods); - orderItemDao.insert(orderItem); - List<SysOrderItem> items = new ArrayList<>(); - items.add(orderItem); - order.setItems(items); + //新增会员卡金额 + MoneyCardUse cardUser = moneyCardUseDao.selectVipCard(czVo.getVipId()); + MoneyCardPayDto moneyCardPayDto=new MoneyCardPayDto(); + moneyCardPayDto.setRealMoney(MoneyUtil.add(cardUser.getRealMoney(), czVo.getBjmoney())); + moneyCardPayDto.setGiftMoney(MoneyUtil.add(cardUser.getGiftMoney(), czVo.getGiftMoney())); + moneyCardPayDto.setCarUseId(cardUser.getId()); + moneyCardPayDto.setOrderId(order.getId()); + moneyCardPayDto.setOrderNo(order.getOrderNo()); + moneyCardPayDto.setType(MoneyCardUseFlow.USE_TYPE_CZ); + moneyCardUseService.changeMoneyCard(Arrays.asList(moneyCardPayDto)); + // 更新订单主表信息 + payEndUpdateOrderInfo(order); - //设置卡项使用流水 - MoneyCardUseFlow moneyCardUseFlow = new MoneyCardUseFlow(); - moneyCardUseFlow.setTotal(czVo.getBjmoney()); - moneyCardUseFlow.setGiftMoney(czVo.getGiftMoney()); - moneyCardUseFlow.setCarUseId(czVo.getCardId()); - moneyCardUseFlow.setVipId(czVo.getVipId()); - moneyCardUseFlow.setType(MoneyCardUseFlow.USE_TYPE_CZ); - moneyCardUseFlow.setOrderNo(order.getOrderNo()); - moneyCardUseFlow.setCreateTime(new Date()); - moneyCardUseFlow.setOperationId(user.getSuId()); - moneyCardUseFlow.setBalance(cardUser.getGiftMoney() + cardUser.getRealMoney()); - moneyCardUseFlow.setCarUseId(cardUser.getId()); - moneyCardUseFlowDao.insert(moneyCardUseFlow); - - order.setFlows(czVo.getFlows()); - + //添加支付流水 sysOrderServiceHelper.addOrderFlow(order, false); - // 添加员工业绩 + // 设置业绩 achieveNewService.addAchaeveByOrder(order); + + //设置会员积分 + sysOrderServiceHelper.addVipScore(order); return order; @@ -637,7 +568,6 @@ SysOrder sourceOrder = new SysOrder(); sourceOrder.setId(sysOrder.getOldOrderId()); sourceOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_Y); -// sourceOrder.setStatu(Dictionary.ORDER_STATU_TK); sysOrderDao.update(sourceOrder); SysOrder oldOrder = sysOrderDao.selectById(sysOrder.getOldOrderId()); @@ -669,8 +599,6 @@ item.setOrderId(sysOrder.getId()); orderItemDao.insert(item); } - - // 添加订单收款流水 sysOrderServiceHelper.addOrderFlow(sysOrder, false); //退款退套餐退项目 @@ -690,10 +618,6 @@ sysOrder.getVipId()); } - - - - /** * 退款退项目,套餐,卡项 * @@ -770,9 +694,6 @@ moneyCardUseDao.update(moneyCardUse); } } - - - ShoppingGoods goods = shoppingGoodsDao.selectById(item.getGoodsId()); goods.setRealSealCount(goods.getRealSealCount() - item.getCount()); shoppingGoodsDao.update(goods); -- Gitblit v1.9.1