From 1772afb069b75871572c9c438bbd2bc403f864df Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 13 十二月 2023 11:43:51 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java | 127 +++++++++++++++++++++++++++--------------- 1 files changed, 81 insertions(+), 46 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 40e2f7e..6dcdcc6 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 @@ -8,6 +8,7 @@ import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.order.domain.dto.*; import com.ruoyi.order.domain.pojo.order.ConsumerGoods; +import com.ruoyi.order.domain.pojo.order.ServiceRecordDetail; import com.ruoyi.order.domain.pojo.order.UserServiceRecord; import com.ruoyi.order.domain.vo.AppConsumerPageVo; import com.ruoyi.order.domain.vo.MerConsumerGoodsListVo; @@ -15,18 +16,20 @@ import com.ruoyi.order.domain.vo.MerMemberConsumerGoodsTotalVo; import com.ruoyi.order.mapper.order.ConsumerGoodsMapper; import com.ruoyi.order.service.order.ConsumerGoodsService; +import com.ruoyi.order.service.order.ServiceRecordDetailService; import com.ruoyi.order.service.order.UserServiceRecordService; +import com.ruoyi.order.util.MsgUtils; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.domain.dto.AppShopGoodsGetDto; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.domain.dto.MemberTotalChangeDto; -import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto; import com.ruoyi.system.api.domain.poji.goods.Goods; import com.ruoyi.system.api.domain.poji.goods.GoodsFile; import com.ruoyi.system.api.domain.poji.goods.ShopGoods; +import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.service.RemoteGoodsService; import com.ruoyi.system.api.service.RemoteMemberService; -import com.ruoyi.system.api.service.RemoteShopService; +import io.seata.spring.annotation.GlobalTransactional; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -56,10 +59,10 @@ private RemoteMemberService remoteMemberService; @Resource - private RemoteShopService remoteShopService; + private RemoteGoodsService remoteGoodsService; @Resource - private RemoteGoodsService remoteGoodsService; + private ServiceRecordDetailService serviceRecordDetailService; /** * 获取用户服务 @@ -105,16 +108,17 @@ ConsumerGoods consumerGoods; Integer serviceCount = 0; Integer cycleService = 0; - Integer cyclePerson = 0; + //Integer cyclePerson = 0; Integer serviceService = 0; - Integer servicePerson = 0; + //Integer servicePerson = 0; Integer experienceService = 0; - Integer experiencePerson = 0; + //Integer experiencePerson = 0; Goods goods; GoodsFile goodsFile; String consumerGoodsId; List<ConsumerGoods> consumerGoodsList = new ArrayList<>(); - MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getUserId(), merSureConsumerGoodsDto.getShopId()); + //获取用户各类型订单数 + //MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getUserId(), merSureConsumerGoodsDto.getShopId()); int sureNum = 0; for(MerSureConsumerGoodsListDto merSureConsumerGoodsListDto : merSureConsumerGoodsListDtoList){ goods = remoteGoodsService.getGoods(merSureConsumerGoodsListDto.getGoodsId()).getData(); @@ -137,6 +141,7 @@ consumerGoods.setUsedNum(0); consumerGoods.setCreateTime(new Date()); consumerGoods.setGoodsType(goods.getGoodsType()); + consumerGoods.setGoodsTag(goods.getGoodsTags()); consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); consumerGoods.setGoodsPicture(goodsFile.getFileUrl()); consumerGoods.setGoodsNurses(goods.getGoodsNurses()); @@ -160,6 +165,7 @@ } } } + //判断商品确认次数 if(sureNum>oldConsumerGoods.getSureNum()){ throw new ServiceException(AppErrorConstant.GOODS_SURE_FAILED); }else{ @@ -173,7 +179,7 @@ } this.saveBatch(consumerGoodsList); //判断是否加人 - if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) { + /*if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) { cyclePerson = 1; } if (serviceService > 0 && memberConsumerGoodsTotalVo.getServiceOrder() == 0) { @@ -181,7 +187,7 @@ } if (experienceService > 0 && memberConsumerGoodsTotalVo.getExperienceOrder() == 0) { experiencePerson = 1; - } + }*/ serviceCount = cycleService + serviceService + experienceService; //更新商户和会员服务统计 MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); @@ -189,7 +195,7 @@ memberTotalChangeDto.setTypeService(1); memberTotalChangeDto.setServiceCount(serviceCount); remoteMemberService.changeMemberTotal(memberTotalChangeDto); - ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); + /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); shopTotalChangeDto.setShopId(merSureConsumerGoodsDto.getShopId()); shopTotalChangeDto.setTypeCycleService(1); shopTotalChangeDto.setCycleService(cycleService); @@ -200,7 +206,7 @@ shopTotalChangeDto.setTypeExperienceService(1); shopTotalChangeDto.setExperienceService(experienceService); shopTotalChangeDto.setExperiencePerson(experiencePerson); - remoteShopService.changeShopTotal(shopTotalChangeDto); + remoteShopService.changeShopTotal(shopTotalChangeDto);*/ } } @@ -210,10 +216,11 @@ */ @Override @Transactional + @GlobalTransactional(rollbackFor = Exception.class) public void useMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){ List<MerSureConsumerGoodsListDto> goodsList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList(); if (goodsList != null && !goodsList.isEmpty()) { - ConsumerGoods goods; + ConsumerGoods consumerGoods; Integer serviceNum; Integer usedNum; Integer useNum; @@ -225,48 +232,52 @@ Integer serviceType = 1; Integer serviceCount = 0; Integer cycleService = 0; - Integer cyclePerson = 0; + //Integer cyclePerson = 0; Integer serviceService = 0; - Integer servicePerson = 0; + //Integer servicePerson = 0; Integer experienceService = 0; - Integer experiencePerson = 0; + //Integer experiencePerson = 0; //获取会员商品总数 - MerMemberConsumerGoodsTotalVo memberGoodsTotal = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getMemberUserId(), merSureConsumerGoodsDto.getShopId()); + List<ServiceRecordDetail> serviceRecordDetailList = new ArrayList<>(); + ServiceRecordDetail serviceRecordDetail; + //MerMemberConsumerGoodsTotalVo memberGoodsTotal = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getMemberUserId(), merSureConsumerGoodsDto.getShopId()); + List<String> consumerGoodsList = new ArrayList<>(); for (MerSureConsumerGoodsListDto goodsDto : goodsList) { - goods = this.getById(goodsDto.getConsumerGoodsId()); - serviceNum = goods.getServiceNum(); - usedNum = goods.getUsedNum(); + consumerGoods = this.getById(goodsDto.getConsumerGoodsId()); + serviceRecordDetail = new ServiceRecordDetail(); + serviceNum = consumerGoods.getServiceNum(); + usedNum = consumerGoods.getUsedNum(); surplusNum = serviceNum - usedNum; useNum = goodsDto.getServiceNum(); //判断使用数量是否超过剩余数量 if (useNum > surplusNum) { throw new ServiceException(AppErrorConstant.BEYOND_SURP_NUM); } - goods.setUsedNum(usedNum + useNum); - goods.setUseTime(new Date()); + consumerGoods.setUsedNum(usedNum + useNum); + consumerGoods.setUseTime(new Date()); //判断商品是否已使用完 - if (goods.getUsedNum().equals(serviceNum)) { - goods.setServiceStatus(2); - goods.setCompleteTime(new Date()); + if (consumerGoods.getUsedNum().equals(serviceNum)) { + consumerGoods.setServiceStatus(2); + consumerGoods.setCompleteTime(new Date()); } - this.saveOrUpdate(goods); - shopId = goods.getShopId(); - userId = goods.getUserId(); - serviceType = goods.getGoodsType(); + this.saveOrUpdate(consumerGoods); + shopId = consumerGoods.getShopId(); + userId = consumerGoods.getUserId(); + serviceType = consumerGoods.getGoodsType(); //拼接商品ID if (StringUtils.isBlank(goodsIds)) { - goodsIds = goods.getConsumerGoodsId(); + goodsIds = consumerGoods.getConsumerGoodsId(); } else { - goodsIds = goodsIds + "," + goods.getConsumerGoodsId(); + goodsIds = goodsIds + "," + consumerGoods.getConsumerGoodsId(); } //拼接商品名称 if (StringUtils.isBlank(goodsNames)) { - goodsNames = goods.getGoodsName(); + goodsNames = consumerGoods.getGoodsName(); } else { - goodsNames = goodsNames + "、" + goods.getGoodsName(); + goodsNames = goodsNames + "、" + consumerGoods.getGoodsName(); } //处理商品服务次数 - switch (goods.getGoodsType()) { + switch (consumerGoods.getGoodsType()) { case 1: cycleService = cycleService + useNum; break; @@ -279,9 +290,19 @@ default: break; } + serviceRecordDetail.setDelFlag(0); + serviceRecordDetail.setConsumerGoodsId(consumerGoods.getConsumerGoodsId()); + serviceRecordDetail.setConsumerGoodsName(consumerGoods.getGoodsName()); + serviceRecordDetail.setServiceNum(consumerGoods.getServiceNum()); + serviceRecordDetail.setSurpNum(consumerGoods.getServiceNum()-consumerGoods.getUsedNum()); + if(serviceRecordDetail.getSurpNum()==0){ + consumerGoodsList.add(consumerGoods.getGoodsName()); + } + serviceRecordDetailList.add(serviceRecordDetail); } + //判断是否减人 - if (cycleService > 0 && memberGoodsTotal.getCycleOrder() - cycleService < 1) { + /*if (cycleService > 0 && memberGoodsTotal.getCycleOrder() - cycleService < 1) { cyclePerson = 1; } if (serviceService > 0 && memberGoodsTotal.getServiceOrder() - serviceService < 1) { @@ -289,7 +310,7 @@ } if (experienceService > 0 && memberGoodsTotal.getExperienceOrder() - experienceService < 1) { experiencePerson = 1; - } + }*/ serviceCount = cycleService + serviceService + experienceService; UserServiceRecord serviceRecord = new UserServiceRecord(); serviceRecord.setCreateTime(new Date()); @@ -300,13 +321,18 @@ serviceRecord.setConsumerGoodsIds(goodsIds); serviceRecord.setConsumerGoodsNames(goodsNames); userServiceRecordService.saveOrUpdate(serviceRecord); + //服务记录详情 + for(ServiceRecordDetail serviceRecordDetail1 : serviceRecordDetailList){ + serviceRecordDetail1.setRecordId(serviceRecord.getId()); + } + serviceRecordDetailService.saveBatch(serviceRecordDetailList); //更新商户和会员服务统计 MemberTotalChangeDto memberTotalChange = new MemberTotalChangeDto(); memberTotalChange.setUserId(merSureConsumerGoodsDto.getMemberUserId()); memberTotalChange.setTypeService(2); memberTotalChange.setServiceCount(serviceCount); remoteMemberService.changeMemberTotal(memberTotalChange); - ShopTotalChangeDto shopTotalChange = new ShopTotalChangeDto(); + /*ShopTotalChangeDto shopTotalChange = new ShopTotalChangeDto(); shopTotalChange.setShopId(merSureConsumerGoodsDto.getShopId()); shopTotalChange.setTypeCycleService(2); shopTotalChange.setCycleService(cycleService); @@ -317,7 +343,15 @@ shopTotalChange.setTypeExperienceService(2); shopTotalChange.setExperienceService(experienceService); shopTotalChange.setExperiencePerson(experiencePerson); - remoteShopService.changeShopTotal(shopTotalChange); + remoteShopService.changeShopTotal(shopTotalChange);*/ + if(!consumerGoodsList.isEmpty()){ + Member member = remoteMemberService.getMember(userId).getData(); + try { + MsgUtils.sendMsg(member.getMobile(),null,null); + } catch (Exception e) { + throw new RuntimeException(e); + } + } } } @@ -402,6 +436,7 @@ consumerGoods.setUsedNum(0); consumerGoods.setCreateTime(new Date()); consumerGoods.setGoodsType(goods.getGoodsType()); + consumerGoods.setGoodsTag(goods.getGoodsTags()); consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); consumerGoods.setGoodsPicture(goodsFile.getFileUrl()); consumerGoods.setGoodsNurses(goods.getGoodsNurses()); @@ -429,14 +464,14 @@ public boolean saveBatchConsumerGoods(List<ConsumerGoods> consumerGoodsList){ Integer serviceCount = 0; Integer cycleService = 0; - Integer cyclePerson = 0; + //Integer cyclePerson = 0; Integer serviceService = 0; - Integer servicePerson = 0; + //Integer servicePerson = 0; Integer experienceService = 0; - Integer experiencePerson = 0; + //Integer experiencePerson = 0; Long shopId = consumerGoodsList.get(0).getShopId(); Long userId = consumerGoodsList.get(0).getUserId(); - MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(userId, shopId); + //MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(userId, shopId); for(ConsumerGoods consumerGoods : consumerGoodsList){ //处理商品服务次数 switch (consumerGoods.getGoodsType()) { @@ -460,7 +495,7 @@ } } //判断是否加人 - if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) { + /*if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) { cyclePerson = 1; } if (serviceService > 0 && memberConsumerGoodsTotalVo.getServiceOrder() == 0) { @@ -468,7 +503,7 @@ } if (experienceService > 0 && memberConsumerGoodsTotalVo.getExperienceOrder() == 0) { experiencePerson = 1; - } + }*/ serviceCount = cycleService + serviceService + experienceService; //更新商户和会员服务统计 MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); @@ -476,7 +511,7 @@ memberTotalChangeDto.setTypeService(1); memberTotalChangeDto.setServiceCount(serviceCount); remoteMemberService.changeMemberTotal(memberTotalChangeDto); - ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); + /*ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); shopTotalChangeDto.setShopId(shopId); shopTotalChangeDto.setOrderType(1); shopTotalChangeDto.setTypeCycleService(1); @@ -488,7 +523,7 @@ shopTotalChangeDto.setTypeExperienceService(1); shopTotalChangeDto.setExperienceService(experienceService); shopTotalChangeDto.setExperiencePerson(experiencePerson); - remoteShopService.changeShopTotal(shopTotalChangeDto); + remoteShopService.changeShopTotal(shopTotalChangeDto);*/ return this.saveBatch(consumerGoodsList); } } -- Gitblit v1.7.1