zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java
@@ -180,7 +180,7 @@ } } } orderService.refundOrderMoney(sysOrder); orderService.orderTk(sysOrder); //处理用户购买的产品 return AjaxResult.buildSuccessInstance(Arrays.asList(sysOrder), "订单退款成功"); } zq-erp/src/main/java/com/matrix/system/hive/bean/MoneyCardUseFlow.java
@@ -15,6 +15,8 @@ public static final String USE_TYPE_ORDRE_CANCEL = "取消订单"; public static final String USE_TYPE_ORDRE_TK = "订单退款"; public static final String USE_TYPE_CZ = "会员充值"; public static final String USE_TYPE_CARD_MODIFY = "会员卡调整"; zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjUseDao.java
@@ -138,4 +138,6 @@ int selectTaocanCountForCourseAndInfinite(@Param("taocanId") Long taocanId, @Param("vipId") Long vipId); int selectUseCountByOrderItemId(Long orderItemId); List<SysProjUse> selectByOrderItemId(Long orderItemId); } zq-erp/src/main/java/com/matrix/system/hive/dto/MoneyCardOperationDto.java
@@ -8,6 +8,7 @@ package com.matrix.system.hive.dto; import com.matrix.system.common.validate.group.Group; import com.matrix.system.hive.validation.MoneyCardUseGroup; import lombok.Data; import javax.validation.constraints.NotNull; @@ -43,9 +44,30 @@ * 订单明细id */ @NotNull(groups = Group.ADD.class) @NotNull(groups = MoneyCardUseGroup.moneyCardUseTk.class) private Long orderItemId; /** * 操作类型 */ @NotNull(groups = MoneyCardUseGroup.moneyCardUseTk.class) private String type; /** * 操作人 */ @NotNull(groups = MoneyCardUseGroup.moneyCardUseTk.class) private Long updateUser; /** * 订单id */ @NotNull(groups = MoneyCardUseGroup.moneyCardUseTk.class) private Long orderId; /** * 订单编号 */ @NotNull(groups = MoneyCardUseGroup.moneyCardUseTk.class) private String orderNo; /** * 充值卡的id */ @@ -53,6 +75,7 @@ private Long goodsId; /** * 备注 */ zq-erp/src/main/java/com/matrix/system/hive/dto/ProjUseOperationDto.java
@@ -1,7 +1,6 @@ package com.matrix.system.hive.dto; import com.matrix.system.hive.validation.ProjUseGroup; import io.swagger.models.auth.In; import lombok.Data; import javax.validation.constraints.NotNull; @@ -15,19 +14,19 @@ /** * 客户id */ @NotNull(groups = {ProjUseGroup.addProject.class, ProjUseGroup.addTc.class}) @NotNull(groups = {ProjUseGroup.addProject.class, ProjUseGroup.addTc.class }) private Long vipId; /** * 产品id */ @NotNull(groups = {ProjUseGroup.addProject.class, ProjUseGroup.addTc.class}) @NotNull(groups = {ProjUseGroup.addProject.class, ProjUseGroup.addTc.class, ProjUseGroup.projectTk.class}) private Long goodsId; /** * 添加次数 */ @NotNull(groups = {ProjUseGroup.addProject.class, ProjUseGroup.addTc.class}) @NotNull(groups = {ProjUseGroup.addProject.class, ProjUseGroup.addTc.class, ProjUseGroup.projectTk.class}) private Integer count; /** @@ -44,7 +43,7 @@ /** * 订单明细id */ @NotNull(groups = {ProjUseGroup.addProject.class, ProjUseGroup.addTc.class}) @NotNull(groups = {ProjUseGroup.addProject.class, ProjUseGroup.addTc.class, ProjUseGroup.projectTk.class}) private Long orderItemId; /** @@ -53,6 +52,7 @@ @NotNull(groups = {ProjUseGroup.addProject.class, ProjUseGroup.addTc.class}) private boolean isFree; /** * 套餐折扣 * 设置折扣后,套餐下绑定的项目消耗金额会对应打折 zq-erp/src/main/java/com/matrix/system/hive/service/MoneyCardUseService.java
@@ -5,7 +5,6 @@ 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; @@ -137,5 +136,10 @@ */ void deleteByOrderItemId(Long id); void vipCardRecharge(CzXkVo czVo); /** * 储值卡退款 * @param id */ void moneyCardTk(List<MoneyCardOperationDto> moneyCardOperationDtos); } zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java
@@ -82,7 +82,7 @@ */ public void payOrder(SysOrder sysOrder) throws GlobleException; public void refundOrderMoney(SysOrder sysOrder); public void orderTk(SysOrder sysOrder); /** * 补交 zq-erp/src/main/java/com/matrix/system/hive/service/SysProjUseService.java
@@ -143,6 +143,9 @@ */ public void addUserProjUse(List<ProjUseOperationDto> projUseDtoList) ; public void projectTk(List<ProjUseOperationDto> projUseDtoList); public int updateProjUseTck(SysProjUse projUse); zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java
@@ -16,7 +16,6 @@ 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; @@ -112,16 +111,36 @@ @Override public void vipCardRecharge(CzXkVo czVo) { MoneyCardUse cardUser = moneyCardUseDao.selectVipCard(czVo.getVipId()); public void moneyCardTk(List<MoneyCardOperationDto> moneyCardOperationDtos) { MoneyCardPayDto moneyCardPayDto=new MoneyCardPayDto(); MoneyCardUseFlow moneyCardUseFlow=new MoneyCardUseFlow(); 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); moneyCardOperationDtos.forEach(moneyCardOperationDto -> { List<MoneyCardUse> moneyCardUseList = list(lambdaQuery().eq(MoneyCardUse::getOrderItemId, moneyCardOperationDto.getOrderItemId())); for (MoneyCardUse moneyCardUse : moneyCardUseList) { moneyCardUse.setStatus(Dictionary.TAOCAN_STATUS_TK); moneyCardUseDao.update(moneyCardUse); //设置卡项使用流水 moneyCardUseFlow.setCarUseId(moneyCardUse.getId()); moneyCardUseFlow.setOrderNo(moneyCardOperationDto.getOrderNo()); moneyCardUseFlow.setVipId(moneyCardUse.getVipId()); moneyCardUseFlow.setTimes(moneyCardUse.getLastCount()); moneyCardUseFlow.setType(moneyCardOperationDto.getType()); moneyCardUseFlow.setCreateTime(new Date()); moneyCardUseFlow.setOperationId(moneyCardOperationDto.getUpdateUser()); moneyCardUseFlow.setBalance(moneyCardUse.getGiftMoney() + moneyCardUse.getRealMoney()); moneyCardUseFlowDao.insert(moneyCardUseFlow); } }); } @Override zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceHelper.java
@@ -614,6 +614,7 @@ Double itemZkTotal = MoneyUtil.mul(item.getZkPrice(), Double.valueOf(item.getCount())); zkTotal = MoneyUtil.add(zkTotal, itemZkTotal); item.setStatus(Dictionary.ORDER_STATU_DFK); item.setRefundCount(0); } SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); @@ -624,6 +625,7 @@ sysOrder.setCompanyId(user.getCompanyId()); sysOrder.setOrderTime(new Date()); sysOrder.setOrderType(SysOrder.ORDER_TYPE_SEAL); //新增订单 sysOrder.setOrderNo(codeService.getOrderCode()); @@ -717,5 +719,50 @@ return order; } /** * 创建退款订单 * @return */ public SysOrder createTkOrder(SysOrder sysOrder){ SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); //原订单设置为退款状态 SysOrder sourceOrder = new SysOrder(); sourceOrder.setId(sysOrder.getOldOrderId()); sourceOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_Y); sysOrderDao.update(sourceOrder); 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()); //新增订单 sysOrderDao.insert(sysOrder); //插入明细 for (SysOrderItem item : sysOrder.getItems()) { //更新原订单明细的可退数量 SysOrderItem oldItem = orderItemDao.selectById(item.getId()); if((oldItem.getRefundCount()+item.getCount()) <= oldItem.getCount()){ oldItem.setRefundCount(oldItem.getRefundCount()+item.getCount()); orderItemDao.update(oldItem); }else{ throw new GlobleException("退款数量大于购买数量"); } //插入新的订单明细 item.setCount(-item.getCount()); item.setOrderId(sysOrder.getId()); orderItemDao.insert(item); } LogUtil.info("创建退款订单:{} " , JSON.toJSONString(sysOrder) ) ; return sysOrder; } } zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -1,7 +1,9 @@ package com.matrix.system.hive.service.imp; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson.JSON; import com.google.common.collect.Lists; import com.matrix.component.asyncmessage.AsyncMessageManager; import com.matrix.core.constance.MatrixConstance; @@ -11,7 +13,6 @@ import com.matrix.core.tools.LogUtil; import com.matrix.core.tools.WebUtil; import com.matrix.system.app.dto.OrderListDto; import com.matrix.system.app.mapper.SysProjUseMapper; import com.matrix.system.app.vo.OrderDetailAchieveItemVo; import com.matrix.system.app.vo.OrderDetailItemVo; import com.matrix.system.app.vo.OrderDetailVo; @@ -28,9 +29,7 @@ import com.matrix.system.enums.OperationFunctionEnum; 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.dto.*; import com.matrix.system.hive.plugin.util.CollectionUtils; import com.matrix.system.hive.plugin.util.MoneyUtil; import com.matrix.system.hive.pojo.CzXkVo; @@ -153,7 +152,7 @@ if (Objects.isNull(sysOrder.getId())) { LogUtil.info("新增正向订单"); return sysOrderServiceHelper.saveOrder(sysOrder,SysOrder.ORDER_TYPE_SEAL); return sysOrderServiceHelper.saveOrder(sysOrder); } else { LogUtil.info("修改订单"); return sysOrderServiceHelper.modifyOrder(sysOrder); @@ -185,6 +184,7 @@ /** * 已付款订单取消 * * @param order */ private void cancelYFKOrder(SysOrder order) { @@ -247,6 +247,7 @@ /** * 待付款订单取消 * * @param order */ private void cancelDFKOrder(SysOrder order) { @@ -376,6 +377,7 @@ /** * 检查订单是否满足支付条件 * * @param pageOrder */ private void checkOrderAblePay(SysOrder pageOrder) { @@ -489,11 +491,11 @@ public SysOrder moneyCardCz(CzXkVo czVo) { // 新增一个充值订单 SysOrder order =sysOrderServiceHelper.createCzOrder(czVo); SysOrder order = sysOrderServiceHelper.createCzOrder(czVo); //新增会员卡金额 MoneyCardUse cardUser = moneyCardUseDao.selectVipCard(czVo.getVipId()); MoneyCardPayDto moneyCardPayDto=new MoneyCardPayDto(); MoneyCardPayDto moneyCardPayDto = new MoneyCardPayDto(); moneyCardPayDto.setRealMoney(MoneyUtil.add(cardUser.getRealMoney(), czVo.getBjmoney())); moneyCardPayDto.setGiftMoney(MoneyUtil.add(cardUser.getGiftMoney(), czVo.getGiftMoney())); moneyCardPayDto.setCarUseId(cardUser.getId()); @@ -559,46 +561,14 @@ return sysOrderDao.selectShopAchieveRanking(sysOrder); } @Transactional(rollbackFor = Exception.class) @Override public void refundOrderMoney(SysOrder sysOrder) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); public void orderTk(SysOrder sysOrder) { //原订单设置为退款状态 SysOrder sourceOrder = new SysOrder(); sourceOrder.setId(sysOrder.getOldOrderId()); sourceOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_Y); sysOrderDao.update(sourceOrder); SysOrder oldOrder = sysOrderDao.selectById(sysOrder.getOldOrderId()); 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()); //新增订单 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); } //创建并保存退款订单 sysOrder = sysOrderServiceHelper.createTkOrder(sysOrder); // 添加订单收款流水 sysOrderServiceHelper.addOrderFlow(sysOrder, false); //退款退套餐退项目 @@ -618,95 +588,66 @@ sysOrder.getVipId()); } /** * 退款退项目,套餐,卡项 * * @param sysOrder */ private void refundProjUse(SysOrder sysOrder) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); //记录需要退库存的产品 List<SysOrderItem> returnGoodsList = new ArrayList<>(); //需要退的套餐和项目 List<ProjUseOperationDto> projUseDtoList = Lists.newArrayList(); //需要退的储值卡 List<MoneyCardOperationDto> moneyCardOperationDtos = Lists.newArrayList(); for (SysOrderItem item : sysOrder.getItems()) { SysProjUse queryProjUse = new SysProjUse(); 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()) && Dictionary.FLAG_YES_Y.equals(item.getIsReturnStore())) { if (Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(item.getType())) { if (Dictionary.FLAG_YES_Y.equals(item.getIsReturnStore())) { returnGoodsList.add(item); } } else { SysProjUse sysProjUse = sysProjUseDao.selectByModel(queryProjUse).get(0); returnGoodsList.add(item); int sub = sysProjUse.getSurplusCount() - item.getCount(); 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); sysProjUseFlow.setUpdateBy(user.getSuName()); sysProjUseFlow.setCreateBy(user.getSuName()); sysProjUseDao.insertFlow(sysProjUseFlow); } } else if (Dictionary.SHOPPING_GOODS_TYPE_TC.equals(item.getType()) || Dictionary.SHOPPING_GOODS_TYPE_XM.equals(item.getType())) { ProjUseOperationDto dto = new ProjUseOperationDto(); dto.setGoodsId(item.getGoodsId()); dto.setCount(item.getCount()); dto.setOrderItemId(item.getOldItemId()); projUseDtoList.add(dto); }else if (Dictionary.SHOPPING_GOODS_TYPE_CZK.equals(item.getType())) { MoneyCardOperationDto moneyCardOperationDto = new MoneyCardOperationDto(); moneyCardOperationDto.setOrderId(sysOrder.getId()); moneyCardOperationDto.setOrderItemId(item.getOldItemId()); moneyCardOperationDto.setType(MoneyCardUseFlow.USE_TYPE_ORDRE_CANCEL); moneyCardOperationDto.setUpdateUser(user.getSuId()); moneyCardOperationDto.setOrderNo(sysOrder.getOrderNo()); moneyCardOperationDtos.add(moneyCardOperationDto); } if (Dictionary.SHOPPING_GOODS_TYPE_TC.equals(item.getType())) { queryProjUse.setTaocanId(-1L); List<SysProjUse> sysProjUses = sysProjUseDao.selectByModel(queryProjUse); for (int i = 0; i < sysProjUses.size(); 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("退款修改"); sysProjUseFlow.setId(null); sysProjUseFlow.setUpdateBy(user.getSuName()); sysProjUseFlow.setCreateBy(user.getSuName()); sysProjUseDao.insertFlow(sysProjUseFlow); } } if (Dictionary.SHOPPING_GOODS_TYPE_CZK.equals(item.getType())) { MoneyCardUse queryCardUse = new MoneyCardUse(); queryCardUse.setStatus(Dictionary.TAOCAN_STATUS_YX); queryCardUse.setOrderItemId(item.getOldItemId()); List<MoneyCardUse> moneyCardUses = moneyCardUseDao.selectByModel(queryCardUse); for (int i = 0; i < item.getCount(); i++) { MoneyCardUse moneyCardUse = moneyCardUses.get(i); moneyCardUse.setIsOver(Dictionary.FLAG_YES_Y); moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_WX); moneyCardUseDao.update(moneyCardUse); } } ShoppingGoods goods = shoppingGoodsDao.selectById(item.getGoodsId()); goods.setRealSealCount(goods.getRealSealCount() - item.getCount()); shoppingGoodsDao.update(goods); } BusParameterSettings manageStockSetting = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WAREHOUSE_MANAGE_STOCK, sysOrder.getCompanyId()); if (AppConstance.IS_Y.equals(manageStockSetting.getParamValue())) { // 家居产品退库存 if (CollectionUtils.isNotEmpty(returnGoodsList)) { LogUtil.info("订单退款:退产品库存:{}", JSON.toJSONString(returnGoodsList)); refundInstore(returnGoodsList); } } if(CollUtil.isNotEmpty(projUseDtoList)){ LogUtil.info("订单退款:退套餐项目:{}", JSON.toJSONString(projUseDtoList)); sysProjUseService.projectTk(projUseDtoList); } if(CollUtil.isNotEmpty(moneyCardOperationDtos)){ LogUtil.info("订单退款:储值卡:{}", JSON.toJSONString(moneyCardOperationDtos)); moneyCardUseService.moneyCardTk(moneyCardOperationDtos); } } /** zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjUseServiceImpl.java
@@ -7,6 +7,7 @@ import com.matrix.core.pojo.PaginationVO; import com.matrix.core.tools.DateUtil; import com.matrix.core.tools.WebUtil; import com.matrix.system.app.mapper.SysProjUseMapper; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.dao.BusParameterSettingsDao; import com.matrix.system.common.validate.ParameterValidate; @@ -24,10 +25,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -606,6 +604,105 @@ /** * 项目套餐退款 * @param projUseDtoList */ @Override public void projectTk(List<ProjUseOperationDto> projUseDtoList) { List<ShoppingGoods> shoppingGoodsList = shoppingGoodsDao.selectByIds(projUseDtoList.stream().map(ProjUseOperationDto::getGoodsId).collect(Collectors.toList())); Map<Long, ShoppingGoods> shoppingGoodsMap = shoppingGoodsList.stream().collect(Collectors.toMap(ShoppingGoods::getId, Function.identity())); projUseDtoList.forEach(projUseOperationDto -> { //校验参数 ParameterValidate.ValidResult baseIdResult = ParameterValidate.validateBean(projUseOperationDto, ProjUseGroup.projectTk.class); if (baseIdResult.hasErrors()) { throw new GlobleException(baseIdResult.getErrors()); } ShoppingGoods shoppingGoods = shoppingGoodsMap.get(projUseOperationDto.getGoodsId()); if (Dictionary.SHOPPING_GOODS_TYPE_XM.equals(shoppingGoods.getGoodType())) { doProjectTk(projUseOperationDto); } else if (Dictionary.SHOPPING_GOODS_TYPE_TC.equals(shoppingGoods.getGoodType())) { taocanTk(projUseOperationDto); } }); } /** * 套餐退款 * @param projUseOperationDto */ private void taocanTk(ProjUseOperationDto projUseOperationDto) { List<SysProjUse> projUseList = sysProjUseDao.selectByOrderItemId(projUseOperationDto.getOrderItemId()); List<SysProjUse> tcList = projUseList.stream().filter(item -> Objects.isNull(item.getTaocanId()) && item.getStatus().equals(Dictionary.TAOCAN_STATUS_YX) ).collect(Collectors.toList()); if (tcList.size() < projUseOperationDto.getCount()) { throw new GlobleException("套餐余次不足"); } for (int i = 0; i < tcList.size(); i++) { SysProjUse sysProjUse = tcList.get(i); setInvalid(sysProjUse); //设置套餐下的项目无效 projUseList.stream().filter(item->item.getTaocanId().equals(sysProjUse.getId())).collect(Collectors.toList()) .forEach(item->setInvalid(item)); } } private void setInvalid(SysProjUse sysProjUse) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); sysProjUse.setIsOver(Dictionary.FLAG_YES_Y); sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX); sysProjUse.setSurplusCount(0); sysProjUseDao.update(sysProjUse); SysProjUseFlow sysProjUseFlow = SysProjUseMapper.INSTANCE.projUseToFlow(sysProjUse); sysProjUseFlow.setOptionType("退款修改"); sysProjUseFlow.setUpdateBy(user.getSuName()); sysProjUseFlow.setCreateBy(user.getSuName()); sysProjUseDao.insertFlow(sysProjUseFlow); } /** * 项目退款 * @param projUseOperationDto */ private void doProjectTk(ProjUseOperationDto projUseOperationDto) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); List<SysProjUse> projUseList = sysProjUseDao.selectByOrderItemId(projUseOperationDto.getOrderItemId()); if(projUseList.size()==1){ SysProjUse sysProjUse = projUseList.get(0); int sub = sysProjUse.getSurplusCount() - projUseOperationDto.getCount(); 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.setUpdateBy(user.getSuName()); sysProjUseFlow.setCreateBy(user.getSuName()); sysProjUseDao.insertFlow(sysProjUseFlow); }else{ throw new GlobleException("查询项目余次异常"); } } /** * 添加用户套餐 * * @param projUseDtoList zq-erp/src/main/java/com/matrix/system/hive/validation/MoneyCardUseGroup.java
New file @@ -0,0 +1,12 @@ package com.matrix.system.hive.validation; public interface MoneyCardUseGroup { /** * 退款 */ interface moneyCardUseTk { } } zq-erp/src/main/java/com/matrix/system/hive/validation/ProjUseGroup.java
@@ -15,5 +15,10 @@ } /** * 退款扣减次数 */ interface projectTk { } } zq-erp/src/main/resources/mybatis/mapper/hive/SysProjUseDao.xml
@@ -65,7 +65,6 @@ create_time, update_by, update_time, id, proj_use_id, surplus_count, is_over, @@ -82,7 +81,6 @@ now(), #{updateBy}, now(), #{id}, #{projUseId}, #{surplusCount}, #{isOver}, @@ -956,4 +954,7 @@ where b.ORDER_ITEM_ID=#{orderItemId} and c.STATE !='预约取消'; </select> <select id="selectByOrderItemId" resultType="com.matrix.system.hive.bean.SysProjUse"> select * from sys_proj_use where ORDER_ITEM_ID =#{orderItemId} </select> </mapper>