From 8033ea73b898357ad8853524ba558b18c42c2bbe Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期三, 01 十一月 2023 20:27:51 +0800
Subject: [PATCH] 10.31.6

---
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java        |   21 +++--
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java        |   25 ++++--
 cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java      |   17 +++-
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java    |   93 ++++++++++++++++++++++
 cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/Goods.java        |    3 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java |   22 +++--
 cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java                       |   15 ++-
 7 files changed, 157 insertions(+), 39 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/Goods.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/Goods.java
index b651466..e75f187 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/Goods.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/Goods.java
@@ -39,5 +39,8 @@
     private Integer nums;
     @ApiModelProperty(value = "门店id")
     private List<Integer> shopIds;
+    @ApiModelProperty(value = "使用范围")
+    private Integer useScope;
+
 
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
index ef9dd85..e24cde3 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
@@ -1,5 +1,6 @@
 package com.dsh.account.service.impl;
 
+import com.alipay.api.response.AlipayTradeQueryResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.account.entity.RechargeRecords;
@@ -254,29 +255,34 @@
                             if(records.getPayStatus() == 2){
                                 break;
                             }
-                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
-                            if(resultUtil.getCode() == 200 && records.getPayStatus() == 1){
+                            AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
+
+                            if(resultUtil.getCode().equals("10000")&& records.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("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".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("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus) || num == 10){
                                     records.setState(3);
                                     rereMapper.deleteById(records.getId());
                                     break;
                                 }
-                                if("TRADE_SUCCESS".equals(s)){
+                                if("TRADE_SUCCESS".equals(tradeStatus)){
                                     records.setPayStatus(2);
                                     records.setOrderNumber(tradeNo);
                                     rereMapper.updateById(records);
                                     break;
                                 }
-                                if("WAIT_BUYER_PAY".equals(s)){
+                                if("WAIT_BUYER_PAY".equals(tradeStatus)){
                                     num++;
                                 }
                             }
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..3c0b63d 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() == 1)||merchandise.getShopIds().contains(request.getShopId()))
                         .collect(Collectors.toList());
             }
         }
@@ -1462,22 +1464,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 +1494,7 @@
                                     moneyOut(tradeNo,tradeNo);
                                     break;
                                 }
-                                if("WAIT_BUYER_PAY".equals(s)){
+                                if("WAIT_BUYER_PAY".equals(tradeStatus)){
                                     num++;
                                 }
                             }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
index 2bee448..c9fef86 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -1,5 +1,6 @@
 package com.dsh.account.service.impl;
 
+import com.alipay.api.response.AlipayTradeQueryResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -585,23 +586,27 @@
                             if(coursePackagePayment.getPayStatus() == 2){
                                 break;
                             }
