From cbc564a7088503ad8cc7af4e1d2ba417d061e615 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期五, 30 六月 2023 11:35:05 +0800 Subject: [PATCH] 联调bug和统计完善 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java | 212 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 172 insertions(+), 40 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 003aa9c..84e8d05 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 @@ -11,10 +11,15 @@ import com.ruoyi.order.domain.vo.AppConsumerPageVo; import com.ruoyi.order.domain.vo.MerConsumerGoodsListVo; import com.ruoyi.order.domain.vo.MerConsumerGoodsVo; +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.UserServiceRecordService; import com.ruoyi.system.api.constant.AppErrorConstant; +import com.ruoyi.system.api.domain.dto.MemberTotalChangeDto; +import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto; +import com.ruoyi.system.api.service.RemoteMemberService; +import com.ruoyi.system.api.service.RemoteShopService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -37,6 +42,13 @@ @Resource private UserServiceRecordService userServiceRecordService; + + @Resource + private RemoteMemberService remoteMemberService; + + @Resource + private RemoteShopService remoteShopService; + /** * 获取用户服务 * @param page @@ -74,12 +86,63 @@ List<MerSureConsumerGoodsListDto> merSureConsumerGoodsListDtoList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList(); if(merSureConsumerGoodsListDtoList!=null && !merSureConsumerGoodsListDtoList.isEmpty()){ ConsumerGoods consumerGoods; + Integer serviceCount = 0; + Integer cycleService = 0; + Integer cyclePerson = 0; + Integer serviceService = 0; + Integer servicePerson = 0; + Integer experienceService = 0; + Integer experiencePerson = 0; + MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getUserId(), merSureConsumerGoodsDto.getShopId()); 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; + } } + //判断是否加人 + if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) { + cyclePerson = 1; + } + if (serviceService > 0 && memberConsumerGoodsTotalVo.getServiceOrder() == 0) { + servicePerson = 1; + } + if (experienceService > 0 && memberConsumerGoodsTotalVo.getExperienceOrder() == 0) { + experiencePerson = 1; + } + serviceCount = cycleService + serviceService + experienceService; + //更新商户和会员服务统计 + MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); + memberTotalChangeDto.setUserId(merSureConsumerGoodsDto.getUserId()); + memberTotalChangeDto.setTypeService(1); + memberTotalChangeDto.setServiceCount(serviceCount); + remoteMemberService.changeMemberTotal(memberTotalChangeDto); + ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); + shopTotalChangeDto.setShopId(merSureConsumerGoodsDto.getShopId()); + shopTotalChangeDto.setTypeCycleService(1); + shopTotalChangeDto.setCycleService(cycleService); + shopTotalChangeDto.setCyclePerson(cyclePerson); + shopTotalChangeDto.setTypeServiceService(1); + shopTotalChangeDto.setServiceService(serviceService); + shopTotalChangeDto.setServicePerson(servicePerson); + shopTotalChangeDto.setTypeExperienceService(1); + shopTotalChangeDto.setExperienceService(experienceService); + shopTotalChangeDto.setExperiencePerson(experiencePerson); + remoteShopService.changeShopTotal(shopTotalChangeDto); } } @@ -89,62 +152,118 @@ */ @Override public void useMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto){ - List<MerSureConsumerGoodsListDto> merSureConsumerGoodsListDtoList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList(); - if(merSureConsumerGoodsListDtoList!=null && !merSureConsumerGoodsListDtoList.isEmpty()){ - ConsumerGoods consumerGoods; + List<MerSureConsumerGoodsListDto> goodsList = merSureConsumerGoodsDto.getMerSureConsumerGoodsListDtoList(); + if (goodsList != null && !goodsList.isEmpty()) { + ConsumerGoods goods; Integer serviceNum; Integer usedNum; Integer useNum; - Integer surpNum; + Integer surplusNum; Long shopId = null; Long userId = null; - String consumerGoodsNames = ""; - String consumerGoodsIds = ""; + String goodsNames = ""; + String goodsIds = ""; Integer serviceType = 1; - for(MerSureConsumerGoodsListDto merSureConsumerGoodsListDto : merSureConsumerGoodsListDtoList){ - consumerGoods = this.getById(merSureConsumerGoodsListDto.getConsumerGoodsId()); - serviceNum = consumerGoods.getServiceNum(); - usedNum = consumerGoods.getUsedNum(); - surpNum = serviceNum - usedNum; - useNum = merSureConsumerGoodsListDto.getServiceNum(); - if(useNum>surpNum){ + Integer serviceCount = 0; + Integer cycleService = 0; + Integer cyclePerson = 0; + Integer serviceService = 0; + Integer servicePerson = 0; + Integer experienceService = 0; + Integer experiencePerson = 0; + //获取会员商品总数 + MerMemberConsumerGoodsTotalVo memberGoodsTotal = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getUserId(), merSureConsumerGoodsDto.getShopId()); + for (MerSureConsumerGoodsListDto goodsDto : goodsList) { + goods = this.getById(goodsDto.getConsumerGoodsId()); + serviceNum = goods.getServiceNum(); + usedNum = goods.getUsedNum(); + surplusNum = serviceNum - usedNum; + useNum = goodsDto.getServiceNum(); + //判断使用数量是否超过剩余数量 + if (useNum > surplusNum) { throw new ServiceException(AppErrorConstant.BEYOND_SURP_NUM); } - consumerGoods.setUsedNum(usedNum+useNum); - consumerGoods.setUseTime(new Date()); - if(consumerGoods.getUsedNum().equals(serviceNum)){ - consumerGoods.setServiceStatus(2); - consumerGoods.setCompleteTime(new Date()); + goods.setUsedNum(usedNum + useNum); + goods.setUseTime(new Date()); + //判断商品是否已使用完 + if (goods.getUsedNum().equals(serviceNum)) { + goods.setServiceStatus(2); + goods.setCompleteTime(new Date()); } - this.saveOrUpdate(consumerGoods); - shopId = consumerGoods.getShopId(); - userId= consumerGoods.getUserId(); - serviceType = consumerGoods.getGoodsType(); - if(StringUtils.isBlank(consumerGoodsIds)){ - consumerGoodsIds = consumerGoods.getConsumerGoodsId(); - }else{ - consumerGoodsIds = consumerGoodsIds + "," + consumerGoods.getConsumerGoodsId(); + this.saveOrUpdate(goods); + shopId = goods.getShopId(); + userId = goods.getUserId(); + serviceType = goods.getGoodsType(); + //拼接商品ID + if (StringUtils.isBlank(goodsIds)) { + goodsIds = goods.getConsumerGoodsId(); + } else { + goodsIds = goodsIds + "," + goods.getConsumerGoodsId(); } - if(StringUtils.isBlank(consumerGoodsNames)){ - consumerGoodsNames = consumerGoods.getGoodsName(); - }else{ - consumerGoodsNames = consumerGoodsNames + "、" + consumerGoods.getGoodsName(); + //拼接商品名称 + if (StringUtils.isBlank(goodsNames)) { + goodsNames = goods.getGoodsName(); + } else { + goodsNames = goodsNames + "、" + goods.getGoodsName(); + } + //处理商品服务次数 + switch (goods.getGoodsType()) { + case 1: + cycleService = cycleService + useNum; + break; + case 2: + serviceService = serviceService + useNum; + break; + case 3: + experienceService = experienceService + useNum; + break; + default: + break; } } - UserServiceRecord userServiceRecord = new UserServiceRecord(); - userServiceRecord.setCreateTime(new Date()); - userServiceRecord.setServiceType(serviceType); - userServiceRecord.setDelFlag(0); - userServiceRecord.setShopId(shopId); - userServiceRecord.setUserId(userId); - userServiceRecord.setConsumerGoodsIds(consumerGoodsIds); - userServiceRecord.setConsumerGoodsNames(consumerGoodsNames); - userServiceRecordService.saveOrUpdate(userServiceRecord); + //判断是否减人 + if (cycleService > 0 && memberGoodsTotal.getCycleOrder() - cycleService < 1) { + cyclePerson = 1; + } + if (serviceService > 0 && memberGoodsTotal.getServiceOrder() - serviceService < 1) { + servicePerson = 1; + } + if (experienceService > 0 && memberGoodsTotal.getExperienceOrder() - experienceService < 1) { + experiencePerson = 1; + } + serviceCount = cycleService + serviceService + experienceService; + UserServiceRecord serviceRecord = new UserServiceRecord(); + serviceRecord.setCreateTime(new Date()); + serviceRecord.setServiceType(serviceType); + serviceRecord.setDelFlag(0); + serviceRecord.setShopId(shopId); + serviceRecord.setUserId(userId); + serviceRecord.setConsumerGoodsIds(goodsIds); + serviceRecord.setConsumerGoodsNames(goodsNames); + userServiceRecordService.saveOrUpdate(serviceRecord); + //更新商户和会员服务统计 + MemberTotalChangeDto memberTotalChange = new MemberTotalChangeDto(); + memberTotalChange.setUserId(merSureConsumerGoodsDto.getUserId()); + memberTotalChange.setTypeService(2); + memberTotalChange.setServiceCount(serviceCount); + remoteMemberService.changeMemberTotal(memberTotalChange); + ShopTotalChangeDto shopTotalChange = new ShopTotalChangeDto(); + shopTotalChange.setShopId(merSureConsumerGoodsDto.getShopId()); + shopTotalChange.setTypeCycleService(2); + shopTotalChange.setCycleService(cycleService); + shopTotalChange.setCyclePerson(cyclePerson); + shopTotalChange.setTypeServiceService(2); + shopTotalChange.setServiceService(serviceService); + shopTotalChange.setServicePerson(servicePerson); + shopTotalChange.setTypeExperienceService(2); + shopTotalChange.setExperienceService(experienceService); + shopTotalChange.setExperiencePerson(experiencePerson); + remoteShopService.changeShopTotal(shopTotalChange); } } /** - * + * 分页获取用户服务次数列表 * @param page * @param merConsumerGoodsPageDto * @return @@ -154,4 +273,17 @@ List<MerConsumerGoodsListVo> merConsumerGoodsListVos = consumerGoodsMapper.pageMerConsumerGoodsNum(page, merConsumerGoodsPageDto); return merConsumerGoodsListVos; } + + /** + * @description 获取用户在商户 + * @author jqs + * @date 2023/6/29 15:13 + * @param userId + * @param shopId + * @return MerMemberConsumerGoodsTotalVo + */ + @Override + public MerMemberConsumerGoodsTotalVo getMemberConsumerGoodsTotalVo(Long userId, Long shopId){ + return consumerGoodsMapper.getMemberConsumerGoodsTotalVo(userId, shopId); + } } -- Gitblit v1.7.1