From 783b9ee7a8caa508d123d34bfbbf294716211dd7 Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期三, 18 十月 2023 16:50:16 +0800
Subject: [PATCH] 10.18.2

---
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java |  122 +++++++++++++++++++++++++++++++++-------
 1 files changed, 101 insertions(+), 21 deletions(-)

diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
index cf2a792..77735e7 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -4,6 +4,12 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
+import com.alipay.api.DefaultAlipayClient;
+import com.alipay.api.domain.*;
+import com.alipay.api.request.AlipayTradeOrderSettleRequest;
+import com.alipay.api.response.AlipayTradeOrderSettleResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -86,6 +92,14 @@
     private CoursePackageStudentMapper cpsMapper;
 
 
+    private String aliAppid = "2021004105665036";//支付宝appid
+
+    private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
+
+    private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouYvZ1v4RiydwNOnGcU0Hb4hQu0x6XUooaE2Bi6/atNOobtFdunnATGP6OMOW7yF9DpP8qH5mbFXAiaQD721y/7qlayI50UcV4mngRU4ZcaAVE3bp721Eg2H85RISa+Tb1CiOh+pc9p4l5UBseKsvB2ruHHForfZDPI8FL7AVUKBYCQPsa4zL6KAO2C6KULaTg/lCa+bYQKU0n9ca569VtdsqJUyxB9eSZjVd+9nKl62FLqp2NELGj7cXqiVBgDnBnVS5ZUO3mrBM5z/AxQbw3RwE3JqdkhzUA1BFjejAlT2zIGNOjUFagF8ao0wGElYfuk0bum6Hz5qWAt02QdNNwIDAQAB";//支付宝应用公钥
+
+    private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
+
 
     @Override
     public List<CourseOfStoreVo> queryStoreOfCourse() {
@@ -143,9 +157,11 @@
             ArrayList<String> classTime = new ArrayList<>();
             String[] split = classStartTime.split(",");
             String[] split3 = classEndTime.split(",");
-            for (int i = 0; i < split.length; i++) {
-                String s = split[i] + "-" +  split3[i];
-                classTime.add(s);
+            if(ToolUtil.isNotEmpty(classStartTime)) {
+                for (int i = 0; i < split.length; i++) {
+                    String s = split[i].substring(0,5) + "-" + split3[i].substring(0,5);
+                    classTime.add(s);
+                }
             }
             coursePackageListVo.setClassStartTime(classTime);
             coursePackageListVo.setType(coursePackage.getType());
@@ -283,6 +299,7 @@
         }
         return listVos;
     }
+
 
 
     @Override
@@ -483,8 +500,13 @@
             AppUser appUser = appUserClient.queryAppUser(uid);
             TCoursePackage coursePackage = this.getById(id);
             CoursePackageInfo coursePackageInfo = new CoursePackageInfo();
+            coursePackageInfo.setIsVip(appUser.getIsVip());
             coursePackageInfo.setId(id);
-            coursePackageInfo.setTime(coursePackage.getStartTime()+"-"+coursePackage.getEndTime());
+        SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd");
+        if(coursePackage.getType()==2){
+
+            coursePackageInfo.setTime(format.format(coursePackage.getStartTime())+"-"+format.format(coursePackage.getEndTime()));
+        }
             coursePackageInfo.setCoverDrawing(coursePackage.getCoverDrawing());
             coursePackageInfo.setName(coursePackage.getName());
             Store store = storeClient.queryStoreById(coursePackage.getStoreId());
@@ -508,10 +530,13 @@
             ArrayList<String> classTime = new ArrayList<>();
             String[] split4 = classStartTime.split(",");
             String[] split3 = classEndTime.split(",");
