From a1e4cfc3de4f3f3f3956b769bc7af40d097c8a4c Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期二, 17 十月 2023 15:12:57 +0800
Subject: [PATCH] 修改bug

---
 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java |   84 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 81 insertions(+), 3 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 98459ce..27297b4 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
@@ -1,5 +1,6 @@
 package com.dsh.other.service.impl;
 
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -62,6 +63,9 @@
     @Autowired
     private SiteMapper siteMapper;
 
+    @Autowired
+    private TBackRecordService backRecordService;
+
 
 
 
@@ -101,6 +105,7 @@
         Store store = storeService.getById(site.getStoreId());
         QuerySiteInfoVo querySiteInfoVo = new QuerySiteInfoVo();
         querySiteInfoVo.setId(site.getId());
+        querySiteInfoVo.setTypeName(site.getTypeName());
         querySiteInfoVo.setName(site.getName());
         querySiteInfoVo.setSiteTypeName(siteType.getName());
         querySiteInfoVo.setStoreName(store.getName());
@@ -109,7 +114,29 @@
         querySiteInfoVo.setStoreLon(store.getLon());
         querySiteInfoVo.setStoreLat(store.getLat());
         querySiteInfoVo.setStorePhone(store.getPhone());
+        querySiteInfoVo.setImgs(site.getImgs());
         querySiteInfoVo.setDistance(0D);
