From 5627daeb1ac1a29947e902f9a7efb6730ed98611 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期五, 07 七月 2023 20:35:50 +0800 Subject: [PATCH] 管理台bug和用户端生日卡 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java | 156 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 153 insertions(+), 3 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 84e8d05..b0155f3 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 @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; +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.UserServiceRecord; @@ -16,15 +17,22 @@ 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.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.service.RemoteGoodsService; import com.ruoyi.system.api.service.RemoteMemberService; import com.ruoyi.system.api.service.RemoteShopService; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * <p> @@ -48,6 +56,9 @@ @Resource private RemoteShopService remoteShopService; + + @Resource + private RemoteGoodsService remoteGoodsService; /** * 获取用户服务 @@ -147,7 +158,7 @@ } /** - * 确认商品次数 + * 消费服务商品 * @param merSureConsumerGoodsDto */ @Override @@ -286,4 +297,143 @@ public MerMemberConsumerGoodsTotalVo getMemberConsumerGoodsTotalVo(Long userId, Long shopId){ return consumerGoodsMapper.getMemberConsumerGoodsTotalVo(userId, shopId); } + + /** + * @description 发放用户商品礼物 + * @author jqs + * @date 2023/7/7 18:51 + * @param giftSendDtoList + * @return void + */ + @Override + public void sendGoodsGift(List<BirthdayGiftSendDto> giftSendDtoList){ + // 使用StringJoiner拼接goodsId + StringJoiner goodsSj = new StringJoiner(","); + for (BirthdayGiftSendDto birthdayGiftSendDto : giftSendDtoList) { + goodsSj.add(birthdayGiftSendDto.getGoodsId()); + } + String goodsIds = goodsSj.toString(); + // 获取商品列表 + List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(goodsIds).getData(); + // 初始化变量 + List<ConsumerGoods> consumerGoodsList = new ArrayList<>(); + Map<String, Goods> goodsMap = goodsList.stream() + .collect(Collectors.toMap(Goods::getGoodsId, Function.identity())); + ConsumerGoods consumerGoods; + String consumerGoodsId; + Goods goods; + String goodsId; + GoodsFile goodsFile; + AppShopGoodsGetDto appShopGoodsGetDto; + ShopGoods shopGoods = null; + // 遍历giftSendDtoList + for (BirthdayGiftSendDto birthdayGiftSendDto : giftSendDtoList) { + goodsId = birthdayGiftSendDto.getGoodsId(); + goods = goodsMap.get(goodsId); + goodsFile = remoteGoodsService.getGoodsFile(goods.getGoodsId()).getData(); + // 获取商户服务次数 + if (birthdayGiftSendDto.getGiftFrom() == 2) { + appShopGoodsGetDto = new AppShopGoodsGetDto(); + appShopGoodsGetDto.setGoodsId(goodsId); + appShopGoodsGetDto.setShopId(birthdayGiftSendDto.getShopId()); + shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); + } + // 根据goodsNumber创建ConsumerGoods对象并添加到列表中 + for (int i = 0; i < birthdayGiftSendDto.getGoodsNumber(); i++) { + consumerGoods = new ConsumerGoods(); + consumerGoodsId = IdUtils.simpleUUID(); + consumerGoods.setConsumerGoodsId(consumerGoodsId); + consumerGoods.setDelFlag(0); + consumerGoods.setServiceStatus(1); + consumerGoods.setShopId(birthdayGiftSendDto.getShopId()); + consumerGoods.setUserId(birthdayGiftSendDto.getUserId()); + consumerGoods.setGoodsId(goodsId); + 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(3); + // 如果shopGoods不为空,则使用shopGoods的serviceNum + if (shopGoods != null) { + consumerGoods.setServiceNum(shopGoods.getServiceNum()); + } + consumerGoodsList.add(consumerGoods); + } + } + // 批量保存consumerGoodsList + this.saveBatchConsumerGoods(consumerGoodsList); + } + + + /** + * @description + * @author jqs + * @date 2023/7/7 19:31 + * @param consumerGoodsList + * @return boolean + */ + @Override + public boolean saveBatchConsumerGoods(List<ConsumerGoods> consumerGoodsList){ + Integer serviceCount = 0; + Integer cycleService = 0; + Integer cyclePerson = 0; + Integer serviceService = 0; + Integer servicePerson = 0; + Integer experienceService = 0; + Integer experiencePerson = 0; + Long shopId = consumerGoodsList.get(0).getShopId(); + Long userId = consumerGoodsList.get(0).getUserId(); + MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(userId, shopId); + for(ConsumerGoods consumerGoods : consumerGoodsList){ + //处理商品服务次数 + 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(userId); + memberTotalChangeDto.setTypeService(1); + memberTotalChangeDto.setServiceCount(serviceCount); + remoteMemberService.changeMemberTotal(memberTotalChangeDto); + ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); + shopTotalChangeDto.setShopId(shopId); + 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); + return this.saveBatch(consumerGoodsList); + } } -- Gitblit v1.7.1