From 2470d3215286123438478f045b43df9f352fa16b Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期四, 02 十一月 2023 16:43:45 +0800
Subject: [PATCH] 11.2

---
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java |   63 ++++++++++++++++++++-----------
 1 files changed, 41 insertions(+), 22 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
index 2426ac0..a849860 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -11,6 +11,7 @@
 import com.alipay.api.request.AlipayTradeOrderSettleRequest;
 import com.alipay.api.request.AlipayTradeRoyaltyRelationBindRequest;
 import com.alipay.api.response.AlipayTradeOrderSettleResponse;
+import com.alipay.api.response.AlipayTradeQueryResponse;
 import com.alipay.api.response.AlipayTradeRoyaltyRelationBindResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -943,6 +944,7 @@
                 commodity.setGoodsType(4);
                 commodity.setShopIds(ucponClient.getCouponStoreIds(allCoupon.getId()));
                 commodity.setNums(ucponClient.getRedeemedQuantity(allCoupon.getId()));
+                commodity.setUseScope(allCoupon.getUseScope());
                 goods.add(commodity);
             }
         }
@@ -958,7 +960,7 @@
         if (request.getShopId()!=null){
             if (goods.size() > 0 ){
                 goods = goods.stream()
-                        .filter(merchandise -> merchandise.getShopIds().contains(request.getShopId()))
+                        .filter( merchandise ->(merchandise.getGoodsType() == 4&&merchandise.getUseScope() == 2)||(merchandise.getGoodsType() == 4&&merchandise.getUseScope() == 1)||merchandise.getShopIds().contains(request.getShopId()))
                         .collect(Collectors.toList());
             }
         }
@@ -1191,6 +1193,8 @@
     public ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeType) {
         System.out.println("exchangeType:--->");
 
+        ReturnModel returnModel = new ReturnModel();
+        Long returnId = null;
             //如果是兑换优惠卷
         if (exchangeType.getGoodsType()==4){
             //查询优惠卷
@@ -1209,10 +1213,6 @@
             if (usercounts == coupon.getPickUpQuantity()){
                 return new ResultUtil<>(0,"限领数量已达最大");
             }
-
-
-
-
 //            userConponClient.queryCouponById(exchangeType.getGoodId());
             UserCoupon userCoupon = new UserCoupon();
             userCoupon.setCouponId(exchangeType.getGoodId());
@@ -1220,19 +1220,33 @@
             userCoupon.setStatus(1);
             userCoupon.setInsertTime(new Date());
             userConponClient.insertToAppuserCoupon(userCoupon);
-
-
             //扣积分
             TAppUser user = appUserService.getById(userIdFormRedis);
             if (user.getIntegral()<coupon.getIntegral().intValue()){
                 return  new ResultUtil<>(0,"当前用户积分不足");
             }
-
             user.setIntegral(user.getIntegral()-coupon.getIntegral().intValue());
-
             appUserService.updateById(user);
 
-            return ResultUtil.success();
+            //记录
+//            UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise();
+//            pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId());
+//            pointsMerchandise.setUserId(userIdFormRedis);
+//            pointsMerchandise.setStatus(1);
+//            pointsMerchandise.setState(1);
+//            pointsMerchandise.setPayStatus(1);
+////            if (merchandise.getUseScope() == 3){
+////                if (exchangeType.getGoodsType() == 2){
+////                    CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId());
+////                    pointsMerchandise.setStoreId(coursePackage.getStoreId());
+////                }else {
+////                    pointsMerchandise.setStoreId(exchangeType.getStoreId());
+////                }
+////            }
+////            pointsMerchandise.setCode(code);
+//            returnId = mcClient.saveDetailsUserPointMercase(pointsMerchandise);
+
+            return ResultUtil.success(returnId);
         }
 
 
@@ -1243,6 +1257,7 @@
             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
             String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
             PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(exchangeType.getGoodId());
+
             if (ToolUtil.isEmpty(merchandise)){
                 return ResultUtil.error("商品不存在");
             }
@@ -1300,7 +1315,7 @@
                     }
                 }
                 pointsMerchandise.setCode(code);
-                mcClient.saveDetailsUserPointMercase(pointsMerchandise);
+                returnId = mcClient.saveDetailsUserPointMercase(pointsMerchandise);
             }
 
             switch (exchangeType.getExchangeType()){
@@ -1408,9 +1423,8 @@
                     break;
             }
 
-
-
-            return ResultUtil.success();
+        returnModel.setReturnId(returnId);
+            return ResultUtil.success(returnModel);
         }catch (Exception e){
             e.printStackTrace();
             return null;
@@ -1462,22 +1476,27 @@
                             if(userPointsMerchandises.get(0).getPayStatus() == 2){
                                 break;
                             }
-                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
-                            if(resultUtil.getCode() == 200 && userPointsMerchandises.get(0).getPayStatus() == 1){
+//                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
+                            AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
+                            if(resultUtil.getCode().equals("10000") && userPointsMerchandises.get(0).getPayStatus() == 1){
                                 /**
                                  * WAIT_BUYER_PAY(交易创建,等待买家付款)、
                                  * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
                                  * TRADE_SUCCESS(交易支付成功)、
                                  * TRADE_FINISHED(交易结束,不可退款)
                                  */
-                                Map<String, String> data1 = resultUtil.getData();
-                                String s = data1.get("tradeStatus");
-                                String tradeNo = data1.get("tradeNo");
-                                if("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10){
+//                                Map<String, String> data1 = resultUtil.getData();
+//                                String s = data1.get("tradeStatus");
+//                                String tradeNo = data1.get("tradeNo");
+
+                                String tradeNo = resultUtil.getTradeNo();
+                                String tradeStatus = resultUtil.getTradeStatus();
+                                System.out.println("ssssss"+tradeStatus);
+                                if("REFUND".equals(tradeStatus) || "NOTPAY".equals(tradeStatus) || "CLOSED".equals(tradeStatus) || "REVOKED".equals(tradeStatus) || "PAYERROR".equals(tradeStatus) || num == 10){
                                     mcClient.deletePaymentRecord(code);
                                     break;
                                 }
-                                if("TRADE_SUCCESS".equals(s)){
+                                if("TRADE_SUCCESS".equals(tradeStatus)){
                                     for (UserPointsMerchandise userPointsMerchandise : userPointsMerchandises) {
                                         userPointsMerchandise.setPayStatus(2);
                                         userPointsMerchandise.setOrderNumber(tradeNo);
@@ -1487,7 +1506,7 @@
                                     moneyOut(tradeNo,tradeNo);
                                     break;
                                 }
-                                if("WAIT_BUYER_PAY".equals(s)){
+                                if("WAIT_BUYER_PAY".equals(tradeStatus)){
                                     num++;
                                 }
                             }

--
Gitblit v1.7.1