+        querySiteInfoVo.setCashPriceOne(site.getCashPriceOne());
+        if(site.getPlayPaiCoinOne()!=null){
+            querySiteInfoVo.setPlayPaiCoinOne(site.getPlayPaiCoinOne().intValue());
+        }
+
+        querySiteInfoVo.setIntroduce(site.getIntroduce());
+        ArrayList<String> nextName = new ArrayList<>();
+        ArrayList<String> halfName = new ArrayList<>();
+        String nextName1 = site.getNextName();
+        String halfName1 = site.getHalfName();
+        querySiteInfoVo.setIshalf(site.getIshalf());
+        String[] split = nextName1.split(",");
+        for (String s : split) {
+            nextName.add(s);
+        }
+        String[] split1 = halfName1.split(",");
+        for (String s : split1) {
+            halfName.add(s);
+        }
+        querySiteInfoVo.setHalfName(halfName);
+        querySiteInfoVo.setNextName(nextName);
         if(ToolUtil.isNotEmpty(lon) && ToolUtil.isNotEmpty(lat)){
             Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, store.getLon() + "," + store.getLat());
             double wgs84 = new BigDecimal(distance.get("WGS84")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
@@ -138,19 +165,29 @@
         e.setTime(sdf.parse(day + " " + site.getAppointmentEndTime()));
 
         int hour = e.get(Calendar.HOUR_OF_DAY);
+
         int minute = e.get(Calendar.MINUTE);
+
         List<QuerySiteTimes> list = new ArrayList<>();
+
         SimpleDateFormat sdfs = new SimpleDateFormat("HH:mm");
+
         while (true){
+
             String start = sdfs.format(s.getTime());
 
             s.set(Calendar.MINUTE, s.get(Calendar.MINUTE) + 30);
+
             int e_hour = s.get(Calendar.HOUR_OF_DAY);
+
             int e_minute = s.get(Calendar.MINUTE);
+
             String end = sdfs.format(s.getTime());
 
             QuerySiteTimes querySiteTimes = new QuerySiteTimes();
+
             querySiteTimes.setTime(start + "-" + end);
+
             querySiteTimes.setSelectable(1);
 
             SiteBooking siteBooking = siteBookingService.getOne(new QueryWrapper<SiteBooking>().eq("siteId", id).eq("state", 1)
@@ -205,7 +242,11 @@
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         Double payMoney = 0D;
         if(reservationSite.getPayType() == 3){
-            payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+            if(reservationSite.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();
+            }
             if(appUser.getPlayPaiCoins().compareTo(payMoney.intValue()) < 0){
                 return ResultUtil.error("玩湃币不足");
             }
@@ -215,8 +256,12 @@
 
         //校验优惠券
         Long couponId = reservationSite.getCouponId();
+        if (couponId!=null && couponId != 0){
+
         if(null != couponId && reservationSite.getPayType() != 3){
             UserCoupon userCoupon = userCouponClient.queryUserCouponById(new QueryUserCouponByIdAndUserId(reservationSite.getCouponId(),uid));
+
+
             if(userCoupon.getStatus() == 2){
                 return ResultUtil.error("优惠券已被核销");
             }
@@ -247,6 +292,7 @@
             userCoupon.setStatus(2);
             userCouponClient.updateUserCoupon(userCoupon);
         }
+        }
 
 
         SiteBooking siteBooking = new SiteBooking();
@@ -269,6 +315,11 @@
         siteBooking.setStatus(0);
         siteBooking.setState(1);
         siteBooking.setInsertTime(new Date());
+
+        // 2.0
+        siteBooking.setNextName(reservationSite.getNextName());
+        siteBooking.setIsHalf(reservationSite.getIsHalf());
+        siteBooking.setHalfName(reservationSite.getHalfName());
         siteBookingService.save(siteBooking);
 
         if(reservationSite.getPayType() == 1){//微信支付
@@ -278,7 +329,11 @@
             return aliPaymentSite(payMoney, siteBooking);
         }
         if(reservationSite.getPayType() == 3){//玩湃币支付
-            return playPaiCoinPaymentSite(appUser, payMoney, siteBooking);
+            if(reservationSite.getIsHalf()==2){
+                return playPaiCoinPaymentSite(appUser, Double.valueOf(site.getPlayPaiCoin()), siteBooking);
+            }else {
+                return playPaiCoinPaymentSite(appUser, site.getPlayPaiCoinOne(), siteBooking);
+            }
         }
         return ResultUtil.success();
     }
@@ -444,7 +499,10 @@
             SiteBooking siteBooking = siteBookingService.getById(queryMySiteVo.getId());
             Site site = this.getById(siteBooking.getSiteId());
             String[] split = siteBooking.getTimes().split(";");
-            queryMySiteVo.setPlayPaiCoin(site.getPlayPaiCoin() * split.length);
+            if(site!=null){
+
+                queryMySiteVo.setPlayPaiCoin(site.getPlayPaiCoin() * split.length);
+            }
         }
         return queryMySiteVos;
     }
@@ -459,6 +517,12 @@
     @Override
     public ResultUtil cancelMySite(Integer uid, Integer id) throws Exception {
         SiteBooking siteBooking = siteBookingService.getById(id);
+
+        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
+        Date startTime = siteBooking.getStartTime();
+        if(format.format(new Date()).equals(format.format(startTime))){
+            return ResultUtil.error("预约当天,不能取消");
+        }
         if(siteBooking.getStatus() == 0){
             return ResultUtil.error("请先进行支付");
         }
@@ -476,6 +540,13 @@
             }
             siteBooking.setCancelUserId(uid);
             siteBookingService.updateById(siteBooking);
+
+            TBackRecord tBackRecord = new TBackRecord();
+            tBackRecord.setMoney(siteBooking.getPayMoney());
+            tBackRecord.setUserId(siteBooking.getAppUserId());
+            tBackRecord.setTime(new Date());
+            backRecordService.save(tBackRecord);
+
         }
         if(siteBooking.getPayType() == 2){//支付宝
             Map<String, String> map = payMoneyUtil.aliRefund(siteBooking.getPayOrderNo(), siteBooking.getPayMoney().toString());
@@ -497,6 +568,13 @@
                 userCoupon.setStatus(1);
                 userCouponClient.updateUserCoupon(userCoupon);
             }
+
+
+            TBackRecord tBackRecord = new TBackRecord();
+            tBackRecord.setMoney(siteBooking.getPayMoney());
+            tBackRecord.setUserId(siteBooking.getAppUserId());
+            tBackRecord.setTime(new Date());
+            backRecordService.save(tBackRecord);
         }
 
         if(siteBooking.getPayType() == 3){//玩湃币

--
Gitblit v1.7.1