From f6ba3e15355e22767e69f8fc14ae22523f8db8dc Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期三, 22 十一月 2023 19:33:58 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai

---
 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java |   99 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 78 insertions(+), 21 deletions(-)

diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
index f4105ae..83ca307 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+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;
@@ -28,6 +29,7 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalTime;
 import java.util.*;
@@ -172,13 +174,14 @@
     public List<QuerySiteTimes> querySiteTimes(Integer id, String day,String halfName,String siteName) throws Exception {
 
         System.out.println("=======date======"+day);
-
         List<String> strings = new ArrayList<>();
 
 //        List<SiteBooking> siteBookings = siteClient.listBooks(id);
-        List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).eq("nextName",siteName).like("times",day));
+        List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).ne("status",5).eq("nextName",siteName).like("times",day));
+
+
         if (siteName==null|| siteName.equals("")){
-            siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).like("times",day));
+            siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).ne("status",5).like("times",day));
         }
 
 
@@ -257,6 +260,13 @@
                     if(stringDateBetween){
                         orderDto.setSelectable(0);
                     }
+                    if (DateComparisonExample.isStringWithinTimeRange(stime, siteLock.getStartTime(), siteLock.getEndTime())){
+                        orderDto.setSelectable(0);
+                    }
+                    if (DateComparisonExample.isStringWithinTimeRange(etime, siteLock.getStartTime(), siteLock.getEndTime())){
+                        orderDto.setSelectable(0);
+                    }
+
                 }
 
 
@@ -273,6 +283,9 @@
 
 
     }