-            for (int i = 0; i < split4.length; i++) {
-                String s = split4[i] + "-" +  split3[i];
-                classTime.add(s);
+            if(ToolUtil.isNotEmpty(classStartTime)){
+                for (int i = 0; i < split4.length; i++) {
+                    String s = split4[i].substring(0,5) + "-" +  split3[i].substring(0,5);
+                    classTime.add(s);
+                }
             }
+
             coursePackageInfo.setTimes(classTime);
             coursePackageInfo.setType(coursePackage.getType());
 
@@ -662,21 +687,38 @@
         String[] students = paymentCourseVo.getStudentIds().split(";");
         for (CoursePackagePaymentConfigVo coursePackagePaymentConfigVo : list) {
             if(paymentCourseVo.getCoursePackagePaymentConfigId().compareTo(coursePackagePaymentConfigVo.getId()) == 0){
+                CoursePackagePaymentConfig byId = coursePackagePaymentConfigService.getById(paymentCourseVo.getCoursePackagePaymentConfigId());
+                Double cashPayment = byId.getCashPayment();
                 Integer payType = coursePackagePaymentConfigVo.getPayType();
-                if(payType == 1 && paymentCourseVo.getPayType() == 3){//现金支付
-                    return ResultUtil.error("支付方式错误,请刷新后重试");
+                Integer playPaiCoin1 = byId.getPlayPaiCoin();
+                if(cashPayment!=null || cashPayment>0){
+                    payType=1;
                 }
-                if(payType == 2 && paymentCourseVo.getPayType() != 3){//玩湃币支付
-                    return ResultUtil.error("支付方式错误,请刷新后重试");
+                if(playPaiCoin1!=null || playPaiCoin1>0){
+                    payType=2;
                 }
+                if((cashPayment!=null || cashPayment>0) &&(playPaiCoin1!=null || playPaiCoin1>0)){
+                    payType=3;
+                }
+
+                if(cashPayment!=null && cashPayment>0 && playPaiCoin1 !=null && playPaiCoin1>0){
+                }else {
+                    if(payType == 1 && paymentCourseVo.getPayType() == 3){//现金支付
+                        return ResultUtil.error("支付方式错误,请刷新后重试");
+                    }
+                    if(payType == 2 && paymentCourseVo.getPayType() != 3){//玩湃币支付
+                        return ResultUtil.error("支付方式错误,请刷新后重试");
+                    }
+                }
+
                 Double paymentPrice = coursePackagePaymentConfigVo.getPaymentPrice();//支付价
                 paymentPrice = new BigDecimal(students.length).multiply(new BigDecimal(paymentPrice)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
                 Double playPaiCoin = coursePackagePaymentConfigVo.getPlayPaiCoin().doubleValue();//支付币
                 playPaiCoin = new BigDecimal(students.length).multiply(new BigDecimal(playPaiCoin)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
-                if(payType == 1 && paymentPrice.compareTo(paymentCourseVo.getPrice()) != 0){
+                if(paymentCourseVo.getPayType() != 3 && paymentPrice.compareTo(paymentCourseVo.getPrice()) != 0){
                     return ResultUtil.error("支付金额异常,请刷新后重试");
                 }
-                if(payType == 2 && playPaiCoin.compareTo(paymentCourseVo.getPrice()) != 0){
+                if(paymentCourseVo.getPayType() == 3 && playPaiCoin.compareTo(paymentCourseVo.getPrice()) != 0){
                     return ResultUtil.error("支付金额异常,请刷新后重试");
                 }
             }
@@ -926,9 +968,19 @@
                                         coursePackagePayment.setOrderNumber(tradeNo);
                                     }
                                     coursePackagePaymentService.updateBatchById(list);
-
+                                System.out.println("===========到达支付");
                                     // 2.0
                                     userCouponClient.sendUserCoupon(new SendCouponReq(uid,coursePackagePaymentConfig.getCouponIds()));
+
+
+                                    moneyOut(tradeNo,tradeNo);
+
+
+
+
+
+
+
 
 
 
@@ -951,6 +1003,38 @@
         }
         return alipay;
     }
+
+
+    public void moneyOut(String outNum,String tradeNo) throws AlipayApiException {
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
+        AlipayTradeOrderSettleRequest request = new AlipayTradeOrderSettleRequest();
+        AlipayTradeOrderSettleModel model = new AlipayTradeOrderSettleModel();
+        model.setOutRequestNo(outNum);
+        model.setTradeNo(tradeNo);
+        List<RoyaltyDetailInfos> royaltyDetailInfos = new ArrayList<>();
+
+
+        RoyaltyDetailInfos royaltyDetailInfos1 = new RoyaltyDetailInfos();
+        royaltyDetailInfos1.setTransOutType("userId");
+        royaltyDetailInfos1.setTransOut("2021004105665036");
+        royaltyDetailInfos1.setTransInType("loginName");
+        royaltyDetailInfos1.setTransIn("18398968484");
+        royaltyDetailInfos1.setAmount("0.1");
+
+
+        royaltyDetailInfos.add(royaltyDetailInfos1);
+
+        request.setBizModel(model);
+
+
+        AlipayTradeOrderSettleResponse response = alipayClient.execute(request);
+        if(response.isSuccess()){
+            System.out.println("调用成功");
+        } else {
+            System.out.println("调用失败");
+        }
+    }
+
 
 
     /**
@@ -1048,7 +1132,7 @@
                         student1.setCoursePackageId(tCoursePackage.getId());
                         student1.setCoursePackagePaymentId(paymentId);
                         student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
-                        student1.setSignInOrNot(0);
+                        student1.setSignInOrNot(1);
                         student1.setReservationStatus(1);
                         student1.setInsertTime(new Date());
                         cpsMapper.insert(student1);
@@ -1085,7 +1169,7 @@
                             student1.setCoursePackageId(tCoursePackage.getId());
                             student1.setCoursePackagePaymentId(paymentId);
                             student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
-                            student1.setSignInOrNot(0);
+                            student1.setSignInOrNot(1);
                             student1.setReservationStatus(1);
                             student1.setInsertTime(new Date());
                             cpsMapper.insert(student1);
@@ -1109,10 +1193,6 @@
                         coursePackageScheduling.setClassDate(parse);
                         coursePackageScheduling.setEndDate(parse1);
                         coursePackageScheduling.setStatus(1);
-                        coursePackageScheduling.setCourseId(tCoursePackage.getId());
-                        coursePackageScheduling.setIntegral(0);
-                        coursePackageScheduling.setCancelClasses("");
-                        coursePackageScheduling.setDeductClassHour(0);
                         coursePackageSchedulingService.save(coursePackageScheduling);
 
                         CoursePackageStudent student1 = new CoursePackageStudent();
@@ -1121,7 +1201,7 @@
                         student1.setCoursePackageId(tCoursePackage.getId());
                         student1.setCoursePackagePaymentId(paymentId);
                         student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
-                        student1.setSignInOrNot(0);
+                        student1.setSignInOrNot(1);
                         student1.setReservationStatus(1);
                         student1.setInsertTime(new Date());
                         cpsMapper.insert(student1);

--
Gitblit v1.7.1