From 7151cc3d33133527c6d8219a4e0ad6fecd855782 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 22 九月 2025 22:19:37 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |  188 ++++++++++++++++++++++++++++++++--------------
 1 files changed, 129 insertions(+), 59 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index f557573..4c09371 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -35,6 +35,7 @@
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.utils.CodeFactoryUtil;
 import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.goods.api.domain.GetLotteryEventList;
 import com.ruoyi.goods.api.domain.TLotteryEvent;
 import com.ruoyi.goods.api.service.LotteryEventClient;
 import com.ruoyi.order.config.WxPayConfiguration;
@@ -80,6 +81,7 @@
 import com.ruoyi.system.api.model.QwH5LoginVo;
 import com.ruoyi.system.api.model.QwUserDetailDto;
 import com.ruoyi.system.api.service.*;
+import io.seata.spring.annotation.GlobalTransactional;
 import lombok.extern.log4j.Log4j2;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
@@ -405,7 +407,10 @@
         appSureOrderVo.setAppSureOrderGoodsVoList(appSureOrderGoodsVoList);
         appSureOrderVo.setLotteryDraw(false);
         // 返回AppPlaceOrderVo对象
-        List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(2).getData();
+        GetLotteryEventList getLotteryEventList = new GetLotteryEventList();
+        getLotteryEventList.setActivityType(2);
+        getLotteryEventList.setUserId(SecurityUtils.getUserId());
+        List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(getLotteryEventList).getData();
         if (data.size() > 0) {
             BigDecimal finalOrderPayMoney = orderPayMoney;
             List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(finalOrderPayMoney) <= 0).collect(Collectors.toList());
@@ -524,7 +529,10 @@
         appPanicBuyVo.setOrderPayMoney(orderPayMoney);
         appPanicBuyVo.setLotteryDraw(false);
         // 返回AppPlaceOrderVo对象
-        List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(2).getData();
+        GetLotteryEventList getLotteryEventList = new GetLotteryEventList();
+        getLotteryEventList.setActivityType(2);
+        getLotteryEventList.setUserId(SecurityUtils.getUserId());
+        List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(getLotteryEventList).getData();
         if (data.size() > 0) {
             BigDecimal finalOrderPayMoney = orderPayMoney;
             List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(finalOrderPayMoney) <= 0).collect(Collectors.toList());
@@ -543,8 +551,8 @@
      * @return
      */
     @Override
