From bb58e108a9da48d84b84d30b73c01106dd642550 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期三, 02 八月 2023 19:58:49 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java |   54 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 36 insertions(+), 18 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..58c6aa5 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,6 +16,7 @@
 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.system.api.constant.AppErrorConstant;
 import com.ruoyi.system.api.domain.dto.AppShopGoodsGetDto;
@@ -60,6 +62,9 @@
 
     @Resource
     private RemoteGoodsService remoteGoodsService;
+
+    @Resource
+    private ServiceRecordDetailService serviceRecordDetailService;
 
     /**
      * 获取用户服务
@@ -213,7 +218,7 @@
     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;
@@ -231,42 +236,45 @@
             Integer experienceService = 0;
             Integer experiencePerson = 0;
             //获取会员商品总数
+            List<ServiceRecordDetail> serviceRecordDetailList = new ArrayList<>();
+            ServiceRecordDetail serviceRecordDetail;
             MerMemberConsumerGoodsTotalVo memberGoodsTotal = this.getMemberConsumerGoodsTotalVo(merSureConsumerGoodsDto.getMemberUserId(), merSureConsumerGoodsDto.getShopId());
             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,6 +287,12 @@
                     default:
                         break;
                 }
+                serviceRecordDetail.setDelFlag(0);
+                serviceRecordDetail.setConsumerGoodsId(consumerGoods.getConsumerGoodsId());
+                serviceRecordDetail.setConsumerGoodsName(consumerGoods.getGoodsName());
+                serviceRecordDetail.setServiceNum(consumerGoods.getServiceNum());
+                serviceRecordDetail.setSurpNum(consumerGoods.getServiceNum()-consumerGoods.getUsedNum());
+                serviceRecordDetailList.add(serviceRecordDetail);
             }
             //判断是否减人
             if (cycleService > 0 && memberGoodsTotal.getCycleOrder() - cycleService < 1) {
@@ -300,6 +314,10 @@
             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());

--
Gitblit v1.7.1