+
+
+
 
 
     public static String getNextTime(String currentTime) {
@@ -346,7 +359,7 @@
         Double payMoney = 0D;
         if(reservationSite.getPayType() == 3){
             if(reservationSite.getIsHalf()==2){
-                payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+                payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() ;
             }else {
                 payMoney = new BigDecimal(site.getPlayPaiCoinOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
             }
@@ -355,7 +368,12 @@
                 return new ResultUtil(3,"玩湃币不足");
             }
         }else{
-            payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+            if(reservationSite.getIsHalf()==2){
+            payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue() ;
+            }else {
+                payMoney = new BigDecimal(site.getCashPriceOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+
+            }
         }
 
         //校验优惠券
@@ -379,7 +397,7 @@
                 JSONObject jsonObject = JSON.parseObject(coupon.getContent());
                 Double num1 = jsonObject.getDouble("conditionalAmount");
                 Double num2 = jsonObject.getDouble("deductionAmount");
-                if(payMoney.compareTo(num1) <= 0){
+                if(payMoney.compareTo(num1) < 0){
                     return ResultUtil.error("该优惠券无法使用");
                 }
 
@@ -426,8 +444,13 @@
         siteBooking.setHalfName(reservationSite.getHalfName());
         siteBookingService.save(siteBooking);
 
+
+
+
         if(reservationSite.getPayType() == 1){//微信支付
-            return weChatPaymentSite(payMoney, siteBooking);
+            ResultUtil resultUtil = weChatPaymentSite(payMoney, siteBooking);
+
+            return resultUtil;
         }
         if(reservationSite.getPayType() == 2){//支付宝支付
             return aliPaymentSite(payMoney, siteBooking);
@@ -452,7 +475,7 @@
     public ResultUtil weChatPaymentSite(Double paymentPrice, SiteBooking siteBooking) throws Exception{
         String code = siteBooking.getOrderNo();
         Integer id = siteBooking.getId();
-        ResultUtil weixinpay = payMoneyUtil.weixinpay("预约场地", "", code, paymentPrice.toString(), "/base/site/weChatPaymentSiteCallback", "APP", "");
+        ResultUtil weixinpay = payMoneyUtil.weixinpay("预约场地", id.toString(), code, paymentPrice.toString(), "/base/site/weChatPaymentSiteCallback", "APP", "");
         if(weixinpay.getCode() == 200){
             new Thread(new Runnable() {
                 @Override
@@ -507,6 +530,7 @@
     }
 
 
+
     /**
      * 课程支付宝支付
      * @param paymentPrice
@@ -516,7 +540,8 @@
     public ResultUtil aliPaymentSite(Double paymentPrice, SiteBooking siteBooking) throws Exception{
         String code = siteBooking.getOrderNo();
         Integer id = siteBooking.getId();
-        ResultUtil alipay = payMoneyUtil.alipay("预约场地", "预约场地", "", code, paymentPrice.toString(), "/base/site/aliPaymentSiteCallback");
+        ResultUtil alipay = payMoneyUtil.alipay("预约场地", "预约场地", id.toString(), code, paymentPrice.toString(), "/base/site/aliPaymentSiteCallback");
+        System.out.println("预约场地----"+alipay.getCode());
         if(alipay.getCode() == 200){
             new Thread(new Runnable() {
                 @Override
@@ -532,17 +557,19 @@
                             if(siteBooking.getStatus() != 0){
                                 break;
                             }
-                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
-                            if(resultUtil.getCode() == 200 && siteBooking.getStatus() == 0){
+                            AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
+                            if(resultUtil.getCode().equals("10000") && siteBooking.getStatus() == 0){
                                 /**
                                  * 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");
+//                                Map<String, String> data1 = resultUtil.getData();
+//                                String s = data1.get("tradeStatus");
+                                String tradeNo = resultUtil.getTradeNo();
+                                String s = resultUtil.getTradeStatus();
+                                System.out.println("ssssss"+s);
                                 if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){
                                     break;
                                 }
@@ -551,6 +578,7 @@
                                     siteBooking.setStatus(1);
                                     siteBooking.setPayOrderNo(tradeNo);
                                     siteBookingService.updateById(siteBooking);
+                                    System.err.println("======完成支付");
                                     break;
                                 }
                                 if("WAIT_BUYER_PAY".equals(s)){
@@ -582,7 +610,9 @@
         siteBooking.setPayTime(new Date());
         siteBooking.setStatus(1);
         siteBookingService.updateById(siteBooking);
-        return ResultUtil.success();
+        HashMap<String, String> map = new HashMap<>();
+        map.put("siteBooking",siteBooking.getId().toString());
+        return ResultUtil.success(map);
     }
 
 
@@ -604,8 +634,11 @@
             Site site = this.getById(siteBooking.getSiteId());
             String[] split = siteBooking.getTimes().split(";");
             if(site!=null){
-
-                queryMySiteVo.setPlayPaiCoin(site.getPlayPaiCoin() * split.length);
+                if (queryMySiteVo.getIsHalf()==1) {
+                    queryMySiteVo.setPlayPaiCoin(site.getPlayPaiCoin() * split.length);
+                }else {
+                    queryMySiteVo.setPlayPaiCoin((int) (site.getPlayPaiCoinOne() * split.length));
+                }
             }
         }
         return queryMySiteVos;
@@ -624,11 +657,15 @@
 
         SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
         Date startTime = siteBooking.getStartTime();
-        if(format.format(new Date()).equals(format.format(startTime))){
+        if(format.format(new Date()).equals(format.format(startTime))&&siteBooking.getStatus() != 0){
             return ResultUtil.error("预约当天,不能取消");
         }
+
         if(siteBooking.getStatus() == 0){
-            return ResultUtil.error("请先进行支付");
+//            return ResultUtil.error("请先进行支付");
+            siteBooking.setStatus(5);
+            siteBookingService.updateById(siteBooking);
+            return ResultUtil.success();
         }
         if(siteBooking.getStatus() != 1 && siteBooking.getStatus() != 2){
             return ResultUtil.error("不能进行取消操作");
@@ -719,9 +756,15 @@
         String[] split = siteBooking.getTimes().split(";");
         Double payMoney = 0D;
         if(payType == 3){
-            payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+//            payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
             if(appUser.getPlayPaiCoins().compareTo(payMoney.intValue()) < 0){
                 return ResultUtil.error("玩湃币不足");
+            }
+
+            if(siteBooking.getIsHalf()==2){
+                payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+            }else {
+                payMoney = new BigDecimal(site.getPlayPaiCoinOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
             }
         }else{
             if(siteBooking.getIsHalf()==2){
@@ -794,12 +837,26 @@
         String[] split = siteBooking.getTimes().split(";");
         Map<String, Double> map = new HashMap<>();
         Double payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+
+
+        if(siteBooking.getIsHalf()==2){
+            payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+        }else {
+            payMoney = new BigDecimal(site.getPlayPaiCoinOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+        }
+
         map.put("playPaiCoin", payMoney);
         payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
 
+        if(siteBooking.getIsHalf()==2){
+            payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+        }else {
+            payMoney = new BigDecimal(site.getCashPriceOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+        }
+
         //校验优惠券
         Long couponId = siteBooking.getUserCouponId();
-        if(null != couponId){
+        if(null != couponId&&couponId!=0){
             UserCoupon userCoupon = userCouponClient.queryUserCouponById(new QueryUserCouponByIdAndUserId(siteBooking.getUserCouponId(),siteBooking.getAppUserId()));
             Coupon coupon = couponClient.queryCouponById(userCoupon.getCouponId());
             if(coupon.getType() == 1){//满减

--
Gitblit v1.7.1