-    @Transactional   // todo  放开分布式事务注解
-//    @GlobalTransactional(rollbackFor = Exception.class)
+    @Transactional
+    @GlobalTransactional(rollbackFor = Exception.class)
     public AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto) {
         // 获取用户ID
         Long userId = appPlaceOrderDto.getUserId();
@@ -868,7 +876,10 @@
 
         appPlaceOrderVo.setLotteryDraw(false);
         // 返回AppPlaceOrderVo对象
-        List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(2).getData();
+        GetLotteryEventList getLotteryEventList = new GetLotteryEventList();
+        getLotteryEventList.setActivityType(2);
+        getLotteryEventList.setUserId(SecurityUtils.getUserId());
+        List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(getLotteryEventList).getData();
         if (data.size() > 0) {
             BigDecimal finalOrderPayMoney = orderPayMoney;
             List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(finalOrderPayMoney) <= 0).collect(Collectors.toList());
@@ -1084,7 +1095,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public AppPlaceOrderVo placeActivityOrder(AppPlaceActivityDto appPlaceActivityDto) {
         Long userId = appPlaceActivityDto.getUserId();
         Member member = remoteMemberService.getMember(userId).getData();
@@ -1361,7 +1372,10 @@
             redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS + "-" + activityId + "-" + goodsId, surpNum - buyNum);
             appPlaceOrderVo.setLotteryDraw(false);
             // 返回AppPlaceOrderVo对象
-            List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(2).getData();
+            GetLotteryEventList getLotteryEventList = new GetLotteryEventList();
+            getLotteryEventList.setActivityType(2);
+            getLotteryEventList.setUserId(SecurityUtils.getUserId());
+            List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(getLotteryEventList).getData();
             if (data.size() > 0) {
                 BigDecimal finalOrderPayMoney = orderPayMoney;
                 List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(finalOrderPayMoney) <= 0).collect(Collectors.toList());
@@ -1649,7 +1663,10 @@
         appPlaceOrderVo.setPrepayId(orderPayment.getPrepayId());
         appPlaceOrderVo.setLotteryDraw(false);
         // 返回AppPlaceOrderVo对象
-        List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(2).getData();
+        GetLotteryEventList getLotteryEventList = new GetLotteryEventList();
+        getLotteryEventList.setActivityType(2);
+        getLotteryEventList.setUserId(SecurityUtils.getUserId());
+        List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(getLotteryEventList).getData();
         if (data.size() > 0) {
             List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(order.getPayMoney()) <= 0).collect(Collectors.toList());
             if (collect.size() > 0) {
@@ -1910,6 +1927,10 @@
     
     @Override
     public MerVerifyOrderVo verifyOrderDouYin(String orderId, Long shopId) {
+        Shop shop = remoteShopService.getShop(shopId).getData();
+        if(StringUtils.isEmpty(shop.getDyPoiId())){
+            throw new ServiceException("请先绑定抖音门店ID");
+        }
         CertificatePrepareResponseData data = VerifyUtil.certificatePrepare(orderId);
         if (null == data) {
             throw new ServiceException("查询券信息失败");
@@ -1948,6 +1969,10 @@
     
     @Override
     public MerVerifyOrderVo verifyOrderKuaiShou(String orderId, Long shopId) {
+        Shop shop = remoteShopService.getShop(shopId).getData();
+        if(StringUtils.isEmpty(shop.getKsPoiId())){
+            throw new ServiceException("请先绑定快手门店ID");
+        }
         VerifyPrepareDataNew data = KSVerifyUtil.certificatePrepare(redisService, orderId);
         if (null == data) {
             throw new ServiceException("查询券信息失败");
@@ -1991,7 +2016,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyOrderVo sureVerifyOrder(MerVerifyOrderDto merVerifyOrderDto) {
         String orderId = merVerifyOrderDto.getOrderId();
         BigDecimal relReceiveMoney = merVerifyOrderDto.getRelReceiveMoney();
@@ -2237,11 +2262,18 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyOrderVo sureVerifyOrderDouYin(MerVerifyOrderDto merVerifyOrderDto) {
         String phone = merVerifyOrderDto.getPhone();
+        String name = merVerifyOrderDto.getName();
         String orderId = merVerifyOrderDto.getOrderId();
         Long shopId = merVerifyOrderDto.getShopId();
+        if(StringUtils.isEmpty(phone)){
+            throw new ServiceException("请填写核销用户电话号码");
+        }
+        if(StringUtils.isEmpty(name)){
+            throw new ServiceException("请填写核销用户姓名");
+        }
         //获取核销商户
         Shop shop = remoteShopService.getShop(shopId).getData();
         CertificatePrepareResponseData data = VerifyUtil.certificatePrepare(orderId);
@@ -2252,7 +2284,14 @@
         if (null == itemList && itemList.isEmpty()) {
             throw new ServiceException("查询券信息失败");
         }
-        CertificatePrepareResponseDataCertificatesItem certificatesItem = itemList.get(0);
+        List<CertificatePrepareResponseDataCertificatesItem> collect = itemList.stream().filter(s -> null == s.getStatus() || s.getStatus().intValue() == 1).collect(Collectors.toList());
+        if(collect.size() < merVerifyOrderDto.getNumber()){
+            throw new ServiceException("验券数量超过可使用数量");
+        }
+        List<CertificatePrepareResponseDataCertificatesItem> certificatePrepareResponseDataCertificatesItems = collect.subList(0, merVerifyOrderDto.getNumber());
+
+
+        CertificatePrepareResponseDataCertificatesItem certificatesItem = certificatePrepareResponseDataCertificatesItems.get(0);
         //商品信息
         CertificatePrepareResponseDataCertificatesItemSku sku = certificatesItem.getSku();
         //次卡信息
@@ -2266,7 +2305,28 @@
         }
         Member member = remoteMemberService.getMemberByMobile(phone).getData();//绑定用户判断核销商户
         if(null == member){
-            throw new ServiceException("手机号还未注册账户,请先进行注册");
+            //创建新用户
+            String memberId = IdUtils.simpleUUID();
+            SysUser sysUser = new SysUser();
+            sysUser.setUserName(memberId);
+            sysUser.setUserType("03");
+            sysUser.setNickName(name);
+            sysUser.setPhonenumber(phone);
+            sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
+            String password = "hongruitang";
+            sysUser.setPassword(SecurityUtils.encryptPassword(password));
+            sysUser = remoteUserService.registerUser(sysUser).getData();
+            member = new Member();
+            member.setMemberId(memberId);
+            member.setUserId(sysUser.getUserId());
+            member.setMobile(phone);
+            member.setRealName(name);
+            member.setNickName(name);
+            member.setBindingFlag(1);
+            member.setBindingType(3);
+            member.setRelationShopId(shopId);
+            member.setRelationShopName(shop.getShopName());
+            remoteMemberService.createNewMember(member);
         }
         if (member.getBindingFlag() == 1) {
             if (!member.getRelationShopId().equals(shopId)) {
@@ -2280,10 +2340,11 @@
                 throw new ServiceException("该抖音券不能重复核销");
             }
         }
-        String encryptedCode = certificatesItem.getEncryptedCode();
-        List<CertificateVerifyResponseDataVerifyResultsItem> items = VerifyUtil.certificateVerify(data.getVerifyToken(), shop.getDyPoiId(), new ArrayList<String>() {{
-            add(encryptedCode);
-        }});
+        List<String> encryptedCodes = new ArrayList<>();
+        for (CertificatePrepareResponseDataCertificatesItem certificatePrepareResponseDataCertificatesItem : certificatePrepareResponseDataCertificatesItems) {
+            encryptedCodes.add(certificatePrepareResponseDataCertificatesItem.getEncryptedCode());
+        }
+        List<CertificateVerifyResponseDataVerifyResultsItem> items = VerifyUtil.certificateVerify(data.getVerifyToken(), shop.getDyPoiId(), encryptedCodes);
         if (null == items || items.isEmpty()) {
             throw new ServiceException("抖音券核销失败");
         }
@@ -2331,7 +2392,7 @@
             order.setUseTime(nowTime);
             order.setUseUserId(merVerifyOrderDto.getUserId());
             order.setCloseFlag(1);
-            order.setGoodsNum(1);
+            order.setGoodsNum(itemList.size());
             order.setCouponMoney(BigDecimal.ZERO);
             this.save(order);
             //创建服务商品
@@ -2344,15 +2405,14 @@
             orderGoods.setGoodsPrice(originAmount);
             orderGoods.setGoodsTotalMoney(originAmount);
             orderGoods.setGoodsReceivableMoney(originAmount);
-            orderGoods.setBuyNum(1);
+            orderGoods.setBuyNum(itemList.size());
 
             ConsumerGoods consumerGoods = new ConsumerGoods();
+            consumerGoods.setUsedNum(merVerifyOrderDto.getNumber());
             if(null != timeCard){
-                //核销一次加一次
-                orderGoods.setBuyNum(1);
-                orderGoods.setServiceNum(1);
-                consumerGoods.setServiceNum(timeCard.getTimesCount());
-                consumerGoods.setUsedNum(1);
+                orderGoods.setBuyNum(itemList.size());
+                orderGoods.setServiceNum(merVerifyOrderDto.getNumber());
+                consumerGoods.setServiceNum(itemList.size());
                 consumerGoods.setUseTime(new Date());
             }
             orderGoods.setCycleNumFlag(1);
@@ -2365,7 +2425,7 @@
             consumerGoods.setServiceStatus(1);
             consumerGoods.setShopId(order.getShopId());
             consumerGoods.setUserId(order.getUserId());
-            consumerGoods.setOrderId(orderId);
+            consumerGoods.setOrderId(order.getOrderId());
             consumerGoods.setOrderGoodsId(orderGoods.getOrderGoodsId());
             consumerGoods.setGoodsName(sku.getTitle());
             consumerGoods.setCycleNumFlag(1);
@@ -2376,7 +2436,7 @@
 
             //生成返回
             MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo();
-            merVerifyOrderVo.setOrderId(orderId);
+            merVerifyOrderVo.setOrderId(order.getOrderId());
             merVerifyOrderVo.setOrderNo(order.getOrderNo());
             merVerifyOrderVo.setOrderStatus(order.getOrderStatus());
             merVerifyOrderVo.setOrderFrom(order.getOrderFrom());
@@ -2445,7 +2505,7 @@
                 if (integral > 0) {
                     memberTotalChangeDto.setChangeIntegral(integral);
                     memberTotalChangeDto.setTypeIntegral(1);
-                    memberTotalChangeDto.setOrderId(orderId);
+                    memberTotalChangeDto.setOrderId(order.getOrderId());
                     memberTotalChangeDto.setOrderNo(order.getOrderNo());
                 }
             }
@@ -2456,14 +2516,12 @@
         }else{
             //扣减剩余次数
             OrderGoods orderGoods = orderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderId, order.getOrderId()));
-            //核销一次加一次数量
-            orderGoods.setBuyNum(orderGoods.getBuyNum() + 1);
             if(null != orderGoods.getServiceNum()){
-                orderGoods.setServiceNum(orderGoods.getServiceNum() + 1);
+                orderGoods.setServiceNum(orderGoods.getServiceNum() + merVerifyOrderDto.getNumber());
             }
             orderGoodsService.updateById(orderGoods);
             ConsumerGoods consumerGoods = consumerGoodsService.getOne(new LambdaQueryWrapper<ConsumerGoods>().eq(ConsumerGoods::getOrderId, order.getOrderId()).eq(ConsumerGoods::getOrderGoodsId, orderGoods.getOrderGoodsId()));
-            consumerGoods.setUsedNum(consumerGoods.getUsedNum() + 1);
+            consumerGoods.setUsedNum(consumerGoods.getUsedNum() + merVerifyOrderDto.getNumber());
             consumerGoods.setUseTime(new Date());
             if(consumerGoods.getUsedNum() == consumerGoods.getServiceNum()){
                 consumerGoods.setCompleteTime(new Date());
@@ -2471,7 +2529,7 @@
             consumerGoodsService.updateById(consumerGoods);
             //生成返回
             MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo();
-            merVerifyOrderVo.setOrderId(orderId);
+            merVerifyOrderVo.setOrderId(order.getOrderId());
             merVerifyOrderVo.setOrderNo(order.getOrderNo());
             merVerifyOrderVo.setOrderStatus(order.getOrderStatus());
             merVerifyOrderVo.setOrderFrom(order.getOrderFrom());
@@ -2522,11 +2580,18 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyOrderVo sureVerifyOrderKuaiShou(MerVerifyOrderDto merVerifyOrderDto) {
         String phone = merVerifyOrderDto.getPhone();
+        String name = merVerifyOrderDto.getName();
         String orderId = merVerifyOrderDto.getOrderId();
         Long shopId = merVerifyOrderDto.getShopId();
+        if(StringUtils.isEmpty(phone)){
+            throw new ServiceException("请填写核销用户电话号码");
+        }
+        if(StringUtils.isEmpty(name)){
+            throw new ServiceException("请填写核销用户姓名");
+        }
         //获取核销商户
         Shop shop = remoteShopService.getShop(shopId).getData();
         VerifyPrepareDataNew data = KSVerifyUtil.certificatePrepare(redisService, orderId);
@@ -2537,7 +2602,8 @@
         if (null == itemList || itemList.isEmpty()) {
             throw new ServiceException("查询券信息失败");
         }
-        SimpleCertificateTimesCard certificatesItem = itemList.get(0);
+        List<SimpleCertificateTimesCard> timesCards = itemList.subList(0, merVerifyOrderDto.getNumber());
+        SimpleCertificateTimesCard certificatesItem = timesCards.get(0);
         Long expire_time = certificatesItem.getExpire_time();
         if(LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) > expire_time){
             throw new ServiceException("优惠券已过期");
@@ -2558,11 +2624,12 @@
                 throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
             }
         }
-        
-        String encryptedCode = certificatesItem.getEncrypted_code();
-        List<VerifyResult> items = KSVerifyUtil.certificateVerify(redisService, data.getVerify_token(), shop.getKsPoiId(), new ArrayList<String>() {{
-            add(encryptedCode);
-        }}, data.getOrder_id());
+
+        List<String> encryptedCodes = new ArrayList<>();
+        for (SimpleCertificateTimesCard timesCard : timesCards) {
+            encryptedCodes.add(timesCard.getEncrypted_code());
+        }
+        List<VerifyResult> items = KSVerifyUtil.certificateVerify(redisService, data.getVerify_token(), shop.getKsPoiId(), encryptedCodes, data.getOrder_id());
         if (null == items || items.isEmpty()) {
             throw new ServiceException("快手券核销失败");
         }
@@ -2610,7 +2677,7 @@
             order.setUseTime(nowTime);
             order.setUseUserId(merVerifyOrderDto.getUserId());
             order.setCloseFlag(1);
-            order.setGoodsNum(1);
+            order.setGoodsNum(itemList.size());
             order.setCouponMoney(BigDecimal.ZERO);
             this.save(order);
             //创建服务商品
@@ -2621,13 +2688,12 @@
             orderGoods.setDelFlag(0);
             orderGoods.setOrderId(order.getOrderId());
             orderGoods.setGoodsId(sku.getSku_id());
-            orderGoods.setBuyNum(1);
-            orderGoods.setServiceNum(1);
+            orderGoods.setBuyNum(itemList.size());
             orderGoods.setGoodsPrice(originAmount);
             orderGoods.setGoodsTotalMoney(originAmount);
             orderGoods.setGoodsReceivableMoney(originAmount);
             orderGoods.setCycleNumFlag(1);
-            orderGoods.setServiceNum(sku.getTimes_count());
+            orderGoods.setServiceNum(merVerifyOrderDto.getNumber());
             orderGoods.setGoodsType(2);
             orderGoods.setGoodsName(sku.getTitle());
             orderGoodsService.save(orderGoods);
@@ -2638,13 +2704,13 @@
             consumerGoods.setServiceStatus(1);
             consumerGoods.setShopId(order.getShopId());
             consumerGoods.setUserId(order.getUserId());
-            consumerGoods.setOrderId(orderId);
+            consumerGoods.setOrderId(order.getOrderId());
             consumerGoods.setGoodsId(sku.getSku_id());
             consumerGoods.setOrderGoodsId(orderGoods.getOrderGoodsId());
             consumerGoods.setGoodsName(sku.getTitle());
             consumerGoods.setCycleNumFlag(1);
-            consumerGoods.setServiceNum(sku.getTimes_count());
-            consumerGoods.setUsedNum(1);
+            consumerGoods.setServiceNum(itemList.size());
+            consumerGoods.setUsedNum(merVerifyOrderDto.getNumber());
             consumerGoods.setUseTime(new Date());
             consumerGoods.setCreateTime(nowTime);
             consumerGoods.setGoodsType(2);
@@ -2652,7 +2718,7 @@
             consumerGoodsService.save(consumerGoods);
             //生成返回
             MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo();
-            merVerifyOrderVo.setOrderId(orderId);
+            merVerifyOrderVo.setOrderId(order.getOrderId());
             merVerifyOrderVo.setOrderNo(order.getOrderNo());
             merVerifyOrderVo.setOrderStatus(order.getOrderStatus());
             merVerifyOrderVo.setOrderFrom(order.getOrderFrom());
@@ -2721,7 +2787,7 @@
                 if (integral > 0) {
                     memberTotalChangeDto.setChangeIntegral(integral);
                     memberTotalChangeDto.setTypeIntegral(1);
-                    memberTotalChangeDto.setOrderId(orderId);
+                    memberTotalChangeDto.setOrderId(order.getOrderId());
                     memberTotalChangeDto.setOrderNo(order.getOrderNo());
                 }
             }
@@ -2732,12 +2798,11 @@
         }else{
             //扣减剩余次数
             OrderGoods orderGoods = orderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderId, order.getOrderId()));
-            orderGoods.setBuyNum(orderGoods.getBuyNum() + 1);
-            orderGoods.setServiceNum(orderGoods.getServiceNum() + 1);
+            orderGoods.setServiceNum(orderGoods.getServiceNum() + itemList.size());
             orderGoodsService.updateById(orderGoods);
 
             ConsumerGoods consumerGoods = consumerGoodsService.getOne(new LambdaQueryWrapper<ConsumerGoods>().eq(ConsumerGoods::getOrderId, order.getOrderId()).eq(ConsumerGoods::getOrderGoodsId, orderGoods.getOrderGoodsId()));
-            consumerGoods.setUsedNum(consumerGoods.getUsedNum() + 1);
+            consumerGoods.setUsedNum(consumerGoods.getUsedNum() + itemList.size());
             consumerGoods.setUseTime(new Date());
             if(consumerGoods.getUsedNum() == consumerGoods.getServiceNum()){
                 consumerGoods.setCompleteTime(new Date());
@@ -2745,7 +2810,7 @@
             consumerGoodsService.updateById(consumerGoods);
             //生成返回
             MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo();
-            merVerifyOrderVo.setOrderId(orderId);
+            merVerifyOrderVo.setOrderId(order.getOrderId());
             merVerifyOrderVo.setOrderNo(order.getOrderNo());
             merVerifyOrderVo.setOrderStatus(order.getOrderStatus());
             merVerifyOrderVo.setOrderFrom(order.getOrderFrom());
@@ -3015,7 +3080,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyCouponVo sureVerifyCoupon(MerVerifyCouponDto merVerifyCouponDto) {
         R<MerVerifyCouponGetVo> verifyCoupon = remoteCouponService.getVerifyCoupon(merVerifyCouponDto.getMemberCouponId());
         if(verifyCoupon.getCode() != 200){
@@ -3155,7 +3220,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public MerVerifyAwardVo sureVerifyPrize(MerVerifyPrizeDto merVerifyPrizeDto) {
         MerVerifyAwardVo merVerifyAwardVo = new MerVerifyAwardVo();
         MemberGiftRecord memberGiftRecord = remoteMemberService.getVerifyPrize(merVerifyPrizeDto.getPrizeId()).getData();
@@ -3419,7 +3484,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void createNewOrder(MerNewOrderDto merNewOrderDto) {
         Long userId = merNewOrderDto.getBuyUserId();
         Date nowTime = new Date();
@@ -4229,6 +4294,7 @@
         }
         // 设置订单编号
         mgtOrderDetailVo.setOrderNo(order.getOrderNo());
+        mgtOrderDetailVo.setTripartiteOrderId(order.getTripartiteOrderId());
         mgtOrderDetailVo.setOutTradeNo(order.getOutTradeNo());
         // 设置订单来源
         switch (order.getOrderFrom()) {
@@ -4965,6 +5031,9 @@
             for (int i = 0; i < MgtMapIntTotalVoGoodsType.size(); i++) {
                 mgtMapIntTotalVo = new MgtMapIntTotalVo();
                 mgtMapBigTotalVo = new MgtMapBigTotalVo();
+                if(null == MgtMapIntTotalVoGoodsType.get(i).getMapKey()){
+                    continue;
+                }
                 mgtMapIntTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueFirst());
                 mgtMapBigTotalVo.setMapValue(MgtMapIntTotalVoGoodsType.get(i).getMapValueSecond());
                 if (MgtMapIntTotalVoGoodsType.get(i).getMapKey().equals("1")) {
@@ -5668,7 +5737,8 @@
         if (memberGiftRecord.getGiftFrom() == 2 && !memberGiftRecord.getShopId().equals(shopId)) {
             throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
         }
-    
+
+        merVerifyAwardVo.setUserId(member.getUserId());
         merVerifyAwardVo.setUserName(member.getRealName());
         merVerifyAwardVo.setUserMobile(member.getMobile());
         if (1 == memberGiftRecord.getPrizeFrom()) {
@@ -6106,7 +6176,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void autoCancelOrder(String orderId, Integer cancelType) {
         //更新订单信息
         Order order = this.getById(orderId);
@@ -6177,7 +6247,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void payBack(PartnerTransactionsResult transaction, BigDecimal feeAmount) {
         log.info("订单支付回调---"+transaction.toString());
         // 更新订单状态 outTradeNo
@@ -6323,7 +6393,7 @@
      */
     @Override
     @Transactional
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void refundOrder(String orderId, Integer cancelType) {
         // 更新订单信息
         Order order = this.getById(orderId);
@@ -7266,7 +7336,7 @@
 
     }
 
-//    @GlobalTransactional(rollbackFor = Exception.class) todo 放开分布式事务注解
+    @GlobalTransactional(rollbackFor = Exception.class)
     private void autoTimeCancelOrder(Order order) {
         String orderId = order.getOrderId();
         order.setOrderStatus(0);

--
Gitblit v1.7.1