From 122bb1142631e31ce50716495dba420102f58f56 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 31 七月 2023 20:05:05 +0800 Subject: [PATCH] bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java | 99 ++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 77 insertions(+), 22 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java index b0155f3..40e2f7e 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java @@ -28,6 +28,7 @@ import com.ruoyi.system.api.service.RemoteMemberService; import com.ruoyi.system.api.service.RemoteShopService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; @@ -93,7 +94,12 @@ * @param merSureConsumerGoodsDto */ @Override + @Transactional public void sureMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){ + ConsumerGoods oldConsumerGoods = this.getById(merSureConsumerGoodsDto.getConsumerGoodsId()); + if(oldConsumerGoods.getSureNum()==null||oldConsumerGoods.getSureNum()<1){ + throw new ServiceException(AppErrorConstant.GOODS_SURE_FAILED); + } List<MerSureConsumerGoodsListDto> merSureConsumerGoodsListDtoList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList(); if(merSureConsumerGoodsListDtoList!=null && !merSureConsumerGoodsListDtoList.isEmpty()){ ConsumerGoods consumerGoods; @@ -104,27 +110,68 @@ Integer servicePerson = 0; Integer experienceService = 0; Integer experiencePerson = 0; + Goods goods; + GoodsFile goodsFile; + String consumerGoodsId; + List<ConsumerGoods> consumerGoodsList = new ArrayList<>(); MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getUserId(), merSureConsumerGoodsDto.getShopId()); + int sureNum = 0; for(MerSureConsumerGoodsListDto merSureConsumerGoodsListDto : merSureConsumerGoodsListDtoList){ - consumerGoods = this.getById(merSureConsumerGoodsListDto.getConsumerGoodsId()); - consumerGoods.setCycleNumFlag(1); - consumerGoods.setServiceNum(merSureConsumerGoodsListDto.getServiceNum()); - this.saveOrUpdate(consumerGoods); - //处理商品服务次数 - switch (consumerGoods.getGoodsType()) { - case 1: - cycleService = cycleService + consumerGoods.getServiceNum(); - break; - case 2: - serviceService = serviceService + consumerGoods.getServiceNum(); - break; - case 3: - experienceService = experienceService + consumerGoods.getServiceNum(); - break; - default: - break; + goods = remoteGoodsService.getGoods(merSureConsumerGoodsListDto.getGoodsId()).getData(); + goodsFile = remoteGoodsService.getGoodsFile(goods.getGoodsId()).getData(); + if(goods!=null&&goods.getGoodsType()==1&&goods.getCycleNumFlag()==1){ + for(int i=0;i<merSureConsumerGoodsListDto.getGoodsNum();i++){ + consumerGoods = new ConsumerGoods(); + consumerGoodsId = IdUtils.simpleUUID(); + consumerGoods.setConsumerGoodsId(consumerGoodsId); + consumerGoods.setDelFlag(0); + consumerGoods.setServiceStatus(1); + consumerGoods.setShopId(merSureConsumerGoodsDto.getShopId()); + consumerGoods.setUserId(merSureConsumerGoodsDto.getMemberUserId()); + consumerGoods.setOrderId(oldConsumerGoods.getOrderId()); + consumerGoods.setOrderGoodsId(oldConsumerGoods.getOrderGoodsId()); + consumerGoods.setGoodsId(goods.getGoodsId()); + consumerGoods.setGoodsName(goods.getGoodsName()); + consumerGoods.setCycleNumFlag(goods.getCycleNumFlag()); + consumerGoods.setServiceNum(goods.getServiceNum()); + consumerGoods.setUsedNum(0); + consumerGoods.setCreateTime(new Date()); + consumerGoods.setGoodsType(goods.getGoodsType()); + consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); + consumerGoods.setGoodsPicture(goodsFile.getFileUrl()); + consumerGoods.setGoodsNurses(goods.getGoodsNurses()); + consumerGoods.setSourceFrom(1); + consumerGoodsList.add(consumerGoods); + //处理商品服务次数 + switch (consumerGoods.getGoodsType()) { + case 1: + cycleService = cycleService + consumerGoods.getServiceNum(); + break; + case 2: + serviceService = serviceService + consumerGoods.getServiceNum(); + break; + case 3: + experienceService = experienceService + consumerGoods.getServiceNum(); + break; + default: + break; + } + sureNum = sureNum + 1; + } } } + if(sureNum>oldConsumerGoods.getSureNum()){ + throw new ServiceException(AppErrorConstant.GOODS_SURE_FAILED); + }else{ + int surpNum = oldConsumerGoods.getSureNum(); + surpNum = surpNum - sureNum; + oldConsumerGoods.setSureNum(surpNum); + if(surpNum==0){ + oldConsumerGoods.setDelFlag(1); + } + this.saveOrUpdate(oldConsumerGoods); + } + this.saveBatch(consumerGoodsList); //判断是否加人 if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) { cyclePerson = 1; @@ -162,6 +209,7 @@ * @param merSureConsumerGoodsDto */ @Override + @Transactional public void useMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){ List<MerSureConsumerGoodsListDto> goodsList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList(); if (goodsList != null && !goodsList.isEmpty()) { @@ -183,7 +231,7 @@ Integer experienceService = 0; Integer experiencePerson = 0; //获取会员商品总数 - MerMemberConsumerGoodsTotalVo memberGoodsTotal = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getUserId(), merSureConsumerGoodsDto.getShopId()); + MerMemberConsumerGoodsTotalVo memberGoodsTotal = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getMemberUserId(), merSureConsumerGoodsDto.getShopId()); for (MerSureConsumerGoodsListDto goodsDto : goodsList) { goods = this.getById(goodsDto.getConsumerGoodsId()); serviceNum = goods.getServiceNum(); @@ -254,7 +302,7 @@ userServiceRecordService.saveOrUpdate(serviceRecord); //更新商户和会员服务统计 MemberTotalChangeDto memberTotalChange = new MemberTotalChangeDto(); - memberTotalChange.setUserId(merSureConsumerGoodsDto.getUserId()); + memberTotalChange.setUserId(merSureConsumerGoodsDto.getMemberUserId()); memberTotalChange.setTypeService(2); memberTotalChange.setServiceCount(serviceCount); remoteMemberService.changeMemberTotal(memberTotalChange); @@ -393,13 +441,19 @@ //处理商品服务次数 switch (consumerGoods.getGoodsType()) { case 1: - cycleService = cycleService + consumerGoods.getServiceNum(); + if(consumerGoods.getServiceNum()!=null){ + cycleService = cycleService + consumerGoods.getServiceNum(); + } break; case 2: - serviceService = serviceService + consumerGoods.getServiceNum(); + if(consumerGoods.getServiceNum()!=null){ + serviceService = serviceService + consumerGoods.getServiceNum(); + } break; case 3: - experienceService = experienceService + consumerGoods.getServiceNum(); + if(consumerGoods.getServiceNum()!=null) { + experienceService = experienceService + consumerGoods.getServiceNum(); + } break; default: break; @@ -424,6 +478,7 @@ remoteMemberService.changeMemberTotal(memberTotalChangeDto); ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); shopTotalChangeDto.setShopId(shopId); + shopTotalChangeDto.setOrderType(1); shopTotalChangeDto.setTypeCycleService(1); shopTotalChangeDto.setCycleService(cycleService); shopTotalChangeDto.setCyclePerson(cyclePerson); -- Gitblit v1.7.1