From 00efd2e4db8157ece4116c956c314803ed073042 Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Sat, 03 Apr 2021 16:39:15 +0800 Subject: [PATCH] 会员中心手工调整积分 --- zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 410 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 337 insertions(+), 73 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 d2eb610..c0feb9d 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 @@ -13,6 +13,7 @@ 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.BusParameterSettings; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.dao.BusParameterSettingsDao; import com.matrix.system.common.dao.SysUsersDao; @@ -25,6 +26,9 @@ import com.matrix.system.hive.pojo.ShoppingCarItem; import com.matrix.system.hive.pojo.ShoppingCarItemsVo; import com.matrix.system.hive.service.*; +import com.matrix.system.score.constant.ScoreSettingConstant; +import com.matrix.system.score.entity.ScoreVipDetail; +import com.matrix.system.score.service.ScoreVipDetailService; import com.matrix.system.shopXcx.mqTask.MQTaskRouting; import com.matrix.system.wechart.templateMsg.UniformMsgParam; import org.springframework.beans.BeanUtils; @@ -35,6 +39,7 @@ import javax.servlet.http.HttpSession; import javax.validation.constraints.NotEmpty; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -63,7 +68,11 @@ @Autowired MoneyCardUseFlowDao moneyCardUseFlowDao; + @Autowired + ScoreVipDetailService scoreVipDetailService; + @Autowired + BusParameterSettingsDao busParameterSettingsDao; @Autowired SysVipLevelDao sysVipLevelDao; @@ -278,23 +287,22 @@ throw new GlobleException("订单已取消"); } - List<SysOrderItem> sysOrderItems = orderItemDao.selectByOrderId(id); + List<SysOrderFlow> flows = sysOrderFlowDao.selectByOrderId(id); + // 非现金收款退回扣卡余额 + for (SysOrderFlow flow : flows) { + if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { - for (SysOrderItem orderItem : sysOrderItems) { - - //非现金收款退回扣卡余额 - if (StringUtils.isNotBlank(orderItem.getPayMethodDetail())) { - - MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(orderItem.getPayMethodDetail())); + MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId()); MoneyCardUseFlow moneyCardUseFlow = new MoneyCardUseFlow(); if (moneyCardUse != null) { - // 根据订单明细判断是赠送金额购买还是本金购买 - - moneyCardUseFlow.setTotal(orderItem.getCardPay()); - moneyCardUse.setRealMoney(MoneyUtil.add(moneyCardUse.getRealMoney(), orderItem.getCardPay())); - //TODO 目前无法退回到具体的赠送金额还是本金 + moneyCardUseFlow.setTotal(flow.getAmount().doubleValue()); + if (SysOrderFlow.IS_GIFT_Y.equals(flow.getIsGift())) { + moneyCardUse.setGiftMoney(MoneyUtil.add(moneyCardUse.getGiftMoney(), flow.getAmount().doubleValue())); + } else { + moneyCardUse.setRealMoney(MoneyUtil.add(moneyCardUse.getRealMoney(), flow.getAmount().doubleValue())); + } if (!moneyCardUse.getIsVipCar().equals(Dictionary.FLAG_YES_Y)) { if (moneyCardUse.getLastCount() != null) { @@ -316,29 +324,26 @@ moneyCardUseFlowDao.insert(moneyCardUseFlow); } } + } + + List<SysOrderItem> sysOrderItems = orderItemDao.selectByOrderId(id); + for (SysOrderItem orderItem : sysOrderItems) { // 充值卡类型退款 if (Dictionary.SHOPPING_GOODS_TYPE_CZK.equals(orderItem.getType())) { - ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(orderItem.getGoodsId()); - - //删除购买的充值卡 moneyCardUseDao.deleteByOrderItemId(orderItem.getId()); - } else if (Dictionary.SHOPPING_GOODS_TYPE_XM.equals(orderItem.getType()) || Dictionary.SHOPPING_GOODS_TYPE_TC.equals(orderItem.getType())) { // 项目套餐退款 // 删除套餐项目使用情况 sysProjUseDao.deleteByOrderItemId(orderItem.getId()); - - } else if (Dictionary.SHOPPING_GOODS_TYPE_ZHK.equals(orderItem.getType())) { // 综合卡 // 删除套餐项目使用情况 sysProjUseDao.deleteByOrderItemId(orderItem.getId()); // 删除充值卡 moneyCardUseDao.deleteByOrderItemId(orderItem.getId()); - } } @@ -366,10 +371,11 @@ // 删除收款记录 sysOrderFlowDao.deleteByOrderId(id); + //删除积分 + scoreVipDetailService.removeByBusinessId(null,order.getVipId(), order.getId()); + // 取消订单 order.setStatu(Dictionary.ORDER_STATU_YQX); - - return sysOrderDao.update(order); } @@ -487,6 +493,10 @@ if (!Dictionary.ORDER_STATU_DFK.equals(pageOrder.getStatu())) { throw new GlobleException("该订单已经收过款,请刷新页面再试!"); } + // 更新收款时间 + pageOrder.setPayTime(new Date()); + pageOrder.setStatu(Dictionary.ORDER_STATU_YFK); + sysOrderDao.update(pageOrder); // 获取用户信息 SysVipInfo vipInfo = sysVipInfoDao.selectById(pageOrder.getVipId()); @@ -496,8 +506,8 @@ sysVipInfoDao.update(vipInfo); } - //设置订单的成交状态 - changeOrderStatu(pageOrder); + //添加支付流水 + addOrderFlow(pageOrder); // 设置会员充值卡使用情况 addMoneyCardUse(pageOrder); @@ -513,81 +523,195 @@ setShopSelCount(pageOrder); + //设置会员积分 + addVipScore(pageOrder); + } /** - * 收款改变订单状态,划扣金额 + * 设置会员消费积分 + * @param pageOrder + */ + private void addVipScore(SysOrder pageOrder) { + + SysVipInfo vipInfo=sysVipInfoDao.selectById(pageOrder.getVipId()); + + List<SysOrderFlow> flows = pageOrder.getFlows(); + int [] cashScore={0,0,0}; + //现金支付金额 + BigDecimal cashPayAmount=flows.stream() + .filter(item->(!item.getPayMethod().equals("储值卡"))&&(!item.getPayMethod().equals("欠款"))) + .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add); + BusParameterSettings cashConsumption = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.CASH_CONSUMPTION, vipInfo.getCompanyId()); + if(cashPayAmount!=null + &&cashPayAmount.compareTo(BigDecimal.ZERO)>0 + &&StringUtils.isNotBlank(cashConsumption.getParamValue())){ + + BigDecimal scoreSetting0 = new BigDecimal(cashConsumption.getParamValue()); + cashScore[0]= cashPayAmount.divide(scoreSetting0).intValue(); + + if(StringUtils.isNotBlank(cashConsumption.getParamValue1())){ + BigDecimal scoreSetting1 = new BigDecimal(cashConsumption.getParamValue1()); + cashScore[1]= cashPayAmount.divide(scoreSetting1).intValue(); + } + + if(StringUtils.isNotBlank(cashConsumption.getParamValue2())){ + BigDecimal scoreSetting2 = new BigDecimal(cashConsumption.getParamValue2()); + cashScore[2]= cashPayAmount.divide(scoreSetting2).intValue(); + } + } + + int [] cardScore={0,0,0}; + //储值卡本金支付金额 + BigDecimal cardPayAmount=flows.stream() + .filter(item->item.getPayMethod().equals("储值卡")&&item.getIsGift().equals("N")) + .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add); + + BusParameterSettings principalBalanceConsumption = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.PRINCIPAL_BALANCE_CONSUMPTION, vipInfo.getCompanyId()); + if(cardPayAmount!=null + &&cardPayAmount.compareTo(BigDecimal.ZERO)>0 + &&StringUtils.isNotBlank(principalBalanceConsumption.getParamValue())){ + + BigDecimal scoreSetting0 = new BigDecimal(principalBalanceConsumption.getParamValue()); + cardScore[0]= cardPayAmount.divide(scoreSetting0).intValue(); + + if(StringUtils.isNotBlank(principalBalanceConsumption.getParamValue1())){ + BigDecimal scoreSetting1 = new BigDecimal(principalBalanceConsumption.getParamValue1()); + cardScore[1]= cardPayAmount.divide(scoreSetting1).intValue(); + } + + if(StringUtils.isNotBlank(principalBalanceConsumption.getParamValue2())){ + BigDecimal scoreSetting2 = new BigDecimal(principalBalanceConsumption.getParamValue2()); + cardScore[2]= cardPayAmount.divide(scoreSetting2).intValue(); + } + } + + int [] giftScore={0,0,0}; + //储值卡本赠送付金额 + BigDecimal giftPayAmount=flows.stream() + .filter(item->item.getPayMethod().equals("储值卡")&&item.getIsGift().equals("Y")) + .map(SysOrderFlow::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add); + BusParameterSettings bonusBalanceConsumption = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.BONUS_BALANCE_CONSUMPTION, vipInfo.getCompanyId()); + if(giftPayAmount!=null + &&giftPayAmount.compareTo(BigDecimal.ZERO)>0 + &&StringUtils.isNotBlank(bonusBalanceConsumption.getParamValue())){ + + BigDecimal scoreSetting0 = new BigDecimal(bonusBalanceConsumption.getParamValue()); + giftScore[0]= giftPayAmount.divide(scoreSetting0).intValue(); + + if(StringUtils.isNotBlank(bonusBalanceConsumption.getParamValue1())){ + BigDecimal scoreSetting1 = new BigDecimal(bonusBalanceConsumption.getParamValue1()); + giftScore[1]= giftPayAmount.divide(scoreSetting1).intValue(); + } + + if(StringUtils.isNotBlank(bonusBalanceConsumption.getParamValue2())){ + BigDecimal scoreSetting2 = new BigDecimal(bonusBalanceConsumption.getParamValue2()); + giftScore[2]= giftPayAmount.divide(scoreSetting2).intValue(); + } + } + + int selfScore=cashScore[0]+cardScore[0]+giftScore[0]; + int parentScore=cashScore[1]+cardScore[1]+giftScore[1]; + int topParentScore=cashScore[2]+cardScore[2]+giftScore[2]; + + + //添加自己的积分 + if(selfScore>0){ + scoreVipDetailService.addScore(null, + vipInfo.getId(), + pageOrder.getStaffId(), + pageOrder.getShopId(), + selfScore, + pageOrder.getId(), + ScoreVipDetail.SCORE_VIP_TYPE_CASH, + "消费奖励" + ); + } + + if(vipInfo.getRecommendId()!=null){ + //推荐注册老带新积分奖励 + SysVipInfo referrerVip = sysVipInfoDao.selectById(vipInfo.getRecommendId()); + if(parentScore>0){ + scoreVipDetailService.addScore(null, + referrerVip.getId(), + pageOrder.getStaffId(), + pageOrder.getShopId(), + parentScore, + pageOrder.getId(), + ScoreVipDetail.SCORE_VIP_TYPE_CASH, + "推荐消费奖励" + ); + } + //推荐注册二级带新积分奖励 + if(referrerVip.getRecommendId()!=null){ + SysVipInfo topVipInfo = sysVipInfoDao.selectById(referrerVip.getRecommendId()); + if(topParentScore>0){ + scoreVipDetailService.addScore(null, + topVipInfo.getId(), + pageOrder.getStaffId(), + pageOrder.getShopId(), + topParentScore, + pageOrder.getId(), + ScoreVipDetail.SCORE_VIP_TYPE_CASH, + "推荐消费奖励" + ); + } + } + } + } + + /** + * 创建支付流水 * * @author:姜友瑶 */ - private void changeOrderStatu(SysOrder sourceOrder) { + private void addOrderFlow(SysOrder sourceOrder) { - String orderStatus = Dictionary.ORDER_STATU_YFK; - String flowType = SysOrderFlow.FLOW_TYPE_BUY; - double cashPayTotal = 0D; - double cardPayTotal = 0D; //处理支付流水 int flowCount = 1; for (SysOrderFlow flow : sourceOrder.getFlows()) { - //支付内容摘要设置 Long goodsId = sourceOrder.getItems().get(0).getGoodsId(); ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId); flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品"); - // 若是退款,则取负数 if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) { - flowType = SysOrderFlow.FLOW_TYPE_REFUND; + flow.setFlowType(SysOrderFlow.FLOW_TYPE_REFUND); flow.setAmount(flow.getAmount().negate()); flow.setOrderId(sourceOrder.getOldOrderId()); } else { + flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY); flow.setOrderId(sourceOrder.getId()); } //欠款处理 if (SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod())) { - orderStatus = Dictionary.ORDER_STATU_QK; + sourceOrder.setStatu(Dictionary.ORDER_STATU_QK); sourceOrder.setArrears(flow.getAmount().doubleValue()); + sysOrderDao.update(sourceOrder); } //统计储值卡支付 if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { if (flow.getCardId() != null) { MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId()); - cardPayTotal += flow.getAmount().doubleValue(); - //修改储值卡余额 cardPaySk(moneyCardUse, sourceOrder, flow); }else{ throw new GlobleException("无效的储值卡支付方式"); } } - //统计现金支付 - if (!SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod()) - && !SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { - cashPayTotal += flow.getAmount().doubleValue(); - } flow.setFlowNo(codeService.getFlowCode() + "-" + flowCount); flow.setVipId(sourceOrder.getVipId()); - flow.setFlowType(flowType); flow.setShopId(sourceOrder.getShopId()); flow.setCompanyId(sourceOrder.getCompanyId()); sysOrderFlowDao.insert(flow); flowCount++; } - //修改订单信息 - if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) { - orderStatus = Dictionary.ORDER_STATU_TK; - } - // 更新收款状态 - sourceOrder.setPayTime(new Date()); - sourceOrder.setStatu(orderStatus); - sourceOrder.setCardPay(cardPayTotal); - sourceOrder.setCashPay(cashPayTotal); - sysOrderDao.update(sourceOrder); + } @@ -698,6 +822,14 @@ return true; } else { // 不是一卡通, + // 判断卡是否可应用于所有产品 + ShoppingGoods cardGoods = shoppingGoodsDao.selectById(moneyCardUse.getGoodsId()); + if (cardGoods != null) { + if (Dictionary.FLAG_YES.equals(cardGoods.getCarIsAll())) { + return true; + } + } + // 比较分类 MoneyCardAssemble moneyCardAssemble = new MoneyCardAssemble(); moneyCardAssemble.setCardId(moneyCardUse.getGoodsId()); @@ -1230,7 +1362,7 @@ moneyCardUseFlowDao.insert(moneyCardUseFlow); order.setFlows(czVo.getFlows()); - changeOrderStatu(order); + addOrderFlow(order); // 添加员工业绩 achieveNewService.addAchaeveByOrder(order); return order; @@ -1280,37 +1412,175 @@ @Transactional(rollbackFor = Exception.class) @Override - public void refundOrderMoney(SysOrder pageOrder) { + public void refundOrderMoney(SysOrder sysOrder) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); - // 修改订单状态 - changeOrderStatu(pageOrder); + //原订单设置为退款状态 + 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()); - List<SysOrderItem> returnItems = new ArrayList<>(); - for (SysOrderItem item : pageOrder.getItems()) { + sysOrder.setId(null); + sysOrder.setStaffId(user.getSuId()); + sysOrder.setCompanyId(user.getCompanyId()); + sysOrder.setShopId(user.getShopId()); + sysOrder.setOrderType(SysOrder.ORDER_TYPE_REFUND); + sysOrder.setStatu(Dictionary.ORDER_STATU_YFK); + Date now = new Date(); + sysOrder.setOrderTime(now); + sysOrder.setPayTime(now); + sysOrder.setOrderNo(codeService.getRefundOrderNo()); + sysOrder.setZkTotal(-sysOrder.getZkTotal()); + sysOrder.setOrderType(SysOrder.ORDER_TYPE_REFUND); + //新增订单 + sysOrderDao.insert(sysOrder); + //插入明细 + for (SysOrderItem item : sysOrder.getItems()) { + + //更新原订单明细的可退数量 + SysOrderItem oldItem=new SysOrderItem(); + oldItem.setId(item.getId()); + oldItem.setRefundCount(item.getCount()); + orderItemDao.update(oldItem); + + //插入新的订单明细 + item.setId(null); + item.setCount(-item.getCount()); + item.setOrderId(sysOrder.getId()); + orderItemDao.insert(item); + } + + + // 添加订单收款流水 + addOrderFlow(sysOrder); + //退款退套餐退项目 + refundProjUse(sysOrder); + //删除积分 + scoreVipDetailService.removeByBusinessId(null,oldOrder.getVipId(), oldOrder.getId()); + + // 设置业绩 + achieveNewService.addAchaeveByOrder(sysOrder); + + } + + private void addRefundOrderFlow(SysOrder sourceOrder) { + //处理支付流水 + int flowCount = 1; + for (SysOrderFlow flow : sourceOrder.getFlows()) { + //支付内容摘要设置 + Long goodsId = sourceOrder.getItems().get(0).getGoodsId(); + ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId); + flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品"); + // 退款,则取负数 + flow.setFlowType(SysOrderFlow.FLOW_TYPE_REFUND); + flow.setAmount(flow.getAmount().negate()); + flow.setOrderId(sourceOrder.getOldOrderId()); + + //统计储值卡支付 + if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { + if (flow.getCardId() != null) { + MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId()); + //修改储值卡余额 + cardPaySk(moneyCardUse, sourceOrder, flow); + }else{ + throw new GlobleException("无效的储值卡支付方式"); + } + } + + flow.setFlowNo(codeService.getFlowCode() + "-" + flowCount); + flow.setVipId(sourceOrder.getVipId()); + flow.setShopId(sourceOrder.getShopId()); + flow.setCompanyId(sourceOrder.getCompanyId()); + sysOrderFlowDao.insert(flow); + flowCount++; + } + } + + private void refundCard(MoneyCardUse moneyCardUse, SysOrder sourceOrder, SysOrderFlow flow) { + 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 { + 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() + "余额不足"); + } + } + + if (moneyCardUse.getIsVipCar().equals(Dictionary.FLAG_NO_N)) { + //余额为0时充值卡变为无效 + if (moneyCardUse.getRealMoney().equals(0D) && moneyCardUse.getGiftMoney().equals(0D)) { + moneyCardUse.setIsOver(Dictionary.FLAG_YES_Y); + moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_WX); + } + } + + ShoppingGoods shoppingGoods = shoppingGoodsService.findById(moneyCardUse.getGoodsId()); + if (shoppingGoods != null) { + Date invalidTime = shoppingGoodsService.calInvalidTime(shoppingGoods, 2, moneyCardUse.getFailTime()); + moneyCardUse.setFailTime(invalidTime); + } + // 更新充值卡信息 + moneyCardUseDao.update(moneyCardUse); + //设置卡项使用流水 + 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); + } + + /** + * 退款退项目,套餐,卡项 + * @param sysOrder + */ + private void refundProjUse(SysOrder sysOrder) { + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + + //记录需要退库存的产品 + List<SysOrderItem> returnGoodsList = new ArrayList<>(); + + for (SysOrderItem item : sysOrder.getItems()) { SysProjUse queryProjUse = new SysProjUse(); - queryProjUse.setIsOver(Dictionary.FLAG_NO_N); - queryProjUse.setStatus(Dictionary.TAOCAN_STATUS_YX); queryProjUse.setOrderItemId(item.getOldItemId()); // 修改项目信息 if (Dictionary.SHOPPING_GOODS_TYPE_XM.equals(item.getType()) || Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(item.getType())) { if (Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(item.getType())) { if (Dictionary.FLAG_YES_Y.equals(item.getIsReturnStore())) { - returnItems.add(item); + returnGoodsList.add(item); } } else { SysProjUse sysProjUse = sysProjUseDao.selectByModel(queryProjUse).get(0); int sub = sysProjUse.getSurplusCount() - item.getCount(); - sysProjUse.setSurplusCount(sub); - if (sub <= 0) { + if (sub < 0) { + throw new GlobleException("项目余次不足"); + }else if(sub==0){ sysProjUse.setIsOver(Dictionary.FLAG_YES_Y); sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX); } + sysProjUse.setSurplusCount(sub); sysProjUseDao.update(sysProjUse); - SysProjUseFlow sysProjUseFlow = SysProjUseMapper.INSTANCE.projUseToFlow(sysProjUse); sysProjUseFlow.setOptionType("退款修改"); sysProjUseFlow.setId(null); @@ -1323,15 +1593,13 @@ if (Dictionary.SHOPPING_GOODS_TYPE_TC.equals(item.getType())) { queryProjUse.setTaocanId(-1L); List<SysProjUse> sysProjUses = sysProjUseDao.selectByModel(queryProjUse); - if (item.getCount() > sysProjUses.size()) { - throw new GlobleException("数据异常"); - } + for (int i = 0; i < item.getCount(); i++) { + SysProjUse sysProjUse = sysProjUses.get(i); sysProjUse.setIsOver(Dictionary.FLAG_YES_Y); sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX); - sysProjUseDao.update(sysProjUse); SysProjUseFlow sysProjUseFlow = SysProjUseMapper.INSTANCE.projUseToFlow(sysProjUse); sysProjUseFlow.setOptionType("退款修改"); @@ -1369,13 +1637,9 @@ } // 家居产品退库存 - if (CollectionUtils.isNotEmpty(returnItems)) { - refundInstore(returnItems); + if (CollectionUtils.isNotEmpty(returnGoodsList)) { + refundInstore(returnGoodsList); } - - // 设置业绩 - achieveNewService.addAchaeveByOrder(pageOrder); - } /** -- Gitblit v1.9.1