zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java
@@ -2,7 +2,6 @@ import com.matrix.component.asyncmessage.AsyncMessageManager; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.exception.GlobleException; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.tools.WebUtil; @@ -87,7 +86,7 @@ @RequestMapping(value = "/cz") public @ResponseBody AjaxResult cz(@RequestBody CzXkVo czVo) { SysOrder order= orderService.updateAddCardMoney(czVo); SysOrder order= orderService.moneyCardCz(czVo); AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, "充值成功"); //发送微信公众号提醒 zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java
@@ -149,7 +149,7 @@ sysOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_N); //校验订单是否满足结算调价,新订单则保存订单,已有订单则删除后更新 sysOrder = orderService.checkAndSaveOrder(sysOrder); orderService.updateReceiptMoney(sysOrder); orderService.payOrder(sysOrder); //发送微信公众号提醒 UniformMsgParam uniformMsgParam = new UniformMsgParam(user.getCompanyId(), UniformMsgParam.GZH_GMCG); @@ -259,7 +259,7 @@ @RequestMapping(value = "/sk") public @ResponseBody AjaxResult sk(SysOrder order) throws GlobleException { orderService.updateReceiptMoney(order); orderService.payOrder(order); return new AjaxResult(AjaxResult.STATUS_SUCCESS, "收款成功"); } zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrder.java
@@ -26,6 +26,8 @@ */ public static final int ORDER_TYPE_REFUND= 2; /** * 序号 */ zq-erp/src/main/java/com/matrix/system/hive/service/AchieveNewService.java
@@ -121,4 +121,5 @@ List<DailyBeautyListVo> findDailyBeautyList(AchieveNew achieveNew, PaginationVO pageVo); int findDailyBeautyListTotal(AchieveNew achieveNew); void removeByOrderId(Long id); } zq-erp/src/main/java/com/matrix/system/hive/service/MoneyCardUseService.java
@@ -5,6 +5,7 @@ import com.matrix.system.hive.dto.MoneyCardOperationDto; import com.matrix.system.hive.dto.MoneyCardPayDto; import com.matrix.system.hive.plugin.util.BaseServices; import com.matrix.system.hive.pojo.CzXkVo; import java.util.List; @@ -135,4 +136,6 @@ * @param id */ void deleteByOrderItemId(Long id); void vipCardRecharge(CzXkVo czVo); } zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java
@@ -80,7 +80,7 @@ * @date 2016年7月18日 上午11:14:07 * @throws */ public void updateReceiptMoney(SysOrder sysOrder) throws GlobleException; public void payOrder(SysOrder sysOrder) throws GlobleException; public void refundOrderMoney(SysOrder sysOrder); @@ -100,10 +100,7 @@ * @date 2016年9月20日 下午12:07:21 * @throws */ public SysOrder updateAddCardMoney(CzXkVo czVo); public SysOrder moneyCardCz(CzXkVo czVo); /** * 校验订单是否满足结算条件 zq-erp/src/main/java/com/matrix/system/hive/service/SysOutStoreService.java
@@ -61,11 +61,19 @@ */ public SysOutStore findById(Long id); /** * 出库单审核通过,并扣减库存 * @param sysOutStore * @return * 删除出库单,恢复库存 * @param id */ public void cancelOutStore(Long id); /** * 出库单审核通过,并扣减库存 * @param sysOutStore * @return */ public int effectOutStore(SysOutStore sysOutStore); zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java
@@ -489,4 +489,9 @@ public int findDailyBeautyListTotal(AchieveNew achieveNew) { return achieveNewDao.selectDailyBeautyListTotal(achieveNew); } @Override public void removeByOrderId(Long orderId) { achieveNewDao.deleteByOrderId(orderId); } } zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java
@@ -16,6 +16,7 @@ import com.matrix.system.hive.dto.MoneyCardOperationDto; import com.matrix.system.hive.dto.MoneyCardPayDto; import com.matrix.system.hive.plugin.util.MoneyUtil; import com.matrix.system.hive.pojo.CzXkVo; import com.matrix.system.hive.service.MoneyCardUseService; import com.matrix.system.hive.service.ShoppingGoodsService; import org.springframework.beans.factory.annotation.Autowired; @@ -109,6 +110,20 @@ } } @Override public void vipCardRecharge(CzXkVo czVo) { 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(); moneyCardUseDao.update(cardUser); } @Override @Transactional(rollbackFor = Exception.class) public void changeMoneyCard(List<MoneyCardPayDto> moneyCardPayDtoList) { 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()); @@ -286,6 +291,8 @@ * @date 2016年9月19日 */ public void addMoneyCardUse(SysOrder sourceOrder) { List<MoneyCardOperationDto> moneyCardOperationDtos = Lists.newArrayList(); List<SysOrderItem> orderItemList = sourceOrder.getItems(); for (SysOrderItem sysOrderItem : orderItemList) { @@ -612,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()); @@ -680,4 +689,33 @@ 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; } } 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); zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOutStoreServiceImpl.java
@@ -3,30 +3,23 @@ import com.matrix.core.constance.MatrixConstance; import com.matrix.core.exception.GlobleException; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.tools.DateUtil; import com.matrix.core.tools.LogUtil; import com.matrix.core.tools.WebUtil; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.constance.Dictionary; import com.matrix.system.hive.bean.SysOutStore; import com.matrix.system.hive.bean.SysOutStoreItem; import com.matrix.system.hive.bean.SysShopInfo; import com.matrix.system.hive.bean.SysStoreInfo; import com.matrix.system.hive.dao.SysOutStoreDao; import com.matrix.system.hive.dao.SysOutStoreItemDao; import com.matrix.system.hive.dao.SysStoreInfoDao; import com.matrix.system.hive.service.CodeService; import com.matrix.system.hive.service.SysOutStoreService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Random; /** * @date 2016-07-25 12:43 @@ -143,7 +136,27 @@ } /** * 取消出库单 * @param id * @return */ @Transactional(rollbackFor = Exception.class) @Override public void cancelOutStore(Long id) { List<SysOutStoreItem> outStoreItemList = sysOutStoreItemDao.selectByOrderId(id); for (SysOutStoreItem item : outStoreItemList) { SysStoreInfo sysStoreInfo = storeInfoDao.selectById(item.getStoreId()); sysStoreInfo.setStoreTotal(sysStoreInfo.getStoreTotal() + item.getAmount()); //更新库存 storeInfoDao.update(sysStoreInfo); } sysOutStoreDao.deleteById(id); sysOutStoreItemDao.deleteByOrderId(id); } @Override public int effectOutStore(SysOutStore sysOutStore) { SysOutStore queryStore = sysOutStoreDao.selectById(sysOutStore.getId());