| | |
| | | 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; |
| | |
| | | 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) { |
| | |
| | | |
| | | @Override |
| | | public SysOrder checkAndSaveOrder(SysOrder sysOrder) { |
| | | |
| | | // 收款改变订单状态 |
| | | /** |
| | | * 判断订单条目的一个付款情况 |
| | | */ |
| | | // 计算现金支付金额 |
| | | double xjMoney = 0.0; |
| | | // 计算卡支付总额 |
| | | double cardMoney = 0.0; |
| | | |
| | | // 计算订单折扣金额,收款情况下 计算订单总额 |
| | | double zkTotal = 0.0; |
| | | /** |
| | | * 记录本次消费的卡,防止扣除多次消费记录 |
| | | */ |
| | | ArrayList<Long> userCard = new ArrayList<Long>(); |
| | | |
| | | // 判断是否为退款 |
| | | String orderStatus = Dictionary.ORDER_STATU_DFK; |
| | | if (Dictionary.ORDER_STATU_TK.equals(sysOrder.getStatu())) { |
| | | orderStatus = Dictionary.ORDER_STATU_TK; |
| | | } |
| | | |
| | | // 页面的pageOrder 参数只包含支付金额信息,不带有购买商品 |
| | | for (SysOrderItem item : sysOrder.getItems()) { |
| | | // 若为退款,则先更新原有数量 |
| | | if (orderStatus.equals(Dictionary.ORDER_STATU_TK)) { |
| | | SysOrderItem sysOrderItem = new SysOrderItem(); |
| | | sysOrderItem.setId(item.getId()); |
| | | sysOrderItem.setCount(item.getPreCount() - item.getCount()); |
| | | orderItemDao.update(sysOrderItem); |
| | | } |
| | | item.setId(null); |
| | | |
| | | ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(item.getGoodsId()); |
| | | item.setType(shoppingGoods.getGoodType()); |
| | |
| | | item.setIsFree(Dictionary.FLAG_YES); |
| | | } |
| | | |
| | | |
| | | // 如果支付方式是非现金则记录现金支付金额 |
| | | if (!item.getPayMethod().equals(PayMethodEnum.VIP_CARD.getCode())) { |
| | | xjMoney = MoneyUtil.add(xjMoney, item.getPayMoney()); |
| | | item.setCashPay(item.getPayMoney()); |
| | | } else { |
| | | cardMoney = MoneyUtil.add(cardMoney, item.getPayMoney()); |
| | | item.setCardPay(item.getPayMoney()); |
| | | |
| | | } |
| | | |
| | | |
| | | // 订单欠款减去支付金额 设置实际欠款 |
| | | Double itemZkTotal = MoneyUtil.mul(item.getZkPrice(), Double.valueOf(item.getCount())); |
| | | zkTotal=MoneyUtil.add(zkTotal, itemZkTotal); |
| | | 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); |
| | | } |
| | | item.setStatus(orderStatus); |
| | | } |
| | | 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.setStatu(Dictionary.ORDER_STATU_DFK); |
| | | sysOrder.setStatu(orderStatus); |
| | | sysOrder.setStaffId(user.getSuId()); |
| | | sysOrder.setCompanyId(user.getCompanyId()); |
| | | |
| | | sysOrder.setPayTime(new Date()); |
| | |
| | | throw new GlobleException("没用选择购买产品"); |
| | | } |
| | | // 获取会员信息,判断等级 获取相应家居折扣 |
| | | SysVipInfo info = (SysVipInfo) WebUtil.getSession().getAttribute(SystemConstance.CURRENT_CUSTOMER); |
| | | SysVipInfo info = sysVipInfoDao.selectById(car.getVipId()); |
| | | |
| | | //获取折扣----- |
| | | Double zk = zk = 1.0; |
| | |
| | | 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) { |
| | |
| | | * @author:姜友瑶 |
| | | */ |
| | | private void changeOrderStatu(SysOrder sourceOrder) { |
| | | int i = 1; |
| | | String orderStatus = Dictionary.ORDER_STATU_YFK; |
| | | double cashPayTotal = 0D; |
| | | double cardPayTotal = 0D; |
| | | for (SysOrderFlow flow : sourceOrder.getFlows()) { |
| | | flow.setFlowNo(codeService.getFlowCode() + "-" + i); |
| | | Long goodsId = sourceOrder.getItems().get(0).getGoodsId(); |
| | | ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId); |
| | | flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品"); |
| | | |
| | | 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; |
| | | if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) { |
| | | flow.setOrderId(sourceOrder.getOldOrderId()); |
| | | } else { |
| | | flow.setOrderId(sourceOrder.getId()); |
| | | } |
| | | } |
| | | //更新收款状态 |
| | | if(haQk){ |
| | | sourceOrder.setStatu(Dictionary.ORDER_STATU_QK); |
| | | }else{ |
| | | sourceOrder.setStatu(Dictionary.ORDER_STATU_YFK); |
| | | |
| | | flow.setVipId(sourceOrder.getVipId()); |
| | | flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY); |
| | | // 若使用储值卡付款 |
| | | if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { |
| | | if (flow.getCardId() != null) { |
| | | MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId()); |
| | | cardPaySk(moneyCardUse, sourceOrder, flow); |
| | | cardPayTotal += flow.getAmount().doubleValue(); |
| | | } |
| | | } |
| | | |
| | | if (SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod())) { |
| | | orderStatus = Dictionary.ORDER_STATU_QK; |
| | | sourceOrder.setArrears(flow.getAmount().doubleValue()); |
| | | } |
| | | |
| | | if (!SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod()) && !SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { |
| | | cashPayTotal += flow.getAmount().doubleValue(); |
| | | } |
| | | sysOrderFlowDao.insert(flow); |
| | | i++; |
| | | } |
| | | |
| | | if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) { |
| | | orderStatus = Dictionary.ORDER_STATU_TK; |
| | | } |
| | | |
| | | // 更新收款状态 |
| | | sourceOrder.setStatu(orderStatus); |
| | | sourceOrder.setCardPay(cardPayTotal); |
| | | sourceOrder.setCashPay(cashPayTotal); |
| | | sysOrderDao.update(sourceOrder); |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | * 使用充值卡付款操作 |
| | | * |
| | | * @param sourceOrder |
| | | * @param userCard |
| | | * @param orderItem |
| | | * @param temp 设置是否扣除使用次数 true 扣除 |
| | | * @param moneyCardUse |
| | | * @param flow |
| | | */ |
| | | private void cardPaySk(MoneyCardUse moneyCardUse, SysOrder sourceOrder, |
| | | SysOrderItem orderItem) { |
| | | private void cardPaySk(MoneyCardUse moneyCardUse, SysOrder sourceOrder, SysOrderFlow flow) { |
| | | // 判断商品是否在充值卡的限制购买,判断分类 |
| | | if (!isInBangding(moneyCardUse, orderItem.getGoodsId())) { |
| | | throw new GlobleException(shoppingGoodsDao.selectById(orderItem.getGoodsId()).getName() + "不在" |
| | | + moneyCardUse.getCardName() + "优惠中"); |
| | | } |
| | | SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); |
| | | Double balance = moneyCardUse.getRealMoney(); |
| | | if (moneyCardUse.getGiftMoney() != null) { |
| | | balance = MoneyUtil.add(balance, moneyCardUse.getGiftMoney()); |
| | | } |
| | | // 判断金额是否足够支付 |
| | | if (balance >= orderItem.getPayMoney()) { |
| | | |
| | | MoneyCardUseFlow moneyCardUseFlow=new MoneyCardUseFlow(); |
| | | |
| | | // 余额充足先从本金中扣除 |
| | | if (moneyCardUse.getRealMoney() >= orderItem.getPayMoney()) { |
| | | double surplus = MoneyUtil.sub(moneyCardUse.getRealMoney(), orderItem.getPayMoney()); |
| | | moneyCardUse.setRealMoney(surplus); |
| | | moneyCardUseFlow.setTotal(0-orderItem.getPayMoney()); |
| | | |
| | | } else { |
| | | // 本金不够 |
| | | double surplus = MoneyUtil.sub(orderItem.getPayMoney(), moneyCardUse.getRealMoney()); |
| | | moneyCardUseFlow.setTotal(0- moneyCardUse.getRealMoney()); |
| | | // 扣除所有本金 |
| | | moneyCardUse.setRealMoney(0D); |
| | | moneyCardUse.setGiftMoney(MoneyUtil.sub(moneyCardUse.getGiftMoney(), surplus)); |
| | | // 只要是用了赠送金额购买的就视为赠送套餐 18-12-01 jyy |
| | | orderItem.setIsFree(Dictionary.FLAG_YES); |
| | | moneyCardUseFlow.setGiftMoney(0-surplus); |
| | | sourceOrder.getItems().forEach(item -> { |
| | | if (!isInBangding(moneyCardUse, item.getGoodsId())) { |
| | | throw new GlobleException(shoppingGoodsDao.selectById(item.getGoodsId()).getName() + "不在" + moneyCardUse.getCardName() + "优惠中"); |
| | | } |
| | | }); |
| | | |
| | | //设置卡项使用流水 |
| | | moneyCardUseFlow.setCarUseId(moneyCardUse.getId()); |
| | | moneyCardUseFlow.setOrderNo(sourceOrder.getOrderNo()); |
| | | moneyCardUseFlow.setVipId(sourceOrder.getVipId()); |
| | | moneyCardUseFlow.setTimes(-1); |
| | | moneyCardUseFlow.setType(MoneyCardUseFlow.USE_TYPE_CONSUMER); |
| | | moneyCardUseFlow.setCreateTime(new Date()); |
| | | moneyCardUseFlow.setOperationId(user.getSuId()); |
| | | moneyCardUseFlow.setBalance(moneyCardUse.getGiftMoney()+moneyCardUse.getRealMoney()); |
| | | moneyCardUseFlowDao.insert(moneyCardUseFlow); |
| | | SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); |
| | | |
| | | MoneyCardUseFlow moneyCardUseFlow=new MoneyCardUseFlow(); |
| | | if (SysOrderFlow.IS_GIFT_Y.equals(flow.getIsGift())) { |
| | | if(moneyCardUse.getGiftMoney() >= flow.getAmount().doubleValue()) { |
| | | double surplus = MoneyUtil.sub(moneyCardUse.getGiftMoney(), flow.getAmount().doubleValue()); |
| | | moneyCardUse.setGiftMoney(surplus); |
| | | |
| | | moneyCardUseFlow.setGiftMoney(0D - flow.getAmount().doubleValue()); |
| | | } else { |
| | | throw new GlobleException(moneyCardUse.getCardName() + "余额不足"); |
| | | } |
| | | } else { |
| | | throw new GlobleException(moneyCardUse.getCardName() + "余额不足"); |
| | | if(moneyCardUse.getRealMoney() >= flow.getAmount().doubleValue()) { |
| | | double surplus = MoneyUtil.sub(moneyCardUse.getRealMoney(), flow.getAmount().doubleValue()); |
| | | moneyCardUse.setRealMoney(surplus); |
| | | |
| | | moneyCardUseFlow.setTotal(0 - flow.getAmount().doubleValue()); |
| | | } else { |
| | | throw new GlobleException(moneyCardUse.getCardName() + "余额不足"); |
| | | } |
| | | } |
| | | |
| | | //设置卡项使用流水 |
| | | moneyCardUseFlow.setCarUseId(moneyCardUse.getId()); |
| | | moneyCardUseFlow.setOrderNo(sourceOrder.getOrderNo()); |
| | | moneyCardUseFlow.setVipId(sourceOrder.getVipId()); |
| | | moneyCardUseFlow.setTimes(-1); |
| | | moneyCardUseFlow.setType(MoneyCardUseFlow.USE_TYPE_CONSUMER); |
| | | moneyCardUseFlow.setCreateTime(new Date()); |
| | | moneyCardUseFlow.setOperationId(user.getSuId()); |
| | | moneyCardUseFlow.setBalance(moneyCardUse.getGiftMoney()+moneyCardUse.getRealMoney()); |
| | | moneyCardUseFlowDao.insert(moneyCardUseFlow); |
| | | |
| | | // 达到使用次数后自动清空余额 |
| | | if (!moneyCardUse.getIsVipCar().equals(Dictionary.FLAG_YES_Y) |
| | |
| | | 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); |
| | | } |
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public void updateAfterMoney(SysOrder pageOrder) { |
| | | |
| | | SysOrder sourceOrder = sysOrderDao.selectById(pageOrder.getId()); |
| | | |
| | | int i = 1; |
| | | double refundTotal = 0D; |
| | | double cardPayTotal = 0D; |
| | | double cashPayTotal = 0D; |
| | | for (SysOrderFlow flow : pageOrder.getFlows()) { |
| | | flow.setFlowNo(codeService.getFlowCode() + "-" + i); |
| | | Long goodsId = pageOrder.getItems().get(0).getGoodsId(); |
| | | ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId); |
| | | flow.setFlowContent(goods.getName() + "等" + pageOrder.getItems().size() + "件产品"); |
| | | |
| | | flow.setOrderId(pageOrder.getId()); |
| | | flow.setVipId(pageOrder.getVipId()); |
| | | flow.setFlowType(SysOrderFlow.FLOW_TYPE_REPAY); |
| | | // 若使用储值卡付款 |
| | | if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { |
| | | if (flow.getCardId() != null) { |
| | | cardPayTotal += flow.getAmount().doubleValue(); |
| | | MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId()); |
| | | cardPaySk(moneyCardUse, pageOrder, flow); |
| | | } |
| | | } else { |
| | | cashPayTotal += flow.getAmount().doubleValue(); |
| | | } |
| | | |
| | | refundTotal += flow.getAmount().doubleValue(); |
| | | sysOrderFlowDao.insert(flow); |
| | | i++; |
| | | } |
| | | |
| | | boolean haQk=false; |
| | | |
| | | double cardPayTotal=0D; |
| | | double carshPayTotal=0D; |
| | | |
| | | |
| | | for(SysOrderItem pageItem:pageOrder.getItems()){ |
| | | SysOrderItem sourceItem=orderItemDao.selectById(pageItem.getId()); |
| | | |
| | | //结清 |
| | | if(sourceItem.getArrears() == pageItem.getPayMoney()){ |
| | | |
| | | sourceItem.setStatus(Dictionary.ORDER_STATU_YFK); |
| | | }else if(sourceItem.getArrears() > pageItem.getPayMoney()) { |
| | | //未结清 |
| | | sourceItem.setStatus(Dictionary.ORDER_STATU_QK); |
| | | haQk=true; |
| | | }else if(sourceItem.getArrears() < pageItem.getPayMoney()) { |
| | | |
| | | throw new GlobleException("支付金额不能大于欠款金额"); |
| | | |
| | | } |
| | | |
| | | //更新卡支付 |
| | | if (!pageItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY)) { |
| | | // 查询要支付的充值卡 |
| | | MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(pageItem.getPayMethod())); |
| | | // 扣除付款卡金额并添加流水 |
| | | cardPaySk(moneyCardUse, sourceOrder, pageItem); |
| | | sourceItem.setCardPay((sourceItem.getCardPay()==null?0:sourceItem.getCardPay())+pageItem.getPayMoney()); |
| | | cardPayTotal+=pageItem.getPayMoney(); |
| | | }else{ |
| | | carshPayTotal+=pageItem.getPayMoney(); |
| | | sourceItem.setCashPay((sourceItem.getCashPay()==null?0:sourceItem.getCashPay())+pageItem.getPayMoney()); |
| | | } |
| | | |
| | | //更新订单明细状态 |
| | | sourceItem.setArrears(sourceItem.getArrears()-pageItem.getPayMoney()); |
| | | |
| | | orderItemDao.update(sourceItem); |
| | | |
| | | if (refundTotal == pageOrder.getArrears()) { |
| | | haQk = true; |
| | | } |
| | | |
| | | //更新收款状态 |
| | | if(haQk){ |
| | | sourceOrder.setStatu(Dictionary.ORDER_STATU_QK); |
| | | }else{ |
| | | sourceOrder.setStatu(Dictionary.ORDER_STATU_YFK); |
| | | }else{ |
| | | sourceOrder.setStatu(Dictionary.ORDER_STATU_QK); |
| | | } |
| | | |
| | | sourceOrder.setArrears(sourceOrder.getArrears()-carshPayTotal-cardPayTotal); |
| | | sourceOrder.setCardPay(sourceOrder.getCardPay()+cardPayTotal); |
| | | sourceOrder.setCashPay(sourceOrder.getCashPay()+carshPayTotal); |
| | | sourceOrder.setArrears(sourceOrder.getArrears() - refundTotal); |
| | | sourceOrder.setCardPay(sourceOrder.getCardPay() + cardPayTotal); |
| | | sourceOrder.setCashPay(sourceOrder.getCashPay() + cashPayTotal); |
| | | sysOrderDao.update(sourceOrder); |
| | | |
| | | // 设置业绩 |
| | | achieveNewService.addAchaeveByOrder(pageOrder); |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | 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); |
| | |
| | | } |
| | | |
| | | |
| | | @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); |
| | | } |
| | | |
| | | @Override |
| | | public void refundOrderMoney(SysOrder pageOrder) { |
| | | |
| | | // 插入订单流水 |
| | | changeOrderStatu(pageOrder); |
| | | |
| | | for (SysOrderItem item : pageOrder.getItems()) { |
| | | |
| | | SysProjUse queryProjUse = new SysProjUse(); |
| | | queryProjUse.setIsOver(Dictionary.FLAG_NO_N); |
| | | queryProjUse.setStatus(Dictionary.TAOCAN_STATUS_YX); |
| | | queryProjUse.setOrderItemId(item.getId()); |
| | | // 修改项目信息 |
| | | if (Dictionary.SHOPPING_GOODS_TYPE_XM.equals(item.getType()) && Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(item.getType())) { |
| | | SysProjUse sysProjUse = sysProjUseDao.selectByModel(queryProjUse).get(0); |
| | | |
| | | int sub = sysProjUse.getSurplusCount() - item.getCount(); |
| | | sysProjUse.setSurplusCount(sub); |
| | | if (sub <= 0) { |
| | | sysProjUse.setIsOver(Dictionary.FLAG_YES_Y); |
| | | sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX); |
| | | } |
| | | sysProjUseDao.update(sysProjUse); |
| | | } |
| | | |
| | | if (Dictionary.SHOPPING_GOODS_TYPE_TC.equals(item.getType())) { |
| | | queryProjUse.setTaocanId(-1L); |
| | | SysProjUse sysProjUse = sysProjUseDao.selectByModel(queryProjUse).get(0); |
| | | sysProjUse.setIsOver(Dictionary.FLAG_YES_Y); |
| | | sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX); |
| | | |
| | | sysProjUseDao.update(sysProjUse); |
| | | } |
| | | |
| | | if (Dictionary.SHOPPING_GOODS_TYPE_CZK.equals(item.getType())) { |
| | | MoneyCardUse queryCardUse = new MoneyCardUse(); |
| | | queryCardUse.setIsOver(Dictionary.FLAG_NO_N); |
| | | queryCardUse.setStatus(Dictionary.TAOCAN_STATUS_YX); |
| | | queryCardUse.setOrderItemId(item.getId()); |
| | | |
| | | MoneyCardUse moneyCardUse = moneyCardUseDao.selectByModel(queryCardUse).get(0); |
| | | moneyCardUse.setIsOver(Dictionary.FLAG_YES_Y); |
| | | moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_WX); |
| | | moneyCardUseDao.update(moneyCardUse); |
| | | } |
| | | |
| | | // TODO 综合卡退款 |
| | | if (Dictionary.SHOPPING_GOODS_TYPE_ZHK.equals(item.getType())) { |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | // 设置会员充值卡使用情况 |
| | | addMoneyCardUse(pageOrder); |
| | | |
| | | // 新增出库单 |
| | | addOutStore(pageOrder); |
| | | |
| | | // 改变客户项目套餐使用情况 |
| | | addTaocanProj(pageOrder); |
| | | |
| | | // 设置业绩 |
| | | achieveNewService.addAchaeveByOrder(pageOrder); |
| | | |
| | | setShopSelCount(pageOrder); |
| | | } |
| | | } |