From d58a5eecbbf9db6a9469801273e537a55bc8e794 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 07 Jan 2021 21:24:58 +0800 Subject: [PATCH] modify --- zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 173 ++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 120 insertions(+), 53 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 2981768..00031d1 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 @@ -6,6 +6,11 @@ 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.vo.OrderDetailAchieveItemVo; +import com.matrix.system.app.vo.OrderDetailItemVo; +import com.matrix.system.app.vo.OrderDetailVo; +import com.matrix.system.app.vo.RankingVo; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.dao.BusParameterSettingsDao; import com.matrix.system.common.dao.SysUsersDao; @@ -80,10 +85,16 @@ private AchieveNewService achieveNewService; @Autowired + private AchieveNewDao achieveNewDao; + + @Autowired private WarehouseDao warehouseDao; @Autowired private ShoppingGoodsService shoppingGoodsService; + + @Autowired + private SysOrderFlowDao sysOrderFlowDao; @Override public int add(SysOrder sysOrder) { @@ -172,10 +183,10 @@ // 如果支付方式是非现金则记录现金支付金额 if (!item.getPayMethod().equals(PayMethodEnum.VIP_CARD.getCode())) { xjMoney = MoneyUtil.add(xjMoney, item.getPayMoney()); - item.setCashPay(item.getPayMoney()); +// item.setCashPay(item.getPayMoney()); } else { cardMoney = MoneyUtil.add(cardMoney, item.getPayMoney()); - item.setCardPay(item.getPayMoney()); +// item.setCardPay(item.getPayMoney()); } @@ -183,28 +194,30 @@ // 订单欠款减去支付金额 设置实际欠款 Double itemZkTotal = MoneyUtil.mul(item.getZkPrice(), Double.valueOf(item.getCount())); zkTotal=MoneyUtil.add(zkTotal, itemZkTotal); - item.setArrears(MoneyUtil.sub(itemZkTotal, item.getPayMoney())); +// item.setArrears(MoneyUtil.sub(itemZkTotal, item.getPayMoney())); // 如果存在欠款,将条目状态设置为欠款 - if (item.getArrears() > 0) { - item.setStatus(Dictionary.ORDER_STATU_QK); - } else if (item.getArrears() < 0) { - item.setPayMoney(item.getZkPrice()); - item.setStatus(Dictionary.ORDER_STATU_DFK); - } else { - item.setStatus(Dictionary.ORDER_STATU_DFK); - } +// if (item.getArrears() > 0) { +// item.setStatus(Dictionary.ORDER_STATU_QK); +// } else if (item.getArrears() < 0) { +// item.setPayMoney(item.getZkPrice()); +// item.setStatus(Dictionary.ORDER_STATU_DFK); +// } else { +// item.setStatus(Dictionary.ORDER_STATU_DFK); +// } + item.setStatus(Dictionary.ORDER_STATU_DFK); } double arrears; SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); // 如果是收款,收款可以改变订单价格,所以需要求和出 订单折后价来计算本次欠款 arrears = MoneyUtil.sub(zkTotal, MoneyUtil.add(cardMoney, xjMoney)); sysOrder.setZkTotal(zkTotal); - sysOrder.setArrears(arrears); - sysOrder.setCardPay(cardMoney); - sysOrder.setCashPay(xjMoney); +// sysOrder.setArrears(arrears); +// sysOrder.setCardPay(cardMoney); +// sysOrder.setCashPay(xjMoney); sysOrder.setStatu(Dictionary.ORDER_STATU_DFK); + sysOrder.setStaffId(user.getSuId()); sysOrder.setCompanyId(user.getCompanyId()); sysOrder.setPayTime(new Date()); @@ -355,7 +368,7 @@ throw new GlobleException("没用选择购买产品"); } // 获取会员信息,判断等级 获取相应家居折扣 - SysVipInfo info = (SysVipInfo) WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER); + SysVipInfo info = sysVipInfoDao.selectById(car.getVipId()); //获取折扣----- Double zk = zk = 1.0; @@ -375,6 +388,7 @@ order.setStatu(Dictionary.ORDER_STATU_DFK); order.setCardPay(0.00); order.setCashPay(0.00); + order.setCompanyId(user.getCompanyId()); order.setBeatuyId(car.getBeatuyId() + ""); // 根据美疗师id查询美疗师姓名 if (car.getBeatuyId() != null) { @@ -489,40 +503,43 @@ */ private void changeOrderStatu(SysOrder sourceOrder) { - boolean haQk=false; + for (SysOrderFlow flow : sourceOrder.getFlows()) { + // 若使用储值卡付款 + if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { - for(SysOrderItem sysOrderItem:sourceOrder.getItems()){ - - if(!sysOrderItem.getStatus().equals(Dictionary.ORDER_STATU_QK)){ - SysOrderItem updateItem=new SysOrderItem(); - updateItem.setId(sysOrderItem.getId()); - updateItem.setStatus(Dictionary.ORDER_STATU_YFK); - - if (sysOrderItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY_CARD ) ) { - - if(sysOrderItem.getPayMethodDetail()!=null){ - // 查询要支付的充值卡 - MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(sysOrderItem.getPayMethodDetail())); - // 扣除付款卡金额并添加流水 - cardPaySk(moneyCardUse, sourceOrder, sysOrderItem); - }else{ - throw new GlobleException("请选择支付的会员卡"); - } - - - } - orderItemDao.update(updateItem); - }else { - haQk=true; } } - //更新收款状态 - if(haQk){ - sourceOrder.setStatu(Dictionary.ORDER_STATU_QK); - }else{ - sourceOrder.setStatu(Dictionary.ORDER_STATU_YFK); - } +// boolean haQk=false; +// +// for(SysOrderItem sysOrderItem:sourceOrder.getItems()){ +// +// if(!sysOrderItem.getStatus().equals(Dictionary.ORDER_STATU_QK)){ +// SysOrderItem updateItem=new SysOrderItem(); +// updateItem.setId(sysOrderItem.getId()); +// updateItem.setStatus(Dictionary.ORDER_STATU_YFK); +// +// if (sysOrderItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY_CARD ) ) { +// +// if(sysOrderItem.getPayMethodDetail()!=null){ +// // 查询要支付的充值卡 +// MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(sysOrderItem.getPayMethodDetail())); +// // 扣除付款卡金额并添加流水 +// cardPaySk(moneyCardUse, sourceOrder, sysOrderItem); +// }else{ +// throw new GlobleException("请选择支付的会员卡"); +// } +// +// +// } +// orderItemDao.update(updateItem); +// }else { +// haQk=true; +// } +// } + + // 更新收款状态 + sourceOrder.setStatu(Dictionary.ORDER_STATU_YFK); sysOrderDao.update(sourceOrder); @@ -629,6 +646,10 @@ moneyCardUse.setIsOver(Dictionary.FLAG_YES_Y); moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_WX); } + + ShoppingGoods shoppingGoods = shoppingGoodsService.findById(moneyCardUse.getGoodsId()); + Date invalidTime = shoppingGoodsService.calInvalidTime(shoppingGoods, 2, moneyCardUse.getFailTime()); + moneyCardUse.setFailTime(invalidTime); // 更新充值卡信息 moneyCardUseDao.update(moneyCardUse); } @@ -736,14 +757,17 @@ moneyCardUse.setLastCount(moneyCar.getCarUseCount()); } moneyCardUse.setVipId(sourceOrder.getVipId()); - if (moneyCar.getValidity() == null || moneyCar.getValidity() == 0) { - // 设置失效时间 - Calendar cal = Calendar.getInstance(); - cal.set(2200, 1, 1); - moneyCardUse.setFailTime(cal.getTime()); - } else { - moneyCardUse.setFailTime(DateUtil.nextNDate(new Date(), 30 * moneyCar.getValidity())); - } +// if (moneyCar.getValidity() == null || moneyCar.getValidity() == 0) { +// // 设置失效时间 +// Calendar cal = Calendar.getInstance(); +// cal.set(2200, 1, 1); +// moneyCardUse.setFailTime(cal.getTime()); +// } else { +// moneyCardUse.setFailTime(DateUtil.nextNDate(new Date(), 30 * moneyCar.getValidity())); +// } + Date invalidTime = shoppingGoodsService.calInvalidTime(sysOrderItem.getShoppingGoods(), 1, null); + moneyCardUse.setFailTime(invalidTime); + moneyCardUseDao.insert(moneyCardUse); } } @@ -1049,6 +1073,7 @@ taocanProjUse.setStatus(Dictionary.TAOCAN_STATUS_YX); taocanProjUse.setType(Dictionary.SHOPPING_GOODS_TYPE_TC); taocanProjUse.setIsCourse(taocanShoppingGoods.getIsCourse()); + taocanProjUse.setIsInfinite(taocanShoppingGoods.getIsInfinite()); // 赠送和打折后金额为0的都视为赠送项目 if (sysOrderItem.getIsFree().equals(Dictionary.FLAG_NO) && sysOrderItem.getZkPrice() > 0) { taocanProjUse.setSource(Dictionary.TAOCAN_SOURCE_GM); @@ -1199,6 +1224,48 @@ } + @Override + public SysOrder findSysOrderTjByVipId(Long vipId) { + return sysOrderDao.selectVipOrderInfoTotal(vipId); + } + @Override + public List<OrderDetailVo> findApiOrderListInPage(OrderListDto orderListDto, PaginationVO pageVo) { + return sysOrderDao.selectApiOrderListInPage(orderListDto, pageVo); + } + @Override + public int findApiOrderListTotal(OrderListDto orderListDto) { + return sysOrderDao.selectApiOrderListTotal(orderListDto); + } + + @Override + public OrderDetailVo findApiOrderDetailByOrderId(Long orderId) { + OrderDetailVo orderDetail = sysOrderDao.selectApiOrderDetailById(orderId); + + if (orderDetail == null) { + throw new GlobleException("该订单不存在"); + } + + List<OrderDetailItemVo> items = orderItemDao.selectApiOrderDetailItemsByOrderId(orderId); + if (CollectionUtils.isNotEmpty(items)) { + for (OrderDetailItemVo item : items) { + List<OrderDetailAchieveItemVo> achieveItems = achieveNewDao.selectApiOrderItemAchieve(item.getId()); + item.setAchieves(achieveItems); + } + } + + orderDetail.setItems(items); + return orderDetail; + } + + @Override + public List<RankingVo> findApiShopAchieveRanking(SysOrder sysOrder) { + return sysOrderDao.selectShopAchieveRanking(sysOrder); + } + + @Override + public List<RankingVo> findStaffSaleAchieveRanking(SysOrder sysOrder) { + return sysOrderDao.selectStaffSaleAchieveRanking(sysOrder); + } } -- Gitblit v1.9.1