-                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
-                            if(resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1){
+                            AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
+
+                            if(resultUtil.getCode().equals("10000") && coursePackagePayment.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("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".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("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus) || num == 10){
                                     coursePackagePayment.setState(3);
                                     couPayClient.delPaymentCoursePackage(coursePackagePayment.getId());
                                     break;
                                 }
-                                if("TRADE_SUCCESS".equals(s)){
+                                if("TRADE_SUCCESS".equals(tradeStatus)){
                                     coursePackagePayment.setPayStatus(2);
                                     coursePackagePayment.setTotalClassHours(hour);
                                     coursePackagePayment.setLaveClassHours(hour);
@@ -609,7 +614,7 @@
                                     couPayClient.updatePaymentCoursePackage(coursePackagePayment);
                                     break;
                                 }
-                                if("WAIT_BUYER_PAY".equals(s)){
+                                if("WAIT_BUYER_PAY".equals(tradeStatus)){
                                     num++;
                                 }
                             }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
index 4e9e887..b33f066 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
@@ -1,5 +1,6 @@
 package com.dsh.account.service.impl;
 
+import com.alipay.api.response.AlipayTradeQueryResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.account.entity.TAppUser;
@@ -181,11 +182,16 @@
                              * TRADE_SUCCESS(交易支付成功)、
                              * TRADE_FINISHED(交易结束,不可退款)
                              */
-                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
-                            if(resultUtil.getCode() == 200){
-                                Map<String, String> map = resultUtil.getData();
-                                String tradeStatus = map.get("tradeStatus");
-                                String tradeNo = map.get("tradeNo");
+                            AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
+
+                            if(resultUtil.getCode().equals("10000")){
+//                                Map<String, String> map = resultUtil.getData();
+//                                String tradeStatus = map.get("tradeStatus");
+//                                String tradeNo = map.get("tradeNo");
+
+                                String tradeNo = resultUtil.getTradeNo();
+                                String tradeStatus = resultUtil.getTradeStatus();
+                                System.out.println("ssssss"+tradeStatus);
                                 if("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)){
                                     vipPayment1.setState(3);
                                     VipPaymentServiceImpl.this.updateById(vipPayment1);
@@ -199,6 +205,7 @@
 
                                     TAppUser appUser = appUserService.getById(vipPayment1.getAppUserId());
                                     Date vipEndTime = appUser.getVipEndTime();
+                                    appUser.setIsVip(1);
                                     if(null == vipEndTime){
                                         vipEndTime = new Date();
                                     }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
index 81bd0d1..e21ff45 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
@@ -314,19 +314,20 @@
      * @return
      * @throws Exception
      */
-    public ResultUtil queryALIOrder(String out_trade_no) throws Exception{
+    public AlipayTradeQueryResponse queryALIOrder(String out_trade_no) throws Exception{
         AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",aliAppid, appPrivateKey,"json","UTF-8",alipay_public_key,"RSA2");
         AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
         request.setBizContent("{" +
                 "  \"out_trade_no\":\"" + out_trade_no + "\"" +
                 "}");
         AlipayTradeQueryResponse response = alipayClient.execute(request);
-        if(response.isSuccess()){
-            String tradeStatus = response.getTradeStatus();//交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款)
-            return ResultUtil.success(tradeStatus);
-        } else {
-            return ResultUtil.error(response.getMsg());
-        }
+        return response;
+//        if(response.isSuccess()){
+//            String tradeStatus = response.getTradeStatus();//交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款)
+//            return ResultUtil.success(response);
+//        } else {
+//            return ResultUtil.error(response.getMsg());
+//        }
     }
 
 
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index 55f23ea..e374344 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -763,7 +763,7 @@
                         String startDate = dateFormat.format(pointsMerchandise.getInsertTime());
                         String endDate = dateFormat.format(end);
                         detailsResponse.setStartTime(startDate);
-                        detailsResponse.setEndTime(endDate);
+                        detailsResponse.setEndTime(startDate);
 
                         Date now = new Date();
                         Calendar cal1 = Calendar.getInstance();
@@ -821,7 +821,7 @@
                         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                         Calendar calendar = Calendar.getInstance();
                         calendar.setTime(pointsMerchandise.getInsertTime());
-                        calendar.add(Calendar.DAY_OF_MONTH, 365);
+                        calendar.add(Calendar.DAY_OF_MONTH, 372);
                         Date end = calendar.getTime();
                         String startDate = dateFormat.format(pointsMerchandise.getInsertTime());
                         String endDate = dateFormat.format(end);
@@ -881,6 +881,95 @@
                             return 0; // 保持原顺序
                         }
                     });
+
+
+
+
+                    if (pmdsServiceById.getCardType()==1){
+                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                        Calendar calendar = Calendar.getInstance();
+                        calendar.setTime(pmdsServiceById.getInsertTime());
+                        calendar.add(Calendar.DAY_OF_MONTH, 1);
+                        Date end = calendar.getTime();
+                        String startDate = dateFormat.format(pmdsServiceById.getInsertTime());
+                        String endDate = dateFormat.format(end);
+                        pmdsServiceById.setStartTime(pmdsServiceById.getInsertTime());
+                        pmdsServiceById.setEndTime(pmdsServiceById.getInsertTime());
+
+                        Date now = new Date();
+                        Calendar cal1 = Calendar.getInstance();
+                        cal1.setTime(pmdsServiceById.getInsertTime());
+
+                        Calendar cal2 = Calendar.getInstance();
+                        cal2.setTime(now);
+
+                        // Compare the year, month, and day of the two Calendar instances
+                        boolean isSameDate = cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) &&
+                                cal1.get(Calendar.MONTH) == cal2.get(Calendar.MONTH) &&
+                                cal1.get(Calendar.DAY_OF_MONTH) == cal2.get(Calendar.DAY_OF_MONTH);
+
+                        // Print the result
+                        if (isSameDate) {
+                            detailsVo.setUseType(3);
+                        } else {
+                            System.out.println("The two dates do not have the same date.");
+                        }
+
+
+                    } else if (pmdsServiceById.getCardType()==2) {
+                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                        Calendar calendar = Calendar.getInstance();
+                        calendar.setTime(pmdsServiceById.getInsertTime());
+                        calendar.add(Calendar.DAY_OF_MONTH, 31);
+                        Date end = calendar.getTime();
+                        String startDate = dateFormat.format(pmdsServiceById.getInsertTime());
+                        String endDate = dateFormat.format(end);
+                        detailsVo.setStartTime(startDate);
+                        detailsVo.setEndTime(endDate);
+
+                        Date now = new Date();
+                        if (now.after(end)){
+                            detailsVo.setUseType(3);
+                        }
+
+                    } else if (pmdsServiceById.getCardType()==3) {
+                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                        Calendar calendar = Calendar.getInstance();
+                        calendar.setTime(pmdsServiceById.getInsertTime());
+                        calendar.add(Calendar.DAY_OF_MONTH, 93);
+                        Date end = calendar.getTime();
+                        String startDate = dateFormat.format(pmdsServiceById.getInsertTime());
+                        String endDate = dateFormat.format(end);
+                        detailsVo.setStartTime(startDate);
+                        detailsVo.setEndTime(endDate);
+
+                        Date now = new Date();
+                        if (now.after(end)){
+                            detailsVo.setUseType(3);
+                        }
+
+                    } else if (pmdsServiceById.getCardType()==4) {
+                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                        Calendar calendar = Calendar.getInstance();
+                        calendar.setTime(pmdsServiceById.getInsertTime());
+                        calendar.add(Calendar.DAY_OF_MONTH, 372);
+                        Date end = calendar.getTime();
+                        String startDate = dateFormat.format(pmdsServiceById.getInsertTime());
+                        String endDate = dateFormat.format(end);
+                        detailsVo.setStartTime(startDate);
+                        detailsVo.setEndTime(endDate);
+
+                        Date now = new Date();
+                        if (now.after(end)){
+                            detailsVo.setUseType(3);
+                        }
+
+                    }
+
+
+
+
+
                     break;
                 case 2:
                     CoursePackage coursePackage = cpClient.queryCoursePackageById(pmdsServiceById.getCoursePackageId());

--
Gitblit v1.7.1